mirror of
https://github.com/DSpace/DSpace.git
synced 2025-10-07 10:04:21 +00:00
Compare commits
55 Commits
rest-tutor
...
dspace-1.7
Author | SHA1 | Date | |
---|---|---|---|
![]() |
76515416ab | ||
![]() |
37a6f5e82a | ||
![]() |
f6f0104cd4 | ||
![]() |
4e6973a569 | ||
![]() |
aa8dd60640 | ||
![]() |
139c3c995b | ||
![]() |
b997ca866f | ||
![]() |
5c6c7e1fd1 | ||
![]() |
6e026ed6fd | ||
![]() |
47cba6d4d3 | ||
![]() |
c3a48caca4 | ||
![]() |
39538b1ab8 | ||
![]() |
f923f7c391 | ||
![]() |
97e105b88f | ||
![]() |
4eaacd90cb | ||
![]() |
9a075ac5d9 | ||
![]() |
f43e2e2992 | ||
![]() |
06b81964e4 | ||
![]() |
84042ce512 | ||
![]() |
3c7d8ba607 | ||
![]() |
151afeace5 | ||
![]() |
aa6f1baa4a | ||
![]() |
2b67c5ccb2 | ||
![]() |
06878eab58 | ||
![]() |
7cc9a5d3d0 | ||
![]() |
8237d8b6e1 | ||
![]() |
48777df275 | ||
![]() |
908429570c | ||
![]() |
d999d0b0b7 | ||
![]() |
2bfd77e634 | ||
![]() |
0a50305ff5 | ||
![]() |
0bf155628d | ||
![]() |
1bbea4dbc4 | ||
![]() |
edb6a8a86f | ||
![]() |
491ca830a9 | ||
![]() |
09e049739f | ||
![]() |
0a00a8bbe9 | ||
![]() |
0cbeef4010 | ||
![]() |
27ae52c8f1 | ||
![]() |
2834c8ccf6 | ||
![]() |
1a9a7dfcba | ||
![]() |
27741e59a9 | ||
![]() |
1f4e370234 | ||
![]() |
f8c0886738 | ||
![]() |
296a70b4d8 | ||
![]() |
c0f8854398 | ||
![]() |
f7e2723e5c | ||
![]() |
314011e069 | ||
![]() |
aa708a326c | ||
![]() |
ce3a2098e4 | ||
![]() |
28bf3e3046 | ||
![]() |
793974234d | ||
![]() |
7ea045b2ed | ||
![]() |
54d0316724 | ||
![]() |
77573bc55f |
@@ -13,7 +13,7 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-parent</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
</parent>
|
||||
|
||||
<!--
|
||||
@@ -22,9 +22,9 @@
|
||||
into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/trunk/dspace</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace</url>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</url>
|
||||
</scm>
|
||||
|
||||
<!--
|
||||
|
@@ -73,22 +73,22 @@ public class ItemImport
|
||||
{
|
||||
private static final Logger log = Logger.getLogger(ItemImport.class);
|
||||
|
||||
private static boolean useWorkflow = false;
|
||||
static boolean useWorkflow = false;
|
||||
|
||||
private static boolean useWorkflowSendEmail = false;
|
||||
static boolean useWorkflowSendEmail = false;
|
||||
|
||||
private static boolean isTest = false;
|
||||
static boolean isTest = false;
|
||||
|
||||
private static boolean isResume = false;
|
||||
static boolean isResume = false;
|
||||
|
||||
private static boolean isQuiet = false;
|
||||
static boolean isQuiet = false;
|
||||
|
||||
static boolean template = false;
|
||||
|
||||
private static boolean template = false;
|
||||
|
||||
private static PrintWriter mapOut = null;
|
||||
static PrintWriter mapOut = null;
|
||||
|
||||
// File listing filter to look for metadata files
|
||||
private static FilenameFilter metadataFileFilter = new FilenameFilter()
|
||||
static FilenameFilter metadataFileFilter = new FilenameFilter()
|
||||
{
|
||||
public boolean accept(File dir, String n)
|
||||
{
|
||||
@@ -97,7 +97,7 @@ public class ItemImport
|
||||
};
|
||||
|
||||
// File listing filter to check for folders
|
||||
private static FilenameFilter directoryFilter = new FilenameFilter()
|
||||
static FilenameFilter directoryFilter = new FilenameFilter()
|
||||
{
|
||||
public boolean accept(File dir, String n)
|
||||
{
|
||||
@@ -447,10 +447,10 @@ public class ItemImport
|
||||
{
|
||||
ZipFile zf = new ZipFile(zipfilename);
|
||||
ZipEntry entry;
|
||||
Enumeration<? extends ZipEntry> entries = zf.entries();
|
||||
Enumeration entries = zf.entries();
|
||||
while (entries.hasMoreElements())
|
||||
{
|
||||
entry = entries.nextElement();
|
||||
entry = (ZipEntry)entries.nextElement();
|
||||
if (entry.isDirectory())
|
||||
{
|
||||
if (!new File(ziptempdir + entry.getName()).mkdir())
|
||||
@@ -490,7 +490,7 @@ public class ItemImport
|
||||
}
|
||||
}
|
||||
|
||||
c.turnOffAuthorisationSystem();
|
||||
c.setIgnoreAuthorization(true);
|
||||
|
||||
if ("add".equals(command))
|
||||
{
|
||||
@@ -595,7 +595,7 @@ public class ItemImport
|
||||
// open and process the source directory
|
||||
File d = new java.io.File(sourceDir);
|
||||
|
||||
if (d == null || !d.isDirectory())
|
||||
if (d == null)
|
||||
{
|
||||
System.out.println("Error, cannot open source directory " + sourceDir);
|
||||
System.exit(1);
|
||||
@@ -626,7 +626,7 @@ public class ItemImport
|
||||
// verify the source directory
|
||||
File d = new java.io.File(sourceDir);
|
||||
|
||||
if (d == null || !d.isDirectory())
|
||||
if (d == null)
|
||||
{
|
||||
System.out.println("Error, cannot open source directory "
|
||||
+ sourceDir);
|
||||
@@ -693,7 +693,7 @@ public class ItemImport
|
||||
Map<String, String> myhash = readMapFile(mapFile);
|
||||
|
||||
// now delete everything that appeared in the mapFile
|
||||
Iterator<String> i = myhash.keySet().iterator();
|
||||
Iterator i = myhash.keySet().iterator();
|
||||
|
||||
while (i.hasNext())
|
||||
{
|
||||
@@ -717,11 +717,9 @@ public class ItemImport
|
||||
}
|
||||
|
||||
/**
|
||||
* item? try and add it to the archive.
|
||||
* @param mycollections - add item to these Collections.
|
||||
* @param path - directory containing the item directories.
|
||||
* @param itemname handle - non-null means we have a pre-defined handle already
|
||||
* @param mapOut - mapfile we're writing
|
||||
* item? try and add it to the archive c mycollection path itemname handle -
|
||||
* non-null means we have a pre-defined handle already mapOut - mapfile
|
||||
* we're writing
|
||||
*/
|
||||
private Item addItem(Context c, Collection[] mycollections, String path,
|
||||
String itemname, PrintWriter mapOut, boolean template) throws Exception
|
||||
|
@@ -7,25 +7,20 @@
|
||||
*/
|
||||
package org.dspace.authenticate;
|
||||
|
||||
import java.net.Inet6Address;
|
||||
import java.net.UnknownHostException;
|
||||
|
||||
/**
|
||||
* Quickly tests whether a given IP address matches an IP range. An
|
||||
* Quickly tests whether a given IPv4 4-byte address matches an IP range. An
|
||||
* {@code IPMatcher} is initialized with a particular IP range specification.
|
||||
* Calls to {@link IPMatcher#match(String) match} method will then quickly
|
||||
* determine whether a given IP falls within that range.
|
||||
* <p>
|
||||
* Supported range specifications are:
|
||||
* Supported range specifications areL
|
||||
* <p>
|
||||
* <ul>
|
||||
* <li>Full IPv4 address, e.g. {@code 12.34.56.78}</li>
|
||||
* <li>Full IPv6 address, e.g. {@code 2001:18e8:3:171:218:8bff:fe2a:56a4}</li>
|
||||
* <li>Partial IPv4 address, e.g. {@code 12.34} (which matches any IP starting
|
||||
* <li>Full IP address, e.g. {@code 12.34.56.78}</li>
|
||||
* <li>Partial IP address, e.g. {@code 12.34} (which matches any IP starting
|
||||
* {@code 12.34})</li>
|
||||
* <li>IPv4 network/netmask, e.g. {@code 18.25.0.0/255.255.0.0}</li>
|
||||
* <li>IPv4 or IPv6 CIDR slash notation, e.g. {@code 18.25.0.0/16},
|
||||
* {@code 2001:18e8:3:171::/64}</li>
|
||||
* <li>Network/netmask, e.g. {@code 18.25.0.0/255.255.0.0}</li>
|
||||
* <li>CIDR slash notation, e.g. {@code 18.25.0.0/16}</li>
|
||||
* </ul>
|
||||
*
|
||||
* @version $Revision$
|
||||
@@ -43,7 +38,7 @@ public class IPMatcher
|
||||
* Construct an IPMatcher that will test for the given IP specification
|
||||
*
|
||||
* @param ipSpec
|
||||
* IP specification (full or partial address, network/netmask,
|
||||
* IP specification (full or partial URL, network/netmask,
|
||||
* network/cidr)
|
||||
* @throws IPMatcherException
|
||||
* if there is an error parsing the specification (i.e. it is
|
||||
@@ -52,129 +47,79 @@ public class IPMatcher
|
||||
public IPMatcher(String ipSpec) throws IPMatcherException
|
||||
{
|
||||
// Boil all specs down to network + mask
|
||||
network = new byte[4];
|
||||
netmask = new byte[] { -1, -1, -1, -1 };
|
||||
|
||||
// Allow partial IP
|
||||
boolean mustHave4 = false;
|
||||
|
||||
String ipPart = ipSpec;
|
||||
String[] parts = ipSpec.split("/");
|
||||
|
||||
if (parts[0].indexOf(':') >= 0)
|
||||
{ // looks like IPv6
|
||||
try
|
||||
{
|
||||
network = Inet6Address.getByName(parts[0]).getAddress();
|
||||
}
|
||||
catch (UnknownHostException e)
|
||||
{
|
||||
throw new IPMatcherException(
|
||||
"Malformed IP range specification " + ipSpec, e);
|
||||
}
|
||||
switch (parts.length)
|
||||
{
|
||||
case 2:
|
||||
// Some kind of slash notation -- we'll need a full network IP
|
||||
ipPart = parts[0];
|
||||
mustHave4 = true;
|
||||
|
||||
netmask = new byte[16];
|
||||
switch(parts.length)
|
||||
String[] maskParts = parts[1].split("\\.");
|
||||
if (maskParts.length == 1)
|
||||
{
|
||||
case 2: // CIDR notation: calculate the mask
|
||||
int maskBits;
|
||||
try {
|
||||
maskBits = Integer.parseInt(parts[1]);
|
||||
} catch (NumberFormatException nfe) {
|
||||
// CIDR slash notation
|
||||
int x;
|
||||
|
||||
try
|
||||
{
|
||||
x = Integer.parseInt(maskParts[0]);
|
||||
}
|
||||
catch (NumberFormatException nfe)
|
||||
{
|
||||
throw new IPMatcherException(
|
||||
"Malformed IP range specification " + ipSpec, nfe);
|
||||
}
|
||||
if (maskBits < 0 || maskBits > 128)
|
||||
throw new IPMatcherException("Mask bits out of range 0-128 "
|
||||
+ ipSpec);
|
||||
|
||||
int maskBytes = maskBits/8;
|
||||
for (int i = 0; i < maskBytes; i++)
|
||||
netmask[i] = (byte) 0Xff;
|
||||
netmask[maskBytes] = (byte) ((byte) 0Xff << 8-(maskBits % 8)); // FIXME test!
|
||||
for (int i = maskBytes+1; i < (128/8); i++)
|
||||
netmask[i] = 0;
|
||||
break;
|
||||
case 1: // No explicit mask: fill the mask with 1s
|
||||
for (int i = 0; i < netmask.length; i++)
|
||||
netmask[i] = (byte) 0Xff;
|
||||
break;
|
||||
default:
|
||||
throw new IPMatcherException("Malformed IP range specification "
|
||||
+ ipSpec);
|
||||
if (x < 0 || x > 32)
|
||||
{
|
||||
throw new IPMatcherException();
|
||||
}
|
||||
|
||||
int fullMask = -1 << (32 - x);
|
||||
netmask[0] = (byte) ((fullMask & 0xFF000000) >>> 24);
|
||||
netmask[1] = (byte) ((fullMask & 0x00FF0000) >>> 16);
|
||||
netmask[2] = (byte) ((fullMask & 0x0000FF00) >>> 8);
|
||||
netmask[3] = (byte) (fullMask & 0x000000FF);
|
||||
}
|
||||
}
|
||||
else
|
||||
{ // assume IPv4
|
||||
// Allow partial IP
|
||||
boolean mustHave4 = false;
|
||||
|
||||
network = new byte[4];
|
||||
netmask = new byte[4];
|
||||
switch (parts.length)
|
||||
else
|
||||
{
|
||||
case 2:
|
||||
// Some kind of slash notation -- we'll need a full network IP
|
||||
ipPart = parts[0];
|
||||
mustHave4 = true;
|
||||
|
||||
String[] maskParts = parts[1].split("\\.");
|
||||
if (maskParts.length == 1)
|
||||
{
|
||||
// CIDR slash notation
|
||||
int x;
|
||||
|
||||
try
|
||||
{
|
||||
x = Integer.parseInt(maskParts[0]);
|
||||
}
|
||||
catch (NumberFormatException nfe)
|
||||
{
|
||||
throw new IPMatcherException(
|
||||
"Malformed IP range specification " + ipSpec, nfe);
|
||||
}
|
||||
|
||||
if (x < 0 || x > 32)
|
||||
{
|
||||
throw new IPMatcherException();
|
||||
}
|
||||
|
||||
int fullMask = -1 << (32 - x);
|
||||
netmask[0] = (byte) ((fullMask & 0xFF000000) >>> 24);
|
||||
netmask[1] = (byte) ((fullMask & 0x00FF0000) >>> 16);
|
||||
netmask[2] = (byte) ((fullMask & 0x0000FF00) >>> 8);
|
||||
netmask[3] = (byte) (fullMask & 0x000000FF);
|
||||
}
|
||||
else
|
||||
{
|
||||
// full subnet specified
|
||||
ipToBytes(parts[1], netmask, true);
|
||||
}
|
||||
|
||||
case 1:
|
||||
// Get IP
|
||||
for (int i = 0; i < netmask.length; i++)
|
||||
netmask[i] = -1;
|
||||
int partCount = ipToBytes(ipPart, network, mustHave4);
|
||||
|
||||
// If partial IP, set mask for remaining bytes
|
||||
for (int i = 3; i >= partCount; i--)
|
||||
{
|
||||
netmask[i] = 0;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
throw new IPMatcherException("Malformed IP range specification "
|
||||
+ ipSpec);
|
||||
// full subnet specified
|
||||
ipToBytes(parts[1], netmask, true);
|
||||
}
|
||||
network = ip4ToIp6(network);
|
||||
netmask = ip4MaskToIp6(netmask);
|
||||
|
||||
case 1:
|
||||
// Get IP
|
||||
int partCount = ipToBytes(ipPart, network, mustHave4);
|
||||
|
||||
// If partial IP, set mask for remaining bytes
|
||||
for (int i = 3; i >= partCount; i--)
|
||||
{
|
||||
netmask[i] = 0;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
throw new IPMatcherException("Malformed IP range specification "
|
||||
+ ipSpec);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Fill out a given four-byte array with the IPv4 address specified in the
|
||||
* Fill out a given four-byte array with the IP address specified in the
|
||||
* given String
|
||||
*
|
||||
* @param ip
|
||||
* IPv4 address as a dot-delimited String
|
||||
* IP address as a dot-delimited String
|
||||
* @param bytes
|
||||
* 4-byte array to fill out
|
||||
* @param mustHave4
|
||||
@@ -187,7 +132,7 @@ public class IPMatcher
|
||||
* outside of range 0-255, too many numbers, less than 4 numbers
|
||||
* if {@code mustHave4} is true
|
||||
*/
|
||||
private static int ipToBytes(String ip, byte[] bytes, boolean mustHave4)
|
||||
private int ipToBytes(String ip, byte[] bytes, boolean mustHave4)
|
||||
throws IPMatcherException
|
||||
{
|
||||
String[] parts = ip.split("\\.");
|
||||
@@ -236,27 +181,13 @@ public class IPMatcher
|
||||
*/
|
||||
public boolean match(String ipIn) throws IPMatcherException
|
||||
{
|
||||
byte[] candidate;
|
||||
byte[] bytes = new byte[4];
|
||||
|
||||
if (ipIn.indexOf(':') < 0)
|
||||
{
|
||||
candidate = new byte[4];
|
||||
ipToBytes(ipIn, candidate, true);
|
||||
candidate = ip4ToIp6(candidate);
|
||||
}
|
||||
else
|
||||
try
|
||||
{
|
||||
candidate = Inet6Address.getByName(ipIn).getAddress();
|
||||
}
|
||||
catch (UnknownHostException e)
|
||||
{
|
||||
throw new IPMatcherException("Malformed IPv6 address ",e);
|
||||
}
|
||||
ipToBytes(ipIn, bytes, true);
|
||||
|
||||
for (int i = 0; i < netmask.length; i++)
|
||||
for (int i = 0; i < 4; i++)
|
||||
{
|
||||
if ((candidate[i] & netmask[i]) != (network[i] & netmask[i]))
|
||||
if ((bytes[i] & netmask[i]) != (network[i] & netmask[i]))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@@ -264,42 +195,4 @@ public class IPMatcher
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert an IPv4 address to an IPv6 IPv4-compatible address.
|
||||
* @param ip4 an IPv4 address
|
||||
* @return the corresponding IPv6 address
|
||||
* @throws IllegalArgumentException if ip4 is not exactly four octets long.
|
||||
*/
|
||||
private static byte[] ip4ToIp6(byte[] ip4)
|
||||
{
|
||||
if (ip4.length != 4)
|
||||
throw new IllegalArgumentException("IPv4 address must be four octets");
|
||||
|
||||
byte[] ip6 = new byte[16];
|
||||
for (int i = 0; i < 16-4; i++)
|
||||
ip6[i] = 0;
|
||||
for (int i = 0; i < 4; i++)
|
||||
ip6[12+i] = ip4[i];
|
||||
return ip6;
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert an IPv4 mask to the equivalent IPv6 mask.
|
||||
* @param ip4 an IPv4 mask
|
||||
* @return the corresponding IPv6 mask
|
||||
* @throws IllegalArgumentException if ip4 is not exactly four octets long.
|
||||
*/
|
||||
private static byte[] ip4MaskToIp6(byte[] ip4)
|
||||
{
|
||||
if (ip4.length != 4)
|
||||
throw new IllegalArgumentException("IPv4 mask must be four octets");
|
||||
|
||||
byte[] ip6 = new byte[16];
|
||||
for (int i = 0; i < 16-4; i++)
|
||||
ip6[i] = (byte) 0Xff;
|
||||
for (int i = 0; i < 4; i++)
|
||||
ip6[12+i] = ip4[i];
|
||||
return ip6;
|
||||
}
|
||||
}
|
||||
|
@@ -2179,19 +2179,15 @@ public class Item extends DSpaceObject
|
||||
public void inheritCollectionDefaultPolicies(Collection c)
|
||||
throws java.sql.SQLException, AuthorizeException
|
||||
{
|
||||
List<ResourcePolicy> policies;
|
||||
|
||||
// remove the submit authorization policies
|
||||
// and replace them with the collection's default READ policies
|
||||
policies = AuthorizeManager.getPoliciesActionFilter(ourContext, c,
|
||||
Constants.DEFAULT_ITEM_READ);
|
||||
List<ResourcePolicy> policies = AuthorizeManager.getPoliciesActionFilter(ourContext, c, Constants.DEFAULT_ITEM_READ);
|
||||
|
||||
// MUST have default policies
|
||||
if (policies.size() < 1)
|
||||
{
|
||||
throw new java.sql.SQLException("Collection " + c.getID()
|
||||
+ " (" + c.getHandle() + ")"
|
||||
+ " has no default item READ policies");
|
||||
+ " has no default item READ policies");
|
||||
}
|
||||
|
||||
// change the action to just READ
|
||||
@@ -2203,13 +2199,11 @@ public class Item extends DSpaceObject
|
||||
|
||||
replaceAllItemPolicies(policies);
|
||||
|
||||
policies = AuthorizeManager.getPoliciesActionFilter(ourContext, c,
|
||||
Constants.DEFAULT_BITSTREAM_READ);
|
||||
policies = AuthorizeManager.getPoliciesActionFilter(ourContext, c, Constants.DEFAULT_BITSTREAM_READ);
|
||||
|
||||
if (policies.size() < 1)
|
||||
{
|
||||
throw new java.sql.SQLException("Collection " + c.getID()
|
||||
+ " (" + c.getHandle() + ")"
|
||||
+ " has no default bitstream READ policies");
|
||||
}
|
||||
|
||||
|
@@ -132,36 +132,20 @@ public class EmbargoManager
|
||||
throws SQLException, AuthorizeException, IOException
|
||||
{
|
||||
init();
|
||||
DCValue terms[] = item.getMetadata(terms_schema, terms_element,
|
||||
terms_qualifier, Item.ANY);
|
||||
DCValue terms[] = item.getMetadata(terms_schema, terms_element, terms_qualifier, Item.ANY);
|
||||
|
||||
DCDate result = null;
|
||||
|
||||
// Its poor form to blindly use an object that could be null...
|
||||
if (terms == null)
|
||||
return null;
|
||||
|
||||
result = setter.parseTerms(context, item,
|
||||
terms.length > 0 ? terms[0].value : null);
|
||||
|
||||
if (result == null)
|
||||
return null;
|
||||
|
||||
// new DCDate(non-date String) means toDate() will return null
|
||||
Date liftDate = result.toDate();
|
||||
if (liftDate == null)
|
||||
if(terms != null && terms.length > 0)
|
||||
{
|
||||
throw new IllegalArgumentException(
|
||||
"Embargo lift date is uninterpretable: "
|
||||
+ result.toString());
|
||||
result = setter.parseTerms(context, item, terms.length > 0 ? terms[0].value : null);
|
||||
}
|
||||
|
||||
// sanity check: do not allow an embargo lift date in the past.
|
||||
if (liftDate.before(new Date()))
|
||||
if (result != null && result.toDate().before(new Date()))
|
||||
{
|
||||
throw new IllegalArgumentException(
|
||||
"Embargo lift date must be in the future, but this is in the past: "
|
||||
+ result.toString());
|
||||
throw new IllegalArgumentException("Embargo lift date must be in the future, but this is in the past: "+result.toString());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
@@ -1391,7 +1391,7 @@ public class DatabaseManager
|
||||
Map<String, ColumnInfo> results = new HashMap<String, ColumnInfo>();
|
||||
|
||||
int max = metadata.getMaxTableNameLength();
|
||||
String tname = ((max > 0) && (table.length() >= max)) ? table
|
||||
String tname = (table.length() >= max) ? table
|
||||
.substring(0, max - 1) : table;
|
||||
|
||||
pkcolumns = metadata.getPrimaryKeys(catalog, schema, tname);
|
||||
|
@@ -1,126 +0,0 @@
|
||||
/**
|
||||
* The contents of this file are subject to the license and copyright
|
||||
* detailed in the LICENSE and NOTICE files at the root of the source
|
||||
* tree and available online at
|
||||
*
|
||||
* http://www.dspace.org/license/
|
||||
*/
|
||||
/**
|
||||
*
|
||||
*/
|
||||
package org.dspace.authenticate;
|
||||
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import org.dspace.AbstractUnitTest;
|
||||
import org.junit.AfterClass;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* @author Mark Wood
|
||||
*/
|
||||
public class IPMatcherTest extends AbstractUnitTest
|
||||
{
|
||||
private static final String IP6_FULL_ADDRESS1 = "2001:18e8:3:171:218:8bff:fe2a:56a4";
|
||||
private static final String IP6_FULL_ADDRESS2 = "2001:18e8:3:171:218:8bff:fe2a:56a3";
|
||||
private static final String IP6_MASKED_ADDRESS = "2001:18e8:3::/48";
|
||||
|
||||
private static IPMatcher ip6FullMatcher;
|
||||
private static IPMatcher ip6MaskedMatcher;
|
||||
|
||||
/**
|
||||
* This also tests instantiation of correct masked and unmasked IPv6 addresses.
|
||||
* @throws IPMatcherException
|
||||
*/
|
||||
@BeforeClass
|
||||
static public void setUp() throws IPMatcherException
|
||||
{
|
||||
ip6FullMatcher = new IPMatcher(IP6_FULL_ADDRESS1);
|
||||
ip6MaskedMatcher = new IPMatcher(IP6_MASKED_ADDRESS);
|
||||
}
|
||||
|
||||
/**
|
||||
* Test method for {@link org.dspace.authenticate.IPMatcher#IPMatcher(java.lang.String)}.
|
||||
*/
|
||||
@Test(expected=IPMatcherException.class)
|
||||
public void testIPMatcherIp6Incomplete()
|
||||
throws IPMatcherException
|
||||
{
|
||||
new IPMatcher("1234:5"); // Incomplete IPv6 address
|
||||
}
|
||||
|
||||
/**
|
||||
* Test method for {@link org.dspace.authenticate.IPMatcher#IPMatcher(java.lang.String)}.
|
||||
*/
|
||||
@Test(expected=IPMatcherException.class)
|
||||
public void testIPMatcherIp6MaskOutOfRange()
|
||||
throws IPMatcherException
|
||||
{
|
||||
new IPMatcher("123::456/999"); // Mask bits out of range
|
||||
}
|
||||
|
||||
/**
|
||||
* Test method for {@link org.dspace.authenticate.IPMatcher#IPMatcher(java.lang.String)}.
|
||||
*/
|
||||
@Test(expected=IPMatcherException.class)
|
||||
public void testIPMatcherIp6MaskNotNumeric()
|
||||
throws IPMatcherException
|
||||
{
|
||||
new IPMatcher("123::456/abc"); // Mask is not a number
|
||||
}
|
||||
|
||||
/**
|
||||
* Test method for {@link org.dspace.authenticate.IPMatcher#IPMatcher(java.lang.String)}.
|
||||
*/
|
||||
@Test(expected=IPMatcherException.class)
|
||||
public void testIPMatcherIp6TooManySlashes()
|
||||
throws IPMatcherException
|
||||
{
|
||||
new IPMatcher("123::456/12/12"); // Too many slashes
|
||||
}
|
||||
|
||||
/**
|
||||
* Test method for
|
||||
* {@link org.dspace.authenticate.IPMatcher#match(java.lang.String)}.
|
||||
*/
|
||||
@Test
|
||||
public void testIp6FullMatch()
|
||||
throws IPMatcherException
|
||||
{
|
||||
assertTrue("IPv6 full match fails", ip6FullMatcher
|
||||
.match(IP6_FULL_ADDRESS1));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test method for
|
||||
* {@link org.dspace.authenticate.IPMatcher#match(java.lang.String)}.
|
||||
*/
|
||||
@Test
|
||||
public void testIp6MisMatch()
|
||||
throws IPMatcherException
|
||||
{
|
||||
assertFalse("IPv6 full nonmatch succeeds", ip6FullMatcher
|
||||
.match(IP6_FULL_ADDRESS2));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test method for
|
||||
* {@link org.dspace.authenticate.IPMatcher#match(java.lang.String)}.
|
||||
*/
|
||||
@Test
|
||||
public void testIp6MaskedMatch()
|
||||
throws IPMatcherException
|
||||
{
|
||||
assertTrue("IPv6 masked match fails", ip6MaskedMatcher
|
||||
.match(IP6_FULL_ADDRESS2));
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
static public void cleanup()
|
||||
{
|
||||
ip6FullMatcher = null;
|
||||
ip6MaskedMatcher = null;
|
||||
}
|
||||
}
|
@@ -549,7 +549,7 @@
|
||||
<schema>dc</schema>
|
||||
<element>subject</element>
|
||||
<qualifier>mesh</qualifier>
|
||||
<scope_note>Medical Subject Headings</scope_note>
|
||||
<scope_note>MEdical Subject Headings</scope_note>
|
||||
</dc-type>
|
||||
|
||||
<dc-type>
|
||||
@@ -592,7 +592,7 @@
|
||||
</dc-schema>
|
||||
|
||||
<dc-type>
|
||||
<schema>test</schema>
|
||||
<schema>test</schema>
|
||||
<element>type</element>
|
||||
<!-- unqualified -->
|
||||
<scope_note>A second test schema type element.</scope_note>
|
||||
|
@@ -1,124 +1,124 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<packaging>jar</packaging>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-discovery-provider</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<name>DSpace Discovery :: Discovery Provider Library</name>
|
||||
<description>
|
||||
|
||||
|
||||
|
||||
Build Information
|
||||
$Id: pom.xml 5367 2010-09-30 00:30:11Z mdiggory $
|
||||
$URL: https://scm.dspace.org/svn/repo/modules/dspace-discovery/trunk/provider/pom.xml $
|
||||
</description>
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>discovery-modules</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<dependencies>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-api</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>commons-httpclient</groupId>
|
||||
<artifactId>commons-httpclient</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>servlet-api</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.solr</groupId>
|
||||
<artifactId>solr-solrj</artifactId>
|
||||
<version>1.4.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.cocoon</groupId>
|
||||
<artifactId>cocoon-maven-plugin</artifactId>
|
||||
<version>1.0.0-M2</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>prepare</id>
|
||||
<phase>compile</phase>
|
||||
<goals>
|
||||
<goal>prepare</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.mortbay.jetty</groupId>
|
||||
<artifactId>maven-jetty-plugin</artifactId>
|
||||
<version>6.1.7</version>
|
||||
<configuration>
|
||||
<connectors>
|
||||
<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
|
||||
<port>8888</port>
|
||||
<maxIdleTime>30000</maxIdleTime>
|
||||
</connector>
|
||||
</connectors>
|
||||
<webAppSourceDirectory>${project.build.directory}/rcl/webapp</webAppSourceDirectory>
|
||||
<contextPath>/</contextPath>
|
||||
<systemProperties>
|
||||
<systemProperty>
|
||||
<name>org.apache.cocoon.mode</name>
|
||||
<value>dev</value>
|
||||
</systemProperty>
|
||||
</systemProperties>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<!--
|
||||
<plugin>
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
<version>2.1</version>
|
||||
<configuration>
|
||||
<archive>
|
||||
<manifestEntries>
|
||||
<Cocoon-Block-Name>${pom.artifactId}</Cocoon-Block-Name>
|
||||
</manifestEntries>
|
||||
</archive>
|
||||
</configuration>
|
||||
</plugin>
|
||||
-->
|
||||
<plugin>
|
||||
<artifactId>maven-eclipse-plugin</artifactId>
|
||||
<version>2.5</version>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<!--
|
||||
The Subversion repository location is used by Continuum to update
|
||||
against when changes have occured, this spawns a new build cycle
|
||||
and releases snapshots into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/trunk/dspace-discovery/dspace-discovery-provider</connection>
|
||||
<developerConnection>
|
||||
scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-discovery/dspace-discovery-provider
|
||||
</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-discovery/dspace-discovery-provider</url>
|
||||
</scm>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<packaging>jar</packaging>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-discovery-provider</artifactId>
|
||||
<version>1.7.1</version>
|
||||
<name>DSpace Discovery :: Discovery Provider Library</name>
|
||||
<description>
|
||||
|
||||
|
||||
|
||||
Build Information
|
||||
$Id: pom.xml 5367 2010-09-30 00:30:11Z mdiggory $
|
||||
$URL: https://scm.dspace.org/svn/repo/modules/dspace-discovery/trunk/provider/pom.xml $
|
||||
</description>
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>discovery-modules</artifactId>
|
||||
<version>1.7.1</version>
|
||||
</parent>
|
||||
|
||||
<dependencies>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-api</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>commons-httpclient</groupId>
|
||||
<artifactId>commons-httpclient</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>servlet-api</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.solr</groupId>
|
||||
<artifactId>solr-solrj</artifactId>
|
||||
<version>1.4.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.cocoon</groupId>
|
||||
<artifactId>cocoon-maven-plugin</artifactId>
|
||||
<version>1.0.0-M2</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>prepare</id>
|
||||
<phase>compile</phase>
|
||||
<goals>
|
||||
<goal>prepare</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.mortbay.jetty</groupId>
|
||||
<artifactId>maven-jetty-plugin</artifactId>
|
||||
<version>6.1.7</version>
|
||||
<configuration>
|
||||
<connectors>
|
||||
<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
|
||||
<port>8888</port>
|
||||
<maxIdleTime>30000</maxIdleTime>
|
||||
</connector>
|
||||
</connectors>
|
||||
<webAppSourceDirectory>${project.build.directory}/rcl/webapp</webAppSourceDirectory>
|
||||
<contextPath>/</contextPath>
|
||||
<systemProperties>
|
||||
<systemProperty>
|
||||
<name>org.apache.cocoon.mode</name>
|
||||
<value>dev</value>
|
||||
</systemProperty>
|
||||
</systemProperties>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<!--
|
||||
<plugin>
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
<version>2.1</version>
|
||||
<configuration>
|
||||
<archive>
|
||||
<manifestEntries>
|
||||
<Cocoon-Block-Name>${pom.artifactId}</Cocoon-Block-Name>
|
||||
</manifestEntries>
|
||||
</archive>
|
||||
</configuration>
|
||||
</plugin>
|
||||
-->
|
||||
<plugin>
|
||||
<artifactId>maven-eclipse-plugin</artifactId>
|
||||
<version>2.5</version>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<!--
|
||||
The Subversion repository location is used by Continuum to update
|
||||
against when changes have occured, this spawns a new build cycle
|
||||
and releases snapshots into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</connection>
|
||||
<developerConnection>
|
||||
scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1
|
||||
</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</url>
|
||||
</scm>
|
||||
</project>
|
@@ -1,130 +1,130 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<packaging>jar</packaging>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-discovery-xmlui-api</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<name>DSpace Discovery :: Discovery XMLUI API</name>
|
||||
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>discovery-modules</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<dependencies>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-xmlui-api</artifactId>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<artifactId>solr-solrj</artifactId>
|
||||
<groupId>org.apache.solr</groupId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
|
||||
<!-- external -->
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>servlet-api</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-discovery-provider</artifactId>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.cocoon</groupId>
|
||||
<artifactId>cocoon-maven-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>prepare</id>
|
||||
<phase>compile</phase>
|
||||
<goals>
|
||||
<goal>prepare</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<!--
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-war-plugin</artifactId>
|
||||
<configuration>
|
||||
<archiveClasses>false</archiveClasses>
|
||||
<attachClasses>true</attachClasses>
|
||||
<classesClassifier>classes</classesClassifier>
|
||||
<failOnMissingWebXml>false</failOnMissingWebXml>
|
||||
<packagingExcludes>WEB-INF/lib/*.jar</packagingExcludes>
|
||||
<warSourceExcludes>WEB-INF/lib/*.jar</warSourceExcludes>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>prepare-package</phase>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
-->
|
||||
<plugin>
|
||||
<groupId>org.mortbay.jetty</groupId>
|
||||
<artifactId>maven-jetty-plugin</artifactId>
|
||||
<version>6.1.7</version>
|
||||
<configuration>
|
||||
<connectors>
|
||||
<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
|
||||
<port>8888</port>
|
||||
<maxIdleTime>30000</maxIdleTime>
|
||||
</connector>
|
||||
</connectors>
|
||||
<webAppSourceDirectory>${project.build.directory}/rcl/webapp</webAppSourceDirectory>
|
||||
<contextPath>/</contextPath>
|
||||
<systemProperties>
|
||||
<systemProperty>
|
||||
<name>org.apache.cocoon.mode</name>
|
||||
<value>dev</value>
|
||||
</systemProperty>
|
||||
</systemProperties>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<!--
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
<configuration>
|
||||
<archive>
|
||||
<index>true</index>
|
||||
<manifestEntries>
|
||||
<Cocoon-Block-Name>discovery-xmlui-block</Cocoon-Block-Name>
|
||||
</manifestEntries>
|
||||
</archive>
|
||||
</configuration>
|
||||
</plugin>
|
||||
-->
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<!--
|
||||
The Subversion repository location is used by Continuum to update
|
||||
against when changes have occured, this spawns a new build cycle
|
||||
and releases snapshots into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/trunk/dspace-discovery/dspace-discovery-xmlui-api</connection>
|
||||
<developerConnection>
|
||||
scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-discovery/dspace-discovery-xmlui-api
|
||||
</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-discovery/dspace-discovery-xmlui-api</url>
|
||||
</scm>
|
||||
|
||||
</project>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<packaging>jar</packaging>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-discovery-xmlui-api</artifactId>
|
||||
<version>1.7.1</version>
|
||||
<name>DSpace Discovery :: Discovery XMLUI API</name>
|
||||
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>discovery-modules</artifactId>
|
||||
<version>1.7.1</version>
|
||||
</parent>
|
||||
|
||||
<dependencies>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-xmlui-api</artifactId>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<artifactId>solr-solrj</artifactId>
|
||||
<groupId>org.apache.solr</groupId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
|
||||
<!-- external -->
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>servlet-api</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-discovery-provider</artifactId>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.cocoon</groupId>
|
||||
<artifactId>cocoon-maven-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>prepare</id>
|
||||
<phase>compile</phase>
|
||||
<goals>
|
||||
<goal>prepare</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<!--
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-war-plugin</artifactId>
|
||||
<configuration>
|
||||
<archiveClasses>false</archiveClasses>
|
||||
<attachClasses>true</attachClasses>
|
||||
<classesClassifier>classes</classesClassifier>
|
||||
<failOnMissingWebXml>false</failOnMissingWebXml>
|
||||
<packagingExcludes>WEB-INF/lib/*.jar</packagingExcludes>
|
||||
<warSourceExcludes>WEB-INF/lib/*.jar</warSourceExcludes>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>prepare-package</phase>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
-->
|
||||
<plugin>
|
||||
<groupId>org.mortbay.jetty</groupId>
|
||||
<artifactId>maven-jetty-plugin</artifactId>
|
||||
<version>6.1.7</version>
|
||||
<configuration>
|
||||
<connectors>
|
||||
<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
|
||||
<port>8888</port>
|
||||
<maxIdleTime>30000</maxIdleTime>
|
||||
</connector>
|
||||
</connectors>
|
||||
<webAppSourceDirectory>${project.build.directory}/rcl/webapp</webAppSourceDirectory>
|
||||
<contextPath>/</contextPath>
|
||||
<systemProperties>
|
||||
<systemProperty>
|
||||
<name>org.apache.cocoon.mode</name>
|
||||
<value>dev</value>
|
||||
</systemProperty>
|
||||
</systemProperties>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<!--
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
<configuration>
|
||||
<archive>
|
||||
<index>true</index>
|
||||
<manifestEntries>
|
||||
<Cocoon-Block-Name>discovery-xmlui-block</Cocoon-Block-Name>
|
||||
</manifestEntries>
|
||||
</archive>
|
||||
</configuration>
|
||||
</plugin>
|
||||
-->
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<!--
|
||||
The Subversion repository location is used by Continuum to update
|
||||
against when changes have occured, this spawns a new build cycle
|
||||
and releases snapshots into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</connection>
|
||||
<developerConnection>
|
||||
scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1
|
||||
</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</url>
|
||||
</scm>
|
||||
|
||||
</project>
|
||||
|
@@ -132,9 +132,9 @@ public class RelatedItems extends AbstractFiltersTransformer
|
||||
|
||||
this.queryArgs = prepareDefaultFilters(getView());
|
||||
this.queryArgs.setRows(1);
|
||||
this.queryArgs.add("fl","author,handle");
|
||||
this.queryArgs.add("fl","dc.contributor,dc.contributor.author,handle");
|
||||
this.queryArgs.add("mlt","true");
|
||||
this.queryArgs.add("mlt.fl","author,handle");
|
||||
this.queryArgs.add("mlt.fl","dc.contributor,dc.contributor.author,handle");
|
||||
this.queryArgs.add("mlt.mindf","1");
|
||||
this.queryArgs.add("mlt.mintf","1");
|
||||
this.queryArgs.setQuery("handle:" + dso.getHandle());
|
||||
|
@@ -97,7 +97,7 @@ public class SimpleSearch extends AbstractSearch implements CacheableProcessingC
|
||||
// String searchUrl = SearchUtils.getConfig().getString("solr.search.server");
|
||||
// if(searchUrl != null && !searchUrl.endsWith("/"))
|
||||
// searchUrl += "/";
|
||||
String searchUrl = ConfigurationManager.getProperty("dspace.url") + "/JSON/discovery/searchSolr";
|
||||
String searchUrl = contextPath + "/JSON/discovery/searchSolr";
|
||||
|
||||
search.addHidden("solr-search-url").setValue(searchUrl);
|
||||
search.addHidden("contextpath").setValue(contextPath);
|
||||
|
@@ -1,155 +1,155 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to you under the Apache License, Version
|
||||
2.0 (the "License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||
applicable law or agreed to in writing, software distributed under the
|
||||
License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
|
||||
CONDITIONS OF ANY KIND, either express or implied. See the License for
|
||||
the specific language governing permissions and limitations under the
|
||||
License.
|
||||
-->
|
||||
<!-- $Id: pom.xml 4739 2010-02-04 16:53:55Z benbosman $ -->
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<packaging>war</packaging>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-discovery-xmlui-webapp</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<name>DSpace Discovery :: Discovery XMLUI Webapp</name>
|
||||
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>discovery-modules</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<dependencies>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-xmlui-api</artifactId>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<artifactId>solr-solrj</artifactId>
|
||||
<groupId>org.apache.solr</groupId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-discovery-xmlui-api</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<!-- external -->
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>servlet-api</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
|
||||
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.cocoon</groupId>
|
||||
<artifactId>cocoon-maven-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>prepare</id>
|
||||
<phase>compile</phase>
|
||||
<goals>
|
||||
<goal>prepare</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-war-plugin</artifactId>
|
||||
<configuration>
|
||||
<archiveClasses>false</archiveClasses>
|
||||
<attachClasses>true</attachClasses>
|
||||
<classesClassifier>classes</classesClassifier>
|
||||
<failOnMissingWebXml>false</failOnMissingWebXml>
|
||||
<packagingExcludes>WEB-INF/lib/*.jar</packagingExcludes>
|
||||
<warSourceExcludes>WEB-INF/lib/*.jar</warSourceExcludes>
|
||||
<webResources>
|
||||
<resource>
|
||||
<filtering>true</filtering>
|
||||
<directory>${basedir}/src/main/webapp</directory>
|
||||
<includes>
|
||||
<include>WEB-INF/web.xml</include>
|
||||
</includes>
|
||||
</resource>
|
||||
</webResources>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>prepare-package</phase>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.mortbay.jetty</groupId>
|
||||
<artifactId>maven-jetty-plugin</artifactId>
|
||||
<version>6.1.7</version>
|
||||
<configuration>
|
||||
<connectors>
|
||||
<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
|
||||
<port>8888</port>
|
||||
<maxIdleTime>30000</maxIdleTime>
|
||||
</connector>
|
||||
</connectors>
|
||||
<webAppSourceDirectory>${project.build.directory}/rcl/webapp</webAppSourceDirectory>
|
||||
<contextPath>/</contextPath>
|
||||
<systemProperties>
|
||||
<systemProperty>
|
||||
<name>org.apache.cocoon.mode</name>
|
||||
<value>dev</value>
|
||||
</systemProperty>
|
||||
</systemProperties>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<!--
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
<configuration>
|
||||
<archive>
|
||||
<index>true</index>
|
||||
<manifestEntries>
|
||||
<Cocoon-Block-Name>discovery-xmlui-block</Cocoon-Block-Name>
|
||||
</manifestEntries>
|
||||
</archive>
|
||||
</configuration>
|
||||
</plugin>
|
||||
-->
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<!--
|
||||
The Subversion repository location is used by Continuum to update
|
||||
against when changes have occured, this spawns a new build cycle
|
||||
and releases snapshots into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/trunk/dspace-discovery/dspace-discovery-xmlui-webapp</connection>
|
||||
<developerConnection>
|
||||
scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-discovery/dspace-discovery-xmlui-webapp
|
||||
</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-discovery/dspace-discovery-xmlui-webapp</url>
|
||||
</scm>
|
||||
|
||||
</project>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to you under the Apache License, Version
|
||||
2.0 (the "License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0 Unless required by
|
||||
applicable law or agreed to in writing, software distributed under the
|
||||
License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
|
||||
CONDITIONS OF ANY KIND, either express or implied. See the License for
|
||||
the specific language governing permissions and limitations under the
|
||||
License.
|
||||
-->
|
||||
<!-- $Id: pom.xml 4739 2010-02-04 16:53:55Z benbosman $ -->
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<packaging>war</packaging>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-discovery-xmlui-webapp</artifactId>
|
||||
<version>1.7.1</version>
|
||||
<name>DSpace Discovery :: Discovery XMLUI Webapp</name>
|
||||
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>discovery-modules</artifactId>
|
||||
<version>1.7.1</version>
|
||||
</parent>
|
||||
|
||||
<dependencies>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-xmlui-api</artifactId>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<artifactId>solr-solrj</artifactId>
|
||||
<groupId>org.apache.solr</groupId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-discovery-xmlui-api</artifactId>
|
||||
<version>1.7.1</version>
|
||||
</dependency>
|
||||
|
||||
<!-- external -->
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>servlet-api</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
|
||||
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.cocoon</groupId>
|
||||
<artifactId>cocoon-maven-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>prepare</id>
|
||||
<phase>compile</phase>
|
||||
<goals>
|
||||
<goal>prepare</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-war-plugin</artifactId>
|
||||
<configuration>
|
||||
<archiveClasses>false</archiveClasses>
|
||||
<attachClasses>true</attachClasses>
|
||||
<classesClassifier>classes</classesClassifier>
|
||||
<failOnMissingWebXml>false</failOnMissingWebXml>
|
||||
<packagingExcludes>WEB-INF/lib/*.jar</packagingExcludes>
|
||||
<warSourceExcludes>WEB-INF/lib/*.jar</warSourceExcludes>
|
||||
<webResources>
|
||||
<resource>
|
||||
<filtering>true</filtering>
|
||||
<directory>${basedir}/src/main/webapp</directory>
|
||||
<includes>
|
||||
<include>WEB-INF/web.xml</include>
|
||||
</includes>
|
||||
</resource>
|
||||
</webResources>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>prepare-package</phase>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.mortbay.jetty</groupId>
|
||||
<artifactId>maven-jetty-plugin</artifactId>
|
||||
<version>6.1.7</version>
|
||||
<configuration>
|
||||
<connectors>
|
||||
<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
|
||||
<port>8888</port>
|
||||
<maxIdleTime>30000</maxIdleTime>
|
||||
</connector>
|
||||
</connectors>
|
||||
<webAppSourceDirectory>${project.build.directory}/rcl/webapp</webAppSourceDirectory>
|
||||
<contextPath>/</contextPath>
|
||||
<systemProperties>
|
||||
<systemProperty>
|
||||
<name>org.apache.cocoon.mode</name>
|
||||
<value>dev</value>
|
||||
</systemProperty>
|
||||
</systemProperties>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<!--
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
<configuration>
|
||||
<archive>
|
||||
<index>true</index>
|
||||
<manifestEntries>
|
||||
<Cocoon-Block-Name>discovery-xmlui-block</Cocoon-Block-Name>
|
||||
</manifestEntries>
|
||||
</archive>
|
||||
</configuration>
|
||||
</plugin>
|
||||
-->
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<!--
|
||||
The Subversion repository location is used by Continuum to update
|
||||
against when changes have occured, this spawns a new build cycle
|
||||
and releases snapshots into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</connection>
|
||||
<developerConnection>
|
||||
scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1
|
||||
</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</url>
|
||||
</scm>
|
||||
|
||||
</project>
|
||||
|
@@ -1,67 +1,67 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<packaging>pom</packaging>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>discovery-modules</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<name>DSpace Discovery :: Modules</name>
|
||||
|
||||
<parent>
|
||||
<artifactId>dspace-parent</artifactId>
|
||||
<groupId>org.dspace</groupId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<modules>
|
||||
<module>dspace-discovery-provider</module>
|
||||
<module>dspace-discovery-xmlui-api</module>
|
||||
<module>dspace-discovery-xmlui-webapp</module>
|
||||
</modules>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.mortbay.jetty</groupId>
|
||||
<artifactId>maven-jetty-plugin</artifactId>
|
||||
<version>6.1.7</version>
|
||||
<configuration>
|
||||
<connectors>
|
||||
<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
|
||||
<port>8888</port>
|
||||
<maxIdleTime>30000</maxIdleTime>
|
||||
</connector>
|
||||
</connectors>
|
||||
<webAppSourceDirectory>${project.build.directory}/rcl/webapp</webAppSourceDirectory>
|
||||
<contextPath>/</contextPath>
|
||||
<systemProperties>
|
||||
<systemProperty>
|
||||
<name>org.apache.cocoon.mode</name>
|
||||
<value>dev</value>
|
||||
</systemProperty>
|
||||
</systemProperties>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<!--
|
||||
The Subversion repository location is used by Continuum to update
|
||||
against when changes have occured, this spawns a new build cycle
|
||||
and releases snapshots into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/trunk/dspace-discovery</connection>
|
||||
<developerConnection>
|
||||
scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-discovery
|
||||
</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-discovery</url>
|
||||
</scm>
|
||||
|
||||
<issueManagement>
|
||||
<system>JIRA</system>
|
||||
<url>http://jira.dspace.org/jira/browse/DISCOVERY</url>
|
||||
</issueManagement>
|
||||
|
||||
</project>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<packaging>pom</packaging>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>discovery-modules</artifactId>
|
||||
<version>1.7.1</version>
|
||||
<name>DSpace Discovery :: Modules</name>
|
||||
|
||||
<parent>
|
||||
<artifactId>dspace-parent</artifactId>
|
||||
<groupId>org.dspace</groupId>
|
||||
<version>1.7.1</version>
|
||||
</parent>
|
||||
|
||||
<modules>
|
||||
<module>dspace-discovery-provider</module>
|
||||
<module>dspace-discovery-xmlui-api</module>
|
||||
<module>dspace-discovery-xmlui-webapp</module>
|
||||
</modules>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.mortbay.jetty</groupId>
|
||||
<artifactId>maven-jetty-plugin</artifactId>
|
||||
<version>6.1.7</version>
|
||||
<configuration>
|
||||
<connectors>
|
||||
<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
|
||||
<port>8888</port>
|
||||
<maxIdleTime>30000</maxIdleTime>
|
||||
</connector>
|
||||
</connectors>
|
||||
<webAppSourceDirectory>${project.build.directory}/rcl/webapp</webAppSourceDirectory>
|
||||
<contextPath>/</contextPath>
|
||||
<systemProperties>
|
||||
<systemProperty>
|
||||
<name>org.apache.cocoon.mode</name>
|
||||
<value>dev</value>
|
||||
</systemProperty>
|
||||
</systemProperties>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<!--
|
||||
The Subversion repository location is used by Continuum to update
|
||||
against when changes have occured, this spawns a new build cycle
|
||||
and releases snapshots into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</connection>
|
||||
<developerConnection>
|
||||
scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1
|
||||
</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</url>
|
||||
</scm>
|
||||
|
||||
<issueManagement>
|
||||
<system>JIRA</system>
|
||||
<url>http://jira.dspace.org/jira/browse/DISCOVERY</url>
|
||||
</issueManagement>
|
||||
|
||||
</project>
|
||||
|
@@ -14,7 +14,7 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-jspui</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
</parent>
|
||||
|
||||
<!--
|
||||
@@ -23,9 +23,9 @@
|
||||
into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/trunk/dspace-jspui/dspace-jspui-api</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-jspui/dspace-jspui-api</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-jspui/dspace-jspui-api</url>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</url>
|
||||
</scm>
|
||||
|
||||
<dependencies>
|
||||
|
@@ -75,31 +75,15 @@ public class DisplayStatisticsServlet extends DSpaceServlet
|
||||
SQLException, AuthorizeException
|
||||
{
|
||||
|
||||
DSpaceObject dso = null;
|
||||
|
||||
String handle = request.getParameter("handle");
|
||||
DSpaceObject dso = HandleManager.resolveToObject(context, handle);
|
||||
|
||||
if("".equals(handle) || handle == null)
|
||||
{
|
||||
// We didn't get passed a handle parameter.
|
||||
// That means we're looking at /handle/*/*/statistics
|
||||
// with handle injected as attribute from HandleServlet
|
||||
handle = (String) request.getAttribute("handle");
|
||||
|
||||
}
|
||||
|
||||
if(handle != null)
|
||||
{
|
||||
dso = HandleManager.resolveToObject(context, handle);
|
||||
}
|
||||
|
||||
if(dso == null)
|
||||
{
|
||||
response.setStatus(HttpServletResponse.SC_NOT_FOUND);
|
||||
JSPManager.showJSP(request, response, "/error/404.jsp");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if(dso == null) {
|
||||
response.setStatus(HttpServletResponse.SC_NOT_FOUND);
|
||||
JSPManager.showJSP(request, response, "/error/404.jsp");
|
||||
return;
|
||||
}
|
||||
|
||||
boolean isItem = false;
|
||||
|
||||
@@ -197,6 +181,7 @@ public class DisplayStatisticsServlet extends DSpaceServlet
|
||||
if(dso instanceof org.dspace.content.Item)
|
||||
{
|
||||
isItem = true;
|
||||
|
||||
try
|
||||
{
|
||||
|
||||
|
@@ -13,7 +13,6 @@ import java.net.URLEncoder;
|
||||
import java.sql.SQLException;
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.RequestDispatcher;
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
@@ -67,7 +66,7 @@ import org.jdom.output.XMLOutputter;
|
||||
public class HandleServlet extends DSpaceServlet
|
||||
{
|
||||
/** log4j category */
|
||||
private static Logger log = Logger.getLogger(HandleServlet.class);
|
||||
private static Logger log = Logger.getLogger(DSpaceServlet.class);
|
||||
|
||||
/** For obtaining <meta> elements to put in the <head> */
|
||||
private DisseminationCrosswalk xHTMLHeadCrosswalk;
|
||||
@@ -135,56 +134,34 @@ public class HandleServlet extends DSpaceServlet
|
||||
return;
|
||||
}
|
||||
|
||||
if("/statistics".equals(extraPathInfo))
|
||||
{
|
||||
// Check configuration properties, auth, etc.
|
||||
// Inject handle attribute
|
||||
log.info(LogManager.getHeader(context, "display_statistics", "handle=" + handle + ", path=" + extraPathInfo));
|
||||
request.setAttribute("handle", handle);
|
||||
|
||||
// Forward to DisplayStatisticsServlet without changing path.
|
||||
RequestDispatcher dispatch = getServletContext().getNamedDispatcher("displaystats");
|
||||
dispatch.forward(request, response);
|
||||
|
||||
// If we don't return here, we keep processing and end up
|
||||
// throwing a NPE when checking community authorization
|
||||
// and firing a usage event for the DSO we're reporting for
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
// OK, we have a valid Handle. What is it?
|
||||
if (dso.getType() == Constants.ITEM)
|
||||
{
|
||||
// do we actually want to display the item, or forward to another page?
|
||||
if ((extraPathInfo == null) || (extraPathInfo.equals("/")))
|
||||
Item item = (Item) dso;
|
||||
|
||||
new DSpace().getEventService().fireEvent(
|
||||
new UsageEvent(
|
||||
UsageEvent.Action.VIEW,
|
||||
request,
|
||||
context,
|
||||
dso));
|
||||
|
||||
// Only use last-modified if this is an anonymous access
|
||||
// - caching content that may be generated under authorisation
|
||||
// is a security problem
|
||||
if (context.getCurrentUser() == null)
|
||||
{
|
||||
Item item = (Item) dso;
|
||||
response.setDateHeader("Last-Modified", item
|
||||
.getLastModified().getTime());
|
||||
|
||||
// Only use last-modified if this is an anonymous access
|
||||
// - caching content that may be generated under authorisation
|
||||
// is a security problem
|
||||
// Check for if-modified-since header
|
||||
long modSince = request.getDateHeader("If-Modified-Since");
|
||||
|
||||
if (context.getCurrentUser() == null)
|
||||
if (modSince != -1 && item.getLastModified().getTime() < modSince)
|
||||
{
|
||||
response.setDateHeader("Last-Modified", item
|
||||
.getLastModified().getTime());
|
||||
|
||||
// Check for if-modified-since header
|
||||
|
||||
long modSince = request.getDateHeader("If-Modified-Since");
|
||||
|
||||
if (modSince != -1 && item.getLastModified().getTime() < modSince)
|
||||
{
|
||||
// Item has not been modified since requested date,
|
||||
// hence bitstream has not; return 304
|
||||
response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Display the item page
|
||||
displayItem(context, request, response, item, handle);
|
||||
}
|
||||
// Item has not been modified since requested date,
|
||||
// hence bitstream has not; return 304
|
||||
response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -194,16 +171,25 @@ public class HandleServlet extends DSpaceServlet
|
||||
}
|
||||
else
|
||||
{
|
||||
// Forward to another servlet
|
||||
request.getRequestDispatcher(extraPathInfo).forward(request,
|
||||
response);
|
||||
// Display the item page
|
||||
displayItem(context, request, response, item, handle);
|
||||
}
|
||||
|
||||
}
|
||||
else if (dso.getType() == Constants.COLLECTION)
|
||||
{
|
||||
Collection c = (Collection) dso;
|
||||
|
||||
new DSpace().getEventService().fireEvent(
|
||||
new UsageEvent(
|
||||
UsageEvent.Action.VIEW,
|
||||
request,
|
||||
context,
|
||||
dso));
|
||||
|
||||
//UsageEvent ue = new UsageEvent();
|
||||
//ue.fire(request, context, AbstractUsageEvent.VIEW,
|
||||
// Constants.COLLECTION, dso.getID());
|
||||
|
||||
// Store collection location in request
|
||||
request.setAttribute("dspace.collection", c);
|
||||
|
||||
@@ -239,6 +225,17 @@ public class HandleServlet extends DSpaceServlet
|
||||
{
|
||||
Community c = (Community) dso;
|
||||
|
||||
new DSpace().getEventService().fireEvent(
|
||||
new UsageEvent(
|
||||
UsageEvent.Action.VIEW,
|
||||
request,
|
||||
context,
|
||||
dso));
|
||||
|
||||
//UsageEvent ue = new UsageEvent();
|
||||
//ue.fire(request, context, AbstractUsageEvent.VIEW,
|
||||
// Constants.COMMUNITY, dso.getID());
|
||||
|
||||
// Store collection location in request
|
||||
request.setAttribute("dspace.community", c);
|
||||
|
||||
@@ -398,15 +395,7 @@ public class HandleServlet extends DSpaceServlet
|
||||
suggestEnable = (context.getCurrentUser() == null ? false : true);
|
||||
}
|
||||
}
|
||||
|
||||
// Fire usage event.
|
||||
new DSpace().getEventService().fireEvent(
|
||||
new UsageEvent(
|
||||
UsageEvent.Action.VIEW,
|
||||
request,
|
||||
context,
|
||||
item));
|
||||
|
||||
|
||||
// Set attributes and display
|
||||
request.setAttribute("suggest.enable", Boolean.valueOf(suggestEnable));
|
||||
request.setAttribute("display.all", Boolean.valueOf(displayAll));
|
||||
@@ -471,14 +460,6 @@ public class HandleServlet extends DSpaceServlet
|
||||
request.setAttribute("remove_button", Boolean.TRUE);
|
||||
}
|
||||
|
||||
// Fire usage event.
|
||||
new DSpace().getEventService().fireEvent(
|
||||
new UsageEvent(
|
||||
UsageEvent.Action.VIEW,
|
||||
request,
|
||||
context,
|
||||
community));
|
||||
|
||||
// Forward to community home page
|
||||
request.setAttribute("community", community);
|
||||
request.setAttribute("collections", collections);
|
||||
@@ -612,14 +593,6 @@ public class HandleServlet extends DSpaceServlet
|
||||
}
|
||||
}
|
||||
|
||||
// Fire usage event.
|
||||
new DSpace().getEventService().fireEvent(
|
||||
new UsageEvent(
|
||||
UsageEvent.Action.VIEW,
|
||||
request,
|
||||
context,
|
||||
collection));
|
||||
|
||||
// Forward to collection home page
|
||||
request.setAttribute("collection", collection);
|
||||
request.setAttribute("community", community);
|
||||
|
@@ -194,4 +194,4 @@ public class FileUploadRequest extends HttpServletRequestWrapper
|
||||
}
|
||||
return filename;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -14,7 +14,7 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-jspui</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
</parent>
|
||||
|
||||
<!--
|
||||
@@ -23,9 +23,9 @@
|
||||
into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/trunk/dspace-jspui/dspace-jspui-webapp</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-jspui/dspace-jspui-webapp</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-jspui/dspace-jspui-webapp</url>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</url>
|
||||
</scm>
|
||||
|
||||
<build>
|
||||
|
@@ -211,7 +211,10 @@
|
||||
</tr>
|
||||
</table>
|
||||
<div align="center">
|
||||
<a class="statisticsLink" href="<%= request.getContextPath() %>/handle/<%= collection.getHandle() %>/statistics"><fmt:message key="jsp.collection-home.display-statistics"/></a>
|
||||
<form method="get" action="<%= request.getContextPath() %>/displaystats">
|
||||
<input type="hidden" name="handle" value="<%= collection.getHandle() %>"/>
|
||||
<input type="submit" name="submit_simple" value="<fmt:message key="jsp.collection-home.display-statistics"/>" />
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<%= intro %>
|
||||
|
@@ -407,7 +407,10 @@
|
||||
</dspace:sidebar>
|
||||
|
||||
<div align="center">
|
||||
<a class="statisticsLink" href="<%= request.getContextPath() %>/handle/<%= community.getHandle() %>/statistics"><fmt:message key="jsp.community-home.display-statistics"/></a>
|
||||
<form method="get" action="<%= request.getContextPath() %>/displaystats">
|
||||
<input type="hidden" name="handle" value="<%= community.getHandle() %>"/>
|
||||
<input type="submit" name="submit_simple" value="<fmt:message key="jsp.community-home.display-statistics"/>" />
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
|
@@ -201,7 +201,10 @@
|
||||
%>
|
||||
|
||||
<div align="center">
|
||||
<a class="statisticsLink" href="<%= request.getContextPath() %>/handle/<%= handle %>/statistics"><fmt:message key="jsp.display-item.display-statistics"/></a>
|
||||
<form method="get" action="<%= request.getContextPath() %>/displaystats">
|
||||
<input type="hidden" name="handle" value="<%= handle %>"/>
|
||||
<input type="submit" name="submit_simple" value="<fmt:message key="jsp.display-item.display-statistics"/>" />
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<%
|
||||
|
@@ -14,7 +14,7 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-parent</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
</parent>
|
||||
|
||||
<!--
|
||||
@@ -23,9 +23,9 @@
|
||||
into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/trunk/dspace-jspui</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-jspui</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-jspui</url>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</url>
|
||||
</scm>
|
||||
|
||||
<modules>
|
||||
|
@@ -12,13 +12,13 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-lni</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
</parent>
|
||||
|
||||
<scm>
|
||||
<connection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-lni/dspace-lni-client</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-lni/dspace-lni-client</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-lni/dspace-lni-client</url>
|
||||
<connection>scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</url>
|
||||
</scm>
|
||||
|
||||
<profiles>
|
||||
|
@@ -10,13 +10,13 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-lni</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
</parent>
|
||||
|
||||
<scm>
|
||||
<connection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-lni/dspace-lni-core</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-lni/dspace-lni-core</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-lni/dspace-lni-core</url>
|
||||
<connection>scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</url>
|
||||
</scm>
|
||||
|
||||
<dependencies>
|
||||
|
@@ -12,13 +12,13 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-lni</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
</parent>
|
||||
|
||||
<scm>
|
||||
<connection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-lni/dspace-lni-webapp</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-lni/dspace-lni-webapp</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-lni/dspace-lni-webapp</url>
|
||||
<connection>scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</url>
|
||||
</scm>
|
||||
|
||||
<build>
|
||||
|
@@ -12,7 +12,7 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-parent</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
</parent>
|
||||
|
||||
<!--
|
||||
@@ -21,9 +21,9 @@
|
||||
into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/trunk/dspace-lni</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-lni</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-lni</url>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</url>
|
||||
</scm>
|
||||
|
||||
<modules>
|
||||
|
@@ -14,7 +14,7 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-oai</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
</parent>
|
||||
|
||||
<!--
|
||||
@@ -23,9 +23,9 @@
|
||||
into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/trunk/dspace-oai/dspace-oai-api</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-oai/dspace-oai-api</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-oai/dspace-oai-api</url>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</url>
|
||||
</scm>
|
||||
|
||||
<dependencies>
|
||||
|
@@ -14,7 +14,7 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-oai</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
</parent>
|
||||
|
||||
<!--
|
||||
@@ -23,9 +23,9 @@
|
||||
into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/trunk/dspace-oai/dspace-oai-webapp</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-oai/dspace-oai-webapp</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-oai/dspace-oai-webapp</url>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</url>
|
||||
</scm>
|
||||
|
||||
<build>
|
||||
|
@@ -14,7 +14,7 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-parent</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
</parent>
|
||||
|
||||
<!--
|
||||
@@ -23,9 +23,9 @@
|
||||
into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/trunk/dspace-oai</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-oai</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-oai</url>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</url>
|
||||
</scm>
|
||||
|
||||
<modules>
|
||||
|
@@ -1,135 +1,135 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
|
||||
<parent>
|
||||
<artifactId>dspace-parent</artifactId>
|
||||
<groupId>org.dspace</groupId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-stats</artifactId>
|
||||
<name>DSpace Solr Statistics Logging Client Library</name>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<description>Library of Shared UsageEvent and EventConsumer Tools for Logging to Solr.</description>
|
||||
|
||||
<!--
|
||||
The Subversion repository location is used by Continuum to update
|
||||
against when changes have occured, this spawns a new build cycle and
|
||||
releases snapshots into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/trunk/dspace-stats</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-stats</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-stats</url>
|
||||
</scm>
|
||||
|
||||
<developers>
|
||||
<developer>
|
||||
<name>Ben Bosman</name>
|
||||
<email>ben at atmire.com</email>
|
||||
<url>http://www.atmire.com</url>
|
||||
<organization>@MIRE</organization>
|
||||
<organizationUrl>http://www.atmire.com</organizationUrl>
|
||||
<timezone>+1</timezone>
|
||||
</developer>
|
||||
<developer>
|
||||
<name>Mark Diggory</name>
|
||||
<email>mdiggory at atmire.com</email>
|
||||
<url>http://www.atmire.com</url>
|
||||
<organization>@MIRE</organization>
|
||||
<organizationUrl>http://www.atmire.com</organizationUrl>
|
||||
<timezone>-5</timezone>
|
||||
</developer>
|
||||
<developer>
|
||||
<name>Lieven Droogmans</name>
|
||||
<email>lieven at atmire.com</email>
|
||||
<url>http://www.atmire.com</url>
|
||||
<organization>@MIRE</organization>
|
||||
<organizationUrl>http://www.atmire.com</organizationUrl>
|
||||
<timezone>+1</timezone>
|
||||
</developer>
|
||||
<developer>
|
||||
<name>Art Lowel</name>
|
||||
<email>art at atmire.com</email>
|
||||
<url>http://www.atmire.com</url>
|
||||
<organization>@MIRE</organization>
|
||||
<organizationUrl>http://www.atmire.com</organizationUrl>
|
||||
<timezone>+1</timezone>
|
||||
</developer>
|
||||
<developer>
|
||||
<name>Kevin Van de velde</name>
|
||||
<email>kevin at atmire.com</email>
|
||||
<url>http://www.atmire.com</url>
|
||||
<organization>@MIRE</organization>
|
||||
<organizationUrl>http://www.atmire.com</organizationUrl>
|
||||
<timezone>+1</timezone>
|
||||
</developer>
|
||||
</developers>
|
||||
|
||||
<contributors />
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-services-api</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-api</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.solr</groupId>
|
||||
<artifactId>solr-solrj</artifactId>
|
||||
<version>1.4.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.dspace.dependencies</groupId>
|
||||
<artifactId>dspace-geoip</artifactId>
|
||||
<version>1.2.3</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.ant</groupId>
|
||||
<artifactId>ant</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.dspace.dnsjava</groupId>
|
||||
<artifactId>dnsjava</artifactId>
|
||||
<version>2.0.6</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>servlet-api</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.ostermiller</groupId>
|
||||
<artifactId>utils</artifactId>
|
||||
<version>1.07.00</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<reporting>
|
||||
<excludeDefaults>false</excludeDefaults>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-javadoc-plugin</artifactId>
|
||||
<configuration>
|
||||
|
||||
<minmemory>128m</minmemory>
|
||||
<maxmemory>1g</maxmemory>
|
||||
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-jxr-plugin</artifactId>
|
||||
<configuration>
|
||||
<aggregate>true</aggregate>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-site-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</reporting>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
|
||||
<parent>
|
||||
<artifactId>dspace-parent</artifactId>
|
||||
<groupId>org.dspace</groupId>
|
||||
<version>1.7.1</version>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-stats</artifactId>
|
||||
<name>DSpace Solr Statistics Logging Client Library</name>
|
||||
<version>1.7.1</version>
|
||||
<description>Library of Shared UsageEvent and EventConsumer Tools for Logging to Solr.</description>
|
||||
|
||||
<!--
|
||||
The Subversion repository location is used by Continuum to update
|
||||
against when changes have occured, this spawns a new build cycle and
|
||||
releases snapshots into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</url>
|
||||
</scm>
|
||||
|
||||
<developers>
|
||||
<developer>
|
||||
<name>Ben Bosman</name>
|
||||
<email>ben at atmire.com</email>
|
||||
<url>http://www.atmire.com</url>
|
||||
<organization>@MIRE</organization>
|
||||
<organizationUrl>http://www.atmire.com</organizationUrl>
|
||||
<timezone>+1</timezone>
|
||||
</developer>
|
||||
<developer>
|
||||
<name>Mark Diggory</name>
|
||||
<email>mdiggory at atmire.com</email>
|
||||
<url>http://www.atmire.com</url>
|
||||
<organization>@MIRE</organization>
|
||||
<organizationUrl>http://www.atmire.com</organizationUrl>
|
||||
<timezone>-5</timezone>
|
||||
</developer>
|
||||
<developer>
|
||||
<name>Lieven Droogmans</name>
|
||||
<email>lieven at atmire.com</email>
|
||||
<url>http://www.atmire.com</url>
|
||||
<organization>@MIRE</organization>
|
||||
<organizationUrl>http://www.atmire.com</organizationUrl>
|
||||
<timezone>+1</timezone>
|
||||
</developer>
|
||||
<developer>
|
||||
<name>Art Lowel</name>
|
||||
<email>art at atmire.com</email>
|
||||
<url>http://www.atmire.com</url>
|
||||
<organization>@MIRE</organization>
|
||||
<organizationUrl>http://www.atmire.com</organizationUrl>
|
||||
<timezone>+1</timezone>
|
||||
</developer>
|
||||
<developer>
|
||||
<name>Kevin Van de velde</name>
|
||||
<email>kevin at atmire.com</email>
|
||||
<url>http://www.atmire.com</url>
|
||||
<organization>@MIRE</organization>
|
||||
<organizationUrl>http://www.atmire.com</organizationUrl>
|
||||
<timezone>+1</timezone>
|
||||
</developer>
|
||||
</developers>
|
||||
|
||||
<contributors />
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-services-api</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-api</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.solr</groupId>
|
||||
<artifactId>solr-solrj</artifactId>
|
||||
<version>1.4.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.dspace.dependencies</groupId>
|
||||
<artifactId>dspace-geoip</artifactId>
|
||||
<version>1.2.3</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.ant</groupId>
|
||||
<artifactId>ant</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.dspace.dnsjava</groupId>
|
||||
<artifactId>dnsjava</artifactId>
|
||||
<version>2.0.6</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>servlet-api</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.ostermiller</groupId>
|
||||
<artifactId>utils</artifactId>
|
||||
<version>1.07.00</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<reporting>
|
||||
<excludeDefaults>false</excludeDefaults>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-javadoc-plugin</artifactId>
|
||||
<configuration>
|
||||
|
||||
<minmemory>128m</minmemory>
|
||||
<maxmemory>1g</maxmemory>
|
||||
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-jxr-plugin</artifactId>
|
||||
<configuration>
|
||||
<aggregate>true</aggregate>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-site-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</reporting>
|
||||
</project>
|
@@ -16,7 +16,7 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-sword</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
</parent>
|
||||
|
||||
|
||||
@@ -26,10 +26,10 @@
|
||||
into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/trunk/dspace-sword/dspace-sword-api</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-sword/dspace-sword-api
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1
|
||||
</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-sword/dspace-sword-api</url>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</url>
|
||||
</scm>
|
||||
|
||||
<dependencies>
|
||||
|
@@ -78,10 +78,6 @@ public class SWORDMETSIngester implements SWORDIngester
|
||||
PackageParameters params = new PackageParameters();
|
||||
// Force package ingester to respect Collection workflows
|
||||
params.setWorkflowEnabled(true);
|
||||
|
||||
// Should restore mode be enabled, i.e. keep existing handle?
|
||||
if (ConfigurationManager.getBooleanProperty("sword.restore-mode.enable",false))
|
||||
params.setRestoreModeEnabled(true);
|
||||
|
||||
// ingest the item from the temp file
|
||||
DSpaceObject ingestedObject = pi.ingest(context, collection, depositFile, params, licence);
|
||||
|
@@ -14,7 +14,7 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-sword</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
</parent>
|
||||
|
||||
<!--
|
||||
@@ -23,9 +23,9 @@
|
||||
into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/trunk/dspace-sword/dspace-sword-webapp</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-sword/dspace-sword-webapp</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-sword/dspace-sword-webapp</url>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</url>
|
||||
</scm>
|
||||
|
||||
<build>
|
||||
@@ -113,7 +113,7 @@
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-sword-api</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
|
@@ -16,7 +16,7 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-parent</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
</parent>
|
||||
|
||||
<repositories>
|
||||
@@ -42,9 +42,9 @@
|
||||
into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/trunk/dspace-sword</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-sword</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-sword</url>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</url>
|
||||
</scm>
|
||||
|
||||
|
||||
|
@@ -13,14 +13,14 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-xmlui</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
</parent>
|
||||
|
||||
<scm>
|
||||
<connection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-xmlui/dspace-xmlui-api</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-xmlui/dspace-xmlui-api
|
||||
<connection>scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1
|
||||
</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-xmlui/dspace-xmlui-api/</url>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</url>
|
||||
</scm>
|
||||
|
||||
<dependencies>
|
||||
|
@@ -31,16 +31,16 @@ import org.dspace.core.Constants;
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
/**
|
||||
*
|
||||
* Show a form that allows the user to upload a new bitstream. The
|
||||
* user can select the new bitstream's bundle (which is unchangable
|
||||
*
|
||||
* Show a form that allows the user to upload a new bitstream. The
|
||||
* user can select the new bitstream's bundle (which is unchangable
|
||||
* after upload) and a description for the file.
|
||||
*
|
||||
*
|
||||
* @author Scott Phillips
|
||||
*/
|
||||
public class AddBitstreamForm extends AbstractDSpaceTransformer
|
||||
{
|
||||
|
||||
|
||||
/** Language strings */
|
||||
private static final Message T_dspace_home = message("xmlui.general.dspace_home");
|
||||
private static final Message T_submit_cancel = message("xmlui.general.cancel");
|
||||
@@ -58,9 +58,9 @@ public class AddBitstreamForm extends AbstractDSpaceTransformer
|
||||
|
||||
private static final Message T_no_bundles = message("xmlui.administrative.item.AddBitstreamForm.no_bundles");
|
||||
|
||||
|
||||
|
||||
private static final String DEFAULT_BUNDLE_LIST = "ORIGINAL, METADATA, THUMBNAIL, LICENSE, CC_LICENSE";
|
||||
|
||||
|
||||
public void addPageMeta(PageMeta pageMeta) throws WingException
|
||||
{
|
||||
pageMeta.addMetadata("title").addContent(T_title);
|
||||
@@ -141,13 +141,13 @@ public class AddBitstreamForm extends AbstractDSpaceTransformer
|
||||
|
||||
div.addHidden("administrative-continue").setValue(knot.getId());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Add the bundleName to the list of bundles available to submit to.
|
||||
* Performs an authorization check that the current user has privileges
|
||||
* Add the bundleName to the list of bundles available to submit to.
|
||||
* Performs an authorization check that the current user has privileges
|
||||
* @param item DSO item being evaluated
|
||||
* @param select DRI wing select box that is being added to
|
||||
* @param bundleName
|
||||
* @param bundleName
|
||||
* @return boolean indicating whether user can upload to bundle
|
||||
* @throws SQLException
|
||||
* @throws WingException
|
||||
@@ -182,5 +182,5 @@ public class AddBitstreamForm extends AbstractDSpaceTransformer
|
||||
select.addOption(bundleName, message("xmlui.administrative.item.AddBitstreamForm.bundle." + bundleName));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@@ -13,14 +13,14 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-xmlui</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
</parent>
|
||||
|
||||
<scm>
|
||||
<connection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-xmlui/dspace-xmlui-webapp</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-xmlui/dspace-xmlui-webapp
|
||||
<connection>scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1
|
||||
</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-xmlui/dspace-xmlui-webapp</url>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</url>
|
||||
</scm>
|
||||
|
||||
<build>
|
||||
|
@@ -10,14 +10,14 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-xmlui</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
</parent>
|
||||
|
||||
<scm>
|
||||
<connection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-xmlui/dspace-xmlui-wing</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-xmlui/dspace-xmlui-wing
|
||||
<connection>scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1
|
||||
</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-xmlui/dspace-xmlui-wing</url>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</url>
|
||||
</scm>
|
||||
|
||||
<dependencies>
|
||||
|
@@ -12,7 +12,7 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-parent</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
</parent>
|
||||
|
||||
<!--
|
||||
@@ -21,9 +21,9 @@
|
||||
into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/trunk/dspace-xmlui</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace-xmlui</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-xmlui</url>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</url>
|
||||
</scm>
|
||||
|
||||
<modules>
|
||||
|
@@ -11,4 +11,4 @@ releases can be found in the following locations:
|
||||
|
||||
In addition, a listing of all known contributors to DSpace software can be
|
||||
found online at:
|
||||
https://wiki.duraspace.org/display/DSPACE/DSpaceContributors
|
||||
https://wiki.duraspace.org/display/DSPACE/DSpaceContributors
|
||||
|
@@ -12,7 +12,7 @@ A definitive and up to date list of bugs affecting each version of
|
||||
DSpace software can be found in our JIRA issue tracker.
|
||||
|
||||
- Known Issues in DSpace 1.7.1:
|
||||
https://jira.duraspace.org/secure/IssueNavigator.jspa?reset=true&jqlQuery=project+=+DS+AND+affectedVersion+=+"1.7.1"+AND+fixVersion+!=+"1.7.1"
|
||||
https://jira.duraspace.org/secure/IssueNavigator.jspa?reset=true&jqlQuery=project+=+DS+AND+affectedVersion+=+"1.7.1"+AND+fixVersion+!=+"1.7.1"
|
||||
|
||||
- Known Issues in DSpace 1.7.0:
|
||||
https://jira.duraspace.org/secure/IssueNavigator.jspa?reset=true&jqlQuery=project+=+DS+AND+affectedVersion+=+"1.7.0"+AND+fixVersion+!=+"1.7.0"
|
||||
|
@@ -56,12 +56,6 @@ JARS=`echo $DSPACEDIR/lib/*.jar | sed 's/ /\:/g'`
|
||||
# The WEB-INF/classes directory
|
||||
FULLPATH=$CLASSPATH:$JARS:$DSPACEDIR/config
|
||||
|
||||
# If the user only wants the CLASSPATH, just give it now.
|
||||
if [ "$1" = "classpath" ]; then
|
||||
echo $FULLPATH
|
||||
exit 0
|
||||
fi
|
||||
|
||||
#Allow user to specify java options through JAVA_OPTS variable
|
||||
if [ "$JAVA_OPTS" = "" ]; then
|
||||
#Default Java to use 256MB of memory
|
||||
|
@@ -58,12 +58,6 @@ REM Build a CLASSPATH
|
||||
set DSPACE_CLASSPATH=%CLASSPATH%;config
|
||||
for %%f in (lib\*.jar) DO CALL bin\buildpath.bat %%f
|
||||
|
||||
REM If the user only wants the CLASSPATH, just give it now.
|
||||
if not "%1"=="classpath" goto javaOpts
|
||||
echo %DSPACE_CLASSPATH%
|
||||
goto end
|
||||
|
||||
:javaOpts
|
||||
REM If JAVA_OPTS specified, use those options
|
||||
REM Otherwise, default Java to using 256MB of memory
|
||||
if "%JAVA_OPTS%"=="" set JAVA_OPTS=-Xmx256m
|
||||
@@ -77,4 +71,4 @@ set DSPACE_CLASSPATH=
|
||||
:end
|
||||
|
||||
REM Back to original dir
|
||||
chdir /D %CURRENT_DIR%
|
||||
chdir /D %CURRENT_DIR%
|
@@ -2109,13 +2109,6 @@ sword.identify-version = true
|
||||
#
|
||||
sword.on-behalf-of.enable = true
|
||||
|
||||
# Should the sword server enable restore-mode when ingesting new
|
||||
# packages. If this is enabled the item will be treated as a
|
||||
# previously deleted item from the repository. If the item had
|
||||
# previously been assigned a handle then that same handle will be
|
||||
# restored to activity.
|
||||
sword.restore-mode.enable = false
|
||||
|
||||
# Configure the plugins to process incoming packages. The form of this
|
||||
# configuration is as per the Plugin Manager's Named Plugin documentation:
|
||||
#
|
||||
|
@@ -17,12 +17,6 @@
|
||||
</step>
|
||||
</command>
|
||||
|
||||
<command>
|
||||
<name>classpath</name>
|
||||
<description>Calculate and display the DSpace classpath</description>
|
||||
<step></step>
|
||||
</command>
|
||||
|
||||
<command>
|
||||
<name>cleanup</name>
|
||||
<description>Remove deleted bitstreams from the assetstore</description>
|
||||
|
@@ -16,17 +16,17 @@
|
||||
</span>
|
||||
</div>
|
||||
<div class="pagesubheading">
|
||||
This page last changed on Dec 15, 2010 by <font color="#0050B2">tdonohue</font>.
|
||||
This page last changed on Feb 17, 2011 by <font color="#0050B2">helix84</font>.
|
||||
</div>
|
||||
|
||||
<h1><a name="AIPBackupandRestore-AIPBackup%26RestoreforDSpace"></a>AIP Backup & Restore for DSpace</h1>
|
||||
|
||||
<style type='text/css'>/*<![CDATA[*/
|
||||
div.rbtoc1292438825675 {margin-left: 0px;padding: 0px;}
|
||||
div.rbtoc1292438825675 ul {list-style: none;margin-left: 0px;}
|
||||
div.rbtoc1292438825675 li {margin-left: 0px;padding-left: 0px;}
|
||||
div.rbtoc1297951465473 {margin-left: 0px;padding: 0px;}
|
||||
div.rbtoc1297951465473 ul {list-style: none;margin-left: 0px;}
|
||||
div.rbtoc1297951465473 li {margin-left: 0px;padding-left: 0px;}
|
||||
|
||||
/*]]>*/</style><div class='rbtoc1292438825675'>
|
||||
/*]]>*/</style><div class='rbtoc1297951465473'>
|
||||
<ul>
|
||||
<li><span class='TOCOutline'>1</span> <a href='#AIPBackupandRestore-Background%26Overview'>Background & Overview</a></li>
|
||||
<ul>
|
||||
@@ -368,7 +368,7 @@ div.rbtoc1292438825675 li {margin-left: 0px;padding-left: 0px;}
|
||||
</li>
|
||||
<li>By default, a new Parent object <b>must</b> be specified (using the <tt>-p</tt> parameter). This is the location where the new object will be created.
|
||||
<ul>
|
||||
<li>However, you can force it to use the parent object specified in the AIP by specifiying <tt>-o ignoreParent=false</tt> as one of your parameters</li>
|
||||
<li>However, you can force it to use the parent object specified in the AIP by specifying <tt>-o ignoreParent=false</tt> as one of your parameters</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>By default, will respect a Collection's Workflow process when you submit an Item to a Collection
|
||||
@@ -853,7 +853,7 @@ mets.dspaceAIP.ingest.crosswalk.CreativeCommonsText = NULLSTREAM
|
||||
<td height="12" background="https://wiki.duraspace.org/images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Dec 16, 2010 11:47</font></td>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Mar 25, 2011 19:21</font></td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
|
@@ -30,7 +30,7 @@
|
||||
<td height="12" background="https://wiki.duraspace.org/images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Dec 16, 2010 11:47</font></td>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Mar 25, 2011 19:21</font></td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
|
@@ -692,7 +692,7 @@ div.rbtoc1290017861052 li {margin-left: 0px;padding-left: 0px;}
|
||||
<td height="12" background="https://wiki.duraspace.org/images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Dec 16, 2010 11:47</font></td>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Mar 25, 2011 19:21</font></td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
|
@@ -16,7 +16,7 @@
|
||||
</span>
|
||||
</div>
|
||||
<div class="pagesubheading">
|
||||
This page last changed on Dec 15, 2010 by <font color="#0050B2">tdonohue</font>.
|
||||
This page last changed on Feb 17, 2011 by <font color="#0050B2">helix84</font>.
|
||||
</div>
|
||||
|
||||
<h1><a name="ApplicationLayer-SystemArchitecture%3AApplicationLayer"></a>System Architecture: Application Layer</h1>
|
||||
@@ -24,11 +24,11 @@
|
||||
<p>The following explains how the application layer is built and used.</p>
|
||||
|
||||
<style type='text/css'>/*<![CDATA[*/
|
||||
div.rbtoc1292448187896 {margin-left: 0px;padding: 0px;}
|
||||
div.rbtoc1292448187896 ul {list-style: none;margin-left: 0px;}
|
||||
div.rbtoc1292448187896 li {margin-left: 0px;padding-left: 0px;}
|
||||
div.rbtoc1297951722587 {margin-left: 0px;padding: 0px;}
|
||||
div.rbtoc1297951722587 ul {list-style: none;margin-left: 0px;}
|
||||
div.rbtoc1297951722587 li {margin-left: 0px;padding-left: 0px;}
|
||||
|
||||
/*]]>*/</style><div class='rbtoc1292448187896'>
|
||||
/*]]>*/</style><div class='rbtoc1297951722587'>
|
||||
<ul>
|
||||
<li><span class='TOCOutline'>1</span> <a href='#ApplicationLayer-WebUserInterface'>Web User Interface</a></li>
|
||||
<ul>
|
||||
@@ -198,7 +198,7 @@ The <em>org.dspace.app.webui.servlet.LoadDSpaceConfig</em> servlet is always loa
|
||||
<li><b><em>sidebar</em></b>: Can only be used inside a <em>layout</em> tag, and can only be used once per JSP. The content between the start and end <em>sidebar</em> tags is rendered in a column on the right-hand side of the HTML page. The contents can contain further JSP tags and Java 'scriptlets'.</li>
|
||||
<li><b><em>date</em></b>: Displays the date represented by an <em>org.dspace.content.DCDate</em> object. Just the one representation of date is rendered currently, but this could use the user's browser preferences to display a localized date in the future.</li>
|
||||
<li><b><em>include</em></b>: Obsolete, simple tag, similar to <em>jsp:include</em>. In versions prior to DSpace 1.2, this tag would use the locally modified version of a JSP if one was installed in jsp/local. As of 1.2, the build process now performs this function, however this tag is left in for backwards compatibility.</li>
|
||||
<li><b><em>item</em></b>: Displays an item record, including Dublin Core metadata and links to the bitstreams within it. Note that the displaying of the bitstream links is simplistic, and does not take into account any of the bundling structure. This is because DSpace does not have a fully-fledged dissemination architectural piece yet.Displaying an item record is done by a tag rather than a JSP for two reasons: Firstly, it happens in several places (when verifying an item record during submission or workflow review, as well as during standard item accesses), and secondly, displaying the item turns out to be mostly code-work rather than HTML anyway. Of course, the disadvantage of doing it this way is that it is slightly harder to customize exactly what is displayed from an item record; it is necessary to edit the tag code (<em>org.dspace.app.webui.jsptag.ItemTag</em>). Hopefully a better solution can be found in the future.</li>
|
||||
<li><b><em>item</em></b>: Displays an item record, including Dublin Core metadata and links to the bitstreams within it. Note that the displaying of the bitstream links is simplistic, and does not take into account any of the bundling structure. This is because DSpace does not have a fully-fledged dissemination architectural piece yet. Displaying an item record is done by a tag rather than a JSP for two reasons: Firstly, it happens in several places (when verifying an item record during submission or workflow review, as well as during standard item accesses), and secondly, displaying the item turns out to be mostly code-work rather than HTML anyway. Of course, the disadvantage of doing it this way is that it is slightly harder to customize exactly what is displayed from an item record; it is necessary to edit the tag code (<em>org.dspace.app.webui.jsptag.ItemTag</em>). Hopefully a better solution can be found in the future.</li>
|
||||
<li><b><em>itemlist</em></b><b>,</b> <b><em>collectionlist</em></b><b>,</b> <b><em>communitylist</em></b>: These tags display ordered sequences of items, collections and communities, showing minimal information but including a link to the page containing full details. These need to be used in HTML tables.</li>
|
||||
<li><b><em>popup</em></b>: This tag is used to render a link to a pop-up page (typically a help page.) If Javascript is available, the link will either open or pop to the front any existing DSpace pop-up window. If Javascript is not available, a standard HTML link is displayed that renders the link destination in a window named '<em>dspace.popup</em>'. In graphical browsers, this usually opens a new window or re-uses an existing window of that name, but if a window is re-used it is not 'raised' which might confuse the user. In text browsers, following this link will simply replace the current page with the destination of the link. This obviously means that Javascript offers the best functionality, but other browsers are still supported.</li>
|
||||
<li><b><em>selecteperson</em></b>: A tag which produces a widget analogous to HTML <em><SELECT></em>, that allows a user to select one or multiple e-people from a pop-up list.</li>
|
||||
@@ -244,7 +244,7 @@ The <em>org.dspace.app.webui.servlet.LoadDSpaceConfig</em> servlet is always loa
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">jsp.search.results.text = Results {0}-{1} of {2} </pre>
|
||||
</div></div>
|
||||
<p>Introducing number parameters that should be formatted according to the locale used makes no difference in the message key compared to atring parameters:</p>
|
||||
<p>Introducing number parameters that should be formatted according to the locale used makes no difference in the message key compared to string parameters:</p>
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">jsp.submit.show-uploaded-file.size-in-bytes = {0} bytes</pre>
|
||||
</div></div>
|
||||
@@ -343,7 +343,7 @@ figure6.gif</pre>
|
||||
</div></div>
|
||||
<p>The HTML document servlet can work out which item the user is looking at, and then which Bitstream in it is called <em>figure1.gif</em>, and serve up that bitstream. Similar for following links to other HTML pages. Of course all the links and image references have to be relative and not absolute.</p>
|
||||
|
||||
<p>HTML documents must be "self-contained", as explained here. Provided that full path information is known by DSpace, any depth or complexity of HTML document can be served subject to those contraints. This is usually possible with some kind of batch import. If, however, the document has been uploaded one file at a time using the Web UI, the path information has been stripped. The system can cope with relative links that refer to a deeper path, e.g.</p>
|
||||
<p>HTML documents must be "self-contained", as explained here. Provided that full path information is known by DSpace, any depth or complexity of HTML document can be served subject to those constraints. This is usually possible with some kind of batch import. If, however, the document has been uploaded one file at a time using the Web UI, the path information has been stripped. The system can cope with relative links that refer to a deeper path, e.g.</p>
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java"><IMG SRC=<span class="code-quote">"images/figure1.gif"</span>></pre>
|
||||
</div></div>
|
||||
@@ -520,7 +520,7 @@ programming or wish to customize the code at any time.</p>
|
||||
<p><em>launcher.xml</em> is made of several components:</p>
|
||||
|
||||
<ul>
|
||||
<li><em><command></em> begins the stanza for a comand</li>
|
||||
<li><em><command></em> begins the stanza for a command</li>
|
||||
<li><em><name></em>_<em>name of command</em>_<em></name></em> the name of the command that you would use.</li>
|
||||
<li><em><description></em>_<em>the description of the command</em>_<em></description></em></li>
|
||||
<li><em><step> </step></em> User arguments are parsed and tested.</li>
|
||||
@@ -571,7 +571,7 @@ Prior to release 1.5 if one wanted to regenerate the browse index, one would hav
|
||||
<td height="12" background="https://wiki.duraspace.org/images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Dec 16, 2010 11:47</font></td>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Mar 25, 2011 19:21</font></td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
|
@@ -139,7 +139,7 @@ mvn javadoc:javadoc
|
||||
<td height="12" background="https://wiki.duraspace.org/images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Dec 16, 2010 11:47</font></td>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Mar 25, 2011 19:21</font></td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
|
@@ -16,17 +16,17 @@
|
||||
</span>
|
||||
</div>
|
||||
<div class="pagesubheading">
|
||||
This page last changed on Dec 15, 2010 by <font color="#0050B2">tdonohue</font>.
|
||||
This page last changed on Feb 17, 2011 by <font color="#0050B2">helix84</font>.
|
||||
</div>
|
||||
|
||||
<h1><a name="BusinessLogicLayer-SystemArchitecture%3ABusinessLogicLayer"></a>System Architecture: Business Logic Layer</h1>
|
||||
|
||||
<style type='text/css'>/*<![CDATA[*/
|
||||
div.rbtoc1292448694802 {margin-left: 0px;padding: 0px;}
|
||||
div.rbtoc1292448694802 ul {list-style: none;margin-left: 0px;}
|
||||
div.rbtoc1292448694802 li {margin-left: 0px;padding-left: 0px;}
|
||||
div.rbtoc1297951916794 {margin-left: 0px;padding: 0px;}
|
||||
div.rbtoc1297951916794 ul {list-style: none;margin-left: 0px;}
|
||||
div.rbtoc1297951916794 li {margin-left: 0px;padding-left: 0px;}
|
||||
|
||||
/*]]>*/</style><div class='rbtoc1292448694802'>
|
||||
/*]]>*/</style><div class='rbtoc1297951916794'>
|
||||
<ul>
|
||||
<li><span class='TOCOutline'>1</span> <a href='#BusinessLogicLayer-CoreClasses'>Core Classes</a></li>
|
||||
<ul>
|
||||
@@ -477,7 +477,7 @@ The packager also takes a <em>PackageParameters</em> object, which is a property
|
||||
<ol>
|
||||
<li><b>Singleton Plugins</b> There is only one implementation class for the plugin. It is indicated in the configuration. This type of plugin chooses an implementation of a service, for the entire system, at configuration time. Your application just fetches the plugin for that interface and gets the configured-in choice. See the getSinglePlugin() method.</li>
|
||||
<li><b>Sequence Plugins</b> You need a sequence or series of plugins, to implement a mechanism like Stackable Authentication or a pipeline, where each plugin is called in order to contribute its implementation of a process to the whole. The Plugin Manager supports this by letting you configure a sequence of plugins for a given interface. See the getPluginSequence() method.</li>
|
||||
<li><b>Named Plugins</b> Use a named plugin when the application has to choose one plugin implementation out of many available ones. Each implementation is bound to one or more names (symbolic identifiers) in the configuration.The name is just a string to be associated with the combination of implementation class and interface. It may contain any characters except for comma (,) and equals (=). It may contain embedded spaces. Comma is a special character used to separate names in the configuration entry.Names must be unique within an interface: No plugin classes implementing the same interface may have the same name.Think of plugin names as a controlled vocabulary – for a given plugin interface, there is a set of names for which plugins can be found. The designer of a Named Plugin interface is responsible for deciding what the name means and how to derive it; for example, names of metadata crosswalk plugins may describe the target metadata format.See the getNamedPlugin() method and the getPluginNames() methods.</li>
|
||||
<li><b>Named Plugins</b> Use a named plugin when the application has to choose one plugin implementation out of many available ones. Each implementation is bound to one or more names (symbolic identifiers) in the configuration. The name is just a string to be associated with the combination of implementation class and interface. It may contain any characters except for comma (,) and equals (=). It may contain embedded spaces. Comma is a special character used to separate names in the configuration entry. Names must be unique within an interface: No plugin classes implementing the same interface may have the same name. Think of plugin names as a controlled vocabulary – for a given plugin interface, there is a set of names for which plugins can be found. The designer of a Named Plugin interface is responsible for deciding what the name means and how to derive it; for example, names of metadata crosswalk plugins may describe the target metadata format. See the getNamedPlugin() method and the getPluginNames() methods.</li>
|
||||
</ol>
|
||||
|
||||
|
||||
@@ -537,15 +537,15 @@ The packager also takes a <em>PackageParameters</em> object, which is a property
|
||||
<pre class="code-java"><span class="code-keyword">static</span> <span class="code-object">Object</span> getSinglePlugin(<span class="code-object">Class</span> intface)
|
||||
<span class="code-keyword">throws</span> PluginConfigurationError;</pre>
|
||||
</div></div>
|
||||
<p> Returns an instance of the singleton (single) plugin implementing the given interface. There must be exactly one single plugin configured for this interface, otherwise the <em>PluginConfigurationError</em> is thrown.Note that this is the only "get plugin" method which throws an exception. It is typically used at initialization time to set up a permanent part of the system so any failure is fatal.See the <em>plugin.single</em> configuration key for configuration details.</p></li>
|
||||
<p> Returns an instance of the singleton (single) plugin implementing the given interface. There must be exactly one single plugin configured for this interface, otherwise the <em>PluginConfigurationError</em> is thrown. Note that this is the only "get plugin" method which throws an exception. It is typically used at initialization time to set up a permanent part of the system so any failure is fatal. See the <em>plugin.single</em> configuration key for configuration details.</p></li>
|
||||
<li><div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java"><span class="code-keyword">static</span> <span class="code-object">Object</span>[] getPluginSequence(<span class="code-object">Class</span> intface);</pre>
|
||||
</div></div>
|
||||
<p> Returns instances of all plugins that implement the interface <em>intface</em>, in an <em>Array</em>. Returns an empty array if no there are no matching plugins.The order of the plugins in the array is the same as their class names in the configuration's value field.See the <em>plugin.sequence</em> configuration key for configuration details.</p></li>
|
||||
<p> Returns instances of all plugins that implement the interface <em>intface</em>, in an <em>Array</em>. Returns an empty array if no there are no matching plugins. The order of the plugins in the array is the same as their class names in the configuration's value field. See the <em>plugin.sequence</em> configuration key for configuration details.</p></li>
|
||||
<li><div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java"><span class="code-keyword">static</span> <span class="code-object">Object</span> getNamedPlugin(<span class="code-object">Class</span> intface, <span class="code-object">String</span> name);</pre>
|
||||
</div></div>
|
||||
<p> Returns an instance of a plugin that implements the interface <em>intface</em> and is bound to a name matching name. If there is no matching plugin, it returns null. The names are matched by <em>String.equals()</em>.See the <em>plugin.named</em> and <em>plugin.selfnamed</em> configuration keys for configuration details.</p></li>
|
||||
<p> Returns an instance of a plugin that implements the interface <em>intface</em> and is bound to a name matching name. If there is no matching plugin, it returns null. The names are matched by <em>String.equals()</em>. See the <em>plugin.named</em> and <em>plugin.selfnamed</em> configuration keys for configuration details.</p></li>
|
||||
<li><div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java"><span class="code-keyword">static</span> void releasePlugin(<span class="code-object">Object</span> plugin);</pre>
|
||||
</div></div>
|
||||
@@ -553,7 +553,7 @@ The packager also takes a <em>PackageParameters</em> object, which is a property
|
||||
<li><div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java"><span class="code-keyword">static</span> <span class="code-object">String</span>[] getAllPluginNames(<span class="code-object">Class</span> intface);</pre>
|
||||
</div></div>
|
||||
<p> Returns all of the names under which a named plugin implementing the interface <em>intface</em> can be requested (with <em>getNamedPlugin()</em>). The array is empty if there are no matches. Use this to populate a menu of plugins for interactive selection, or to document what the possible choices are.The names are NOT returned in any predictable order, so you may wish to sort them first.Note: Since a plugin may be bound to more than one name, the list of names this returns does not represent the list of plugins. To get the list of unique implementation classes corresponding to the names, you might have to eliminate duplicates (i.e. create a Set of classes).</p></li>
|
||||
<p> Returns all of the names under which a named plugin implementing the interface <em>intface</em> can be requested (with <em>getNamedPlugin()</em>). The array is empty if there are no matches. Use this to populate a menu of plugins for interactive selection, or to document what the possible choices are. The names are NOT returned in any predictable order, so you may wish to sort them first. Note: Since a plugin may be bound to more than one name, the list of names this returns does not represent the list of plugins. To get the list of unique implementation classes corresponding to the names, you might have to eliminate duplicates (i.e. create a Set of classes).</p></li>
|
||||
<li><div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java"><span class="code-keyword">static</span> void checkConfiguration();</pre>
|
||||
</div></div>
|
||||
@@ -657,7 +657,7 @@ The plugins are returned by <em>getPluginSequence()</em> in the same order as th
|
||||
org.dspace.app.mediafilter.PDFFilter = Adobe PDF, PDF, Portable Document Format</pre>
|
||||
</div></div>
|
||||
<p>NOTE: Since there can only be one key with plugin.named. followed by the interface name in the configuration, all of the plugin implementations must be configured in that entry.</p></li>
|
||||
<li><b>Self-Named Plugins</b> Since a self-named plugin supplies its own names through a static method call, the configuration only has to include its interface and classname:<em>plugin.selfnamed.interface = classname [ , classname.. ]_The following example first demonstrates how the plugin class, _XsltDisseminationCrosswalk</em> is configured to implement its own names "MODS" and "DublinCore". These come from the keys starting with <em>crosswalk.dissemination.stylesheet.</em>. The value is a stylesheet file.The class is then configured as a self-named plugin:
|
||||
<li><b>Self-Named Plugins</b> Since a self-named plugin supplies its own names through a static method call, the configuration only has to include its interface and classname:<em>plugin.selfnamed.interface = classname [ , classname.. ]_The following example first demonstrates how the plugin class, _XsltDisseminationCrosswalk</em> is configured to implement its own names "MODS" and "DublinCore". These come from the keys starting with <em>crosswalk.dissemination.stylesheet.</em>. The value is a stylesheet file. The class is then configured as a self-named plugin:
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">crosswalk.dissemination.stylesheet.DublinCore = xwalk/TESTDIM-2-DC_copy.xsl
|
||||
crosswalk.dissemination.stylesheet.MODS = xwalk/mods.xsl
|
||||
@@ -854,13 +854,13 @@ plugin.selfnamed.org.dspace.content.metadata.DisseminationCrosswalk = \
|
||||
|
||||
<h2><a name="BusinessLogicLayer-Eperson%2FGroupManager"></a>E-person/Group Manager</h2>
|
||||
|
||||
<p>DSpace keeps track of registered users with the <em>org.dspace.eperson.EPerson</em> class. The class has methods to create and manipulate an <em>EPerson</em> such as get and set methods for first and last names, email, and password. (Actually, there is no <em>getPassword()</em> method—an MD5 hash of the password is stored, and can only be verified with the <em>checkPassword()</em> method.) There are find methods to find an EPerson by email (which is assumed to be unique,) or to find all EPeople in the system.</p>
|
||||
<p>DSpace keeps track of registered users with the <em>org.dspace.eperson.EPerson</em> class. The class has methods to create and manipulate an <em>EPerson</em> such as get and set methods for first and last names, email, and password. (Actually, there is no <em>getPassword()</em> method‚ an MD5 hash of the password is stored, and can only be verified with the <em>checkPassword()</em> method.) There are find methods to find an EPerson by email (which is assumed to be unique,) or to find all EPeople in the system.</p>
|
||||
|
||||
<p>The <em>EPerson</em> object should probably be reworked to allow for easy expansion; the current EPerson object tracks pretty much only what MIT was interested in tracking - first and last names, email, phone. The access methods are hardcoded and should probably be replaced with methods to access arbitrary name/value pairs for institutions that wish to customize what EPerson information is stored.</p>
|
||||
|
||||
<p>Groups are simply lists of <em>EPerson</em> objects. Other than membership, <em>Group</em> objects have only one other attribute: a name. Group names must be unique, so we have adopted naming conventions where the role of the group is its name, such as <em>COLLECTION_100_ADD</em>. Groups add and remove EPerson objects with <em>addMember()</em> and <em>removeMember()</em> methods. One important thing to know about groups is that they store their membership in memory until the <em>update()</em> method is called - so when modifying a group's membership don't forget to invoke <em>update()</em> or your changes will be lost! Since group membership is used heavily by the authorization system a fast <em>isMember()</em> method is also provided.</p>
|
||||
|
||||
<p>Another kind of Group is also implemented in DSpace—special Groups. The <em>Context</em> object for each session carries around a List of Group IDs that the user is also a member of—currently the MITUser Group ID is added to the list of a user's special groups if certain IP address or certificate criteria are met.</p>
|
||||
<p>Another kind of Group is also implemented in DSpace‚ special Groups. The <em>Context</em> object for each session carries around a List of Group IDs that the user is also a member of‚ currently the MITUser Group ID is added to the list of a user's special groups if certain IP address or certificate criteria are met.</p>
|
||||
|
||||
|
||||
<h2><a name="BusinessLogicLayer-Authorization"></a>Authorization</h2>
|
||||
@@ -886,7 +886,7 @@ plugin.selfnamed.org.dspace.content.metadata.DisseminationCrosswalk = \
|
||||
|
||||
<p>The authorization system is based on the classic 'police state' model of security; no action is allowed unless it is expressed in a policy. The policies are attached to resources (hence the name <em>ResourcePolicy</em>,) and detail who can perform that action. The resource can be any of the DSpace object types, listed in <em>org.dspace.core.Constants</em> (<em>BITSTREAM</em>, <em>ITEM</em>, <em>COLLECTION</em>, etc.) The 'who' is made up of EPerson groups. The actions are also in <em>Constants.java</em> (<em>READ</em>, <em>WRITE</em>, <em>ADD</em>, etc.) The only non-obvious actions are <em>ADD</em> and <em>REMOVE</em>, which are authorizations for container objects. To be able to create an Item, you must have <em>ADD</em> permission in a Collection, which contains Items. (Communities, Collections, Items, and Bundles are all container objects.)</p>
|
||||
|
||||
<p>Currently most of the read policy checking is done with items—communities and collections are assumed to be openly readable, but items and their bitstreams are checked. Separate policy checks for items and their bitstreams enables policies that allow publicly readable items, but parts of their content may be restricted to certain groups.</p>
|
||||
<p>Currently most of the read policy checking is done with items‚ communities and collections are assumed to be openly readable, but items and their bitstreams are checked. Separate policy checks for items and their bitstreams enables policies that allow publicly readable items, but parts of their content may be restricted to certain groups.</p>
|
||||
|
||||
<p>The <em>AuthorizeManager</em> class'<br/>
|
||||
<em>authorizeAction(Context, object, action)</em> is the primary source of all authorization in the system. It gets a list of all of the ResourcePolicies in the system that match the object and action. It then iterates through the policies, extracting the EPerson Group from each policy, and checks to see if the EPersonID from the Context is a member of any of those groups. If all of the policies are queried and no permission is found, then an <em>AuthorizeException</em> is thrown. An <em>authorizeAction()</em> method is also supplied that returns a boolean for applications that require higher performance.</p>
|
||||
@@ -900,7 +900,7 @@ plugin.selfnamed.org.dspace.content.metadata.DisseminationCrosswalk = \
|
||||
|
||||
<h3><a name="BusinessLogicLayer-MiscellaneousAuthorizationNotes"></a>Miscellaneous Authorization Notes</h3>
|
||||
|
||||
<p>Where do items get their read policies? From the their collection's read policy. There once was a separate item read default policy in each collection, and perhaps there will be again since it appears that administrators are notoriously bad at defining collection's read policies. There is also code in place to enable policies that are timed—have a start and end date. However, the admin tools to enable these sorts of policies have not been written.</p>
|
||||
<p>Where do items get their read policies? From the their collection's read policy. There once was a separate item read default policy in each collection, and perhaps there will be again since it appears that administrators are notoriously bad at defining collection's read policies. There is also code in place to enable policies that are timed‚ have a start and end date. However, the admin tools to enable these sorts of policies have not been written.</p>
|
||||
|
||||
|
||||
|
||||
@@ -949,7 +949,7 @@ http:<span class="code-comment">//hdl.handle.net/1721.123/4567</span></pre>
|
||||
|
||||
<p>By default, the fields shown in the <em>Indexed Fields</em> section below are indexed. These are hardcoded in the DSIndexer class. If any search.index.i items are specified in <em>dspace.cfg</em> these are used rather than these hardcoded fields.</p>
|
||||
|
||||
<p>The query class <em>DSQuery</em> contains the three flavors of <em>doQuery()</em> methods—one searches the DSpace site, and the other two restrict searches to Collections and Communities. The results from a query are returned as three lists of handles; each list represents a type of result. One list is a list of Items with matches, and the other two are Collections and Communities that match. This separation allows the UI to handle the types of results gracefully without resolving all of the handles first to see what kind of content the handle points to. The <em>DSQuery</em> class also has a <em>main()</em> method for debugging via command-line searches.</p>
|
||||
<p>The query class <em>DSQuery</em> contains the three flavors of <em>doQuery()</em> methods‚ one searches the DSpace site, and the other two restrict searches to Collections and Communities. The results from a query are returned as three lists of handles; each list represents a type of result. One list is a list of Items with matches, and the other two are Collections and Communities that match. This separation allows the UI to handle the types of results gracefully without resolving all of the handles first to see what kind of content the handle points to. The <em>DSQuery</em> class also has a <em>main()</em> method for debugging via command-line searches.</p>
|
||||
|
||||
<h3><a name="BusinessLogicLayer-CurrentLuceneImplementation"></a>Current Lucene Implementation</h3>
|
||||
|
||||
@@ -1020,7 +1020,7 @@ http:<span class="code-comment">//hdl.handle.net/1721.123/4567</span></pre>
|
||||
|
||||
<ul>
|
||||
<li><b>Title</b>: Values of the Dublin Core element <b>title</b> (unqualified) are indexed. These are sorted in a case-insensitive fashion, with any leading article removed. For example: "The DSpace System" would appear under 'D' rather than 'T'.</li>
|
||||
<li><b>Author</b>: Values of the <b>contributor</b> (any qualifier or unqualified) element are indexed. Since <em>contributor</em> values typically are in the form 'last name, first name', a simple case-insensitive alphanumeric sort is used which orders authors in last name order.Note that this is an index of <em>authors</em>, and not <em>items by author</em>. If four items have the same author, that author will appear in the index only once. Hence, the index of authors may be greater or smaller than the index of titles; items often have more than one author, though the same author may have authored several items.The author indexing in the browse API does have limitations:
|
||||
<li><b>Author</b>: Values of the <b>contributor</b> (any qualifier or unqualified) element are indexed. Since <em>contributor</em> values typically are in the form 'last name, first name', a simple case-insensitive alphanumeric sort is used which orders authors in last name order. Note that this is an index of <em>authors</em>, and not <em>items by author</em>. If four items have the same author, that author will appear in the index only once. Hence, the index of authors may be greater or smaller than the index of titles; items often have more than one author, though the same author may have authored several items. The author indexing in the browse API does have limitations:
|
||||
<ul>
|
||||
<li>Ideally, a name that appears as an author for more than one item would appear in the author index only once. For example, 'Doe, John' may be the author of tens of items. However, in practice, author's names often appear in slightly differently forms, for example:
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
@@ -1029,10 +1029,10 @@ Doe, John Stewart
|
||||
Doe, John S.</pre>
|
||||
</div></div>
|
||||
<p>Currently, the above three names would all appear as separate entries in the author index even though they may refer to the same author. In order for an author of several papers to be correctly appear once in the index, each item must specify <em>exactly</em> the same form of their name, which doesn't always happen in practice.</p></li>
|
||||
<li>Another issue is that two authors may have the same name, even within a single institution. If this is the case they may appear as one author in the index.These issues are typically resolved in libraries with <em>authority control records</em>, in which are kept a 'preferred' form of the author's name, with extra information (such as date of birth/death) in order to distinguish between authors of the same name. Maintaining such records is a huge task with many issues, particularly when metadata is received from faculty directly rather than trained library catalogers.</li>
|
||||
<li>Another issue is that two authors may have the same name, even within a single institution. If this is the case they may appear as one author in the index. These issues are typically resolved in libraries with <em>authority control records</em>, in which are kept a 'preferred' form of the author's name, with extra information (such as date of birth/death) in order to distinguish between authors of the same name. Maintaining such records is a huge task with many issues, particularly when metadata is received from faculty directly rather than trained library catalogers.</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><b>Date of Issue</b>: Items are indexed by date of issue. This may be different from the date that an item appeared in DSpace; many items may have been originally published elsewhere beforehand. The Dublin Core field used is <b>date.issued</b>. The ordering of this index may be reversed so 'earliest first' and 'most recent first' orderings are possible.Note that the index is of <em>items by date</em>, as opposed to an index of <em>dates</em>. If 30 items have the same issue date (say 2002), then those 30 items all appear in the index adjacent to each other, as opposed to a single 2002 entry.Since dates in DSpace Dublin Core are in ISO8601, all in the UTC time zone, a simple alphanumeric sort is sufficient to sort by date, including dealing with varying granularities of date reasonably. For example:
|
||||
<li><b>Date of Issue</b>: Items are indexed by date of issue. This may be different from the date that an item appeared in DSpace; many items may have been originally published elsewhere beforehand. The Dublin Core field used is <b>date.issued</b>. The ordering of this index may be reversed so 'earliest first' and 'most recent first' orderings are possible. Note that the index is of <em>items by date</em>, as opposed to an index of <em>dates</em>. If 30 items have the same issue date (say 2002), then those 30 items all appear in the index adjacent to each other, as opposed to a single 2002 entry. Since dates in DSpace Dublin Core are in ISO8601, all in the UTC time zone, a simple alphanumeric sort is sufficient to sort by date, including dealing with varying granularities of date reasonably. For example:
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">2001-12-10
|
||||
2002
|
||||
@@ -1043,7 +1043,7 @@ Doe, John S.</pre>
|
||||
2002-04-10</pre>
|
||||
</div></div></li>
|
||||
<li><b>Date Accessioned</b>: In order to determine which items most recently appeared, rather than using the date of issue, an item's accession date is used. This is the Dublin Core field <b>date.accessioned</b>. In other aspects this index is identical to the date of issue index.</li>
|
||||
<li><b>Items by a Particular Author</b>: The browse API can perform is to extract items by a particular author. They do not have to be primary author of an item for that item to be extracted. You can specify a scope, too; that is, you can ask for items by author X in collection Y, for example.This particular flavor of browse is slightly simpler than the others. You cannot presently specify a particular subset of results to be returned. The API call will simply return all of the items by a particular author within a certain scope.Note that the author of the item must <em>exactly</em> match the author passed in to the API; see the explanation about the caveats of the author index browsing to see why this is the case.</li>
|
||||
<li><b>Items by a Particular Author</b>: The browse API can perform is to extract items by a particular author. They do not have to be primary author of an item for that item to be extracted. You can specify a scope, too; that is, you can ask for items by author X in collection Y, for example.This particular flavor of browse is slightly simpler than the others. You cannot presently specify a particular subset of results to be returned. The API call will simply return all of the items by a particular author within a certain scope. Note that the author of the item must <em>exactly</em> match the author passed in to the API; see the explanation about the caveats of the author index browsing to see why this is the case.</li>
|
||||
<li><b>Subject</b>: Values of the Dublin Core element <b>subject</b> (both unqualified and with any qualifier) are indexed. These are sorted in a case-insensitive fashion.</li>
|
||||
</ul>
|
||||
|
||||
@@ -1119,7 +1119,7 @@ FOCUS> The Really Exciting Research Video
|
||||
|
||||
<p>DSpace is able to support OpenSearch. For those not acquainted with the standard, a very brief introduction, with emphasis on what possibilities it holds for current use and future development.</p>
|
||||
|
||||
<p>OpenSearch is a small set of conventions and documents for describing and using 'search engines', meaning any service that returns a set of results for a query. It is nearly ubiquitous‚Äîbut also nearly invisible‚ in modern web sites with search capability. If you look at the page source of Wikipedia, Facebook, CNN, etc you will find buried a link element declaring OpenSearch support. It is very much a lowest-common-denominator abstraction (think Google box), but does provide a means to extend its expressive power. This first implementation for DSpace supports <em>none</em> of these extensions‚Äîmany of which are of potential value‚ so it should be regarded as a foundation, not a finished solution. So the short answer is that DSpace appears as a 'search-engine' to OpenSearch-aware software.</p>
|
||||
<p>OpenSearch is a small set of conventions and documents for describing and using 'search engines', meaning any service that returns a set of results for a query. It is nearly ubiquitous‚ but also nearly invisible‚ in modern web sites with search capability. If you look at the page source of Wikipedia, Facebook, CNN, etc you will find buried a link element declaring OpenSearch support. It is very much a lowest-common-denominator abstraction (think Google box), but does provide a means to extend its expressive power. This first implementation for DSpace supports <em>none</em> of these extensions‚ many of which are of potential value‚ so it should be regarded as a foundation, not a finished solution. So the short answer is that DSpace appears as a 'search-engine' to OpenSearch-aware software.</p>
|
||||
|
||||
<p>Another way to look at OpenSearch is as a RESTful web service for search, very much like SRW/U, but considerably simpler. This comparative loss of power is offset by the fact that it is widely supported by web tools and players: browsers understand it, as do large metasearch tools.</p>
|
||||
|
||||
@@ -1191,7 +1191,7 @@ These terms are 'interpreted' by the embargo system to yield a specific date on
|
||||
<ol>
|
||||
<li><b>Terms Assignment.</b> The first step in placing an embargo on an item is to attach (assign) 'terms' to it. If these terms are missing, no embargo will be imposed. As we will see below, terms are carried in a configurable DSpace metadata field, so assigning terms just means assigning a value to a metadata field. This can be done in a web submission user interface form, in a SWORD deposit package, a batch import, etc. - anywhere metadata is passed to DSpace. The terms are not immediately acted upon, and may be revised, corrected, removed, etc, up until the next stage of the life-cycle. Thus a submitter could enter one value, and a collection editor replace it, and only the last value will be used. Since metadata fields are multivalued, theoretically there can be multiple terms values, but in the default implementation only one is recognized.</li>
|
||||
<li><b>Terms interpretation/imposition.</b> In DSpace terminology, when an item has exited the last of any workflow steps (or if none have been defined for it), it is said to be 'installed' into the repository. At this precise time, the 'interpretation' of the terms occurs, and a computed 'lift date' is assigned, which like the terms is recorded in a configurable metadata field. It is important to understand that this interpretation happens only once, (just like the installation), and cannot be revisited later. Thus, although an administrator can assign a new value to the metadata field holding the terms after the item has been installed, this will have no effect on the embargo, whose 'force' now resides entirely in the 'lift date' value. For this reason, you cannot embargo content already in your repository (at least using standard tools). The other action taken at installation time is the actual imposition of the embargo. The default behavior here is simply to remove the read policies on all the bundles and bitstreams except for the "LICENSE" or "METADATA" bundles. See the section on <em>Extending Embargo Functionality</em> for how to alter this behavior. Also note that since these policy changes occur before installation, there is no time during which embargoed content is 'exposed' (accessible by non-administrators). The terms interpretation and imposition together are called 'setting' the embargo, and the component that performs them both is called the embargo 'setter'.</li>
|
||||
<li><b>Embargo Period.</b> After an embargoed item has been installed, the policy restrictions remain in effect until removed. This is not an automatic process, however: a 'lifter' must be run periodically to look for items whose 'lift date' is past. Note that this means the effective removal of an embargo is <b>not</b> the lift date, but the earliest date after the lift date that the lifter is run. Typically, a nightly cron-scheduled invocation of the lifter is more than adequate, given the granularity of embargo terms. Also note that during the embargo period, all metadata of the item remains visible. This default behavior can be changed. One final point to note is that the 'lift date', although it was computed and assigned during the previous stage, is in the end a regular metadata field. That means, if there are extraordinary circumstances that require an administrator (or collection editor—anyone with edit permissions on metadata) to change the lift date, they can do so. Thus, they can 'revise' the lift date without reference to the original terms. This date will be checked the next time the 'lifter' is run. One could immediately lift the embargo by setting the lift date to the current day, or change it to 'forever' to indefinitely postpone lifting.</li>
|
||||
<li><b>Embargo Period.</b> After an embargoed item has been installed, the policy restrictions remain in effect until removed. This is not an automatic process, however: a 'lifter' must be run periodically to look for items whose 'lift date' is past. Note that this means the effective removal of an embargo is <b>not</b> the lift date, but the earliest date after the lift date that the lifter is run. Typically, a nightly cron-scheduled invocation of the lifter is more than adequate, given the granularity of embargo terms. Also note that during the embargo period, all metadata of the item remains visible. This default behavior can be changed. One final point to note is that the 'lift date', although it was computed and assigned during the previous stage, is in the end a regular metadata field. That means, if there are extraordinary circumstances that require an administrator (or collection editor‚ anyone with edit permissions on metadata) to change the lift date, they can do so. Thus, they can 'revise' the lift date without reference to the original terms. This date will be checked the next time the 'lifter' is run. One could immediately lift the embargo by setting the lift date to the current day, or change it to 'forever' to indefinitely postpone lifting.</li>
|
||||
<li><b>Embargo Lift.</b> When the lifter discovers an item whose lift date is in the past, it removes (lifts) the embargo. The default behavior of the lifter is to add the resource policies <em>that would have been added</em> had the embargo not been imposed. That is, it replicates the standard DSpace behavior, in which an item inherits it's policies from its owning collection. As with all other parts of the embargo system, you may replace or extend the default behavior of the lifter (see section V. below). You may wish, e.g. to send an email to an administrator or other interested parties, when an embargoed item becomes available.</li>
|
||||
<li><b>Post Embargo.</b> After the embargo has been lifted, the item ceases to respond to any of the embargo life-cycle events. The values of the metadata fields reflect essentially historical or provenance values. With the exception of the additional metadata fields, they are indistinguishable from items that were never subject to embargo.</li>
|
||||
</ol>
|
||||
@@ -1206,7 +1206,7 @@ These terms are 'interpreted' by the embargo system to yield a specific date on
|
||||
<td height="12" background="https://wiki.duraspace.org/images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Dec 16, 2010 11:47</font></td>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Mar 25, 2011 19:21</font></td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -16,7 +16,7 @@
|
||||
</span>
|
||||
</div>
|
||||
<div class="pagesubheading">
|
||||
This page last changed on Dec 16, 2010 by <font color="#0050B2">rrodgers</font>.
|
||||
This page last changed on Feb 17, 2011 by <font color="#0050B2">helix84</font>.
|
||||
</div>
|
||||
|
||||
<h1><a name="CurationSystem-CurationSystem"></a>Curation System</h1>
|
||||
@@ -24,11 +24,11 @@
|
||||
<p>As of release 1.7, DSpace supports running curation tasks, which are described in this section. DSpace 1.7 and subsequent distributions will bundle (include) several useful tasks, but the system also is designed to allow new tasks to be added between releases, both general purpose tasks that come from the community, and locally written and deployed tasks.</p>
|
||||
|
||||
<style type='text/css'>/*<![CDATA[*/
|
||||
div.rbtoc1292518262800 {margin-left: 0px;padding: 0px;}
|
||||
div.rbtoc1292518262800 ul {list-style: none;margin-left: 0px;}
|
||||
div.rbtoc1292518262800 li {margin-left: 0px;padding-left: 0px;}
|
||||
div.rbtoc1297951524980 {margin-left: 0px;padding: 0px;}
|
||||
div.rbtoc1297951524980 ul {list-style: none;margin-left: 0px;}
|
||||
div.rbtoc1297951524980 li {margin-left: 0px;padding-left: 0px;}
|
||||
|
||||
/*]]>*/</style><div class='rbtoc1292518262800'>
|
||||
/*]]>*/</style><div class='rbtoc1297951524980'>
|
||||
<ul>
|
||||
<li><span class='TOCOutline'>1</span> <a href='#CurationSystem-Tasks'>Tasks</a></li>
|
||||
<li><span class='TOCOutline'>2</span> <a href='#CurationSystem-Activation'>Activation</a></li>
|
||||
@@ -67,7 +67,7 @@ div.rbtoc1292518262800 li {margin-left: 0px;padding-left: 0px;}
|
||||
|
||||
<h2><a name="CurationSystem-Tasks"></a>Tasks</h2>
|
||||
|
||||
<p>The goal of the curation system ('CS') is to provide a simple, extensible, way to manage routine content operations on a repository. These operations are known to CS as 'tasks', and they can operate on any DSpaceObject (i.e. subclasses of DSpaceObject) - which means Communities, Collections, and Items - viz. core data model objects. Tasks may elect to work on only one type of DSpace object - typically an Item - and in this case they may simply ignore other data types (tasks have the ability to 'skip' objects for any reason). The DSpace core distribution will provide a number of useful tasks, but the system is designed to encourage local extension - tasks can be written for any purpose, and placed in any java package. This gives DSpace sites the ability to customize the behavior of their repository without having to alter - and therefore manage synchronization with - the DSpace source code. What sorts of activities are appropriate for tasks?</p>
|
||||
<p>The goal of the curation system ('CS') is to provide a simple, extensible way to manage routine content operations on a repository. These operations are known to CS as 'tasks', and they can operate on any DSpaceObject (i.e. subclasses of DSpaceObject) - which means Communities, Collections, and Items - viz. core data model objects. Tasks may elect to work on only one type of DSpace object - typically an Item - and in this case they may simply ignore other data types (tasks have the ability to 'skip' objects for any reason). The DSpace core distribution will provide a number of useful tasks, but the system is designed to encourage local extension - tasks can be written for any purpose, and placed in any java package. This gives DSpace sites the ability to customize the behavior of their repository without having to alter - and therefore manage synchronization with - the DSpace source code. What sorts of activities are appropriate for tasks?</p>
|
||||
|
||||
<p>Some examples:</p>
|
||||
|
||||
@@ -75,7 +75,7 @@ div.rbtoc1292518262800 li {margin-left: 0px;padding-left: 0px;}
|
||||
<li>apply a virus scan to item bitstreams (this will be our example below)</li>
|
||||
<li>profile a collection based on format types - good for identifying format migrations</li>
|
||||
<li>ensure a given set of metadata fields are present in every item, or even that they have particular values</li>
|
||||
<li>call a network service to enhance/replace/normalize an items's metadata or content</li>
|
||||
<li>call a network service to enhance/replace/normalize an item's metadata or content</li>
|
||||
<li>ensure all item bitstreams are readable and their checksums agree with the ingest values</li>
|
||||
</ul>
|
||||
|
||||
@@ -95,9 +95,9 @@ org.dspace.curate.ClamScan = vscan
|
||||
</pre>
|
||||
</div></div>
|
||||
|
||||
<p>For each activated task, a 'class'='taskname' line is added. The taskname is used elsewhere to configure the use of the task, as will be seen below. Note that the curate.cfg configuration file, while in the config directory, is located under 'modules'. The intent is that tasks, as well as any configuration they require, will be optional 'add-ons' to the basic system configuration. Adding or removing tasks has no impact on dspace.cfg.</p>
|
||||
<p>For each activated task, a key-value pair is added. The key is the fully qualified class name and the value is the <em>taskname</em> used elsewhere to configure the use of the task, as will be seen below. Note that the curate.cfg configuration file, while in the config directory, is located under 'modules'. The intent is that tasks, as well as any configuration they require, will be optional 'add-ons' to the basic system configuration. Adding or removing tasks has no impact on dspace.cfg.</p>
|
||||
|
||||
<p>For many tasks, this activation configuration is all that will be required to use it. But for others, the task needs specific configuration itself. A concrete example is described below, but here note that these task-specific configuration property files also reside in <tt>[dspace]/config/modules</tt></p>
|
||||
<p>For many tasks, this activation configuration is all that will be required to use it. But for others, the task needs specific configuration itself. A concrete example is described below, but note that these task-specific configuration property files also reside in <tt>[dspace]/config/modules</tt></p>
|
||||
|
||||
<h2><a name="CurationSystem-Writingyourowntasks"></a>Writing your own tasks</h2>
|
||||
|
||||
@@ -137,11 +137,25 @@ org.dspace.curate.ClamScan = vscan
|
||||
<pre class="code-java"> [dspace]/bin/dspace curate -t vscan -i 123456789/4 </pre>
|
||||
</div></div>
|
||||
|
||||
<p>The complete list of arguments:</p>
|
||||
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">
|
||||
-t taskname: name of task to perform
|
||||
-T filename: name of file containing list of tasknames
|
||||
-e epersonID: (email address) will be superuser <span class="code-keyword">if</span> unspecified
|
||||
-i identifier: Id of object to curate. May be (1) a handle (2) a workflow Id or (3) 'all' to operate on the whole repository
|
||||
-q queue: name of queue to process - -i and -q are mutually exclusive
|
||||
-v emit verbose output
|
||||
-r - emit reporting to standard out
|
||||
</pre>
|
||||
</div></div>
|
||||
|
||||
<p>As with other command-line tools, these invocations could be placed in a cron table and run on a fixed schedule, or run on demand by an administrator.</p>
|
||||
|
||||
<h3><a name="CurationSystem-IntheadminUI"></a>In the admin UI</h3>
|
||||
|
||||
<p>In the XMLUI, there is a 'Curate' tab (appearing within the 'Edit Community/Collection/Item') that exposes a drop-down list of configured tasks, with a button to 'perform' the task, or queue it for later operation (see section below). Not all activated tasks need appear in the Curate tab - you filter them by means of a configuration property. This property also permits you to assign to the task a 'prettier' name than the PluginManager task name. The property resides in <tt>[dspace]/config/modules/curate.cfg</tt>:</p>
|
||||
<p>In the XMLUI, there is a 'Curate' tab (appearing within the 'Edit Community/Collection/Item') that exposes a drop-down list of configured tasks, with a button to 'perform' the task, or queue it for later operation (see section below). Not all activated tasks need appear in the Curate tab - you filter them by means of a configuration property. This property also permits you to assign to the task a more user-friendly name than the PluginManager <em>taskname</em>. The property resides in <tt>[dspace]/config/modules/curate.cfg</tt>:</p>
|
||||
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">
|
||||
@@ -151,7 +165,7 @@ ui.tasknames = \
|
||||
</pre>
|
||||
</div></div>
|
||||
|
||||
<p>When a task is selected from the drop-down list and performed, the tab displays both a phrase interpreting the 'status code' of the task execution, and the 'result' message if any has been defined. When the task has been queued, an acknowlegement appears instead. You may configure the words used for status codes in curate.cfg (for clarity, language localization, etc):</p>
|
||||
<p>When a task is selected from the drop-down list and performed, the tab displays both a phrase interpreting the 'status code' of the task execution, and the 'result' message if any has been defined. When the task has been queued, an acknowledgement appears instead. You may configure the words used for status codes in curate.cfg (for clarity, language localization, etc):</p>
|
||||
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">
|
||||
@@ -235,7 +249,7 @@ In the administrative UI curation 'widget', there is the ability to both perform
|
||||
|
||||
<h2><a name="CurationSystem-TaskOutputandReporting"></a>Task Output and Reporting</h2>
|
||||
|
||||
<p>Few assumptions are made by CS about what the 'outcome' of a task may be (if any) - it. could e.g. produce a report to a temporary file. But the CS runtime does provide a few pieces of information that a task can assign:</p>
|
||||
<p>Few assumptions are made by CS about what the 'outcome' of a task may be (if any) - it. could e.g. produce a report to a temporary file, it could modify DSpace content silently, etc But the CS runtime does provide a few pieces of information whenever a task is performed:</p>
|
||||
|
||||
<h3><a name="CurationSystem-StatusCode"></a>Status Code</h3>
|
||||
|
||||
@@ -252,9 +266,11 @@ In the administrative UI curation 'widget', there is the ability to both perform
|
||||
</pre>
|
||||
</div></div>
|
||||
|
||||
<p>In the administrative UI, this code is translated into the word or phrase configured by the <em>ui.statusmessages</em> property (discussed above) for display.</p>
|
||||
|
||||
<h3><a name="CurationSystem-ResultString"></a>Result String</h3>
|
||||
|
||||
<p>The task may define a string indicating details of the outcome. This result is displayed, e.g. in the 'curation widget' described above:</p>
|
||||
<p>The task may define a string indicating details of the outcome. This result is displayed, in the 'curation widget' described above:</p>
|
||||
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">
|
||||
@@ -262,19 +278,20 @@ In the administrative UI curation 'widget', there is the ability to both perform
|
||||
</pre>
|
||||
</div></div>
|
||||
|
||||
<p>CS does not interpret or assign result strings, the task does it.</p>
|
||||
<p>CS does not interpret or assign result strings, the task does it. A task may not assign a result, but the 'best practice' for tasks is to assign one whenever possible.</p>
|
||||
|
||||
<h3><a name="CurationSystem-ReportingStream"></a>Reporting Stream</h3>
|
||||
|
||||
<p>This is not currently fully implemented, just writes to standard out. But if more details should be recorded, they can be pushed to this stream.</p>
|
||||
<p>For very fine-grained information, a task may write to a <em>reporting</em> stream. This stream is sent to standard out, so is only available when running a task from the command line. Unlike the result string, there is no limit to the amount of data that may be pushed to this stream.</p>
|
||||
|
||||
<p>All 3 are accessed (or set) by methods on the Curation object:</p>
|
||||
<p>The status code, and the result string are accessed (or set) by methods on the Curation object:</p>
|
||||
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">
|
||||
Curator curator = <span class="code-keyword">new</span> Curator();
|
||||
curator.addTask(<span class="code-quote">"vscan"</span>).curate(coll);
|
||||
<span class="code-object">int</span> status = curator.getStatus(<span class="code-quote">"vscan"</span>);
|
||||
<span class="code-object">String</span> result - curator.getResult(<span class="code-quote">"vscan"</span>);
|
||||
</pre>
|
||||
</div></div>
|
||||
|
||||
@@ -304,11 +321,11 @@ In the administrative UI curation 'widget', there is the ability to both perform
|
||||
|
||||
<h2><a name="CurationSystem-StarterTasks"></a>Starter Tasks</h2>
|
||||
|
||||
<p>DSpace 1.7 bundles a few tasks and activates 2 by default to demonstrate the use of the curation system. These may be removed (deactivated by means of configuration) if desired without affecting system integrity. Each task is briefly described here.</p>
|
||||
<p>DSpace 1.7 bundles a few tasks and activates two (2) by default to demonstrate the use of the curation system. These may be removed (deactivated by means of configuration) if desired without affecting system integrity. Each task is briefly described here.</p>
|
||||
|
||||
<h3><a name="CurationSystem-BitstreamFormatProfiler"></a>Bitstream Format Profiler</h3>
|
||||
|
||||
<p>The task with the task name 'formatprofiler' (in the admin UI it is labelled "Profile Bitstream Formats") examines all the bitstreams in an item any produces a table ("profile") which is assigned to the result string. It has the layout:</p>
|
||||
<p>The task with the taskname 'formatprofiler' (in the admin UI it is labeled "Profile Bitstream Formats") examines all the bitstreams in an item and produces a table ("profile") which is assigned to the result string. It is activated by default, and is configured to display in the administrative UI. The result string has the layout:</p>
|
||||
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">
|
||||
@@ -327,16 +344,16 @@ In the administrative UI curation 'widget', there is the ability to both perform
|
||||
</pre>
|
||||
</div></div>
|
||||
|
||||
<p>The profiler will operate on any DSpace object. If the object is an item, then only that item's bitstreams are profiled; if a collection, all the bitsteams of all the items; if a community, all the items of all the collections of the community.</p>
|
||||
<p>The profiler will operate on any DSpace object. If the object is an item, then only that item's bitstreams are profiled; if a collection, all the bitstreams of all the items; if a community, all the items of all the collections of the community.</p>
|
||||
|
||||
<h3><a name="CurationSystem-RequiredMetadata"></a>Required Metadata</h3>
|
||||
|
||||
<p>The 'requiredmetadata' task examines item metadata and determines whether fields that the web submission (input-forms.xml) marks as required are present. It sets the result string to either indicate that all required fields are present, or constructs a list of metadata elements that are required but missing.</p>
|
||||
<p>The 'requiredmetadata' task examines item metadata and determines whether fields that the web submission (input-forms.xml) marks as required are present. It sets the result string to indicate either that all required fields are present, or constructs a list of metadata elements that are required but missing. When the task is performed on an item, it will display the result for that item. When performed on a collection or community, the task be performed on each item, and will display the <em>last</em> item result. If all items in the community or collection have all required fields, that will be the last in the collection. If the task fails for any item (i.e. the item lacks all required fields), the process is halted. This way the results for the 'failed' items are not lost.</p>
|
||||
|
||||
<h3><a name="CurationSystem-VirusScan"></a>Virus Scan</h3>
|
||||
|
||||
<p>The 'vscan' task performs a virus scan on the bitstreams of items using the ClamAV software product.<br/>
|
||||
Clam AntiVirus is an open source (GPL) anti-virus toolkit for UNIX. The virus scanning curation task interacts with the ClamAV virus scanning service to scan the bitstreams contained in items, reporting on infection(s). Like other curation tasks, it can be run against a container or item, in the GUI or from the command line. It should be installed according to the documentation at <a href="http://www.clamav.net/">http://www.clamav.net</a>. It should not be installed in the dspace installation directory. You may install it on the same machine as your dspace installation, or on another machine which has been configured properly.</p>
|
||||
Clam AntiVirus is an open source (GPL) anti-virus toolkit for UNIX. A port for Windows is also available. The virus scanning curation task interacts with the ClamAV virus scanning service to scan the bitstreams contained in items, reporting on infection(s). Like other curation tasks, it can be run against a container or item, in the GUI or from the command line. It should be installed according to the documentation at <a href="http://www.clamav.net/">http://www.clamav.net</a>. It should not be installed in the dspace installation directory. You may install it on the same machine as your dspace installation, or on another machine which has been configured properly.</p>
|
||||
|
||||
<h4><a name="CurationSystem-SetuptheservicefromtheClamAVdocumentation."></a>Setup the service from the ClamAV documentation.</h4>
|
||||
|
||||
@@ -490,7 +507,7 @@ Change only <span class="code-keyword">if</span> items have large numbers of bit
|
||||
<td height="12" background="https://wiki.duraspace.org/images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Dec 16, 2010 11:47</font></td>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Mar 25, 2011 19:21</font></td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
|
@@ -16,7 +16,7 @@
|
||||
</span>
|
||||
</div>
|
||||
<div class="pagesubheading">
|
||||
This page last changed on Dec 15, 2010 by <font color="#0050B2">tdonohue</font>.
|
||||
This page last changed on Feb 17, 2011 by <font color="#0050B2">helix84</font>.
|
||||
</div>
|
||||
|
||||
<h1><a name="DRISchemaReference-DSpaceSystemDocumentation%3ADRISchemaReference"></a>DSpace System Documentation: DRI Schema Reference</h1>
|
||||
@@ -25,11 +25,11 @@
|
||||
|
||||
<p><b>Table of Contents:</b></p>
|
||||
<style type='text/css'>/*<![CDATA[*/
|
||||
div.rbtoc1292436648637 {margin-left: 0px;padding: 0px;}
|
||||
div.rbtoc1292436648637 ul {list-style: none;margin-left: 0px;}
|
||||
div.rbtoc1292436648637 li {margin-left: 0px;padding-left: 0px;}
|
||||
div.rbtoc1297952110371 {margin-left: 0px;padding: 0px;}
|
||||
div.rbtoc1297952110371 ul {list-style: none;margin-left: 0px;}
|
||||
div.rbtoc1297952110371 li {margin-left: 0px;padding-left: 0px;}
|
||||
|
||||
/*]]>*/</style><div class='rbtoc1292436648637'>
|
||||
/*]]>*/</style><div class='rbtoc1297952110371'>
|
||||
<ul>
|
||||
<li><span class='TOCOutline'>1</span> <a href='#DRISchemaReference-Introduction'>Introduction</a></li>
|
||||
<ul>
|
||||
@@ -104,7 +104,7 @@ div.rbtoc1292436648637 li {margin-left: 0px;padding-left: 0px;}
|
||||
|
||||
<p>The DRI schema was developed for use in Manakin. The choice to develop our own schema rather than adapt an existing one came after a careful analysis of the schema's purpose as well as the lessons learned from earlier attempts at customizing the DSpace interface. Since every DSpace page in Manakin exists as an XML Document at some point in the process, the schema describing that Document had to be able to structurally represent all content, metadata and relationships between different parts of a DSpace page. It had to be precise enough to avoid losing any structural information, and yet generic enough to allow Themes a certain degree of freedom in expressing that information in a readable format.</p>
|
||||
|
||||
<p>Popular schemas such as XHTML suffer from the problem of not relating elements together explicitly. For example, if a heading precedes a paragraph, the heading is related to the paragraph not because it is encoded as such but because it happens to precede it. When these structures are attempted to be translated into formats where these types of relationships are explicit, the translation becomes tedious, and potentially problematic. More structured schemas, like TEI or Docbook, are domain specific (much like DRI itself) and therefore not suitable for our purposes.</p>
|
||||
<p>Popular schemas such as XHTML suffer from the problem of not relating elements together explicitly. For example, if a heading precedes a paragraph, the heading is related to the paragraph not because it is encoded as such but because it happens to precede it. When these structures are attempted to be translated into formats where these types of relationships are explicit, the translation becomes tedious, and potentially problematic. More structured schemas, like TEI or DocBook, are domain specific (much like DRI itself) and therefore not suitable for our purposes.</p>
|
||||
|
||||
<p>We also decided that the schema should natively support a metadata standard for encoding artifacts. Rather than encoding artifact metadata in structural elements, like tables or lists, the schema would include artifacts as objects encoded in a particular standard. The inclusion of metadata in native format would enable the Theme to choose the best method to render the artifact for display without being tied to a particular structure.</p>
|
||||
|
||||
@@ -199,7 +199,7 @@ div.rbtoc1292436648637 li {margin-left: 0px;padding-left: 0px;}
|
||||
|
||||
<h3><a name="DRISchemaReference-Changesfrom1.0to1.1"></a>Changes from 1.0 to 1.1</h3>
|
||||
|
||||
<p>There were major structural changes between these two version numbers. Several elements were removed from the schema:<em>includeSet</em>, <em>include</em>, <em>objectMeta</em>, and <em>object</em>. Originally all metadata for objects were included in-line with the DRI document, this proved to have several problems and has been removed in version 1.1 of the DRI schema. Instead of including metadata in-line, external references to the metadata is included. Thus, a <em>reference</em> element has been added along with <em>referenceSet</em>. These new elements operate like their counterparts in the previous version except refrencing metadata contained on the <em>objectMeta</em> element they reference metadata in external files. The <em>repository</em> and <em>repositoryMeta</em> elements were alse modified in a similar mannor removing in-line metadata and refrencing external metadata documents.</p>
|
||||
<p>There were major structural changes between these two version numbers. Several elements were removed from the schema:<em>includeSet</em>, <em>include</em>, <em>objectMeta</em>, and <em>object</em>. Originally all metadata for objects were included in-line with the DRI document, this proved to have several problems and has been removed in version 1.1 of the DRI schema. Instead of including metadata in-line, external references to the metadata is included. Thus, a <em>reference</em> element has been added along with <em>referenceSet</em>. These new elements operate like their counterparts in the previous version except refrencing metadata contained on the <em>objectMeta</em> element they reference metadata in external files. The <em>repository</em> and <em>repositoryMeta</em> elements were alse modified in a similar manner removing in-line metadata and refrencing external metadata documents.</p>
|
||||
|
||||
|
||||
|
||||
@@ -1751,7 +1751,7 @@ Example needed.
|
||||
|
||||
<pageMeta>
|
||||
|
||||
<metadata element=<span class="code-quote">"title"</span>>Examlpe DRI
|
||||
<metadata element=<span class="code-quote">"title"</span>>Example DRI
|
||||
page</metadata>
|
||||
|
||||
<metadata
|
||||
@@ -1799,7 +1799,7 @@ Example needed.
|
||||
<li><b>cols</b>: (optional) The default number of columns that the text area should span. This applies only to textarea field types.</li>
|
||||
<li><b>maxlength</b>: (optional) The maximum length that the theme should accept for form input. This applies to text and password field types.</li>
|
||||
<li><b>multiple</b>: (optional) yes/no value. Determine if the field can accept multiple values for the field. This applies only to select lists.</li>
|
||||
<li><b>operations</b>: (optional) The possible operations that may be preformed on this field. The possible values are "add" and/or "delete". If both operations are possible then they should be provided as a space separated list.The "add" operations indicates that there may be multiple values for this field and the user may add to the set one at a time. The front-end should render a button that enables the user to add more fields to the set. The button must be named the field name appended with the string "_add", thus if the field's name is "firstName" the button must be called "firstName_add".The "delete" operation indicates that there may be multiple values for this field each of which may be removed from the set. The front-end should render a checkbox by each field value, except for the first, The checkbox must be named the field name appended with the string "_selected", thus if the field's name is "firstName" the checkbox must be called "firstName_selected" and the value of each successive checkbox should be the field name. The front-end must also render a delete button. The delete button name must be the field's name appended with the string "_delete".</li>
|
||||
<li><b>operations</b>: (optional) The possible operations that may be preformed on this field. The possible values are "add" and/or "delete". If both operations are possible then they should be provided as a space separated list. The "add" operations indicates that there may be multiple values for this field and the user may add to the set one at a time. The front-end should render a button that enables the user to add more fields to the set. The button must be named the field name appended with the string "_add", thus if the field's name is "firstName" the button must be called "firstName_add".The "delete" operation indicates that there may be multiple values for this field each of which may be removed from the set. The front-end should render a checkbox by each field value, except for the first, The checkbox must be named the field name appended with the string "_selected", thus if the field's name is "firstName" the checkbox must be called "firstName_selected" and the value of each successive checkbox should be the field name. The front-end must also render a delete button. The delete button name must be the field's name appended with the string "_delete".</li>
|
||||
<li><b>rows</b>: (optional) The default number of rows that the text area should span. This applies only to textarea field types.</li>
|
||||
<li><b>size</b>: (optional) The default size for a field. This applies to text, password, and select field types.</li>
|
||||
</ul>
|
||||
@@ -1830,7 +1830,7 @@ Example needed.
|
||||
|
||||
<p>Metadata Reference Element</p>
|
||||
|
||||
<p><em>reference</em> is a reference element used to access information stored in an extarnal metadata file. The <em>url</em> attribute is used to locate the external metadata file. The <em>type</em> attribute provides a short limited description of the referenced object's type.</p>
|
||||
<p><em>reference</em> is a reference element used to access information stored in an external metadata file. The <em>url</em> attribute is used to locate the external metadata file. The <em>type</em> attribute provides a short limited description of the referenced object's type.</p>
|
||||
|
||||
<p><em>reference</em> elements can be both contained by <em>includeSet</em> elements and contain <em>includeSets</em> themselves, making the structure recursive.</p>
|
||||
|
||||
@@ -1969,7 +1969,7 @@ Example needed.
|
||||
|
||||
<p>Metadata Element</p>
|
||||
|
||||
<p>The <em>repositoryMeta</em> element contains metadata refernces about the repositories used in the used or referenced in the document. It can contain any number of <em>repository</em> elements.</p>
|
||||
<p>The <em>repositoryMeta</em> element contains metadata references about the repositories used in the used or referenced in the document. It can contain any number of <em>repository</em> elements.</p>
|
||||
|
||||
<p>See the <em>repository</em> tag entry for more information on the structure of <em>repository</em> elements.</p>
|
||||
|
||||
@@ -2169,7 +2169,7 @@ Example needed.
|
||||
<pre class="code-java">
|
||||
<pageMeta>
|
||||
|
||||
<metadata element=<span class="code-quote">"title"</span>>Examlpe DRI
|
||||
<metadata element=<span class="code-quote">"title"</span>>Example DRI
|
||||
page</metadata>
|
||||
|
||||
<metadata
|
||||
@@ -2353,10 +2353,7 @@ Example needed.
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">
|
||||
<p>
|
||||
|
||||
<xref target=<span class="code-quote">"/url/link/target"</span>>This text is shown as a
|
||||
link.</xref>
|
||||
|
||||
<xref target=<span class="code-quote">"/url/link/target"</span>>This text is shown as a link.</xref>
|
||||
</p>
|
||||
</pre>
|
||||
</div></div>
|
||||
@@ -2383,7 +2380,7 @@ Example needed.
|
||||
<td height="12" background="https://wiki.duraspace.org/images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Dec 16, 2010 11:47</font></td>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Mar 25, 2011 19:21</font></td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
|
@@ -1039,7 +1039,7 @@ aip.disseminate.rightsMD = DSpaceDepositLicense:DSPACE_DEPLICENSE, \
|
||||
<td height="12" background="https://wiki.duraspace.org/images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Dec 16, 2010 11:47</font></td>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Mar 25, 2011 19:21</font></td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
|
@@ -16,27 +16,31 @@
|
||||
</span>
|
||||
</div>
|
||||
<div class="pagesubheading">
|
||||
This page last changed on Dec 15, 2010 by <font color="#0050B2">tdonohue</font>.
|
||||
This page last changed on Mar 07, 2011 by <font color="#0050B2">awoods</font>.
|
||||
</div>
|
||||
|
||||
<h1><a name="DSpaceServicesFramework-DSpaceServicesFramework"></a>DSpace Services Framework</h1>
|
||||
|
||||
<style type='text/css'>/*<![CDATA[*/
|
||||
div.rbtoc1292438324227 {margin-left: 0px;padding: 0px;}
|
||||
div.rbtoc1292438324227 ul {list-style: none;margin-left: 0px;}
|
||||
div.rbtoc1292438324227 li {margin-left: 0px;padding-left: 0px;}
|
||||
div.rbtoc1299540788527 {margin-left: 0px;padding: 0px;}
|
||||
div.rbtoc1299540788527 ul {list-style: none;margin-left: 0px;}
|
||||
div.rbtoc1299540788527 li {margin-left: 0px;padding-left: 0px;}
|
||||
|
||||
/*]]>*/</style><div class='rbtoc1292438324227'>
|
||||
/*]]>*/</style><div class='rbtoc1299540788527'>
|
||||
<ul>
|
||||
<li><span class='TOCOutline'>1</span> <a href='#DSpaceServicesFramework-ConfiguringEventListeners'>Configuring Event Listeners</a></li>
|
||||
<li><span class='TOCOutline'>2</span> <a href='#DSpaceServicesFramework-ArchitecturalOverview'>Architectural Overview</a></li>
|
||||
<li><span class='TOCOutline'>1</span> <a href='#DSpaceServicesFramework-ArchitecturalOverview'>Architectural Overview</a></li>
|
||||
<ul>
|
||||
<li><span class='TOCOutline'>2.1</span> <a href='#DSpaceServicesFramework-DSpaceKernel'>DSpace Kernel</a></li>
|
||||
<li><span class='TOCOutline'>1.1</span> <a href='#DSpaceServicesFramework-DSpaceKernel'>DSpace Kernel</a></li>
|
||||
<ul>
|
||||
<li><span class='TOCOutline'>2.1.1</span> <a href='#DSpaceServicesFramework-Kernelregistration'>Kernel registration</a></li>
|
||||
<li><span class='TOCOutline'>2.1.2</span> <a href='#DSpaceServicesFramework-KernelStartupandAccess'>Kernel Startup and Access</a></li>
|
||||
<li><span class='TOCOutline'>1.1.1</span> <a href='#DSpaceServicesFramework-Kernelregistration'>Kernel registration</a></li>
|
||||
</ul>
|
||||
<li><span class='TOCOutline'>2.2</span> <a href='#DSpaceServicesFramework-ServiceManager'>Service Manager</a></li>
|
||||
<li><span class='TOCOutline'>1.2</span> <a href='#DSpaceServicesFramework-ServiceManager'>Service Manager</a></li>
|
||||
</ul>
|
||||
<li><span class='TOCOutline'>2</span> <a href='#DSpaceServicesFramework-BasicUsage'>Basic Usage</a></li>
|
||||
<ul>
|
||||
<li><span class='TOCOutline'>2.1</span> <a href='#DSpaceServicesFramework-StandaloneApplications'> Standalone Applications</a></li>
|
||||
<li><span class='TOCOutline'>2.2</span> <a href='#DSpaceServicesFramework-ApplicationFrameworks%28Spring%2CGuice%2Cetc.%29'>Application Frameworks (Spring, Guice, etc.)</a></li>
|
||||
<li><span class='TOCOutline'>2.3</span> <a href='#DSpaceServicesFramework-WebApplications'>Web Applications</a></li>
|
||||
</ul>
|
||||
<li><span class='TOCOutline'>3</span> <a href='#DSpaceServicesFramework-ProvidersandPlugins'>Providers and Plugins</a></li>
|
||||
<ul>
|
||||
@@ -50,32 +54,14 @@ div.rbtoc1292438324227 li {margin-left: 0px;padding-left: 0px;}
|
||||
<li><span class='TOCOutline'>4.3</span> <a href='#DSpaceServicesFramework-EventService'>EventService</a></li>
|
||||
<li><span class='TOCOutline'>4.4</span> <a href='#DSpaceServicesFramework-RequestService'>RequestService</a></li>
|
||||
<li><span class='TOCOutline'>4.5</span> <a href='#DSpaceServicesFramework-SessionService'>SessionService</a></li>
|
||||
</ul>
|
||||
<li><span class='TOCOutline'>5</span> <a href='#DSpaceServicesFramework-Examples'>Examples</a></li>
|
||||
<ul>
|
||||
<li><span class='TOCOutline'>5.1</span> <a href='#DSpaceServicesFramework-ConfiguringEventListeners'>Configuring Event Listeners</a></li>
|
||||
</ul>
|
||||
</ul></div>
|
||||
|
||||
<h2><a name="DSpaceServicesFramework-ConfiguringEventListeners"></a>Configuring Event Listeners</h2>
|
||||
|
||||
<p>Event Listeners can be created by overriding the the EventListener interface:</p>
|
||||
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">
|
||||
<?xml version=<span class="code-quote">"1.0"</span> encoding=<span class="code-quote">"UTF-8"</span>?>
|
||||
<beans>
|
||||
|
||||
<bean id=<span class="code-quote">"dspace"</span> class=<span class="code-quote">"org.dspace.utils.DSpace"</span>/>
|
||||
|
||||
<bean id=<span class="code-quote">"dspace.eventService"</span>
|
||||
factory-bean=<span class="code-quote">"dspace"</span>
|
||||
factory-method=<span class="code-quote">"getEventService"</span>/>
|
||||
|
||||
<bean class=<span class="code-quote">"org.my.EventListener"</span>>
|
||||
<property name=<span class="code-quote">"eventService"</span> >
|
||||
<ref bean=<span class="code-quote">"dspace.eventService"</span>/>
|
||||
</property>
|
||||
</bean>
|
||||
</beans>
|
||||
</pre>
|
||||
</div></div>
|
||||
<p>The DSpace Services Framework is a backporting of the DSpace 2.0 Development Group's work in creating a reasonable and abstractable "Core Services" layer for DSpace components to operate within. The Services Framework represents a "best practice" for new DSpace architecture and implementation of extensions to the DSpace application. DSpace Services are best described as a "Simple Registry" where plugins <del>FIXME</del>. The DS2 (<a href="http://wiki.dspace.org/index.php/DSpace_2.0">DSpace 2.0</a>) core services are the main services that make up a DS2 system. These includes services for things like user and permissions management and storage and caching. These services can be used by any developer writing DS2 plugins (e.g. statistics), providers (e.g. authentication), or user interfaces (e.g. JSPUI).</p>
|
||||
|
||||
<h2><a name="DSpaceServicesFramework-ArchitecturalOverview"></a>Architectural Overview</h2>
|
||||
|
||||
@@ -85,11 +71,27 @@ div.rbtoc1292438324227 li {margin-left: 0px;padding-left: 0px;}
|
||||
|
||||
<h4><a name="DSpaceServicesFramework-Kernelregistration"></a>Kernel registration</h4>
|
||||
|
||||
<p>The kernel will automatically register itself as an MBean in when it starts up so that it can be managed. It allows startup and shutdown and provides direct access to the ServiceManager and the ConfigurationService. All the other core services can be retrieved from the ServiceManager by their APIs. <span class="image-wrap" style="display: block; text-align: center"><img src="attachments/22022824/21954868.png" style="border: 0px solid black"/></span></p>
|
||||
<p>The kernel will automatically register itself as an MBean when it starts up so that it can be managed via <a href="http://www.oracle.com/technetwork/java/javase/tech/docs-jsp-135989.html">JMX</a>. It allows startup and shutdown and provides direct access to the ServiceManager and the ConfigurationService. All the other core services can be retrieved from the ServiceManager by their APIs. <span class="image-wrap" style="display: block; text-align: center"><img src="attachments/22022824/21954868.png" style="border: 0px solid black"/></span></p>
|
||||
|
||||
<h4><a name="DSpaceServicesFramework-KernelStartupandAccess"></a>Kernel Startup and Access</h4>
|
||||
<h3><a name="DSpaceServicesFramework-ServiceManager"></a>Service Manager</h3>
|
||||
|
||||
<p>The kernel can be started and accessed through the use of Servlet Filter/ContextListeners which are provided as part of the DSpace 2 utilities. Developers don't need to understand what is going on behind the scenes and can simply write their applications and package them as webapps and take advantage of the services which are offered by DSpace 2. Access to the kernel is provided via the Kernel Manager and the DSpace object which will locate the kernel object and allow it to be used. </p>
|
||||
|
||||
<p>The ServiceManager abstracts the concepts of service lookups and lifecycle control. It also manages the configuration of services by allowing properties to be pushed into the services as they start up (mostly from the ConfigurationService). The ServiceManagerSystem abstraction allows the DSpace ServiceManager to use different systems to manage its services. The current implementations include Spring and Guice. This allows DSpace 2 to have very little service management code but still be flexible and not tied to specific technology. Developers who are comfortable with those technologies can consume the services from a parent Spring ApplicationContext or a parent Guice Module. The abstraction also means that we can replace Spring/Guice or add other dependency injection systems later without requiring developers to change their code. The interface provides simple methods for looking up services by interface type for developers who do not want to have to use or learn a dependency injection system or are using one which is not currently supported.</p>
|
||||
|
||||
|
||||
<p><span class="image-wrap" style="display: block; text-align: center"><img src="attachments/22022824/21954867.png" height="332" width="445" style="border: 0px solid black"/></span></p>
|
||||
|
||||
<p>The DS2 kernel is compact so it can be completely started up in a unit test (technically integration test) environment. (This is how we test the kernel and core services currently). This allows developers to execute code against a fully functional kernel while developing and then deploy their code with high confidence.</p>
|
||||
|
||||
<h2><a name="DSpaceServicesFramework-BasicUsage"></a>Basic Usage</h2>
|
||||
|
||||
<p>To use the Framework you must begin by instantiating and starting a DSpaceKernel. The kernel will give you references to the ServiceManager and the ConfigurationService. The ServiceManager can be used to get references to other services and to register services which are not part of the core set.</p>
|
||||
|
||||
<p>Access to the kernel is provided via the Kernel Manager through the DSpace object, which will locate the kernel object and allow it to be used.</p>
|
||||
|
||||
<h3><a name="DSpaceServicesFramework-StandaloneApplications"></a><a name="DSpaceServicesFramework-standalone"></a>Standalone Applications</h3>
|
||||
|
||||
<p>For standalone applications, access to the kernel is provided via the Kernel Manager and the DSpace object which will locate the kernel object and allow it to be used.</p>
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">
|
||||
/* Instantiate the Utility <span class="code-object">Class</span> */
|
||||
@@ -100,22 +102,30 @@ DSpace dspace = <span class="code-keyword">new</span> DSpace();
|
||||
ServiceManager manager = dspace.getServiceManager();
|
||||
|
||||
|
||||
/* Or access by convenience method <span class="code-keyword">for</span> <span class="code-keyword">default</span> services */
|
||||
/* Or access by convenience method <span class="code-keyword">for</span> core services */
|
||||
EventService service = dspace.getEventService();
|
||||
|
||||
</pre>
|
||||
</div></div>
|
||||
|
||||
<p>The DSpace launcher (</p>
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">bin/dspace</pre>
|
||||
</div></div>
|
||||
<p>) initializes a kernel before dispatching to the selected command.</p>
|
||||
|
||||
<h3><a name="DSpaceServicesFramework-ServiceManager"></a>Service Manager</h3>
|
||||
<h3><a name="DSpaceServicesFramework-ApplicationFrameworks%28Spring%2CGuice%2Cetc.%29"></a>Application Frameworks (Spring, Guice, etc.)</h3>
|
||||
|
||||
<p>Similar to <a href="#DSpaceServicesFramework-standalone">Standalone Applications</a>, but you can use your framework to instantiate an <tt>org.dspace.utils.DSpace</tt> object.</p>
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-xml">
|
||||
<span class="code-tag"><bean id=<span class="code-quote">"dspace"</span> class=<span class="code-quote">"org.dspace.utils.DSpace"</span>/></span>
|
||||
</pre>
|
||||
</div></div>
|
||||
|
||||
<p>The ServiceManager abstracts the concepts of service lookups and lifecycle control. It also manages the configuration of services by allowing properties to be pushed into the services as they start up (mostly from the ConfigurationService). The ServiceManagerSystem abstraction allows the DSpace ServiceManager to use different systems to manage it's services. The current implementations include Spring and Guice. This allows DSpace 2 to have very little service management code but still be flexible and not tied to specific technology. Developers who are comfortable with those technologies can consume the services from a parent Spring ApplicationContext or a parent Guice Module. The abstraction also means that we can replace Spring/Guice or add other dependency injection systems later without requiring developers to change their code. The interface provides simple methods for looking up services by interface type for developers who do not want to have to use or learn a dependency injection system or are using one which is not currently supported.</p>
|
||||
<h3><a name="DSpaceServicesFramework-WebApplications"></a>Web Applications</h3>
|
||||
|
||||
<p>In web applications, the kernel can be started and accessed through the use of Servlet Filter/ContextListeners which are provided as part of the DSpace 2 utilities. Developers don't need to understand what is going on behind the scenes and can simply write their applications and package them as webapps and take advantage of the services which are offered by DSpace 2.</p>
|
||||
|
||||
<p><span class="image-wrap" style="display: block; text-align: center"><img src="attachments/22022824/21954867.png" height="332" width="445" style="border: 0px solid black"/></span></p>
|
||||
|
||||
<p>The DS2 kernel is compact so it can be completely started up in a unit test (technically integration test) environment (this is who we test the kernel and core services currently). This allows developers to execute code against a fully functional kernel while developing and then deploy their code with high confidence.</p>
|
||||
|
||||
<h2><a name="DSpaceServicesFramework-ProvidersandPlugins"></a>Providers and Plugins</h2>
|
||||
|
||||
@@ -123,20 +133,16 @@ EventService service = dspace.getEventService();
|
||||
|
||||
<h3><a name="DSpaceServicesFramework-Activators"></a>Activators</h3>
|
||||
|
||||
<p>Developers can use an activator to allow the system to startup their service or provider. It is a simple interface with 2 methods which are called to startup the provider(s) and later to shut them down. These simply allow a developer to run some arbitrary code in order to create and register services if desired. It is the method provided to add plugins directly to the system via configuration as the activators are just listed in the configuration file and the system starts them up in the order it finds them.</p>
|
||||
<p>Developers can provide an activator to allow the system to startup their service or provider. It is a simple interface with 2 methods which are called by the ServiceManager to startup the provider(s) and later to shut them down. These simply allow a developer to run some arbitrary code in order to create and register services if desired. It is the method provided to add plugins directly to the system via configuration as the activators are just listed in the configuration file and the system starts them up in the order it finds them.</p>
|
||||
|
||||
<h3><a name="DSpaceServicesFramework-ProviderStacks"></a>Provider Stacks</h3>
|
||||
|
||||
<p>Utilities are provided to assist with stacking and ordering providers. The priority is handled via a priority number such that 1 is the highest priority and something like 10 would be lower. 0 indicates that priority is not important for this service and can be used to ensure the provider is placed at or near the end without having to set some arbitrarily high number.</p>
|
||||
<p>Utilities are provided to assist with stacking and ordering providers. Ordering is handled via a priority number such that 1 is the highest priority and something like 10 would be lower. 0 indicates that priority is not important for this service and can be used to ensure the provider is placed at or near the end without having to set some arbitrarily high number.</p>
|
||||
|
||||
|
||||
|
||||
|
||||
<p>The DSpace Services Framework is a backporting of the DSpace 2.0 Development Groups work in creating a reasonable and abstractable "Core Services" layer for DSpace components to operate within. The Services Framework represents a "best practices" for new DSpace architecture and implementation of exentsions to the DSpace application. DSpace Services are best described as a "Simple Registry" where plugins. The DS2 (<a href="http://wiki.dspace.org/index.php/DSpace_2.0">DSpace 2.0</a>) core services are the main services that make up a DS2 system. These includes services for things like user and permissions management and storage and caching. These services can be used by any developer writing DS2 plugins (e.g. statistics), providers (e.g. Authn), or user interfaces (e.g. JSPUI).</p>
|
||||
|
||||
<h2><a name="DSpaceServicesFramework-CoreServices"></a>Core Services</h2>
|
||||
|
||||
<p>The core services are all behind APIs so that they can be reimplemented without affecting developers who are using the services. Most of the services have plugin/provider points so that customizations can be added into the system without touching the core services code. For example, let's say a deployer has a specialized authentication system and wants to manage the authentication calls which come into the system. The implementor can simply implement an AuthenticationProvider and then register it with the DS2 kernel ServiceManager. This can be done at any time and does not have to be done during Kernel startup. This allows providers to be swapped out at runtime without disrupting the DS2 service if desired. It can also speed up development by allowing quick hot redeploys of code during development.</p>
|
||||
<p>The core services are all behind APIs so that they can be reimplemented without affecting developers who are using the services. Most of the services have plugin/provider points so that customizations can be added into the system without touching the core services code. For example, let's say a deployer has a specialized authentication system and wants to manage the authentication calls which come into the system. The implementor can simply implement an AuthenticationProvider and then register it with the DS2 kernel's ServiceManager. This can be done at any time and does not have to be done during Kernel startup. This allows providers to be swapped out at runtime without disrupting the DS2 service if desired. It can also speed up development by allowing quick hot redeploys of code during development.</p>
|
||||
|
||||
<h3><a name="DSpaceServicesFramework-CachingService"></a>Caching Service</h3>
|
||||
|
||||
@@ -144,7 +150,7 @@ EventService service = dspace.getEventService();
|
||||
|
||||
<h3><a name="DSpaceServicesFramework-ConfigurationService"></a>Configuration Service</h3>
|
||||
|
||||
<p>The ConfigurationService controls the external and internal configuration of DSpace 2. It reads in properties files when the kernel starts up and merges them with any dynamic configuration data which is available from the services. The service allows settings to be updated as the system is running and also provides listeners which allow services to know when their configuration settings have changed and take action if desired. It is the central point to access and manage all the configuration settings in DSpace 2.</p>
|
||||
<p>The ConfigurationService controls the external and internal configuration of DSpace 2. It reads Properties files when the kernel starts up and merges them with any dynamic configuration data which is available from the services. This service allows settings to be updated as the system is running, and also defines listeners which allow services to know when their configuration settings have changed and take action if desired. It is the central point to access and manage all the configuration settings in DSpace 2.</p>
|
||||
|
||||
<p>Manages the configuration of the DSpace 2 system. Can be used to manage configuration for providers and plugins also.</p>
|
||||
|
||||
@@ -155,13 +161,65 @@ EventService service = dspace.getEventService();
|
||||
|
||||
<h3><a name="DSpaceServicesFramework-RequestService"></a>RequestService</h3>
|
||||
|
||||
<p>In DS2 a request is the concept of a request (HTTP) or an atomic transaction in the system. It is likely to be an HTTP request in many cases but it does not have to be. This service provides the core services with a way to manage atomic transactions so that when a request comes in which requires mutliple things to happen they can either all suceed or all fail without each service attempting to manage this independently. In a nutshell this simply allows identification of the current request and the ability to discover if it succeeded or failed when it ends. Nothing in the system will enforce usage of the service but we encourage developers who are interacting with the system to make use of this service so they know if the request they are participating in with has succeeded or failed and take appropriate actions.</p>
|
||||
<p>In DS2 a request is an atomic transaction in the system. It is likely to be an HTTP request in many cases but it does not have to be. This service provides the core services with a way to manage atomic transactions so that when a request comes in which requires multiple things to happen they can either all succeed or all fail without each service attempting to manage this independently. In a nutshell this simply allows identification of the current request and the ability to discover if it succeeded or failed when it ends. Nothing in the system will enforce usage of the service, but we encourage developers who are interacting with the system to make use of this service so they know if the request they are participating in with has succeeded or failed and can take appropriate actions.</p>
|
||||
|
||||
|
||||
<h3><a name="DSpaceServicesFramework-SessionService"></a>SessionService</h3>
|
||||
|
||||
<p>In DS2 a session is like an HttpSession (and generally is actually one) so this service is here to allow developers to find information about the current session and to access information in it. The session identifies the current user (if authenticated) so it also serves as a way to track user sessions. Since we use HttpSession directly it is easy to mirror sessions across multiple servers in order to allow for no-interruption failover for users when servers go offline.</p>
|
||||
|
||||
<h2><a name="DSpaceServicesFramework-Examples"></a>Examples</h2>
|
||||
|
||||
<h3><a name="DSpaceServicesFramework-ConfiguringEventListeners"></a>Configuring Event Listeners</h3>
|
||||
|
||||
<p>Event Listeners can be created by overriding the the EventListener interface:</p>
|
||||
|
||||
<p>In Spring:</p>
|
||||
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-xml">
|
||||
<span class="code-tag"><?xml version=<span class="code-quote">"1.0"</span> encoding=<span class="code-quote">"UTF-8"</span>?></span>
|
||||
<span class="code-tag"><beans></span>
|
||||
|
||||
<span class="code-tag"><bean id=<span class="code-quote">"dspace"</span> class=<span class="code-quote">"org.dspace.utils.DSpace"</span>/></span>
|
||||
|
||||
<bean id=<span class="code-quote">"dspace.eventService"</span>
|
||||
factory-bean=<span class="code-quote">"dspace"</span>
|
||||
factory-method=<span class="code-quote">"getEventService"</span>/>
|
||||
|
||||
<span class="code-tag"><bean class=<span class="code-quote">"org.my.EventListener"</span>></span>
|
||||
<span class="code-tag"><property name=<span class="code-quote">"eventService"</span> ></span>
|
||||
<span class="code-tag"><ref bean=<span class="code-quote">"dspace.eventService"</span>/></span>
|
||||
<span class="code-tag"></property></span>
|
||||
<span class="code-tag"></bean></span>
|
||||
<span class="code-tag"></beans></span>
|
||||
</pre>
|
||||
</div></div>
|
||||
|
||||
<p>(org.my.EventListener will need to register itself with the EventService, for which it is passed a reference to that service via the eventService property.)</p>
|
||||
|
||||
<p>or in Java:</p>
|
||||
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">
|
||||
DSpace dspace = <span class="code-keyword">new</span> DSpace();
|
||||
|
||||
EventService eventService = dspace.getEventService();
|
||||
|
||||
EventListener listener = <span class="code-keyword">new</span> org.my.EventListener();
|
||||
eventService.registerEventListener(listener);
|
||||
</pre>
|
||||
</div></div>
|
||||
|
||||
<p>(This registers the listener externally – the listener code assumes it is registered.)</p>
|
||||
|
||||
|
||||
<p><em>TODO: examples in Guice</em></p>
|
||||
|
||||
<p><em>TODO: examples of implementing and registering configurations in Spring and Guice</em></p>
|
||||
|
||||
<p><em>TBS: how we did X before : how we do it using the Framework</em></p>
|
||||
|
||||
<br/>
|
||||
<div class="tabletitle">
|
||||
<a name="attachments">Attachments:</a>
|
||||
@@ -190,7 +248,7 @@ EventService service = dspace.getEventService();
|
||||
<td height="12" background="https://wiki.duraspace.org/images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Dec 16, 2010 11:47</font></td>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Mar 25, 2011 19:21</font></td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
|
@@ -16,32 +16,115 @@
|
||||
</span>
|
||||
</div>
|
||||
<div class="pagesubheading">
|
||||
This page last changed on Nov 17, 2010 by <font color="#0050B2">tdonohue</font>.
|
||||
This page last changed on Jan 14, 2011 by <font color="#0050B2">benbosman</font>.
|
||||
</div>
|
||||
|
||||
<h1><a name="DSpaceStatistics-DSpaceStatistics"></a>DSpace Statistics</h1>
|
||||
|
||||
<p>DSpace uses the Apache Solr application underlaying the statistics. There is no need to download any separate software. All the necessary software is included.</p>
|
||||
<p>DSpace 1.6 and newer versions uses the Apache SOLR application underlying the statistics. SOLR enables performant searching and adding to vast amounts of (usage) data.<br/>
|
||||
Unlike previous versions, enabling statistics in DSpace does not require additional installation or customization. All the necessary software is included.</p>
|
||||
|
||||
<style type='text/css'>/*<![CDATA[*/
|
||||
div.rbtoc1290016976036 {margin-left: 0px;padding: 0px;}
|
||||
div.rbtoc1290016976036 ul {list-style: none;margin-left: 0px;}
|
||||
div.rbtoc1290016976036 li {margin-left: 0px;padding-left: 0px;}
|
||||
div.rbtoc1295025180569 {margin-left: 0px;padding: 0px;}
|
||||
div.rbtoc1295025180569 ul {list-style: none;margin-left: 0px;}
|
||||
div.rbtoc1295025180569 li {margin-left: 0px;padding-left: 0px;}
|
||||
|
||||
/*]]>*/</style><div class='rbtoc1290016976036'>
|
||||
/*]]>*/</style><div class='rbtoc1295025180569'>
|
||||
<ul>
|
||||
<li><span class='TOCOutline'>1</span> <a href='#DSpaceStatistics-UsageEventLoggingandUsageStatisticsGathering'>Usage Event Logging and Usage Statistics Gathering</a></li>
|
||||
<li><span class='TOCOutline'>2</span> <a href='#DSpaceStatistics-ConfigurationsettingsforStatistics'>Configuration settings for Statistics</a></li>
|
||||
<li><span class='TOCOutline'>1</span> <a href='#DSpaceStatistics-Whatisexactlybeinglogged%3F'>What is exactly being logged ?</a></li>
|
||||
<li><span class='TOCOutline'>2</span> <a href='#DSpaceStatistics-WebuserinterfaceforDSpacestatistics'>Web user interface for DSpace statistics</a></li>
|
||||
<ul>
|
||||
<li><span class='TOCOutline'>2.1</span> <a href='#DSpaceStatistics-'></a></li>
|
||||
<li><span class='TOCOutline'>2.2</span> <a href='#DSpaceStatistics-UpgradeProcessforStatistics.'>Upgrade Process for Statistics.</a></li>
|
||||
<li><span class='TOCOutline'>2.1</span> <a href='#DSpaceStatistics-Homepage'>Home page</a></li>
|
||||
<li><span class='TOCOutline'>2.2</span> <a href='#DSpaceStatistics-Communityhomepage'>Community home page</a></li>
|
||||
<li><span class='TOCOutline'>2.3</span> <a href='#DSpaceStatistics-Collectionhomepage'>Collection home page</a></li>
|
||||
<li><span class='TOCOutline'>2.4</span> <a href='#DSpaceStatistics-Itemhomepage'>Item home page</a></li>
|
||||
</ul>
|
||||
<li><span class='TOCOutline'>3</span> <a href='#DSpaceStatistics-UsageEventLoggingandUsageStatisticsGathering'>Usage Event Logging and Usage Statistics Gathering</a></li>
|
||||
<li><span class='TOCOutline'>4</span> <a href='#DSpaceStatistics-ConfigurationsettingsforStatistics'>Configuration settings for Statistics</a></li>
|
||||
<ul>
|
||||
<li><span class='TOCOutline'>4.1</span> <a href='#DSpaceStatistics-UpgradeProcessforStatistics.'>Upgrade Process for Statistics.</a></li>
|
||||
</ul>
|
||||
<li><span class='TOCOutline'>5</span> <a href='#DSpaceStatistics-Oldersettingthatarenotrelatedtothenew1.6Statistics'>Older setting that are not related to the new 1.6 Statistics</a></li>
|
||||
<li><span class='TOCOutline'>6</span> <a href='#DSpaceStatistics-StatisticsAdministration'>Statistics Administration</a></li>
|
||||
<ul>
|
||||
<li><span class='TOCOutline'>6.1</span> <a href='#DSpaceStatistics-ConvertingolderDSpacelogsintoSOLRusagedatahttps%3A%2F%2Fwiki.duraspace.org%2Fdisplay%2FDSDOC%2FSystemAdministration%23SystemAdministrationDSpaceLogConverter'> Converting older DSpace logs into SOLR usage data</a></li>
|
||||
<li><span class='TOCOutline'>6.2</span> <a href='#DSpaceStatistics-StatisticsClientUtilityhttps%3A%2F%2Fwiki.duraspace.org%2Fdisplay%2FDSDOC%2FSystemAdministration%23SystemAdministrationClientStatistics'> Statistics Client Utility</a></li>
|
||||
</ul>
|
||||
<li><span class='TOCOutline'>7</span> <a href='#DSpaceStatistics-StatisticsdifferencesbetweenDSpace1.6.xand1.7.0'>Statistics differences between DSpace 1.6.x and 1.7.0</a></li>
|
||||
<ul>
|
||||
<li><span class='TOCOutline'>7.1</span> <a href='#DSpaceStatistics-SOLRoptimizationadded'>SOLR optimization added</a></li>
|
||||
<li><span class='TOCOutline'>7.2</span> <a href='#DSpaceStatistics-SOLRAutocommit'>SOLR Autocommit</a></li>
|
||||
</ul>
|
||||
<li><span class='TOCOutline'>3</span> <a href='#DSpaceStatistics-Oldersettingthatarenocurrentlyutilizedinthereports'>Older setting that are no currently utilized in the reports</a></li>
|
||||
</ul></div>
|
||||
|
||||
<h2><a name="DSpaceStatistics-Whatisexactlybeinglogged%3F"></a>What is exactly being logged ?</h2>
|
||||
|
||||
<p>Each time a page or file gets requested, this request is being logged. The logging happens at the server side, and doesn't require a javascript like Google Analytics does, to provide usage data.</p>
|
||||
|
||||
<p>Definition of which fields are to be stored happens in the file dspace/solr/statistics/conf/schema.xml.<br/>
|
||||
Some example fields, that can be stored per usage event, include:</p>
|
||||
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java"><field name=<span class="code-quote">"type"</span> type=<span class="code-quote">"integer"</span> indexed=<span class="code-quote">"<span class="code-keyword">true</span>"</span> stored=<span class="code-quote">"<span class="code-keyword">true</span>"</span> required=<span class="code-quote">"<span class="code-keyword">true</span>"</span> />
|
||||
<field name=<span class="code-quote">"id"</span> type=<span class="code-quote">"integer"</span> indexed=<span class="code-quote">"<span class="code-keyword">true</span>"</span> stored=<span class="code-quote">"<span class="code-keyword">true</span>"</span> required=<span class="code-quote">"<span class="code-keyword">true</span>"</span> />
|
||||
<field name=<span class="code-quote">"ip"</span> type=<span class="code-quote">"string"</span> indexed=<span class="code-quote">"<span class="code-keyword">true</span>"</span> stored=<span class="code-quote">"<span class="code-keyword">true</span>"</span> required=<span class="code-quote">"<span class="code-keyword">false</span>"</span> />
|
||||
<field name=<span class="code-quote">"time"</span> type=<span class="code-quote">"date"</span> indexed=<span class="code-quote">"<span class="code-keyword">true</span>"</span> stored=<span class="code-quote">"<span class="code-keyword">true</span>"</span> required=<span class="code-quote">"<span class="code-keyword">true</span>"</span> />
|
||||
<field name=<span class="code-quote">"epersonid"</span> type=<span class="code-quote">"integer"</span> indexed=<span class="code-quote">"<span class="code-keyword">true</span>"</span> stored=<span class="code-quote">"<span class="code-keyword">true</span>"</span> required=<span class="code-quote">"<span class="code-keyword">false</span>"</span> />
|
||||
<field name=<span class="code-quote">"country"</span> type=<span class="code-quote">"string"</span> indexed=<span class="code-quote">"<span class="code-keyword">true</span>"</span> stored=<span class="code-quote">"<span class="code-keyword">true</span>"</span> required=<span class="code-quote">"<span class="code-keyword">false</span>"</span> />
|
||||
<field name=<span class="code-quote">"city"</span> type=<span class="code-quote">"string"</span> indexed=<span class="code-quote">"<span class="code-keyword">true</span>"</span> stored=<span class="code-quote">"<span class="code-keyword">true</span>"</span> required=<span class="code-quote">"<span class="code-keyword">false</span>"</span>/>
|
||||
<field name=<span class="code-quote">"owningComm"</span> type=<span class="code-quote">"integer"</span> indexed=<span class="code-quote">"<span class="code-keyword">true</span>"</span> stored=<span class="code-quote">"<span class="code-keyword">true</span>"</span> required=<span class="code-quote">"<span class="code-keyword">false</span>"</span> multiValued=<span class="code-quote">"<span class="code-keyword">true</span>"</span> />
|
||||
</pre>
|
||||
</div></div>
|
||||
|
||||
<p>The combination of <a href="https://wiki.duraspace.org/display/DSDOC/Business+Logic+Layer#BusinessLogicLayer-Constants">type</a> and id determine which resource (either community, collection, item page or file download) has been requested.</p>
|
||||
|
||||
<h2><a name="DSpaceStatistics-WebuserinterfaceforDSpacestatistics"></a>Web user interface for DSpace statistics</h2>
|
||||
|
||||
<p>In the XMLUI, statistics can be accessed from the lower end of the navigation menu. In the JSPUI, a view statistics button appears on the bottom of pages for which statistics are available.</p>
|
||||
|
||||
<p>If you are not seeing these links or buttons, it's likely that they are only enabled for administrators in your installation. Change the configuration parameter "statistics.item.authorization.admin" to false in order to make statistics visible for all repository visitors.</p>
|
||||
|
||||
<h3><a name="DSpaceStatistics-Homepage"></a>Home page</h3>
|
||||
|
||||
<p>Starting from the repository homepage, the statistics page displays the top 10 most popular items of the entire repository.</p>
|
||||
|
||||
<h3><a name="DSpaceStatistics-Communityhomepage"></a>Community home page</h3>
|
||||
|
||||
<p>The following statistics are available for the community home pages:</p>
|
||||
<ul>
|
||||
<li>Total visits of the current community home page</li>
|
||||
<li>Visits of the community home page over a timespan of the last 7 months</li>
|
||||
<li>Top 10 country from where the visits originate</li>
|
||||
<li>Top 10 cities from where the visits originate</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a name="DSpaceStatistics-Collectionhomepage"></a>Collection home page</h3>
|
||||
|
||||
<p>The following statistics are available for the collection home pages:</p>
|
||||
<ul>
|
||||
<li>Total visits of the current collection home page</li>
|
||||
<li>Visits of the collection home over a timespan of the last 7 months</li>
|
||||
<li>Top 10 country from where the visits originate</li>
|
||||
<li>Top 10 cities from where the visits originate</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h3><a name="DSpaceStatistics-Itemhomepage"></a>Item home page</h3>
|
||||
|
||||
<p>The following statistics are available for the item home pages:</p>
|
||||
<ul>
|
||||
<li>Total visits of the item</li>
|
||||
<li>Total visits for the bitstreams attached to the item</li>
|
||||
<li>Visits of the item over a timespan of the last 7 months</li>
|
||||
<li>Top 10 country views from where the visits originate</li>
|
||||
<li>Top 10 cities from where the visits originate</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h2><a name="DSpaceStatistics-UsageEventLoggingandUsageStatisticsGathering"></a>Usage Event Logging and Usage Statistics Gathering</h2>
|
||||
|
||||
<p>The DSpace Statistics Implementation is a Client/Server architecture based on Solr for collecting usage events in the JSPUI and XMLUI user interface applications of DSpace. Solr runs as a separate webapplication and an instance of Apache Http Client is utilized to allow parallel requests to log statistics events into this Solr instance. The Usage Event framework has a couple EventListeners installed which assist in <font color="red">[rest of sentence missing? - Kim]</font></p>
|
||||
<p>The DSpace Statistics Implementation is a Client/Server architecture based on Solr for collecting usage events in the JSPUI and XMLUI user interface applications of DSpace. Solr runs as a separate webapplication and an instance of Apache Http Client is utilized to allow parallel requests to log statistics events into this Solr instance. </p>
|
||||
|
||||
<h2><a name="DSpaceStatistics-ConfigurationsettingsforStatistics"></a>Configuration settings for Statistics</h2>
|
||||
|
||||
@@ -50,152 +133,220 @@ div.rbtoc1290016976036 li {margin-left: 0px;padding-left: 0px;}
|
||||
<div class='table-wrap'>
|
||||
<table class='confluenceTable'><tbody>
|
||||
<tr>
|
||||
<th class='confluenceTh'> Property Name </th>
|
||||
<th class='confluenceTh'> Default Value </th>
|
||||
<th class='confluenceTh'> Type </th>
|
||||
<th class='confluenceTh'> Description </th>
|
||||
<td class='confluenceTd'> Property: </td>
|
||||
<td class='confluenceTd'> solr.log.server </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> solr.log.server </td>
|
||||
<td class='confluenceTd'> ${dspace.baseUrl}/solr/statistics </td>
|
||||
<td class='confluenceTd'> String </td>
|
||||
<td class='confluenceTd'> Example Value: </td>
|
||||
<td class='confluenceTd'> solr.log.server = <a href="http://127.0.0.1/solr/statistics">http://127.0.0.1/solr/statistics</a> <br class="atl-forced-newline" /> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> Informational Note: </td>
|
||||
<td class='confluenceTd'> Is used by the SolrLogger Client class to connect to the Solr server over http and perform updates and queries. In most cases, this can (and should) be set to localhost (or 127.0.0.1). <br class="atl-forced-newline" />
|
||||
<br class="atl-forced-newline" />
|
||||
To determine the correct path, you can use a tool like <tt>wget</tt> to see where Solr is responding on your server. For example, you'd want to send a query to Solr like the following: <br class="atl-forced-newline" />
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">wget http:<span class="code-comment">//127.0.0.1/solr/statistics/select?q=*:*</span></pre>
|
||||
</div></div>
|
||||
<p>Assuming you get an HTTP 200 OK response, then you should set <tt>solr.log.server</tt> to the '/statistics' URL of 'http://127.0.0.1/solr/statistics' (essentially removing the "/select?q=<b>:</b>" query off the end of the responding URL.)</p></td>
|
||||
<p>Assuming you get an HTTP 200 OK response, then you should set <tt>solr.log.server</tt> to the '/statistics' URL of 'http://127.0.0.1/solr/statistics' (essentially removing the "/select?q=<b>:</b>" query off the end of the responding URL.) </p></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> Property: </td>
|
||||
<td class='confluenceTd'> solr.spiderips.urls <br class="atl-forced-newline" /> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> solr.spiderips.urls </td>
|
||||
<td class='confluenceTd'> <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">
|
||||
http:<span class="code-comment">//iplists.com/google.txt, \
|
||||
</span>http:<span class="code-comment">//iplists.com/inktomi.txt, \
|
||||
</span>http:<span class="code-comment">//iplists.com/lycos.txt, \
|
||||
</span>http:<span class="code-comment">//iplists.com/infoseek.txt, \
|
||||
</span>http:<span class="code-comment">//iplists.com/altavista.txt, \
|
||||
</span>http:<span class="code-comment">//iplists.com/excite.txt, \
|
||||
</span>http:<span class="code-comment">//iplists.com/misc.txt, \
|
||||
</span>http:<span class="code-comment">//iplists.com/non_engines.txt</span>
|
||||
<td class='confluenceTd'> Example Value: </td>
|
||||
<td class='confluenceTd'> solr.spiderips.urls =
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">http:<span class="code-comment">//iplists.com/google.txt, \
|
||||
</span>http:<span class="code-comment">//iplists.com/inktomi.txt, \
|
||||
</span>http:<span class="code-comment">//iplists.com/lycos.txt, \
|
||||
</span>http:<span class="code-comment">//iplists.com/infoseek.txt, \
|
||||
</span>http:<span class="code-comment">//iplists.com/altavista.txt, \
|
||||
</span>http:<span class="code-comment">//iplists.com/excite.txt, \
|
||||
</span>http:<span class="code-comment">//iplists.com/misc.txt, \
|
||||
</span>http:<span class="code-comment">//iplists.com/non_engines.txt</span>
|
||||
</pre>
|
||||
</div></div> </td>
|
||||
<td class='confluenceTd'> String </td>
|
||||
</div></div>
|
||||
<p> <br class="atl-forced-newline" /> </p></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> Informational Note: </td>
|
||||
<td class='confluenceTd'> List of URLs to download spiders files into [dspace]/config/spiders. These files contain lists of known spider IPs and are utilized by the SolrLogger to flag usage events with an "isBot" field, or ignore them entirely. <br class="atl-forced-newline" />
|
||||
<br class="atl-forced-newline" />
|
||||
The "stats-util" command can be used to force an update of spider files, regenerate "isBot" fields on indexed events, and delete spiders from the index. For usage, run: <br class="atl-forced-newline" />
|
||||
<br class="atl-forced-newline" />
|
||||
<br class="atl-forced-newline" />
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">
|
||||
dspace stats-util -h
|
||||
<pre class="code-java">dspace stats-util -h
|
||||
</pre>
|
||||
</div></div>
|
||||
<p>from your [dspace]/bin directory </p></td>
|
||||
<p>from your [dspace]/bin directory <br class="atl-forced-newline" /> </p></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> Property: </td>
|
||||
<td class='confluenceTd'> solr.dbfile <br class="atl-forced-newline" /> </td>
|
||||
<td class='confluenceTd'> ${dspace.dir}/config/GeoLiteCity.dat </td>
|
||||
<td class='confluenceTd'> String <br class="atl-forced-newline" /> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> Example Value: </td>
|
||||
<td class='confluenceTd'> solr.dbfile = ${dspace.dir}/config/GeoLiteCity.dat <br class="atl-forced-newline" /> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> Informational Note: </td>
|
||||
<td class='confluenceTd'> The following referes to the GeoLiteCity database file utilized by the LocationUtils to calculate the location of client requests based on IP address. During the Ant build process (both fresh_install and update) this file will be downloaded from <a href="http://www.maxmind.com/app/geolitecity">http://www.maxmind.com/app/geolitecity</a> if a new version has been published or it is absent from your [dspace]/config directory. <br class="atl-forced-newline" /> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> solr.resolver.timeout </td>
|
||||
<td class='confluenceTd'> 200 </td>
|
||||
<td class='confluenceTd'> Integer </td>
|
||||
<td class='confluenceTd'> Timeout in milliseconds for DNS resolution of origin hosts/IPs. Setting this value too high may result in solr exhausting your connection pool. </td>
|
||||
<td class='confluenceTd'> Property: </td>
|
||||
<td class='confluenceTd'> solr.resolver.timeout <br class="atl-forced-newline" /> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> Example Value: </td>
|
||||
<td class='confluenceTd'> solr.resolver.timeout = 200 <br class="atl-forced-newline" /> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> Informational Note: </td>
|
||||
<td class='confluenceTd'> Timeout in milliseconds for DNS resolution of origin hosts/IPs. Setting this value too high may result in solr exhausting your connection pool. <br class="atl-forced-newline" /> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> Property: </td>
|
||||
<td class='confluenceTd'> useProxies <br class="atl-forced-newline" /> </td>
|
||||
<td class='confluenceTd'> true <br class="atl-forced-newline" /> </td>
|
||||
<td class='confluenceTd'> boolean <br class="atl-forced-newline" /> </td>
|
||||
<td class='confluenceTd'> Will cause Statistics loging to look for X-Forward URI to detect clients IP that have accessed it through a Proxy service. Allows detection of client IP when accessing DSpace. [Note: This setting is found in the DSpace Logging sesction of dspace.cfg] </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> statistics.item.authorization.admin </td>
|
||||
<td class='confluenceTd'> true <br class="atl-forced-newline" /> </td>
|
||||
<td class='confluenceTd'> boolean <br class="atl-forced-newline" /> </td>
|
||||
<td class='confluenceTd'> Enables access control restriction on DSpace Statistics pages, Restrictions are based on access rights to Community, Collection and Item Pages. This will require the user to sign on to see that statistics. Setting the statistics to "false" will make them publicly available. </td>
|
||||
<td class='confluenceTd'> Example Value: </td>
|
||||
<td class='confluenceTd'> useProxies = true <br class="atl-forced-newline" /> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> solr.statistics.logBots </td>
|
||||
<td class='confluenceTd'> true </td>
|
||||
<td class='confluenceTd'> boolean </td>
|
||||
<td class='confluenceTd'> If false, and IP is detected as a spider, the event is not logged. <br class="atl-forced-newline" />
|
||||
If true, the event will be logged with the "isBot" field set to true. <br class="atl-forced-newline" />
|
||||
(see solr.statistics.query.filter.* for query filter options) </td>
|
||||
<td class='confluenceTd'> Informational Note: </td>
|
||||
<td class='confluenceTd'> Will cause Statistics logging to look for X-Forward URI to detect clients IP that have accessed it through a Proxy service (e.g. the Apache mod_proxy). Allows detection of client IP when accessing DSpace. [Note: This setting is found in the DSpace Logging section of dspace.cfg] <br class="atl-forced-newline" /> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> solr.statistics.query.filter.spiderIp </td>
|
||||
<td class='confluenceTd'> false </td>
|
||||
<td class='confluenceTd'> boolean </td>
|
||||
<td class='confluenceTd'> If true, statistics queries will filter out spider IPs -- use with caution, as this often results in extremely long query strings. </td>
|
||||
<td class='confluenceTd'> Property: </td>
|
||||
<td class='confluenceTd'> statistics.item.authorization.admin <br class="atl-forced-newline" /> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> solr.statistics.query.filter.isBot </td>
|
||||
<td class='confluenceTd'> true </td>
|
||||
<td class='confluenceTd'> boolean </td>
|
||||
<td class='confluenceTd'> If true, statistics queries will filter out events flagged with the "isBot" field. This is the recommended method of filtering spiders from statistics. </td>
|
||||
<td class='confluenceTd'> Example Value: </td>
|
||||
<td class='confluenceTd'> statistics.item.authorization.admin = true <br class="atl-forced-newline" /> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> Informational Note: </td>
|
||||
<td class='confluenceTd'> When set to true, only general administrators, collection and community administrators are able to access the statistics from the web user interface. As a result, the links to access statistics are hidden for non logged-in admin users. Setting this property to "false" will display the links to access statistics to anyone, making them publicly available. <br class="atl-forced-newline" /> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> Property: </td>
|
||||
<td class='confluenceTd'> solr.statistics.logBots <br class="atl-forced-newline" /> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> Example Value: </td>
|
||||
<td class='confluenceTd'> solr.statistics.logBots = true <br class="atl-forced-newline" /> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> Informational Note: </td>
|
||||
<td class='confluenceTd'> When this property is set to false, and IP is detected as a spider, the event is not logged. <br class="atl-forced-newline" />
|
||||
When this property is set to true, the event will be logged with the "isBot" field set to true. <br class="atl-forced-newline" />
|
||||
(see solr.statistics.query.filter.* for query filter options) <br class="atl-forced-newline" /> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> Property: </td>
|
||||
<td class='confluenceTd'> solr.statistics.query.filter.spiderIp <br class="atl-forced-newline" /> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> Example Value: </td>
|
||||
<td class='confluenceTd'> solr.statistics.query.filter.spiderIp = false <br class="atl-forced-newline" /> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> Informational Note: </td>
|
||||
<td class='confluenceTd'> If true, statistics queries will filter out spider IPs -- use with caution, as this often results in extremely long query strings. <br class="atl-forced-newline" /> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> Property: </td>
|
||||
<td class='confluenceTd'> solr.statistics.query.filter.isBot <br class="atl-forced-newline" /> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> Example Value: </td>
|
||||
<td class='confluenceTd'> solr.statistics.query.filter.isBot = true <br class="atl-forced-newline" /> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> Informational Note: </td>
|
||||
<td class='confluenceTd'> If true, statistics queries will filter out events flagged with the "isBot" field. This is the recommended method of filtering spiders from statistics. <br class="atl-forced-newline" /> </td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
</div>
|
||||
|
||||
|
||||
<h3><a name="DSpaceStatistics-"></a></h3>
|
||||
|
||||
|
||||
|
||||
<h3><a name="DSpaceStatistics-UpgradeProcessforStatistics."></a>Upgrade Process for Statistics.</h3>
|
||||
|
||||
<p>Example of rebuild and redeploy DSpace (only if you have configured your distribution in this manner)</p>
|
||||
|
||||
<p>First approach the traditional DSpace build process for updating</p>
|
||||
|
||||
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">
|
||||
cd [dspace-source]/dspace
|
||||
mvn <span class="code-keyword">package</span>
|
||||
cd [dspace-source]/dspace/target/dspace-<version>-build.dir
|
||||
ant -Dconfig=[dspace]/config/dspace.cfg update
|
||||
cp -R [dspace]/webapps/* [TOMCAT]/webapps
|
||||
<pre class="code-java"> cd [dspace-source]/dspace
|
||||
mvn <span class="code-keyword">package</span>
|
||||
cd [dspace-source]/dspace/target/dspace-<version>-build.dir
|
||||
ant -Dconfig=[dspace]/config/dspace.cfg update
|
||||
cp -R [dspace]/webapps/* [TOMCAT]/webapps
|
||||
</pre>
|
||||
</div></div>
|
||||
|
||||
<p>The last step is only used if you are not mounting <em>[dspace]/webapps</em> directly into your Tomcat, Resin or Jetty host (the recommended practice)If you only need to build the statistics, and don't make any changes to other web applications, you can replace the copy step above with:</p>
|
||||
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">
|
||||
cp -R dspace/webapps/solr TOMCAT/webapps
|
||||
<pre class="code-java"> cp -R dspace/webapps/solr TOMCAT/webapps
|
||||
</pre>
|
||||
</div></div>
|
||||
<p><em>Again, only if you are not mounting [dspace]/webapps directly into your Tomcat, Resin or Jetty host (the recommended practice)</em></p>
|
||||
|
||||
<p>Restart your webapps (Tomcat/Jetty/Resin)</p>
|
||||
|
||||
<h2><a name="DSpaceStatistics-Oldersettingthatarenocurrentlyutilizedinthereports"></a>Older setting that are no currently utilized in the reports</h2>
|
||||
<h2><a name="DSpaceStatistics-Oldersettingthatarenotrelatedtothenew1.6Statistics"></a>Older setting that are not related to the new 1.6 Statistics</h2>
|
||||
|
||||
<p>Are the following Dspace.cfg fields still used by the new 1.6 Statistics? If not, we need to either document this well or remove them altogether:</p>
|
||||
<p>The following Dspace.cfg fields are only applicable to the older statistics solution.</p>
|
||||
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">
|
||||
###### Statistical Report Configuration Settings ######
|
||||
|
||||
# should the stats be publicly available? should be set to <span class="code-keyword">false</span> <span class="code-keyword">if</span> you only
|
||||
# want administrators to access the stats, or you <span class="code-keyword">do</span> not intend to generate
|
||||
# any
|
||||
report.<span class="code-keyword">public</span> = <span class="code-keyword">false</span>
|
||||
|
||||
# directory where live reports are stored
|
||||
report.dir = ${dspace.dir}/reports/
|
||||
<pre class="code-java"> ###### Statistical Report Configuration Settings ######
|
||||
|
||||
# should the stats be publicly available? should be set to <span class="code-keyword">false</span> <span class="code-keyword">if</span> you only
|
||||
# want administrators to access the stats, or you <span class="code-keyword">do</span> not intend to generate
|
||||
# any
|
||||
report.<span class="code-keyword">public</span> = <span class="code-keyword">false</span>
|
||||
|
||||
# directory where live reports are stored
|
||||
report.dir = ${dspace.dir}/reports/
|
||||
</pre>
|
||||
</div></div>
|
||||
|
||||
<p>These fields are not used by the new 1.6 Statistics, but are only related to the Statistics from previous DSpace releases</p>
|
||||
|
||||
<h2><a name="DSpaceStatistics-StatisticsAdministration"></a>Statistics Administration</h2>
|
||||
|
||||
<h3><a name="DSpaceStatistics-ConvertingolderDSpacelogsintoSOLRusagedatahttps%3A%2F%2Fwiki.duraspace.org%2Fdisplay%2FDSDOC%2FSystemAdministration%23SystemAdministrationDSpaceLogConverter"></a><a href="https://wiki.duraspace.org/display/DSDOC/System+Administration#SystemAdministration-DSpaceLogConverter">Converting older DSpace logs into SOLR usage data</a></h3>
|
||||
|
||||
<p>If you have upgraded from a previous version of DSpace, converting older log files ensures that you carry over older usage stats from before the upgrade.</p>
|
||||
|
||||
<h3><a name="DSpaceStatistics-StatisticsClientUtilityhttps%3A%2F%2Fwiki.duraspace.org%2Fdisplay%2FDSDOC%2FSystemAdministration%23SystemAdministrationClientStatistics"></a><a href="https://wiki.duraspace.org/display/DSDOC/System+Administration#SystemAdministration-ClientStatistics">Statistics Client Utility</a></h3>
|
||||
|
||||
<p>The command line interface (CLI) scripts can be used to clean the usage database from additional spider traffic and other maintenance tasks.</p>
|
||||
|
||||
<h2><a name="DSpaceStatistics-StatisticsdifferencesbetweenDSpace1.6.xand1.7.0"></a>Statistics differences between DSpace 1.6.x and 1.7.0</h2>
|
||||
|
||||
<h3><a name="DSpaceStatistics-SOLRoptimizationadded"></a>SOLR optimization added</h3>
|
||||
|
||||
<p>If required, the solr server can be optimized by running</p>
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">{dspace.dir}/bin/stats-util -o
|
||||
</pre>
|
||||
</div></div>
|
||||
<p>. More information on how these solr server optimizations work can be found here: <a href="http://wiki.apache.org/solr/SolrPerformanceFactors#Optimization_Considerations">http://wiki.apache.org/solr/SolrPerformanceFactors#Optimization_Considerations</a>.</p>
|
||||
|
||||
<h3><a name="DSpaceStatistics-SOLRAutocommit"></a>SOLR Autocommit</h3>
|
||||
|
||||
<p>In DSpace 1.6.x, each solr event was committed to the solr server individually. For high load DSpace installations, this would result in a huge load of small solr commits resulting in a very high load on the solr server.<br/>
|
||||
This has been resolved in dspace 1.7 by only committing usage events to the solr server every 15 minutes. This will result in a delay of the storage of a usage event of maximum 15 minutes. If required, this value can be altered by changing the maxTime property in the</p>
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">{dspace.dir}/solr/statistics/conf/solrconfig.xml.
|
||||
</pre>
|
||||
</div></div>
|
||||
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
@@ -205,7 +356,7 @@ If true, the event will be logged with the "isBot" field set to true. <br class=
|
||||
<td height="12" background="https://wiki.duraspace.org/images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Dec 16, 2010 11:47</font></td>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Mar 25, 2011 19:21</font></td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
|
@@ -31,7 +31,7 @@
|
||||
<td height="12" background="https://wiki.duraspace.org/images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Dec 16, 2010 11:47</font></td>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Mar 25, 2011 19:21</font></td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
|
@@ -16,17 +16,17 @@
|
||||
</span>
|
||||
</div>
|
||||
<div class="pagesubheading">
|
||||
This page last changed on Dec 15, 2010 by <font color="#0050B2">tdonohue</font>.
|
||||
This page last changed on Feb 17, 2011 by <font color="#0050B2">helix84</font>.
|
||||
</div>
|
||||
|
||||
<h1><a name="Directories-DSpaceSystemDocumentation%3ADirectoriesandFiles"></a>DSpace System Documentation: Directories and Files</h1>
|
||||
|
||||
<style type='text/css'>/*<![CDATA[*/
|
||||
div.rbtoc1292438149327 {margin-left: 0px;padding: 0px;}
|
||||
div.rbtoc1292438149327 ul {list-style: none;margin-left: 0px;}
|
||||
div.rbtoc1292438149327 li {margin-left: 0px;padding-left: 0px;}
|
||||
div.rbtoc1297951565554 {margin-left: 0px;padding: 0px;}
|
||||
div.rbtoc1297951565554 ul {list-style: none;margin-left: 0px;}
|
||||
div.rbtoc1297951565554 li {margin-left: 0px;padding-left: 0px;}
|
||||
|
||||
/*]]>*/</style><div class='rbtoc1292438149327'>
|
||||
/*]]>*/</style><div class='rbtoc1297951565554'>
|
||||
<ul>
|
||||
<li><span class='TOCOutline'>1</span> <a href='#Directories-Overview'>Overview</a></li>
|
||||
<li><span class='TOCOutline'>2</span> <a href='#Directories-SourceDirectoryLayout'>Source Directory Layout</a></li>
|
||||
@@ -265,7 +265,7 @@ This directory contains administrative files needed for the install process and
|
||||
<pre class="code-java">log4j.rootCategory=INFO,A
|
||||
log4j.logger.org.dspace=INFO,A1</pre>
|
||||
</div></div> </td>
|
||||
<td class='confluenceTd'> These lines control what level of logging takes place. Normally they should be set to INFO, but if you need to see more information in the logs, set them to dEBUG and restart your web server </td>
|
||||
<td class='confluenceTd'> These lines control what level of logging takes place. Normally they should be set to INFO, but if you need to see more information in the logs, set them to DEBUG and restart your web server </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> <em>log4j.appender.A1=org.dspace.app.util.DailyFileAppender</em> </td>
|
||||
@@ -277,7 +277,7 @@ log4j.logger.org.dspace=INFO,A1</pre>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> <em>log4j.appender.A1.DatePattern=yyy-MM-DD</em> </td>
|
||||
<td class='confluenceTd'> This defines the format for the date stamp that is appended to the log file names. If you wish to have log files created monthyl instead of daily, change this to <em>yyyy-MM</em> </td>
|
||||
<td class='confluenceTd'> This defines the format for the date stamp that is appended to the log file names. If you wish to have log files created monthly instead of daily, change this to <em>yyyy-MM</em> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> <em>log4j.appender.A1.MaxLogs=0</em> </td>
|
||||
@@ -296,7 +296,7 @@ log4j.logger.org.dspace=INFO,A1</pre>
|
||||
<td height="12" background="https://wiki.duraspace.org/images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Dec 16, 2010 11:47</font></td>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Mar 25, 2011 19:21</font></td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
|
@@ -399,7 +399,7 @@ solr.search.server = http:<span class="code-comment">//localhost/solr/search</sp
|
||||
<td height="12" background="https://wiki.duraspace.org/images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Dec 16, 2010 11:47</font></td>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Mar 25, 2011 19:21</font></td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
|
@@ -168,7 +168,7 @@ plugin.single.org.dspace.embargo.EmbargoLifter = org.dspace.embargo.DefaultEmbar
|
||||
<td height="12" background="https://wiki.duraspace.org/images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Dec 16, 2010 11:47</font></td>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Mar 25, 2011 19:21</font></td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
|
@@ -16,7 +16,7 @@
|
||||
</span>
|
||||
</div>
|
||||
<div class="pagesubheading">
|
||||
This page last changed on Dec 15, 2010 by <font color="#0050B2">mwood</font>.
|
||||
This page last changed on Jan 07, 2011 by <font color="#0050B2">tdonohue</font>.
|
||||
</div>
|
||||
|
||||
<h1><a name="FunctionalOverview-DSpaceSystemDocumentation%3AFunctionalOverview"></a>DSpace System Documentation: Functional Overview</h1>
|
||||
@@ -24,11 +24,11 @@
|
||||
<p>The following sections describe the various functional aspects of the DSpace system.</p>
|
||||
|
||||
<style type='text/css'>/*<![CDATA[*/
|
||||
div.rbtoc1292450544145 {margin-left: 0px;padding: 0px;}
|
||||
div.rbtoc1292450544145 ul {list-style: none;margin-left: 0px;}
|
||||
div.rbtoc1292450544145 li {margin-left: 0px;padding-left: 0px;}
|
||||
div.rbtoc1294416174557 {margin-left: 0px;padding: 0px;}
|
||||
div.rbtoc1294416174557 ul {list-style: none;margin-left: 0px;}
|
||||
div.rbtoc1294416174557 li {margin-left: 0px;padding-left: 0px;}
|
||||
|
||||
/*]]>*/</style><div class='rbtoc1292450544145'>
|
||||
/*]]>*/</style><div class='rbtoc1294416174557'>
|
||||
<ul>
|
||||
<li><span class='TOCOutline'>1</span> <a href='#FunctionalOverview-DataModel'>Data Model</a></li>
|
||||
<li><span class='TOCOutline'>2</span> <a href='#FunctionalOverview-PluginManager'>Plugin Manager</a></li>
|
||||
@@ -82,13 +82,13 @@ div.rbtoc1292450544145 li {margin-left: 0px;padding-left: 0px;}
|
||||
|
||||
<p><b>Data Model Diagram</b></p>
|
||||
|
||||
<p>The way data is organized in DSpace is intended to reflect the structure of the organization using the DSpace system. Each DSpace site is divided into <em>communities</em>, which can be further divided into <em>sub-communities</em> reflecting the typical university structure of college, departement, research center, or laboratory.</p>
|
||||
<p>The way data is organized in DSpace is intended to reflect the structure of the organization using the DSpace system. Each DSpace site is divided into <em>communities</em>, which can be further divided into <em>sub-communities</em> reflecting the typical university structure of college, department, research center, or laboratory.</p>
|
||||
|
||||
<p>Communities contain <em>collections</em>, which are groupings of related content. A collection may appear in more than one community.</p>
|
||||
|
||||
<p>Each collection is composed of <em>items</em>, which are the basic archival elements of the archive. Each item is owned by one collection. Additionally, an item may appear in additional collections; however every item has one and only one owning collection.</p>
|
||||
|
||||
<p>Items are further subdivided into named <em>bundles</em> of <em>bitstreams</em>. Bitstreams are, as the name suggests, streams of bits, usually ordinary computer files. Bitstreams that are somehow closely related, for example HTML files and images that compose a single HTML document, are organised into bundles.</p>
|
||||
<p>Items are further subdivided into named <em>bundles</em> of <em>bitstreams</em>. Bitstreams are, as the name suggests, streams of bits, usually ordinary computer files. Bitstreams that are somehow closely related, for example HTML files and images that compose a single HTML document, are organized into bundles.</p>
|
||||
|
||||
<p>In practice, most items tend to have these named bundles:</p>
|
||||
|
||||
@@ -108,7 +108,7 @@ div.rbtoc1292450544145 li {margin-left: 0px;padding-left: 0px;}
|
||||
<table class='confluenceTable'><tbody>
|
||||
<tr>
|
||||
<td class='confluenceTd'> <b>Supported</b> </td>
|
||||
<td class='confluenceTd'> The format is recognized, and the hosting institution is confident it can make bitstreams of this format useable in the future, using whatever combination of techniques (such as migration, emulation, etc.) is appropriate given the context of need. </td>
|
||||
<td class='confluenceTd'> The format is recognized, and the hosting institution is confident it can make bitstreams of this format usable in the future, using whatever combination of techniques (such as migration, emulation, etc.) is appropriate given the context of need. </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> <b>Known</b> </td>
|
||||
@@ -229,7 +229,7 @@ div.rbtoc1292450544145 li {margin-left: 0px;padding-left: 0px;}
|
||||
|
||||
<p>Groups are another kind of entity that can be granted permissions in the authorization system. A group is usually an explicit list of E-People; anyone identified as one of those E-People also gains the privileges granted to the group.</p>
|
||||
|
||||
<p>However, an application session can be assigned membership in a group <em>without</em> being identified as an E-Person. For example, some sites use this feature to identify users of a local network so they can read restricted materials not open to the whole world. Sessions originating from the local network are given membership in the "LocalUsers" group and gain the corresonding privileges.</p>
|
||||
<p>However, an application session can be assigned membership in a group <em>without</em> being identified as an E-Person. For example, some sites use this feature to identify users of a local network so they can read restricted materials not open to the whole world. Sessions originating from the local network are given membership in the "LocalUsers" group and gain the corresponding privileges.</p>
|
||||
|
||||
<p>Administrators can also use groups as "roles" to manage the granting of privileges more efficiently.</p>
|
||||
|
||||
@@ -348,7 +348,7 @@ div.rbtoc1292450544145 li {margin-left: 0px;padding-left: 0px;}
|
||||
<li>Adds a provenance message (including bitstream checksums)</li>
|
||||
<li>Assigns a Handle persistent identifier</li>
|
||||
<li>Adds the item to the target collection, and adds appropriate authorization policies</li>
|
||||
<li>Adds the new item to the search and browse indices</li>
|
||||
<li>Adds the new item to the search and browse index</li>
|
||||
</ul>
|
||||
|
||||
|
||||
@@ -393,7 +393,7 @@ div.rbtoc1292450544145 li {margin-left: 0px;padding-left: 0px;}
|
||||
|
||||
<p>One last possibility is that a workflow can be 'aborted' by a DSpace site administrator. This is accomplished using the administration UI.</p>
|
||||
|
||||
<p>The reason for this apparently arbitrary design is that is was the simplist case that covered the needs of the early adopter communities at MIT. The functionality of the workflow system will no doubt be extended in the future.</p>
|
||||
<p>The reason for this apparently arbitrary design is that is was the simplest case that covered the needs of the early adopter communities at MIT. The functionality of the workflow system will no doubt be extended in the future.</p>
|
||||
|
||||
<h2><a name="FunctionalOverview-SupervisionandCollaboration"></a>Supervision and Collaboration</h2>
|
||||
|
||||
@@ -436,7 +436,7 @@ http:<span class="code-comment">//hdl.handle.net/1721.123/4567</span>
|
||||
|
||||
<h2><a name="FunctionalOverview-Bitstream%27Persistent%27Identifiers"></a>Bitstream 'Persistent' Identifiers</h2>
|
||||
|
||||
<p>Similar to handles for DSpace items, bitstreams also have 'Persistent' identifiers. They are more volatile than Handles, since if the content is moved to a different server or organizaion, they will no longer work (hence the quotes around 'persistent'). However, they are more easily persisted than the simple URLs based on database primary key previously used. This means that external systems can more reliably refer to specific bitstreams stored in a DSpace instance.</p>
|
||||
<p>Similar to handles for DSpace items, bitstreams also have 'Persistent' identifiers. They are more volatile than Handles, since if the content is moved to a different server or organization, they will no longer work (hence the quotes around 'persistent'). However, they are more easily persisted than the simple URLs based on database primary key previously used. This means that external systems can more reliably refer to specific bitstreams stored in a DSpace instance.</p>
|
||||
|
||||
<p>Each bitstream has a sequence ID, unique within an item. This sequence ID is used to create a persistent ID, of the form:</p>
|
||||
|
||||
@@ -479,7 +479,7 @@ Search is an essential component of discovery in DSpace. Users' expectations fro
|
||||
|
||||
<ul>
|
||||
<li>Web pages tend to consist of several files – one or more HTML files that contain references to each other, and stylesheets and image files that are referenced by the HTML files.</li>
|
||||
<li>Web pages also link to or include content from other sites, often imperceptably to the end-user. Thus, in a few year's time, when someone views the preserved Web site, they will probably find that many links are now broken or refer to other sites than are now out of context.In fact, it may be unclear to an end-user when they are viewing content stored in DSpace and when they are seeing content included from another site, or have navigated to a page that is not stored in DSpace. This problem can manifest when a submitter uploads some HTML content. For example, the HTML document may include an image from an external Web site, or even their local hard drive. When the submitter views the HTML in DSpace, their browser is able to use the reference in the HTML to retrieve the appropriate image, and so to the submitter, the whole HTML document appears to have been deposited correctly. However, later on, when another user tries to view that HTML, their browser might not be able to retrieve the included image since it may have been removed from the external server. Hence the HTML will seem broken.</li>
|
||||
<li>Web pages also link to or include content from other sites, often imperceptibly to the end-user. Thus, in a few year's time, when someone views the preserved Web site, they will probably find that many links are now broken or refer to other sites than are now out of context.In fact, it may be unclear to an end-user when they are viewing content stored in DSpace and when they are seeing content included from another site, or have navigated to a page that is not stored in DSpace. This problem can manifest when a submitter uploads some HTML content. For example, the HTML document may include an image from an external Web site, or even their local hard drive. When the submitter views the HTML in DSpace, their browser is able to use the reference in the HTML to retrieve the appropriate image, and so to the submitter, the whole HTML document appears to have been deposited correctly. However, later on, when another user tries to view that HTML, their browser might not be able to retrieve the included image since it may have been removed from the external server. Hence the HTML will seem broken.</li>
|
||||
<li>Often Web pages are produced dynamically by software running on the Web server, and represent the state of a changing database underneath it.<br/>
|
||||
Dealing with these issues is the topic of much active research. Currently, DSpace bites off a small, tractable chunk of this problem. DSpace can store and provide on-line browsing capability for <em>self-contained, non-dynamic</em> HTML documents. In practical terms, this means:</li>
|
||||
</ul>
|
||||
@@ -496,7 +496,7 @@ Dealing with these issues is the topic of much active research. Currently, DSpac
|
||||
<li><em><a href="http://somedomain.com/content.html">http://somedomain.com/content.html</a></em> is not OK (the link will continue to link to the external site which may change or disappear)</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Any 'absolute links' (e.g. <em><a href="http://somedomain.com/content.html">http://somedomain.com/content.html</a></em>) are stored 'as is', and will continue to link to the external content (as opposed to relative links, which will link to the copy of the content stored in DSpace.) Thus, over time, the content refered to by the absolute link may change or disappear.</li>
|
||||
<li>Any 'absolute links' (e.g. <em><a href="http://somedomain.com/content.html">http://somedomain.com/content.html</a></em>) are stored 'as is', and will continue to link to the external content (as opposed to relative links, which will link to the copy of the content stored in DSpace.) Thus, over time, the content referred to by the absolute link may change or disappear.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
@@ -518,7 +518,7 @@ Dealing with these issues is the topic of much active research. Currently, DSpac
|
||||
|
||||
<h2><a name="FunctionalOverview-CreativeCommonsSupport"></a>Creative Commons Support</h2>
|
||||
|
||||
<p>Dspace provides support for Creative Commons licenses to be attached to items in the repository. They represent an alternative to traditional copyright. To learn more about Creative Commons, visit <a href="http://creativecommons.org" title="their website">their website</a>. Support for the licenses is controlled by a site-wide configuration option, and since license selection involves redirection to the Creative Commons website, additional parameters may be configured to work with a proxy server. If the option is enabled, users may select a Creative Commons license during the submission process, or elect to skip Creative Commons licensing. If a selection is made a copy of the license text and RDF metadata is stored along with the item in the repository. There is also an indication - text and a Creative Commons icon - in the item display page of the web user interface when an item is licensed under Creative Commons.</p>
|
||||
<p>DSpace provides support for Creative Commons licenses to be attached to items in the repository. They represent an alternative to traditional copyright. To learn more about Creative Commons, visit <a href="http://creativecommons.org" title="their website">their website</a>. Support for the licenses is controlled by a site-wide configuration option, and since license selection involves redirection to the Creative Commons website, additional parameters may be configured to work with a proxy server. If the option is enabled, users may select a Creative Commons license during the submission process, or elect to skip Creative Commons licensing. If a selection is made a copy of the license text and RDF metadata is stored along with the item in the repository. There is also an indication - text and a Creative Commons icon - in the item display page of the web user interface when an item is licensed under Creative Commons.</p>
|
||||
|
||||
|
||||
<h2><a name="FunctionalOverview-Subscriptions"></a>Subscriptions</h2>
|
||||
@@ -544,12 +544,12 @@ Dealing with these issues is the topic of much active research. Currently, DSpac
|
||||
|
||||
<h3><a name="FunctionalOverview-SystemStatistics"></a>System Statistics</h3>
|
||||
|
||||
<p>Various statistical reports about the contents and use of your system can be automatically generated by the system. These are generated by analysing DSpace's log files. Statistics can be broken down monthly.</p>
|
||||
<p>Various statistical reports about the contents and use of your system can be automatically generated by the system. These are generated by analyzing DSpace's log files. Statistics can be broken down monthly.</p>
|
||||
|
||||
<p>The report includes following sections</p>
|
||||
|
||||
<ul>
|
||||
<li>A customisable general overview of activities in the archive, by default including:
|
||||
<li>A customizable general overview of activities in the archive, by default including:
|
||||
<ul>
|
||||
<li>Number of items archived</li>
|
||||
<li>Number of bitstream views</li>
|
||||
@@ -562,7 +562,7 @@ Dealing with these issues is the topic of much active research. Currently, DSpac
|
||||
<li>Number of OAI Requests</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Customisable summary of archive contents</li>
|
||||
<li>Customizable summary of archive contents</li>
|
||||
<li>Broken-down list of item viewings</li>
|
||||
<li>A full break-down of all performed actions</li>
|
||||
<li>User logins</li>
|
||||
@@ -587,7 +587,7 @@ The results of statistical analysis can be presented on a by-month and an in-tot
|
||||
</ul>
|
||||
|
||||
|
||||
<p>*File Downloads information is only displayed for item-level statistics. Note that downloads from separate bitstreams are also recorded and represented separatly. DSpace is able to capture and store File Download information, even when the bitstream was downloaded from a direct link on an external website.</p>
|
||||
<p>*File Downloads information is only displayed for item-level statistics. Note that downloads from separate bitstreams are also recorded and represented separately. DSpace is able to capture and store File Download information, even when the bitstream was downloaded from a direct link on an external website.</p>
|
||||
|
||||
<p><span class="image-wrap" style=""><img src="attachments/22022823/22675569.png" style="border: 1px solid black"/></span></p>
|
||||
|
||||
@@ -604,7 +604,7 @@ The results of statistical analysis can be presented on a by-month and an in-tot
|
||||
|
||||
<h2><a name="FunctionalOverview-ChoiceManagementandAuthorityControl"></a>Choice Management and Authority Control</h2>
|
||||
|
||||
<p>This is a configurable framework that lets you define plug-in classes to control the choice of values for a given DSpace metadata fields. It also lets you configure fields to include "authority" values along with the textual metadata value. The chocie-control system includes a user interface in both the Configurable Submission UI and the Admin UI (edit Item pages) that assists the user in choosing metadata values.</p>
|
||||
<p>This is a configurable framework that lets you define plug-in classes to control the choice of values for a given DSpace metadata fields. It also lets you configure fields to include "authority" values along with the textual metadata value. The choice-control system includes a user interface in both the Configurable Submission UI and the Admin UI (edit Item pages) that assists the user in choosing metadata values.</p>
|
||||
|
||||
<h3><a name="FunctionalOverview-IntroductionandMotivation"></a>Introduction and Motivation</h3>
|
||||
|
||||
@@ -709,7 +709,7 @@ Authority control is different from the controlled vocabulary of keywords alread
|
||||
<td height="12" background="https://wiki.duraspace.org/images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Dec 16, 2010 11:47</font></td>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Mar 25, 2011 19:21</font></td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
|
@@ -60,7 +60,7 @@
|
||||
<td height="12" background="https://wiki.duraspace.org/images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Dec 16, 2010 11:47</font></td>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Mar 25, 2011 19:21</font></td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
|
@@ -16,13 +16,14 @@
|
||||
</span>
|
||||
</div>
|
||||
<div class="pagesubheading">
|
||||
This page last changed on Nov 18, 2010 by <font color="#0050B2">tdonohue</font>.
|
||||
This page last changed on Mar 23, 2011 by <font color="#0050B2">tdonohue</font>.
|
||||
</div>
|
||||
|
||||
<h1><a name="History-DSpaceSystemDocumentation%3AVersionHistory"></a>DSpace System Documentation: Version History</h1>
|
||||
|
||||
<div>
|
||||
<ul>
|
||||
<li><a href='#History-ChangesinDSpace1.7.1'>Changes in DSpace 1.7.1</a></li>
|
||||
<li><a href='#History-ChangesinDSpace1.7.0'>Changes in DSpace 1.7.0</a></li>
|
||||
<li><a href='#History-ChangesinDSpace1.6.2'>Changes in DSpace 1.6.2</a></li>
|
||||
<li><a href='#History-ChangesinDSpace1.6.1'>Changes in DSpace 1.6.1</a></li>
|
||||
@@ -42,6 +43,556 @@
|
||||
<li><a href='#History-ChangesinDSpace1.1'>Changes in DSpace 1.1</a></li>
|
||||
</ul></div>
|
||||
|
||||
<h2><a name="History-ChangesinDSpace1.7.1"></a>Changes in DSpace 1.7.1</h2>
|
||||
|
||||
<h3><a name="History-GeneralImprovements"></a>General Improvements</h3>
|
||||
|
||||
<p>
|
||||
|
||||
|
||||
<table cellspacing="0" class="grid" style="width: 100%">
|
||||
<tr>
|
||||
<th colspan="4" style="text-align: left; ">
|
||||
<a rel="nofollow" href="https://jira.duraspace.org/secure/IssueNavigator.jspa?reset=true&jqlQuery=project+%3D+DS+AND+issuetype+in+%28Task%2C+Improvement%2C+%22Code+Task%22%2C+Documentation%2C+Sub-task%29+AND+resolution+%3D+Fixed+AND+fixVersion+%3D+%221.7.1%22+ORDER+BY+key+ASC&tempMax=1000">Improvements in 1.7.1</a> (9 issues)
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th style="text-align: left; text-transform: capitalize;">Key</th>
|
||||
<th style="text-align: left; text-transform: capitalize;">Summary</th>
|
||||
<th style="text-align: left; text-transform: capitalize;">Assignee</th>
|
||||
<th style="text-align: left; text-transform: capitalize;">Reporter</th>
|
||||
</tr>
|
||||
|
||||
<tr class="rowNormal">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-720">DS-720</a>
|
||||
</td>
|
||||
<td >
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-720">Solr statistics documentation in DSpace manual and DSDOC is out-of-date, wrong, and inconsistent with dspace.cfg</a>
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Kim Shepherd
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Kim Shepherd
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowAlternate">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-798">DS-798</a>
|
||||
</td>
|
||||
<td >
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-798">Czech localization of 1.7.0</a>
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Claudia Jürgen
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Ivan Masár
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowNormal">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-801">DS-801</a>
|
||||
</td>
|
||||
<td >
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-801">Bulgarian Translation for DSpace 1.7.0</a>
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Claudia Jürgen
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Vladislav Zhivkov
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowAlternate">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-828">DS-828</a>
|
||||
</td>
|
||||
<td >
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-828">Enable "restore mode" ingestion via sword</a>
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Scott Phillips
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Scott Phillips
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowNormal">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-837">DS-837</a>
|
||||
</td>
|
||||
<td >
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-837">Translate file to spanish</a>
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Claudia Jürgen
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Álvaro López
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowAlternate">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-839">DS-839</a>
|
||||
</td>
|
||||
<td >
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-839">Adding Field to Choice Authority to allow Authorities to be able to know field being required</a>
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Mark Diggory
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Fabio Bolognesi
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowNormal">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-840">DS-840</a>
|
||||
</td>
|
||||
<td >
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-840">Add Ability to create Top Level Community in at the home page.</a>
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Mark Diggory
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Mark Diggory
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowAlternate">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-856">DS-856</a>
|
||||
</td>
|
||||
<td >
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-856">Release DSpace Services version 2.0.3</a>
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Mark Diggory
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Mark Diggory
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowNormal">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-857">DS-857</a>
|
||||
</td>
|
||||
<td >
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-857">CHANGES file now obsolete in SVN - point at online History</a>
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Tim Donohue
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Tim Donohue
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</p>
|
||||
|
||||
|
||||
<h3><a name="History-BugFixes"></a>Bug Fixes</h3>
|
||||
|
||||
<p>
|
||||
|
||||
|
||||
<table cellspacing="0" class="grid" style="width: 100%">
|
||||
<tr>
|
||||
<th colspan="4" style="text-align: left; ">
|
||||
<a rel="nofollow" href="https://jira.duraspace.org/secure/IssueNavigator.jspa?reset=true&jqlQuery=project+%3D+DS+AND+issuetype+%3D+Bug+AND+resolution+%3D+Fixed+AND+fixVersion+%3D+%221.7.1%22+ORDER+BY+key+ASC&tempMax=1000">Bugs Fixed in 1.7.1</a> (18 issues)
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th style="text-align: left; text-transform: capitalize;">Key</th>
|
||||
<th style="text-align: left; text-transform: capitalize;">Summary</th>
|
||||
<th style="text-align: left; text-transform: capitalize;">Assignee</th>
|
||||
<th style="text-align: left; text-transform: capitalize;">Reporter</th>
|
||||
</tr>
|
||||
|
||||
<tr class="rowNormal">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-215">DS-215</a>
|
||||
</td>
|
||||
<td >
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-215">Single-argument Item.getMetadata does not work with mixed-case metadata</a>
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Stuart Lewis
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Nicholas Riley
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowAlternate">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-435">DS-435</a>
|
||||
</td>
|
||||
<td >
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-435">UI cosmetics, "My Exports" displayed in navigation bar, when no user is logged in</a>
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Robin Taylor
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Claudia Jürgen
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowNormal">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-620">DS-620</a>
|
||||
</td>
|
||||
<td >
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-620">Exceed maximum while uploading files got the user stuck should lead to a friendly error page</a>
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Peter Dietz
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Claudia Jürgen
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowAlternate">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-641">DS-641</a>
|
||||
</td>
|
||||
<td >
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-641">Page does not exist</a>
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Peter Dietz
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Hardik Mishra
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowNormal">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-758">DS-758</a>
|
||||
</td>
|
||||
<td >
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-758">Mirage theme - lists of unifished submission/workflow task wron link in collection column</a>
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Claudia Jürgen
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Claudia Jürgen
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowAlternate">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-761">DS-761</a>
|
||||
</td>
|
||||
<td >
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-761">MetadataSchema: cache out of sync after calling delete()</a>
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Claudia Jürgen
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Janne Pietarila
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowNormal">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-776">DS-776</a>
|
||||
</td>
|
||||
<td >
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-776">Collection admin cannot add bitstreams unless there is at least one bundle</a>
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Peter Dietz
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Eija Airio
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowAlternate">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-785">DS-785</a>
|
||||
</td>
|
||||
<td >
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-785">SWORD deposits fail when ingest events are fired if Discovery event consumer is configured</a>
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Kim Shepherd
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Kim Shepherd
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowNormal">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-789">DS-789</a>
|
||||
</td>
|
||||
<td >
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-789">HTTPS renders with errors due to a hardcoded HTTP link</a>
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Peter Dietz
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Bram Luyten (@mire)
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowAlternate">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-793">DS-793</a>
|
||||
</td>
|
||||
<td >
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-793">missing # in Update Configuration Files</a>
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Claudia Jürgen
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Jason Stirnaman
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowNormal">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-806">DS-806</a>
|
||||
</td>
|
||||
<td >
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-806">Item.match() incorrect logic for schema testing</a>
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Stuart Lewis
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Stuart Lewis
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowAlternate">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-808">DS-808</a>
|
||||
</td>
|
||||
<td >
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-808">jqueryUI javascript gets imported without corresponding CSS</a>
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Ben Bosman
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Bram Luyten (@mire)
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowNormal">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-809">DS-809</a>
|
||||
</td>
|
||||
<td >
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-809">Empty dc.abstract dim field (in mets XML) creates an empty span tag, causing page display errors in all Internet Explorer version</a>
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Ben Bosman
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Bram Luyten (@mire)
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowAlternate">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-821">DS-821</a>
|
||||
</td>
|
||||
<td >
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-821">AbstractMETSIngester creates an item before adding descriptive metadata</a>
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Tim Donohue
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Stuart Lewis
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowNormal">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-823">DS-823</a>
|
||||
</td>
|
||||
<td >
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-823">DatabaseManager is no longer Oracle compliant</a>
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Ben Bosman
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Ben Bosman
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowAlternate">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-843">DS-843</a>
|
||||
</td>
|
||||
<td >
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-843">Autocomplete in authority control contains small errors in Mirage</a>
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Ben Bosman
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Ben Bosman
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowNormal">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-853">DS-853</a>
|
||||
</td>
|
||||
<td >
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-853">MetadataExposure settings for dc.description.provenance are ignored/overridden by XMLUI templates</a>
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Kim Shepherd
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Kim Shepherd
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowAlternate">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-858">DS-858</a>
|
||||
</td>
|
||||
<td >
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-858">Multicore SOLR needs prevent remote access to solr cores</a>
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Mark Diggory
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Kim Shepherd
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowNormal">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-860">DS-860</a>
|
||||
</td>
|
||||
<td >
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-860">SWORD still uses dspace.url rather than dspace.baseUrl</a>
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Kim Shepherd
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Stuart Lewis
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</p>
|
||||
|
||||
|
||||
<h2><a name="History-ChangesinDSpace1.7.0"></a>Changes in DSpace 1.7.0</h2>
|
||||
|
||||
<h3><a name="History-NewFeatures"></a>New Features</h3>
|
||||
@@ -52,7 +603,7 @@
|
||||
<table cellspacing="0" class="grid" style="width: 100%">
|
||||
<tr>
|
||||
<th colspan="4" style="text-align: left; ">
|
||||
<a rel="nofollow" href="https://jira.duraspace.org/secure/IssueNavigator.jspa?reset=true&jqlQuery=project+%3D+DS+AND+issuetype+%3D+%22New+Feature%22+AND+resolution+%3D+Fixed+AND+fixVersion+%3D+%221.7.0%22+ORDER+BY+key+ASC&tempMax=1000">New Features in 1.7.0</a> (9 issues)
|
||||
<a rel="nofollow" href="https://jira.duraspace.org/secure/IssueNavigator.jspa?reset=true&jqlQuery=project+%3D+DS+AND+issuetype+%3D+%22New+Feature%22+AND+resolution+%3D+Fixed+AND+fixVersion+%3D+%221.7.0%22+ORDER+BY+key+ASC&tempMax=1000">New Features in 1.7.0</a> (12 issues)
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -209,6 +760,60 @@
|
||||
<tr class="rowNormal">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-726">DS-726</a>
|
||||
</td>
|
||||
<td >
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-726">Modular Configuration (Curation)</a>
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Richard Rodgers
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Richard Rodgers
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowAlternate">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-728">DS-728</a>
|
||||
</td>
|
||||
<td >
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-728">Curation System (Core Elements)</a>
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Richard Rodgers
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Richard Rodgers
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowNormal">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-730">DS-730</a>
|
||||
</td>
|
||||
<td >
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-730">Administrative UI for Curation (XMLUI)</a>
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Richard Rodgers
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Richard Rodgers
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowAlternate">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-733">DS-733</a>
|
||||
</td>
|
||||
<td >
|
||||
@@ -236,7 +841,7 @@
|
||||
<table cellspacing="0" class="grid" style="width: 100%">
|
||||
<tr>
|
||||
<th colspan="4" style="text-align: left; ">
|
||||
<a rel="nofollow" href="https://jira.duraspace.org/secure/IssueNavigator.jspa?reset=true&jqlQuery=project+%3D+DS+AND+issuetype+in+%28Task%2C+Improvement%2C+%22Code+Task%22%2C+Documentation%2C+Sub-task%29+AND+resolution+%3D+Fixed+AND+fixVersion+%3D+%221.7.0%22+ORDER+BY+key+ASC&tempMax=1000">Improvements in 1.7.0</a> (45 issues)
|
||||
<a rel="nofollow" href="https://jira.duraspace.org/secure/IssueNavigator.jspa?reset=true&jqlQuery=project+%3D+DS+AND+issuetype+in+%28Task%2C+Improvement%2C+%22Code+Task%22%2C+Documentation%2C+Sub-task%29+AND+resolution+%3D+Fixed+AND+fixVersion+%3D+%221.7.0%22+ORDER+BY+key+ASC&tempMax=1000">Improvements in 1.7.0</a> (48 issues)
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -519,6 +1124,42 @@
|
||||
<tr class="rowAlternate">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-646">DS-646</a>
|
||||
</td>
|
||||
<td >
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-646">Remove /bin scripts (replaced by 'dspace' commmand)</a>
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Jeffrey Trimble
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Stuart Lewis
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowNormal">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-647">DS-647</a>
|
||||
</td>
|
||||
<td >
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-647">Need Help Testing LNI refactoring changes in AIP Backup/Restore Work</a>
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Unassigned
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Tim Donohue
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowAlternate">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-648">DS-648</a>
|
||||
</td>
|
||||
<td >
|
||||
@@ -987,6 +1628,24 @@
|
||||
<tr class="rowAlternate">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-750">DS-750</a>
|
||||
</td>
|
||||
<td >
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-750">Cleanup display of Curation Admin UI to make more human readable/understandable</a>
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Richard Rodgers
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Tim Donohue
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowNormal">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-773">DS-773</a>
|
||||
</td>
|
||||
<td >
|
||||
@@ -1002,7 +1661,7 @@
|
||||
Graham Triggs
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowNormal">
|
||||
<tr class="rowAlternate">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-779">DS-779</a>
|
||||
@@ -1020,7 +1679,7 @@
|
||||
Stuart Lewis
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowAlternate">
|
||||
<tr class="rowNormal">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-783">DS-783</a>
|
||||
@@ -1038,7 +1697,7 @@
|
||||
Jason Stirnaman
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowNormal">
|
||||
<tr class="rowAlternate">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-784">DS-784</a>
|
||||
@@ -1117,24 +1776,6 @@
|
||||
<tr class="rowNormal">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-215">DS-215</a>
|
||||
</td>
|
||||
<td >
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-215">Single-argument Item.getMetadata does not work with mixed-case metadata</a>
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Robin Taylor
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Nicholas Riley
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowAlternate">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-242">DS-242</a>
|
||||
</td>
|
||||
<td >
|
||||
@@ -1150,7 +1791,7 @@
|
||||
Stuart Lewis
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowNormal">
|
||||
<tr class="rowAlternate">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-268">DS-268</a>
|
||||
@@ -1168,7 +1809,7 @@
|
||||
Tim Donohue
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowAlternate">
|
||||
<tr class="rowNormal">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-426">DS-426</a>
|
||||
@@ -1185,6 +1826,24 @@
|
||||
|
||||
Claudia Jürgen
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowAlternate">
|
||||
<td nowrap="true">
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-431">DS-431</a>
|
||||
</td>
|
||||
<td >
|
||||
|
||||
<a href="https://jira.duraspace.org/browse/DS-431">Restricted Bitstream prompts for login, then forwards user to MyDSpace</a>
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Kim Shepherd
|
||||
</td>
|
||||
<td nowrap="true">
|
||||
|
||||
Tim Donohue
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="rowNormal">
|
||||
<td nowrap="true">
|
||||
@@ -9599,7 +10258,7 @@
|
||||
<td height="12" background="https://wiki.duraspace.org/images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Dec 16, 2010 11:47</font></td>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Mar 25, 2011 19:21</font></td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
|
@@ -16,24 +16,24 @@
|
||||
</span>
|
||||
</div>
|
||||
<div class="pagesubheading">
|
||||
This page last changed on Dec 16, 2010 by <font color="#0050B2">tdonohue</font>.
|
||||
This page last changed on Mar 11, 2011 by <font color="#0050B2">stuartlewis</font>.
|
||||
</div>
|
||||
|
||||
<h1><a name="Installation-DSpaceSystemDocumentation%3AInstallation"></a>DSpace System Documentation: Installation</h1>
|
||||
|
||||
<style type='text/css'>/*<![CDATA[*/
|
||||
div.rbtoc1292516387159 {margin-left: 0px;padding: 0px;}
|
||||
div.rbtoc1292516387159 ul {list-style: none;margin-left: 0px;}
|
||||
div.rbtoc1292516387159 li {margin-left: 0px;padding-left: 0px;}
|
||||
div.rbtoc1299806510998 {margin-left: 0px;padding: 0px;}
|
||||
div.rbtoc1299806510998 ul {list-style: none;margin-left: 0px;}
|
||||
div.rbtoc1299806510998 li {margin-left: 0px;padding-left: 0px;}
|
||||
|
||||
/*]]>*/</style><div class='rbtoc1292516387159'>
|
||||
/*]]>*/</style><div class='rbtoc1299806510998'>
|
||||
<ul>
|
||||
<li><span class='TOCOutline'>1</span> <a href='#Installation-FortheImpatient'>For the Impatient</a></li>
|
||||
<li><span class='TOCOutline'>2</span> <a href='#Installation-PrerequisiteSoftware'>Prerequisite Software</a></li>
|
||||
<ul>
|
||||
<li><span class='TOCOutline'>2.1</span> <a href='#Installation-UNIXlikeOSorMicrosoftWindows'>UNIX-like OS or Microsoft Windows</a></li>
|
||||
<li><span class='TOCOutline'>2.2</span> <a href='#Installation-OracleJavaJDK6orlater%28standardSDKisfine%2Cyoudon%27tneedJ2EE%29'>Oracle Java JDK 6 or later (standard SDK is fine, you don't need J2EE)</a></li>
|
||||
<li><span class='TOCOutline'>2.3</span> <a href='#Installation-ApacheMaven2.0.8orlater%28Javabuildtool%29'>Apache Maven 2.0.8 or later (Java build tool)</a></li>
|
||||
<li><span class='TOCOutline'>2.3</span> <a href='#Installation-ApacheMaven2.2.x%28Javabuildtool%29'>Apache Maven 2.2.x (Java build tool)</a></li>
|
||||
<ul>
|
||||
<li><span class='TOCOutline'>2.3.1</span> <a href='#Installation-ConfiguringaProxy'>Configuring a Proxy</a></li>
|
||||
</ul>
|
||||
@@ -81,22 +81,21 @@ div.rbtoc1292516387159 li {margin-left: 0px;padding-left: 0px;}
|
||||
<div class='panelMacro'><table class='warningMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="images/icons/emoticons/forbidden.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td>Only experienced unix admins should even attempt the following without going to the detailed <a href="#Installation-InstallationInstructions">Installation Instructions</a></td></tr></table></div>
|
||||
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">
|
||||
useradd -m dspace
|
||||
gunzip -c dspace-1.x-src-release.tar.gz | tar -xf -
|
||||
createuser -U postgres -d -A -P dspace
|
||||
createdb -U dspace -E UNICODE dspace
|
||||
cd [dspace-source]/dspace/config
|
||||
vi dspace.cfg
|
||||
mkdir [dspace]
|
||||
chown dspace [dspace]
|
||||
su - dspace
|
||||
cd [dspace-source]/dspace
|
||||
mvn <span class="code-keyword">package</span>
|
||||
cd [dspace-source]/dspace/target/dspace-<version>-build.dir
|
||||
ant fresh_install
|
||||
cp -r [dspace]/webapps/* [tomcat]/webapps
|
||||
/etc/init.d/tomcat start
|
||||
<pre class="code-java">useradd -m dspace
|
||||
gunzip -c dspace-1.x-src-release.tar.gz | tar -xf -
|
||||
createuser -U postgres -d -A -P dspace
|
||||
createdb -U dspace -E UNICODE dspace
|
||||
cd [dspace-source]/dspace/config
|
||||
vi dspace.cfg
|
||||
mkdir [dspace]
|
||||
chown dspace [dspace]
|
||||
su - dspace
|
||||
cd [dspace-source]/dspace
|
||||
mvn <span class="code-keyword">package</span>
|
||||
cd [dspace-source]/dspace/target/dspace-<version>-build.dir
|
||||
ant fresh_install
|
||||
cp -r [dspace]/webapps/* [tomcat]/webapps
|
||||
/etc/init.d/tomcat start
|
||||
[dspace]/bin/dspace create-administrator</pre>
|
||||
</div></div>
|
||||
|
||||
@@ -120,36 +119,40 @@ cp -r [dspace]/webapps/* [tomcat]/webapps
|
||||
|
||||
<p>Java can be downloaded from the following location: <a href="http://java.sun.com/javase/downloads/index.jsp">http://java.sun.com/javase/downloads/index.jsp</a></p>
|
||||
|
||||
|
||||
<p>Only Oracle's Java has been tested with each release and is known to work correctly. Other flavors of Java may pose problems.</p>
|
||||
|
||||
<h3><a name="Installation-ApacheMaven2.0.8orlater%28Javabuildtool%29"></a>Apache Maven 2.0.8 or later (Java build tool)</h3>
|
||||
<h3><a name="Installation-ApacheMaven2.2.x%28Javabuildtool%29"></a>Apache Maven 2.2.x (Java build tool)</h3>
|
||||
|
||||
<p>Maven is necessary in the first stage of the build process to assemble the installation package for your DSpace instance. It gives you the flexibility to customize DSpace using the exisitng Maven projects found in the <em>[dspace-source]/dspace/modules</em> directory or by adding in your own Maven project to build the installation package for DSpace, and apply any custom interface "overlay" changes.</p>
|
||||
<div class='panelMacro'><table class='noteMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="images/icons/emoticons/warning.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td><b>Known issue with Maven 2.0.x and Maven 3.x and DSpace 1.7.0</b><br />DSpace 1.7.0 does not build properly when using Maven 2.0.x or Maven 3.x. This is a known issue. <b>The quick fix is to use Maven 2.2.x.</b> More information on this issue can be found in the following JIRA issue: <a href="https://jira.duraspace.org/browse/DS-788">DS-788</a>.</td></tr></table></div>
|
||||
|
||||
<p>Maven is necessary in the first stage of the build process to assemble the installation package for your DSpace instance. It gives you the flexibility to customize DSpace using the existing Maven projects found in the <em>[dspace-source]/dspace/modules</em> directory or by adding in your own Maven project to build the installation package for DSpace, and apply any custom interface "overlay" changes.</p>
|
||||
|
||||
<p>Maven can be downloaded from the following location: <a href="http://maven.apache.org/download.html">http://maven.apache.org/download.html</a></p>
|
||||
|
||||
|
||||
<h4><a name="Installation-ConfiguringaProxy"></a>Configuring a Proxy</h4>
|
||||
|
||||
<p>You can configure a proxy to use for some or all of your HTTP requests in Maven 2.0. The username and password are only required if your proxy requires basic authentication (note that later releases may support storing your passwords in a secured keystore‚ in the mean time, please ensure your <em>settings.xml</em> file (usually <em>${user.home}/.m2/settings.xml</em>) is secured with permissions appropriate for your operating system).</p>
|
||||
|
||||
<p>Example:</p>
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java"><settings>
|
||||
.
|
||||
.
|
||||
<proxies>
|
||||
<proxy>
|
||||
<active><span class="code-keyword">true</span></active>
|
||||
<protocol>http</protocol>
|
||||
<host>proxy.somewhere.com</host>
|
||||
<port>8080</port>
|
||||
<username>proxyuser</username>
|
||||
<password>somepassword</password>
|
||||
<nonProxyHosts>www.google.com|*.somewhere.com</nonProxyHosts>
|
||||
</proxy>
|
||||
</proxies>
|
||||
.
|
||||
.
|
||||
<pre class="code-java"><settings>
|
||||
.
|
||||
.
|
||||
<proxies>
|
||||
<proxy>
|
||||
<active><span class="code-keyword">true</span></active>
|
||||
<protocol>http</protocol>
|
||||
<host>proxy.somewhere.com</host>
|
||||
<port>8080</port>
|
||||
<username>proxyuser</username>
|
||||
<password>somepassword</password>
|
||||
<nonProxyHosts>www.google.com|*.somewhere.com</nonProxyHosts>
|
||||
</proxy>
|
||||
</proxies>
|
||||
.
|
||||
.
|
||||
</settings> </pre>
|
||||
</div></div>
|
||||
|
||||
@@ -161,6 +164,7 @@ cp -r [dspace]/webapps/* [tomcat]/webapps
|
||||
<p>Ant can be downloaded from the following location: <a href="http://ant.apache.org/" title="http://ant.apache.org">http://ant.apache.org</a></p>
|
||||
|
||||
|
||||
|
||||
<h3><a name="Installation-RelationalDatabase%3A%28PostgreSQLorOracle%29."></a>Relational Database: (PostgreSQL or Oracle).</h3>
|
||||
|
||||
<ul>
|
||||
@@ -183,18 +187,17 @@ cp -r [dspace]/webapps/* [tomcat]/webapps
|
||||
<li>You need to ensure that Tomcat has a) enough memory to run DSpace and b) uses UTF-8 as its default file encoding for international character support. So ensure in your startup scripts (etc) that the following environment variable is set: <em>JAVA_OPTS="-Xmx512M -Xms64M -Dfile.encoding=UTF-8"</em></li>
|
||||
<li><b>Modifications in</b> <b><em>[tomcat]/conf/server.xml</em></b>: You also need to alter Tomcat's default configuration to support searching and browsing of multi-byte UTF-8 correctly. You need to add a configuration option to the <em><Connector></em> element in <em>[tomcat]/config/server.xml</em>: <em>URIEncoding="UTF-8"</em> e.g. if you're using the default Tomcat config, it should read:
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">
|
||||
<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
|
||||
<Connector port=<span class="code-quote">"8080"</span>
|
||||
maxThreads=<span class="code-quote">"150"</span>
|
||||
minSpareThreads=<span class="code-quote">"25"</span>
|
||||
maxSpareThreads=<span class="code-quote">"75"</span>
|
||||
enableLookups=<span class="code-quote">"<span class="code-keyword">false</span>"</span>
|
||||
redirectPort=<span class="code-quote">"8443"</span>
|
||||
acceptCount=<span class="code-quote">"100"</span>
|
||||
connectionTimeout=<span class="code-quote">"20000"</span>
|
||||
disableUploadTimeout=<span class="code-quote">"<span class="code-keyword">true</span>"</span>
|
||||
URIEncoding=<span class="code-quote">"UTF-8"</span>/>
|
||||
<pre class="code-java"><!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
|
||||
<Connector port=<span class="code-quote">"8080"</span>
|
||||
maxThreads=<span class="code-quote">"150"</span>
|
||||
minSpareThreads=<span class="code-quote">"25"</span>
|
||||
maxSpareThreads=<span class="code-quote">"75"</span>
|
||||
enableLookups=<span class="code-quote">"<span class="code-keyword">false</span>"</span>
|
||||
redirectPort=<span class="code-quote">"8443"</span>
|
||||
acceptCount=<span class="code-quote">"100"</span>
|
||||
connectionTimeout=<span class="code-quote">"20000"</span>
|
||||
disableUploadTimeout=<span class="code-quote">"<span class="code-keyword">true</span>"</span>
|
||||
URIEncoding=<span class="code-quote">"UTF-8"</span>/>
|
||||
</pre>
|
||||
</div></div>
|
||||
<p>You may change the port from 8080 by editing it in the file above, and by setting the variable <em>CONNECTOR_PORT</em> in <em>server.xml</em>.
|
||||
@@ -299,7 +302,7 @@ For details on the contents of these separate directory trees, refer to director
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">bunzip2 dspace-1.7-release.tar.bz | tar -xf -</pre>
|
||||
</div></div>
|
||||
<p>For ease of reference, we will refer to the location of this unzipped version of the DSpace release as <em>[dspace-source]</em> in the remainder of these instructions.After unpacking the file, the user may which to change the ownership of the <em>dspace-1.6-release</em> to the 'dspace' user. (And you may need to change the group).</p></li>
|
||||
<p>For ease of reference, we will refer to the location of this unzipped version of the DSpace release as <em>[dspace-source]</em> in the remainder of these instructions. After unpacking the file, the user may which to change the ownership of the <em>dspace-1.6-release</em> to the 'dspace' user. (And you may need to change the group).</p></li>
|
||||
</ol>
|
||||
</li>
|
||||
<li><b>Database Setup</b>
|
||||
@@ -309,7 +312,8 @@ For details on the contents of these separate directory trees, refer to director
|
||||
<li>A PostgreSQL JDBC driver is configured as part of the default DSpace build. You no longer need to copy any PostgreSQL jars to get PostgreSQL installed.</li>
|
||||
<li>Create a <tt>dspace}}database, owned by the {{dspace</tt> PostgreSQL user <em>(you are still logged in at 'root')</em>:
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">createuser -U postgres -d -A -P dspace ; createdb -U dspace -E UNICODE dspace</pre>
|
||||
<pre class="code-java">createuser -U postgres -d -A -P dspace
|
||||
createdb -U dspace -E UNICODE dspace</pre>
|
||||
</div></div>
|
||||
<p>You will be prompted for a password for the DSpace database. (This isn't the same as the <em>dspace</em> user's UNIX password.)</p></li>
|
||||
</ul>
|
||||
@@ -318,16 +322,15 @@ For details on the contents of these separate directory trees, refer to director
|
||||
<ul>
|
||||
<li>Setting up oracle is a bit different now. You will need still need to get a Copy of the oracle JDBC driver, but instead of copying it into a lib directory you will need to install it into your local Maven repository. (You'll need to download it first from this location: <a href="http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html">http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html</a>) Run the following command (all on one line)
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">mvn install:install-file -Dfile=ojdbc6.jar -DgroupId=com.oracle
|
||||
<pre class="code-java">mvn install:install-file -Dfile=ojdbc6.jar -DgroupId=com.oracle
|
||||
-DartifactId=ojdbc6 -Dversion=11.2.0.2.0 -Dpackaging=jar -DgeneratePom=<span class="code-keyword">true</span></pre>
|
||||
</div></div></li>
|
||||
<li>Create a database for DSpace. Make sure that the character set is one of the Unicode character sets. DSpace uses UTF-8 natively, and it is required that the Oracle database use the same character set. Create a user account for DSpace (e.g. <em>dspace</em>,) and ensure that it has permissions to add and remove tables in the database.</li>
|
||||
<li>Edit the <em>[dspace-source]/dspace/config/dspace.cfg</em> database settings:
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">
|
||||
db.name = oracle
|
||||
db.url = jdbc:oracle:thin:@<span class="code-comment">//host:port/dspace
|
||||
</span>db.driver = oracle.jdbc.OracleDriver
|
||||
<pre class="code-java">db.name = oracle
|
||||
db.url = jdbc:oracle:thin:@<span class="code-comment">//host:port/dspace
|
||||
</span>db.driver = oracle.jdbc.OracleDriver
|
||||
</pre>
|
||||
</div></div></li>
|
||||
</ul>
|
||||
@@ -355,20 +358,20 @@ Refer to the <a href="Configuration.html#Configuration-GeneralConfiguration">Gen
|
||||
</li>
|
||||
<li><b>DSpace Directory:</b> Create the directory for the DSpace installation (i.e. <tt>[dspace]</tt>). As <em>root</em> (or a user with appropriate permissions), run:
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">mkdir [dspace]
|
||||
<pre class="code-java">mkdir [dspace]
|
||||
chown dspace [dspace]</pre>
|
||||
</div></div>
|
||||
<p>(Assuming the <em>dspace</em> UNIX username.)</p></li>
|
||||
<li><b>Installation Package:</b> As the <em>dspace</em> UNIX user, generate the DSpace installation package in the <tt>[dspace-source]/dspace</tt> directory:
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">cd [dspace-source]/dspace/
|
||||
<pre class="code-java">cd [dspace-source]/dspace/
|
||||
mvn <span class="code-keyword">package</span></pre>
|
||||
</div></div>
|
||||
<div class='panelMacro'><table class='infoMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="images/icons/emoticons/information.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td><b>Defaults to PostgreSQL settings</b><br />Without any extra arguments, the DSpace installation package is initialized for PostgreSQL. _If you want to use Oracle instead, you should build the DSpace installation package as follows:
|
||||
<br class="atl-forced-newline" /> <tt>mvn -Ddb.name=oracle package</tt></td></tr></table></div></li>
|
||||
<li><b>Build DSpace and Initialize Database:</b> As the <em>dspace</em> UNIX user, initialize the DSpace database and install DSpace to <tt>[dspace]_</tt>:
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">cd [dspace-source]/dspace/target/dspace-[version]-build.dir
|
||||
<pre class="code-java">cd [dspace-source]/dspace/target/dspace-[version]-build.dir
|
||||
ant fresh_install</pre>
|
||||
</div></div>
|
||||
<div class='panelMacro'><table class='infoMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="images/icons/emoticons/information.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td>To see a complete list of build targets, run: <tt>ant help</tt> <em>The most likely thing to go wrong here is the database connection. See the</em> <em><a href="#Installation-CommonProblems">Common Problems</a></em> <em>Section</em>.</td></tr></table></div></li>
|
||||
@@ -379,10 +382,10 @@ ant fresh_install</pre>
|
||||
<br class="atl-forced-newline" /> <tt>cp -R [dspace]/webapps/jspui [tomcat]/webapps*</tt> (This will copy only the jspui web application to Tomcat.)</li>
|
||||
<li><em>Technique B.</em> Tell your Tomcat/Jetty/Resin installation where to find your DSpace web application(s). As an example, in the <tt>\<Host</tt>> section of your <tt>[tomcat]/conf/server.xml</tt> you could add lines similar to the following (but replace <tt>[dspace]</tt> with your installation location:
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java"><!-- Define the <span class="code-keyword">default</span> virtual host
|
||||
Note: XML Schema validation will not work with Xerces 2.2.
|
||||
-->
|
||||
<Host name=<span class="code-quote">"localhost"</span> appBase=<span class="code-quote">"[dspace]/webapps"</span>
|
||||
<pre class="code-java"><!-- Define the <span class="code-keyword">default</span> virtual host
|
||||
Note: XML Schema validation will not work with Xerces 2.2.
|
||||
-->
|
||||
<Host name=<span class="code-quote">"localhost"</span> appBase=<span class="code-quote">"[dspace]/webapps"</span>
|
||||
....</pre>
|
||||
</div></div></li>
|
||||
</ul>
|
||||
@@ -419,29 +422,29 @@ ant fresh_install</pre>
|
||||
</div></div>
|
||||
<p>Then add the following lines:</p>
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java"># Send out subscription e-mails at 01:00 every day
|
||||
0 1 * * * [dspace]/bin/dspace sub-daily
|
||||
# Run the media filter at 02:00 every day
|
||||
0 2 * * * [dspace]/bin/dspace filter-media
|
||||
# Run the checksum checker at 03:00
|
||||
0 3 * * * [dspace]/bin/dspace checker -lp
|
||||
# Mail the results to the sysadmin at 04:00
|
||||
0 4 * * * [dspace]/bin/dspace checker-emailer -c
|
||||
<pre class="code-java"># Send out subscription e-mails at 01:00 every day
|
||||
0 1 * * * [dspace]/bin/dspace sub-daily
|
||||
# Run the media filter at 02:00 every day
|
||||
0 2 * * * [dspace]/bin/dspace filter-media
|
||||
# Run the checksum checker at 03:00
|
||||
0 3 * * * [dspace]/bin/dspace checker -lp
|
||||
# Mail the results to the sysadmin at 04:00
|
||||
0 4 * * * [dspace]/bin/dspace checker-emailer -c
|
||||
</pre>
|
||||
</div></div>
|
||||
<p>Naturally you should change the frequencies to suit your environment.</p>
|
||||
|
||||
<p>PostgreSQL also benefits from regular 'vacuuming', which optimizes the indexes and clears out any deleted data. Become the <em>postgres</em> UNIX user, run <em>crontab -e</em> and add (for example):</p>
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java"># Clean up the database nightly at 4.20am
|
||||
<pre class="code-java"># Clean up the database nightly at 4.20am
|
||||
20 4 * * * vacuumdb --analyze dspace > /dev/<span class="code-keyword">null</span> 2>&1</pre>
|
||||
</div></div>
|
||||
<p>In order that statistical reports are generated regularly and thus kept up to date you should set up the following cron jobs:</p>
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java"># Run stat analysis
|
||||
0 1 * * * [dspace]/bin/dspace stat-general
|
||||
0 1 * * * [dspace]/bin/dspace stat-monthly
|
||||
0 2 * * * [dspace]/bin/dspace stat-report-general
|
||||
<pre class="code-java"># Run stat analysis
|
||||
0 1 * * * [dspace]/bin/dspace stat-general
|
||||
0 1 * * * [dspace]/bin/dspace stat-monthly
|
||||
0 2 * * * [dspace]/bin/dspace stat-report-general
|
||||
0 2 * * * [dspace]/bin/dspace stat-report-monthly</pre>
|
||||
</div></div>
|
||||
<p>Obviously, you should choose execution times which are most useful to you, and you should ensure that the <em><del>report</del></em> scripts run a short while after the analysis scripts to give them time to complete (a run of around 8 months worth of logs can take around 25 seconds to complete); the resulting reports will let you know how long analysis took and you can adjust your cron times accordingly.</p>
|
||||
@@ -477,45 +480,45 @@ ant fresh_install</pre>
|
||||
<ol>
|
||||
<li>Create a Java keystore for your server with the password <em>changeit</em>, and install your server certificate under the alias <em>"tomcat"</em>. This assumes the certificate was put in the file <em>server.pem</em>:
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">$JAVA_HOME/bin/keytool -<span class="code-keyword">import</span> -noprompt -v -storepass changeit
|
||||
-keystore $CATALINA_BASE/conf/keystore -alias tomcat -file
|
||||
<pre class="code-java">$JAVA_HOME/bin/keytool -<span class="code-keyword">import</span> -noprompt -v -storepass changeit
|
||||
-keystore $CATALINA_BASE/conf/keystore -alias tomcat -file
|
||||
myserver.pem</pre>
|
||||
</div></div></li>
|
||||
<li>Install the CA (Certifying Authority) certificate for the CA that granted your server cert, if necessary. This assumes the server CA certificate is in <em>ca.pem</em>:
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java"> $JAVA_HOME/bin/keytool -<span class="code-keyword">import</span> -noprompt -storepass changeit
|
||||
-trustcacerts -keystore $CATALINA_BASE/conf/keystore -alias ServerCA
|
||||
-file ca.pem
|
||||
<pre class="code-java"> $JAVA_HOME/bin/keytool -<span class="code-keyword">import</span> -noprompt -storepass changeit
|
||||
-trustcacerts -keystore $CATALINA_BASE/conf/keystore -alias ServerCA
|
||||
-file ca.pem
|
||||
</pre>
|
||||
</div></div></li>
|
||||
<li>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 <em>client1.pem</em>:
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">$JAVA_HOME/bin/keytool -<span class="code-keyword">import</span> -noprompt -storepass changeit
|
||||
-trustcacerts -keystore $CATALINA_BASE/conf/keystore -alias client1
|
||||
-file client1.pem
|
||||
<pre class="code-java">$JAVA_HOME/bin/keytool -<span class="code-keyword">import</span> -noprompt -storepass changeit
|
||||
-trustcacerts -keystore $CATALINA_BASE/conf/keystore -alias client1
|
||||
-file client1.pem
|
||||
</pre>
|
||||
</div></div></li>
|
||||
<li>Now add another Connector tag to your <em>server.xml</em> Tomcat configuration file, like the example below. The parts affecting or specific to SSL are shown in bold. (You may wish to change some details such as the port, pathnames, and keystore password)
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java"> <Connector port=<span class="code-quote">"8443"</span>
|
||||
maxThreads=<span class="code-quote">"150"</span> minSpareThreads=<span class="code-quote">"25"</span>
|
||||
maxSpareThreads=<span class="code-quote">"75"</span>
|
||||
enableLookups=<span class="code-quote">"<span class="code-keyword">false</span>"</span>
|
||||
disableUploadTimeout=<span class="code-quote">"<span class="code-keyword">true</span>"</span>
|
||||
acceptCount=<span class="code-quote">"100"</span> debug=<span class="code-quote">"0"</span>
|
||||
scheme=<span class="code-quote">"https"</span> secure=<span class="code-quote">"<span class="code-keyword">true</span>"</span> sslProtocol=<span class="code-quote">"TLS"</span>
|
||||
keystoreFile=<span class="code-quote">"conf/keystore"</span> keystorePass=<span class="code-quote">"changeit"</span> clientAuth=<span class="code-quote">"<span class="code-keyword">true</span>"</span> - ONLY <span class="code-keyword">if</span> using client X.509 certs <span class="code-keyword">for</span> authentication!
|
||||
truststoreFile=<span class="code-quote">"conf/keystore"</span> trustedstorePass=<span class="code-quote">"changeit"</span> />
|
||||
<pre class="code-java"> <Connector port=<span class="code-quote">"8443"</span>
|
||||
maxThreads=<span class="code-quote">"150"</span> minSpareThreads=<span class="code-quote">"25"</span>
|
||||
maxSpareThreads=<span class="code-quote">"75"</span>
|
||||
enableLookups=<span class="code-quote">"<span class="code-keyword">false</span>"</span>
|
||||
disableUploadTimeout=<span class="code-quote">"<span class="code-keyword">true</span>"</span>
|
||||
acceptCount=<span class="code-quote">"100"</span> debug=<span class="code-quote">"0"</span>
|
||||
scheme=<span class="code-quote">"https"</span> secure=<span class="code-quote">"<span class="code-keyword">true</span>"</span> sslProtocol=<span class="code-quote">"TLS"</span>
|
||||
keystoreFile=<span class="code-quote">"conf/keystore"</span> keystorePass=<span class="code-quote">"changeit"</span> clientAuth=<span class="code-quote">"<span class="code-keyword">true</span>"</span> - ONLY <span class="code-keyword">if</span> using client X.509 certs <span class="code-keyword">for</span> authentication!
|
||||
truststoreFile=<span class="code-quote">"conf/keystore"</span> trustedstorePass=<span class="code-quote">"changeit"</span> />
|
||||
</pre>
|
||||
</div></div>
|
||||
<p>Also, check that the default Connector is set up to redirect "secure" requests to the same port as your SSL connector, e.g.: </p>
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java"><Connector port=<span class="code-quote">"8080"</span>
|
||||
maxThreads=<span class="code-quote">"150"</span> minSpareThreads=<span class="code-quote">"25"</span>
|
||||
maxSpareThreads=<span class="code-quote">"75"</span>
|
||||
enableLookups=<span class="code-quote">"<span class="code-keyword">false</span>"</span>
|
||||
redirectPort=<span class="code-quote">"8443"</span>
|
||||
acceptCount=<span class="code-quote">"100"</span> debug=<span class="code-quote">"0"</span> />
|
||||
<pre class="code-java"><Connector port=<span class="code-quote">"8080"</span>
|
||||
maxThreads=<span class="code-quote">"150"</span> minSpareThreads=<span class="code-quote">"25"</span>
|
||||
maxSpareThreads=<span class="code-quote">"75"</span>
|
||||
enableLookups=<span class="code-quote">"<span class="code-keyword">false</span>"</span>
|
||||
redirectPort=<span class="code-quote">"8443"</span>
|
||||
acceptCount=<span class="code-quote">"100"</span> debug=<span class="code-quote">"0"</span> />
|
||||
</pre>
|
||||
</div></div></li>
|
||||
</ol>
|
||||
@@ -526,38 +529,34 @@ ant fresh_install</pre>
|
||||
<ul>
|
||||
<li>Create a new key pair under the alias name <em>"tomcat"</em>. 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:
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">
|
||||
$JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA -keysize
|
||||
1024 \
|
||||
-keystore $CATALINA_BASE/conf/keystore -storepass changeit
|
||||
-validity 365 \
|
||||
-dname 'CN=dspace.myuni.edu, OU=MIT Libraries, O=Massachusetts
|
||||
Institute of Technology, L=Cambridge, S=MA, C=US'
|
||||
|
||||
<pre class="code-java">$JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA -keysize
|
||||
1024 \
|
||||
-keystore $CATALINA_BASE/conf/keystore -storepass changeit
|
||||
-validity 365 \
|
||||
-dname 'CN=dspace.myuni.edu, OU=MIT Libraries, O=Massachusetts
|
||||
Institute of Technology, L=Cambridge, S=MA, C=US'
|
||||
|
||||
</pre>
|
||||
</div></div></li>
|
||||
<li>Then, create a <em>CSR</em> (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 <em>tomcat.csr</em>
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">
|
||||
$JAVA_HOME/bin/keytool -keystore $CATALINA_BASE/conf/keystore
|
||||
-storepass changeit \
|
||||
-certreq -alias tomcat -v -file tomcat.csr
|
||||
<pre class="code-java"> $JAVA_HOME/bin/keytool -keystore $CATALINA_BASE/conf/keystore
|
||||
-storepass changeit \
|
||||
-certreq -alias tomcat -v -file tomcat.csr
|
||||
</pre>
|
||||
</div></div></li>
|
||||
<li>Before importing the signed certificate, you must have the CA's certificate in your keystore as a <em>trusted certificate</em>. Get their certificate, and import it with a command like this (for the example <em>mitCA.pem</em>):
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">
|
||||
$JAVA_HOME/bin/keytool -keystore $CATALINA_BASE/conf/keystore
|
||||
-storepass changeit \
|
||||
-<span class="code-keyword">import</span> -alias mitCA -trustcacerts -file mitCA.pem
|
||||
<pre class="code-java"> $JAVA_HOME/bin/keytool -keystore $CATALINA_BASE/conf/keystore
|
||||
-storepass changeit \
|
||||
-<span class="code-keyword">import</span> -alias mitCA -trustcacerts -file mitCA.pem
|
||||
</pre>
|
||||
</div></div></li>
|
||||
<li>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 <em>signed-cert.pem</em>)
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">
|
||||
$JAVA_HOME/bin/keytool -keystore $CATALINA_BASE/conf/keystore
|
||||
-storepass changeit \
|
||||
-<span class="code-keyword">import</span> -alias tomcat -trustcacerts -file signed-cert.pem
|
||||
<pre class="code-java"> $JAVA_HOME/bin/keytool -keystore $CATALINA_BASE/conf/keystore
|
||||
-storepass changeit \
|
||||
-<span class="code-keyword">import</span> -alias tomcat -trustcacerts -file signed-cert.pem
|
||||
</pre>
|
||||
</div></div>
|
||||
<p> 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.</p></li>
|
||||
@@ -565,18 +564,16 @@ $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA -keysize
|
||||
</li>
|
||||
<li>Create a Java keystore for your server with the password <em>changeit</em>, and install your server certificate under the alias <em>"tomcat"</em>. This assumes the certificate was put in the file <em>server.pem</em>:
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">
|
||||
$JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA -keystore
|
||||
$CATALINA_BASE/conf/keystore -storepass changeit
|
||||
<pre class="code-java"> $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA -keystore
|
||||
$CATALINA_BASE/conf/keystore -storepass changeit
|
||||
</pre>
|
||||
</div></div>
|
||||
<p>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. <em>test-dspace.myuni.edu</em>). The other questions are not important.</p></li>
|
||||
<li>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 <em>client1.pem</em>:
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">
|
||||
$JAVA_HOME/bin/keytool -<span class="code-keyword">import</span> -noprompt -storepass changeit
|
||||
-trustcacerts -keystore $CATALINA_BASE/conf/keystore -alias client1
|
||||
-file client1.pem
|
||||
<pre class="code-java"> $JAVA_HOME/bin/keytool -<span class="code-keyword">import</span> -noprompt -storepass changeit
|
||||
-trustcacerts -keystore $CATALINA_BASE/conf/keystore -alias client1
|
||||
-file client1.pem
|
||||
</pre>
|
||||
</div></div></li>
|
||||
<li>Follow the procedure in the section above to add another Connector tag, for the HTTPS port, to your <em>server.xml</em> file.</li>
|
||||
@@ -591,15 +588,14 @@ $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA -keysize
|
||||
|
||||
<p><b><em>If you are using X.509 Client Certificates for authentication:</em></b> add these configuration options to the appropriate <em>httpd</em> configuration file, e.g. <em>ssl.conf</em>, and be sure they are in force for the virtual host and namespace locations dedicated to DSpace:</p>
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">
|
||||
## SSLVerifyClient can be <span class="code-quote">"optional"</span> or
|
||||
<span class="code-quote">"require"</span>
|
||||
SSLVerifyClient optional
|
||||
SSLVerifyDepth 10
|
||||
SSLCACertificateFile
|
||||
path-to-your-client-CA-certificate
|
||||
SSLOptions StdEnvVars ExportCertData
|
||||
|
||||
<pre class="code-java"> ## SSLVerifyClient can be <span class="code-quote">"optional"</span> or
|
||||
<span class="code-quote">"require"</span>
|
||||
SSLVerifyClient optional
|
||||
SSLVerifyDepth 10
|
||||
SSLCACertificateFile
|
||||
path-to-your-client-CA-certificate
|
||||
SSLOptions StdEnvVars ExportCertData
|
||||
|
||||
</pre>
|
||||
</div></div>
|
||||
<p>Now consult the <a href="http://tomcat.apache.org/connectors-doc/" title="Apache Jakarta Tomcat Connector">Apache Jakarta Tomcat Connector</a> documentation to configure the <em>mod_jk</em> (note: <b>NOT</b><em>mod_jk2</em>) module. Select the AJP 1.3 connector protocol. Also follow the instructions there to configure your Tomcat server to respond to AJP.</p>
|
||||
@@ -616,7 +612,7 @@ $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA -keysize
|
||||
|
||||
<ul>
|
||||
<li>You don't <b>have</b> to use CNRI's Handle system. At the moment, you need to change the code a little to use something else (e.g PURLs) but that should change soon.</li>
|
||||
<li>You'll notice that while you've been playing around with a test server, DSpace has apparently been creating handles for you looking like <em>hdl:123456789/24</em> and so forth. These aren't really Handles, since the global Handle system doesn't actually know about them, and lots of other DSpace test installs will have created the same IDs.They're only really Handles once you've registered a prefix with CNRI (see below) and have correctly set up the Handle server included in the DSpace distribution. This Handle server communicates with the rest of the global Handle infrastructure so that anyone that understands Handles can find the Handles your DSpace has created.<br/>
|
||||
<li>You'll notice that while you've been playing around with a test server, DSpace has apparently been creating handles for you looking like <em>hdl:123456789/24</em> and so forth. These aren't really Handles, since the global Handle system doesn't actually know about them, and lots of other DSpace test installs will have created the same IDs. They're only really Handles once you've registered a prefix with CNRI (see below) and have correctly set up the Handle server included in the DSpace distribution. This Handle server communicates with the rest of the global Handle infrastructure so that anyone that understands Handles can find the Handles your DSpace has created.<br/>
|
||||
If you want to use the Handle system, you'll need to set up a Handle server. This is included with DSpace. Note that this is not required in order to evaluate DSpace; you only need one if you are running a production service. You'll need to obtain a Handle prefix from <a href="http://www.handle.net/" title="the central CNRI Handle site">the central CNRI Handle site</a>.</li>
|
||||
</ul>
|
||||
|
||||
@@ -624,16 +620,20 @@ If you want to use the Handle system, you'll need to set up a Handle server. Thi
|
||||
<p>A Handle server runs as a separate process that receives TCP requests from other Handle servers, and issues resolution requests to a global server or servers if a Handle entered locally does not correspond to some local content. The Handle protocol is based on TCP, so it will need to be installed on a server that can broadcast and receive TCP on port 2641.</p>
|
||||
|
||||
<ol>
|
||||
<li>To configure your DSpace installation to run the handle server, run the following command: <em>[dspace]/bin/dspace make-handle-config</em> Ensure that _[dspace]/handle-server_ matches whatever you have in <em>dspace.cfg</em> for the <em>handle.dir</em> property.</li>
|
||||
<li>To configure your DSpace installation to run the handle server, run the following command:
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">[dspace]/bin/dspace make-handle-config [dspace]/handle-server</pre>
|
||||
</div></div>
|
||||
<p> Ensure that <em>[dspace]/handle-server</em> matches whatever you have in <em>dspace.cfg</em> for the <em>handle.dir</em> property.</p></li>
|
||||
<li>Edit the resulting <em>[dspace]/handle-server/config.dct</em> file to include the following lines in the <em>"server_config"</em> clause:
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java"><span class="code-quote">"storage_type"</span> = <span class="code-quote">"CUSTOM"</span>
|
||||
<span class="code-quote">"storage_class"</span> = <span class="code-quote">"org.dspace.handle.HandlePlugin"</span>
|
||||
<pre class="code-java"><span class="code-quote">"storage_type"</span> = <span class="code-quote">"CUSTOM"</span>
|
||||
<span class="code-quote">"storage_class"</span> = <span class="code-quote">"org.dspace.handle.HandlePlugin"</span>
|
||||
</pre>
|
||||
</div></div>
|
||||
<p>This tells the Handle server to get information about individual Handles from the DSpace code.</p></li>
|
||||
<li>Once the configuration file has been generated, you will need to go to <a href="http://hdl.handle.net/4263537/5014">http://hdl.handle.net/4263537/5014</a> to upload the generated sitebndl.zip file. The upload page will ask you for your contact information. An administrator will then create the naming authority/prefix on the root service (known as the Global Handle Registry), and notify you when this has been completed. You will not be able to continue the handle server installation until you receive further information concerning your naming authority.</li>
|
||||
<li>When CNRI has sent you your naming authority prefix, you will need to edit the <em>config.dct</em> file. The file will be found in <em>/[dspace]/handle-server</em>. Look for <em>"300:0.NA/YOUR_NAMING_AUTHORITY"_Replace _YOUR_NAMING_AUTHORITY</em> with the assigned naming authority prefix sent to you.</li>
|
||||
<li>When CNRI has sent you your naming authority prefix, you will need to edit the <em>config.dct</em> file. The file will be found in <em>/[dspace]/handle-server</em>. Look for <em>"300:0.NA/YOUR_NAMING_AUTHORITY"</em>. Replace <em>YOUR_NAMING_AUTHORITY</em> with the assigned naming authority prefix sent to you.</li>
|
||||
<li>Now start your handle server (as the dspace user):
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">[dspace]/bin/start-handle-server</pre>
|
||||
@@ -646,7 +646,7 @@ If you want to use the Handle system, you'll need to set up a Handle server. Thi
|
||||
|
||||
<p>If you need to update the handle prefix on items created before the CNRI registration process you can run the <em>[dspace]/bin/dspace update-handle-prefix script</em>. You may need to do this if you loaded items prior to CNRI registration (e.g. setting up a demonstration system prior to migrating it to production). The script takes the current and new prefix as parameters. For example:</p>
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">[dspace]/bin/dspace update-handle-prefix 123456789 1303
|
||||
<pre class="code-java">[dspace]/bin/dspace update-handle-prefix 123456789 1303
|
||||
</pre>
|
||||
</div></div>
|
||||
<p>This script will change any handles currently assigned prefix 123456789 to prefix 1303, so for example handle 123456789/23 will be updated to 1303/23 in the database.</p>
|
||||
@@ -679,12 +679,11 @@ HTML sitemaps follow the same procedure:</li>
|
||||
|
||||
<p>You can generate the sitemaps automatically every day using an additional cron job:</p>
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">
|
||||
# Generate sitemaps
|
||||
|
||||
|
||||
0 6 * * * [dspace]/bin/generate-sitemaps
|
||||
|
||||
<pre class="code-java"># Generate sitemaps
|
||||
|
||||
|
||||
0 6 * * * [dspace]/bin/generate-sitemaps
|
||||
|
||||
</pre>
|
||||
</div></div>
|
||||
|
||||
@@ -695,40 +694,31 @@ HTML sitemaps follow the same procedure:</li>
|
||||
<ol>
|
||||
<li><b>DSpace Configuration for Accessing Solr.</b> In the <em>dspace.cfg</em> file review the following fields to make sure they are uncommented:
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">solr.log.server = ${dspace.baseUrl}/solr/statistics
|
||||
solr.dbfile = ${dspace.dir}/config/GeoLiteCity.dat
|
||||
solr.spiderips.urls = http:<span class="code-comment">//iplists.com/google.txt, \
|
||||
</span> http:<span class="code-comment">//iplists.com/inktomi.txt, \
|
||||
</span> http:<span class="code-comment">//iplists.com/lycos.txt, \
|
||||
</span> http:<span class="code-comment">//iplists.com/infoseek.txt, \
|
||||
</span> http:<span class="code-comment">//iplists.com/altavista.txt, \
|
||||
</span> http:<span class="code-comment">//iplists.com/excite.txt, \
|
||||
</span> http:<span class="code-comment">//iplists.com/misc.txt, \
|
||||
<pre class="code-java">solr.log.server = ${dspace.baseUrl}/solr/statistics
|
||||
solr.dbfile = ${dspace.dir}/config/GeoLiteCity.dat
|
||||
solr.spiderips.urls = http:<span class="code-comment">//iplists.com/google.txt, \
|
||||
</span> http:<span class="code-comment">//iplists.com/inktomi.txt, \
|
||||
</span> http:<span class="code-comment">//iplists.com/lycos.txt, \
|
||||
</span> http:<span class="code-comment">//iplists.com/infoseek.txt, \
|
||||
</span> http:<span class="code-comment">//iplists.com/altavista.txt, \
|
||||
</span> http:<span class="code-comment">//iplists.com/excite.txt, \
|
||||
</span> http:<span class="code-comment">//iplists.com/misc.txt, \
|
||||
</span> http:<span class="code-comment">//iplists.com/non_engines.txt</span></pre>
|
||||
</div></div></li>
|
||||
<li><b>DSpace logging configuration for Solr.</b> If your DSpace instance is protected by a proxy server, in order for Solr to log the correct IP address of the user rather than of the proxy, it must be configured to look for the X-Forwarded-For header. This feature can be enabled by ensuring the following setting is uncommented in the logging section of <em>dspace.cfg</em>:
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">useProxies = <span class="code-keyword">true</span></pre>
|
||||
</div></div></li>
|
||||
<li><b>DSpace configuration for fields indexed into Solr Event records for search.</b> In the <em>dspace.cfg</em> file, review the following property keys to make sure they are uncommented:
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">statistics.items.dc.1=dc.identifier
|
||||
statistics.items.dc.2=dc.date.accessioned
|
||||
statistics.items.type.1=dcinput
|
||||
statistics.items.type.2=date
|
||||
statistics.<span class="code-keyword">default</span>.start.datepick = 01/01/1977</pre>
|
||||
</div></div></li>
|
||||
<li><b>Configuration Control.</b> In the <em>dspace.cfg</em> set the following property key:_statistics.item.authorization.admin=true_This will require the user to sign on to see that statistics. Setting the statistics to "false" will make them publicly available.</li>
|
||||
<li>Final steps.
|
||||
<ul>
|
||||
<li>Perform the following step:
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">
|
||||
cd [dspace-source]/dspace
|
||||
mvn <span class="code-keyword">package</span>
|
||||
cd [dspace-source]/dspace/target/dspace-<version>-build.dir
|
||||
ant -Dconfig=[dspace]/config/dspace.cfg update
|
||||
cp -R [dspace]/webapps/* [TOMCAT]/webapps
|
||||
<pre class="code-java">cd [dspace-source]/dspace
|
||||
mvn <span class="code-keyword">package</span>
|
||||
cd [dspace-source]/dspace/target/dspace-<version>-build.dir
|
||||
ant -Dconfig=[dspace]/config/dspace.cfg update
|
||||
cp -R [dspace]/webapps/* [TOMCAT]/webapps
|
||||
</pre>
|
||||
</div></div>
|
||||
<p>If you only need to build the statistics, and don't make any changes to other web applications, you can replace the copy step above with: <em>cp -R [dspace]/webapps/solr [TOMCAT]/webapps</em></p></li>
|
||||
@@ -762,23 +752,21 @@ cp -R [dspace]/webapps/* [TOMCAT]/webapps
|
||||
</li>
|
||||
<li>Update paths in <em>[dspace-source]\dspace\config\dspace.cfg</em>. <b>Note:</b> Use forward slashes / for path separators, though you can still use drive letters, e.g.:_dspace.dir = C:/DSpace_Make sure you change all of the parameters with file paths to suit, specifically:
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">
|
||||
dspace.dir
|
||||
config.template.log4j.properties
|
||||
config.template.log4j-handle-plugin.properties
|
||||
config.template.oaicat.properties
|
||||
assetstore.dir
|
||||
log.dir
|
||||
upload.temp.dir
|
||||
report.dir
|
||||
handle.dir
|
||||
<pre class="code-java"> dspace.dir
|
||||
config.template.log4j.properties
|
||||
config.template.log4j-handle-plugin.properties
|
||||
config.template.oaicat.properties
|
||||
assetstore.dir
|
||||
log.dir
|
||||
upload.temp.dir
|
||||
report.dir
|
||||
handle.dir
|
||||
</pre>
|
||||
</div></div></li>
|
||||
<li>Create the directory for the DSpace installation (e.g. <em>C:\DSpace</em>)</li>
|
||||
<li>Generate the DSpace installation package by running the following from command line (cmd) from your <em>[dspace-source]/dspace/</em> directory:
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">
|
||||
mvn <span class="code-keyword">package</span>
|
||||
<pre class="code-java">mvn <span class="code-keyword">package</span>
|
||||
</pre>
|
||||
</div></div>
|
||||
<ul>
|
||||
@@ -805,16 +793,15 @@ mvn <span class="code-keyword">package</span>
|
||||
<ul>
|
||||
<li>Alternatively, Tell your Tomcat installation where to find your DSpace web application(s). As an example, in the <em><Host></em> section of your <em>[tomcat]/conf/server.xml</em> you could add lines similar to the following (but replace <em>[dspace]</em> with your installation location):
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">
|
||||
<!-- DEFINE A CONTEXT PATH FOR DSpace JSP User Interface -->
|
||||
<Context path=<span class="code-quote">"/jspui"</span> docBase=<span class="code-quote">"[dspace]\webapps\jspui"</span> debug=<span class="code-quote">"0"</span>
|
||||
reloadable=<span class="code-quote">"<span class="code-keyword">true</span>"</span> cachingAllowed=<span class="code-quote">"<span class="code-keyword">false</span>"</span>
|
||||
allowLinking=<span class="code-quote">"<span class="code-keyword">true</span>"</span>/>
|
||||
|
||||
<!-- DEFINE A CONTEXT PATH FOR DSpace OAI User Interface -->
|
||||
<Context path=<span class="code-quote">"/oai"</span> docBase=<span class="code-quote">"[dspace]\webapps\oai"</span> debug=<span class="code-quote">"0"</span>
|
||||
reloadable=<span class="code-quote">"<span class="code-keyword">true</span>"</span> cachingAllowed=<span class="code-quote">"<span class="code-keyword">false</span>"</span>
|
||||
allowLinking=<span class="code-quote">"<span class="code-keyword">true</span>"</span>/>
|
||||
<pre class="code-java"><!-- DEFINE A CONTEXT PATH FOR DSpace JSP User Interface -->
|
||||
<Context path=<span class="code-quote">"/jspui"</span> docBase=<span class="code-quote">"[dspace]\webapps\jspui"</span> debug=<span class="code-quote">"0"</span>
|
||||
reloadable=<span class="code-quote">"<span class="code-keyword">true</span>"</span> cachingAllowed=<span class="code-quote">"<span class="code-keyword">false</span>"</span>
|
||||
allowLinking=<span class="code-quote">"<span class="code-keyword">true</span>"</span>/>
|
||||
|
||||
<!-- DEFINE A CONTEXT PATH FOR DSpace OAI User Interface -->
|
||||
<Context path=<span class="code-quote">"/oai"</span> docBase=<span class="code-quote">"[dspace]\webapps\oai"</span> debug=<span class="code-quote">"0"</span>
|
||||
reloadable=<span class="code-quote">"<span class="code-keyword">true</span>"</span> cachingAllowed=<span class="code-quote">"<span class="code-keyword">false</span>"</span>
|
||||
allowLinking=<span class="code-quote">"<span class="code-keyword">true</span>"</span>/>
|
||||
</pre>
|
||||
</div></div></li>
|
||||
</ul>
|
||||
@@ -854,36 +841,35 @@ mvn <span class="code-keyword">package</span>
|
||||
<ul>
|
||||
<li>If your error looks like this:
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">[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:
|
||||
[java] org.postgresql.util.PSQLException: Connection refused. Check
|
||||
that the hostname and port are correct and that the postmaster is
|
||||
accepting TCP/IP connections.
|
||||
[java] at
|
||||
org.postgresql.jdbc1.AbstractJdbc1Connection.openConnection(AbstractJd
|
||||
bc1Connection.java:204)
|
||||
<pre class="code-java">[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:
|
||||
[java] org.postgresql.util.PSQLException: Connection refused. Check
|
||||
that the hostname and port are correct and that the postmaster is
|
||||
accepting TCP/IP connections.
|
||||
[java] at
|
||||
org.postgresql.jdbc1.AbstractJdbc1Connection.openConnection(AbstractJd
|
||||
bc1Connection.java:204)
|
||||
[java] at org.postgresql.Driver.connect(Driver.java:139)</pre>
|
||||
</div></div>
|
||||
<p> it usually means you haven't yet added the relevant configuration parameter to your PostgreSQL configuration (see above), or perhaps you haven't restarted PostgreSQL after making the change. Also, make sure that the <em>db.username</em> and <em>db.password</em> properties are correctly set in <em>[dspace-source]/config/dspace.cfg</em>. An easy way to check that your DB is working OK over TCP/IP is to try this on the command line: </p>
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">
|
||||
psql -U dspace -W -h localhost</pre>
|
||||
<pre class="code-java">psql -U dspace -W -h localhost</pre>
|
||||
</div></div>
|
||||
<p> Enter the <em>dspace</em> database password, and you should be dropped into the psql tool with a <em>dspace=></em> prompt.</p></li>
|
||||
<li>Another common error looks like this:
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">[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)
|
||||
[java] at
|
||||
<pre class="code-java">[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)
|
||||
[java] at
|
||||
java.net.URLClassLoader.findClass(URLClassLoader.java:186)</pre>
|
||||
</div></div>
|
||||
<p> This means that the PostgreSQL JDBC driver is not present in <em>[dspace-source]/lib</em>. See above.</p></li>
|
||||
@@ -931,7 +917,7 @@ psql -U dspace -W -h localhost</pre>
|
||||
<td height="12" background="https://wiki.duraspace.org/images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Dec 16, 2010 11:47</font></td>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Mar 25, 2011 19:21</font></td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
|
@@ -16,10 +16,13 @@
|
||||
</span>
|
||||
</div>
|
||||
<div class="pagesubheading">
|
||||
This page last changed on Dec 14, 2010 by <font color="#0050B2">tdonohue</font>.
|
||||
This page last changed on Mar 07, 2011 by <font color="#0050B2">tdonohue</font>.
|
||||
</div>
|
||||
|
||||
<h1><a name="Introduction-DSpaceSystemDocumentation%3AIntroduction"></a>DSpace System Documentation: Introduction</h1>
|
||||
<div class='panelMacro'><table class='infoMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="images/icons/emoticons/information.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td><b>Online Version of Documentation also available</b><br />This documentation was produced with <a href="http://www.atlassian.com/software/confluence/">Confluence</a> software. HTML and PDF versions were generated directly from Confluence. An online, updated version of this Documentation is also available at: <a href="https://wiki.duraspace.org/display/DSDOC">https://wiki.duraspace.org/display/DSDOC</a></td></tr></table></div>
|
||||
|
||||
|
||||
<h1><a name="Introduction-DSpaceSystemDocumentation%3AIntroduction"></a>DSpace System Documentation: Introduction</h1>
|
||||
|
||||
|
||||
<p>DSpace is an open source software platform that enables organisations to:</p>
|
||||
@@ -46,7 +49,7 @@
|
||||
<li><a href="https://wiki.duraspace.org/display/DSPACE/DSpaceResources" title="DSpaceResources">A list of DSpace resources</a> (Web sites, mailing lists etc.)</li>
|
||||
<li><a href="https://wiki.duraspace.org/display/DSPACE/TechnicalFaq" title="TechnicalFaq">Technical FAQ</a></li>
|
||||
<li><a href="http://www.dspace.org/whos-using-dspace/Repository-List.html">A list of projects using DSpace</a></li>
|
||||
<li><a href="https://wiki.duraspace.org/display/DSPACE/ContributionGuidelines" title="ContributionGuidelines">Guidelines for contributing back to DSpace</a></li>
|
||||
<li><a href="https://wiki.duraspace.org/display/DSPACE/Code+Contribution+Guidelines" title="Code Contribution Guidelines">Guidelines for contributing back to DSpace</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="http://www.dspace.org/">www.dspace.org</a> has announcements and contains useful information about bringing up an instance of DSpace at your organization.</li>
|
||||
@@ -65,7 +68,7 @@
|
||||
<td height="12" background="https://wiki.duraspace.org/images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Dec 16, 2010 11:47</font></td>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Mar 25, 2011 19:21</font></td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
|
@@ -111,7 +111,7 @@ When you restart the web server you should see your customized JSPs.</li>
|
||||
<td height="12" background="https://wiki.duraspace.org/images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Dec 16, 2010 11:47</font></td>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Mar 25, 2011 19:21</font></td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
|
@@ -16,20 +16,17 @@
|
||||
</span>
|
||||
</div>
|
||||
<div class="pagesubheading">
|
||||
This page last changed on Dec 16, 2010 by <font color="#0050B2">jtrimble</font>.
|
||||
This page last changed on Mar 25, 2011 by <font color="#0050B2">peterdietz</font>.
|
||||
</div>
|
||||
|
||||
<h1><a name="MirageConfigurationandCustomization-"></a></h1>
|
||||
|
||||
|
||||
<h1><a name="MirageConfigurationandCustomization-MirageThemeConfigurationandCustomization"></a>Mirage Theme Configuration and Customization</h1>
|
||||
<h1><a name="MirageConfigurationandCustomization-MirageThemeConfigurationandCustomization"></a>Mirage Theme Configuration and Customization</h1>
|
||||
|
||||
<style type='text/css'>/*<![CDATA[*/
|
||||
div.rbtoc1292512351516 {margin-left: 0px;padding: 0px;}
|
||||
div.rbtoc1292512351516 ul {list-style: none;margin-left: 0px;}
|
||||
div.rbtoc1292512351516 li {margin-left: 0px;padding-left: 0px;}
|
||||
div.rbtoc1301079432729 {margin-left: 0px;padding: 0px;}
|
||||
div.rbtoc1301079432729 ul {list-style: none;margin-left: 0px;}
|
||||
div.rbtoc1301079432729 li {margin-left: 0px;padding-left: 0px;}
|
||||
|
||||
/*]]>*/</style><div class='rbtoc1292512351516'>
|
||||
/*]]>*/</style><div class='rbtoc1301079432729'>
|
||||
<ul>
|
||||
<li><span class='TOCOutline'>1</span> <a href='#MirageConfigurationandCustomization-Introduction'>Introduction</a></li>
|
||||
<li><span class='TOCOutline'>2</span> <a href='#MirageConfigurationandCustomization-ConfigurationParameters'>Configuration Parameters</a></li>
|
||||
@@ -38,6 +35,10 @@ div.rbtoc1292512351516 li {margin-left: 0px;padding-left: 0px;}
|
||||
<li><span class='TOCOutline'>3.1</span> <a href='#MirageConfigurationandCustomization-Look%26Feel'>Look & Feel</a></li>
|
||||
<li><span class='TOCOutline'>3.2</span> <a href='#MirageConfigurationandCustomization-Structuralenhancementsforeasiercustomization.'>Structural enhancements for easier customization.</a></li>
|
||||
<li><span class='TOCOutline'>3.3</span> <a href='#MirageConfigurationandCustomization-EnhancedPerformance'>Enhanced Performance</a></li>
|
||||
</ul>
|
||||
<li><span class='TOCOutline'>4</span> <a href='#MirageConfigurationandCustomization-Troubleshooting'>Troubleshooting</a></li>
|
||||
<ul>
|
||||
<li><span class='TOCOutline'>4.1</span> <a href='#MirageConfigurationandCustomization-ErrorsusingHTTPS'>Errors using HTTPS</a></li>
|
||||
</ul>
|
||||
</ul></div>
|
||||
|
||||
@@ -63,41 +64,41 @@ div.rbtoc1292512351516 li {margin-left: 0px;padding-left: 0px;}
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> Example Value: </td>
|
||||
<td class='confluenceTd'> xmlui.theme.mirage.item-list.emphasis = metadata<br class="atl-forced-newline" /> </td>
|
||||
<td class='confluenceTd'> xmlui.theme.mirage.item-list.emphasis = metadata <br class="atl-forced-newline" /> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> Informational Note: </td>
|
||||
<td class='confluenceTd'> Determines which style should be used to display item lists. Allowed values: <br class="atl-forced-newline" />
|
||||
<td class='confluenceTd'> Determines which style should be used to display item lists. Allowed values: <br class="atl-forced-newline" />
|
||||
<ul>
|
||||
<li><b>metadata</b>: includes item abstracts in the listing and is suited for scientific articles.</li>
|
||||
<li><b>file</b>: immediately shows you whether files are attached to the items, by displaying a large thumbnail icon for each of the items.<br/>
|
||||
metatdate is the default value. </li>
|
||||
<li><b>file</b>: immediately shows you whether files are attached to the items, by displaying a large thumbnail icon for each of the items. <br class="atl-forced-newline" />
|
||||
metadata is the default value. </li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> Property: </td>
|
||||
<td class='confluenceTd'> xmlui.theme.enableConcatenation<br class="atl-forced-newline" /> </td>
|
||||
<td class='confluenceTd'> xmlui.theme.enableConcatenation <br class="atl-forced-newline" /> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> Example Value: </td>
|
||||
<td class='confluenceTd'> xmlui.theme.enableConcatenation = false<br class="atl-forced-newline" /> </td>
|
||||
<td class='confluenceTd'> xmlui.theme.enableConcatenation = false <br class="atl-forced-newline" /> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> Informational Note: </td>
|
||||
<td class='confluenceTd'> Allows to enable concatenation for .js and .css files. Enhances performance when enabled by lowering the number of files that needs to be sent to the client per page request (as mutiple files will be concatenated together and sent as one file). Value can be true or false. False by default.<br class="atl-forced-newline" /> </td>
|
||||
<td class='confluenceTd'> Allows to enable concatenation for .js and .css files. Enhances performance when enabled by lowering the number of files that needs to be sent to the client per page request (as multiple files will be concatenated together and sent as one file). Value can be true or false. False by default. <br class="atl-forced-newline" /> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> Property: </td>
|
||||
<td class='confluenceTd'> xmlui.theme.enableMinification<br class="atl-forced-newline" /> </td>
|
||||
<td class='confluenceTd'> xmlui.theme.enableMinification <br class="atl-forced-newline" /> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> Example Value: </td>
|
||||
<td class='confluenceTd'> xmlui.theme.enableMinification = false<br class="atl-forced-newline" /> </td>
|
||||
<td class='confluenceTd'> xmlui.theme.enableMinification = false <br class="atl-forced-newline" /> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> Informational Note: </td>
|
||||
<td class='confluenceTd'> Allows to enable minification for .js and .css files. Enhances performance when enabled by removing unnecessary whitespaces and other characters, thus reducing the size of files to be sent. Value can be true or false. False by default.<br class="atl-forced-newline" /> </td>
|
||||
<td class='confluenceTd'> Allows to enable minification for .js and .css files. Enhances performance when enabled by removing unnecessary whitespaces and other characters, thus reducing the size of files to be sent. Value can be true or false. False by default. <br class="atl-forced-newline" /> </td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
</div>
|
||||
@@ -122,7 +123,7 @@ metatdate is the default value. </li>
|
||||
<h3><a name="MirageConfigurationandCustomization-Structuralenhancementsforeasiercustomization."></a>Structural enhancements for easier customization.</h3>
|
||||
|
||||
<ul>
|
||||
<li><b>Based on the new restructured dri2xhtml base templates</b>. Templates in the theme, overriding the new base templates, are located in the same folder hierarchy to ensure full transparancy.</li>
|
||||
<li><b>Based on the new restructured dri2xhtml base templates</b>. Templates in the theme, overriding the new base templates, are located in the same folder hierarchy to ensure full transparency.</li>
|
||||
<li><b>Automated browser feature detection</b> for improved browser compatibility.
|
||||
<ul>
|
||||
<li>In other themes, user agent detection is used to identify which browser version your user is using. Based on the result of this detection, the theme would use a different cascaded style sheet (CSS) to render a compatible page for the visitor. This approach has 2 major issues:
|
||||
@@ -172,6 +173,29 @@ metatdate is the default value. </li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h2><a name="MirageConfigurationandCustomization-Troubleshooting"></a>Troubleshooting</h2>
|
||||
|
||||
<h3><a name="MirageConfigurationandCustomization-ErrorsusingHTTPS"></a>Errors using HTTPS</h3>
|
||||
|
||||
<p>DSpace 1.7.0 ships with a hardcoded http:// link for JQuery, causing problems for users running 1.7.0 Mirage on HTTPS. While awaiting the implementation of this fix in an upcoming release, you can solve in the following file: <b>lib/core/page-structure.xsl</b>, <b>addJavascript</b> template. In this file, you will need to <b>replace</b></p>
|
||||
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java"><script type=<span class="code-quote">"text/javascript"</span> src=<span class="code-quote">"http:<span class="code-comment">//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"</span>>&#160;</script></span>
|
||||
</pre>
|
||||
</div></div>
|
||||
|
||||
<p>with</p>
|
||||
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java"> <script type=<span class="code-quote">"text/javascript"</span>>
|
||||
<xsl:text disable-output-escaping=<span class="code-quote">"yes"</span>><span class="code-keyword">var</span> JsHost = ((<span class="code-quote">"https:"</span> == document.location.protocol) ? <span class="code-quote">"https:<span class="code-comment">//"</span> : <span class="code-quote">"http://"</span>);
|
||||
</span> document.write(unescape(<span class="code-quote">"%3Cscript src='"</span> + JsHost + <span class="code-quote">"ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js' type='text/javascript'%3E%3C/script%3E"</span>));</xsl:text>
|
||||
</script>
|
||||
</pre>
|
||||
</div></div>
|
||||
|
||||
<p>Thanks Peter Dietz for providing this fix. Note: This issue is resolved in 1.7.1</p>
|
||||
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
@@ -181,7 +205,7 @@ metatdate is the default value. </li>
|
||||
<td height="12" background="https://wiki.duraspace.org/images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Dec 16, 2010 11:47</font></td>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Mar 25, 2011 19:21</font></td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
|
@@ -16,14 +16,38 @@
|
||||
</span>
|
||||
</div>
|
||||
<div class="pagesubheading">
|
||||
This page last changed on Dec 16, 2010 by <font color="#0050B2">tdonohue</font>.
|
||||
This page last changed on Mar 25, 2011 by <font color="#0050B2">peterdietz</font>.
|
||||
</div>
|
||||
|
||||
<div class='panelMacro'><table class='infoMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="images/icons/emoticons/information.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td><b>Online Version of Documentation also available</b><br />This documentation was produced with <a href="http://www.atlassian.com/software/confluence/">Confluence</a> software. HTML and PDF versions were generated directly from Confluence. An online, updated version of this Documentation is also available at: <a href="https://wiki.duraspace.org/display/DSDOC">https://wiki.duraspace.org/display/DSDOC</a></td></tr></table></div>
|
||||
|
||||
<h1><a name="Preface-Preface"></a>Preface</h1>
|
||||
|
||||
<p>Welcome to Release 1.7.0! The committers have volunteered many hours to fix, re-write and contribute new software code for this release. Documentation has also been updated. </p>
|
||||
<p>Welcome to Release 1.7.1! The committers have volunteered many hours to fix, re-write and contribute new software code for this release. Documentation has also been updated. The 1.7.1 bug fix release includes all the new features of 1.7.0 but fixes many known issues discovered since the release of 1.7.0.</p>
|
||||
|
||||
|
||||
<p>Bug Fixes in 1.7.1 include (but not exhaustive):</p>
|
||||
<ul>
|
||||
<li>DS-858 Multicore SOLR needs to prevent remote access to solr cores</li>
|
||||
<li>DS-785 SWORD deposits fail when ingest events are fired if Discovery event consumer is configured</li>
|
||||
<li>DS-806 Item.match() incorrect logic for schema testing</li>
|
||||
<li>DS-823 DatabaseManager is no longer Oracle compliant</li>
|
||||
<li>DS-821 AbstractMETSIngester creates an item before adding descriptive metadata</li>
|
||||
<li>DS-776 Collection admin cannot add bitstreams unless there is at least one bundle</li>
|
||||
<li>DS-853 MetadataExposure settings for dc.description.provenance are ignored/overridden by XMLUI templates</li>
|
||||
<li>DS-435 "My Exports" displayed in navigation bar, when no user is logged in</li>
|
||||
<li>DS-789 HTTPS renders with errors due to hardcoded HTTP link in xmlui theme</li>
|
||||
<li>DS-620 Exceeding maximum file size limit while uploading files to lead to friendly error page</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<p>Improvements in 1.7.1 include (but not exhaustive):</p>
|
||||
<ul>
|
||||
<li>DS-840 Add Ability to create Top Level Community at the home page</li>
|
||||
<li>DS-839 Adding Field to Choice Authority to allow Authorities to be able to know field being required</li>
|
||||
<li>DS-828 Enable "restore mode" ingestion via sword</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<p>The following is a list of the new features included for release 1.7.0 (not an exhaustive list):</p>
|
||||
|
||||
@@ -41,9 +65,9 @@
|
||||
|
||||
<p>A full list of all changes / bug fixes in 1.7.0 is available in the <a href="History.html" title="History">History</a> section.</p>
|
||||
|
||||
<p>The following people have contributed directly to this release of DSpace: @mire, Andrea Bollini, Andrea Schweer, Andreas Schwander, Andrew Hankinson, Andrew Taylor, Antero Neto, Ben Bosman, Bill Hays, BioMed Central, Caryn Neiswender, Christophe Dupriez, Claudia Jürgen, Enovation Solutions, Erick Rocha Fonseca, Flávio Botelho, Gabriela Mircea, Gareth Waller, Graham Triggs, Hardy Pottinger, Ivan Masár, Jason Stirnaman, Jeffrey Trimble, Keiji Suzuki, Keith Gilbertson, Kevin Van de Velde, Kim Shepherd, Mark Diggory, Mark H. Wood, Marvin Pollard, Michael B. Klein, Nicholas Riley, Nick Nicholas, OhioLINK, Oleksandr Sytnyk, Pere Villega, Peter Dietz, Reinhard Engels, Richard Rodgers, Robin Taylor, Sands Fish, Sarah Shreeves, Scott Phillips, Simon Brown, Stuart Lewis, Tim Donohue, Vladislav Zhivkov, Yin Yin Latt. Many of them could not do this work without the support (release time and financial) of their associated institutions. We offer thanks to those institutions for supporting their staff to take time to contribute to the DSpace project.</p>
|
||||
<p>The following people have contributed directly to this release of DSpace: @mire, Andrea Bollini, Andrea Schweer, Andreas Schwander, Andrew Hankinson, Andrew Taylor, Antero Neto, Ben Bosman, Bill Hays, BioMed Central, Bram Luyten, Caryn Neiswender, Christophe Dupriez, Claudia Jürgen, Enovation Solutions, Erick Rocha Fonseca, Flávio Botelho, Gabriela Mircea, Gareth Waller, Graham Triggs, Hardy Pottinger, Ivan Masár, Jason Stirnaman, Jeffrey Trimble, Keiji Suzuki, Keith Gilbertson, Kevin Van de Velde, Kim Shepherd, Mark Diggory, Mark H. Wood, Marvin Pollard, Michael B. Klein, Nicholas Riley, Nick Nicholas, OhioLINK, Oleksandr Sytnyk, Pere Villega, Peter Dietz, Reinhard Engels, Richard Rodgers, Robin Taylor, Sands Fish, Sarah Shreeves, Scott Phillips, Simon Brown, Stuart Lewis, Tim Donohue, Vladislav Zhivkov, Yin Yin Latt. Many of them could not do this work without the support (release time and financial) of their associated institutions. We offer thanks to those institutions for supporting their staff to take time to contribute to the DSpace project.</p>
|
||||
|
||||
<p>We apologize to any contributor accidentally left off this list. DSpace has such a large, active development community that we sometimes lose track of all our contributors. Our ongoing list of all known people/institutions that have contributed to DSpace software can be found on our <a href="https://wiki.duraspace.org/display/DSPACE/DSpaceContributors" title="DSpaceContributors">DSpace Contributors page</a>. Acknowledgements to those left off will be made in future releases. Want to make sure you make it on the short list of contributors? All you have to do is report an issue, fix a bug or help us determine the necessary requirements for a new feature! Visit our <a href="https://jira.duraspace.org/browse/DS">Issue Tracker</a> to take part and get your name on the list of DSpace Contributors!</p>
|
||||
<p>We apologize to any contributor accidentally left off this list. DSpace has such a large, active development community that we sometimes lose track of all our contributors. Our ongoing list of all known people/institutions that have contributed to DSpace software can be found on our <a href="https://wiki.duraspace.org/display/DSPACE/DSpaceContributors" title="DSpaceContributors">DSpace Contributors page</a>. Acknowledgements to those left off will be made in future releases. Want to make sure you make it on the short list of contributors? All you have to do is report an issue, fix a bug or help us determine the necessary requirements for a new feature! Visit our <a href="https://jira.duraspace.org/browse/DS">Issue Tracker</a> to take part and get your name on the list of DSpace Contributors!</p>
|
||||
|
||||
<p>The Documentation Gardener for this release was Jeffrey Trimble with input from everyone. All typos are his fault.</p>
|
||||
|
||||
@@ -60,7 +84,7 @@
|
||||
<td height="12" background="https://wiki.duraspace.org/images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Dec 16, 2010 11:47</font></td>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Mar 25, 2011 19:21</font></td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
|
@@ -16,7 +16,7 @@
|
||||
</span>
|
||||
</div>
|
||||
<div class="pagesubheading">
|
||||
This page last changed on Dec 15, 2010 by <font color="#0050B2">tdonohue</font>.
|
||||
This page last changed on Feb 17, 2011 by <font color="#0050B2">helix84</font>.
|
||||
</div>
|
||||
|
||||
<h1><a name="StorageLayer-SystemArchitecture%3AStorageLayer"></a>System Architecture: Storage Layer</h1>
|
||||
@@ -24,11 +24,11 @@
|
||||
<p>In this section, we explain the storage layer: the database structure, maintenance, and the bistream store and configurations.</p>
|
||||
|
||||
<style type='text/css'>/*<![CDATA[*/
|
||||
div.rbtoc1292438661511 {margin-left: 0px;padding: 0px;}
|
||||
div.rbtoc1292438661511 ul {list-style: none;margin-left: 0px;}
|
||||
div.rbtoc1292438661511 li {margin-left: 0px;padding-left: 0px;}
|
||||
div.rbtoc1297952020967 {margin-left: 0px;padding: 0px;}
|
||||
div.rbtoc1297952020967 ul {list-style: none;margin-left: 0px;}
|
||||
div.rbtoc1297952020967 li {margin-left: 0px;padding-left: 0px;}
|
||||
|
||||
/*]]>*/</style><div class='rbtoc1292438661511'>
|
||||
/*]]>*/</style><div class='rbtoc1297952020967'>
|
||||
<ul>
|
||||
<li><span class='TOCOutline'>1</span> <a href='#StorageLayer-RDBMS%2FDatabaseStructure'>RDBMS / Database Structure</a></li>
|
||||
<ul>
|
||||
@@ -40,7 +40,7 @@ div.rbtoc1292438661511 li {margin-left: 0px;padding-left: 0px;}
|
||||
<li><span class='TOCOutline'>2.1</span> <a href='#StorageLayer-Backup'>Backup</a></li>
|
||||
<li><span class='TOCOutline'>2.2</span> <a href='#StorageLayer-ConfiguringtheBitstreamStore'>Configuring the Bitstream Store</a></li>
|
||||
<ul>
|
||||
<li><span class='TOCOutline'>2.2.1</span> <a href='#StorageLayer-ConfiguringTraditonalStorage'>Configuring Traditonal Storage</a></li>
|
||||
<li><span class='TOCOutline'>2.2.1</span> <a href='#StorageLayer-ConfiguringTraditionalStorage'>Configuring Traditional Storage</a></li>
|
||||
<li><span class='TOCOutline'>2.2.2</span> <a href='#StorageLayer-ConfiguringSRBStorage'>Configuring SRB Storage</a></li>
|
||||
</ul>
|
||||
</ul>
|
||||
@@ -223,7 +223,7 @@ None of these affect the integrity of the data in the database or bitstream stor
|
||||
|
||||
<p>Both traditional and SRB bitstream stores are configured in <em>dspace.cfg</em>.</p>
|
||||
|
||||
<h4><a name="StorageLayer-ConfiguringTraditonalStorage"></a>Configuring Traditonal Storage</h4>
|
||||
<h4><a name="StorageLayer-ConfiguringTraditionalStorage"></a>Configuring Traditional Storage</h4>
|
||||
|
||||
<p>Bitstream stores in the file system on the server are configured like this:</p>
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
@@ -299,7 +299,7 @@ srb.parentdir.1 = mysrbdspaceassetstore
|
||||
<td height="12" background="https://wiki.duraspace.org/images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Dec 16, 2010 11:47</font></td>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Mar 25, 2011 19:21</font></td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
|
@@ -590,7 +590,7 @@ Look at the example <em>input-forms.xml</em> and experiment with a a trial custo
|
||||
<td height="12" background="https://wiki.duraspace.org/images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Dec 16, 2010 11:47</font></td>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Mar 25, 2011 19:21</font></td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
|
@@ -16,7 +16,7 @@
|
||||
</span>
|
||||
</div>
|
||||
<div class="pagesubheading">
|
||||
This page last changed on Dec 16, 2010 by <font color="#0050B2">jtrimble</font>.
|
||||
This page last changed on Mar 21, 2011 by <font color="#0050B2">tdonohue</font>.
|
||||
</div>
|
||||
|
||||
<h1><a name="SystemAdministration-DSpaceSystemDocumentation%3ASystemAdministration"></a>DSpace System Documentation: System Administration</h1>
|
||||
@@ -46,11 +46,11 @@
|
||||
|
||||
<p><b>Table of Contents:</b></p>
|
||||
<style type='text/css'>/*<![CDATA[*/
|
||||
div.rbtoc1292513589969 {margin-left: 0px;padding: 0px;}
|
||||
div.rbtoc1292513589969 ul {list-style: none;margin-left: 0px;}
|
||||
div.rbtoc1292513589969 li {margin-left: 0px;padding-left: 0px;}
|
||||
div.rbtoc1300725952153 {margin-left: 0px;padding: 0px;}
|
||||
div.rbtoc1300725952153 ul {list-style: none;margin-left: 0px;}
|
||||
div.rbtoc1300725952153 li {margin-left: 0px;padding-left: 0px;}
|
||||
|
||||
/*]]>*/</style><div class='rbtoc1292513589969'>
|
||||
/*]]>*/</style><div class='rbtoc1300725952153'>
|
||||
<ul>
|
||||
<li><span class='TOCOutline'>1</span> <a href='#SystemAdministration-CommunityandCollectionStructureImporter'>Community and Collection Structure Importer</a></li>
|
||||
<ul>
|
||||
@@ -460,6 +460,9 @@ div.rbtoc1292513589969 li {margin-left: 0px;padding-left: 0px;}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h2><a name="SystemAdministration-ItemImporterandExporter"></a>Item Importer and Exporter</h2>
|
||||
|
||||
<p>DSpace has a set of command line tools for importing and exporting items in batches, using the DSpace simple archive format. The tools are not terribly robust, but are useful and are easily modified. They also give a good demonstration of how to implement your own item importer if desired.</p>
|
||||
@@ -526,16 +529,16 @@ archive_directory/
|
||||
|
||||
<p>It is possible to use other Schema such as EAD, VRA Core, etc. Make sure you have defined the new scheme in the DSpace Metada Schema Registry.</p>
|
||||
<ol>
|
||||
<li>Create a separate file for the other schema named "<em>metadata</em>{prefix}.xml_", where the <em>{prefix}</em> is replaced with the schema's prefix.</li>
|
||||
<li>Create a separate file for the other schema named "<em>metadata-[prefix].xml</em>", where the <em>{prefix}</em> is replaced with the schema's prefix.</li>
|
||||
<li>Inside the xml file use the dame Dublin Core <em>syntax</em>, but on the <em><dublin_core></em> element include the attribute "<em>schema={prefix}</em>".</li>
|
||||
<li>Here is an example for ETD metadata, which would be in the file "<em>metadata_etd.xml"</em>:
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java"><xml version=<span class="code-quote">"1.0"</span> encoding=<span class="code-quote">"UTF-8"</span>?>
|
||||
<pre class="code-java"><?xml version=<span class="code-quote">"1.0"</span> encoding=<span class="code-quote">"UTF-8"</span>?>
|
||||
<dublin_core schema=<span class="code-quote">"etd"</span>>
|
||||
<dcvalue element=<span class="code-quote">"degree"</span> qualifier=<span class="code-quote">"department"</span>>Computer Science</dcvalue>
|
||||
<dcvalue element=<span class="code-quote">"degree"</span> qualifier=<span class="code-quote">"level"</span>>Masters</dcvalue>
|
||||
<dcvalue element=<span class="code-quote">"degree"</span> qualifier=<span class="code-quote">"grantor"</span>>Texas A & M</dcvalue>
|
||||
</pre>
|
||||
</dublin_core></pre>
|
||||
</div></div></li>
|
||||
</ol>
|
||||
|
||||
@@ -806,7 +809,7 @@ In order to avoid duplication of this metadata, run</li>
|
||||
|
||||
<p>ItemUpdate is a batch-mode command-line tool for altering the metadata and bitstream content of existing items in a DSpace instance. It is a companion tool to ItemImport and uses the DSpace simple archive format to specify changes in metadata and bitstream contents. Those familiar with generating the source trees for ItemImporter will find a similar environment in the use of this batch processing tool.</p>
|
||||
|
||||
<p>For metadata, ItemUpdate can perform 'add' and 'delete' actions on specified metadta elements. For bitstreams, 'add' and 'delete' are similarly available. All these actions can be combined in a single batch run.</p>
|
||||
<p>For metadata, ItemUpdate can perform 'add' and 'delete' actions on specified metadata elements. For bitstreams, 'add' and 'delete' are similarly available. All these actions can be combined in a single batch run.</p>
|
||||
|
||||
<p>ItemUpdate supports an undo feature for all actions except bitstream deletion. There is also a test mode, as with ItemImport. However, unlike ItemImport, there is no resume feature for incomplete processing. There is more extensive logging with a summary statement at the end with counts of successful and unsuccessful items processed.</p>
|
||||
|
||||
@@ -851,11 +854,11 @@ In order to avoid duplication of this metadata, run</li>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> <tt>-A</tt> or <tt>--addbitstream</tt> </td>
|
||||
<td class='confluenceTd'> Adds bitstreams listed in the contents file with the bistream metadata cited there. </td>
|
||||
<td class='confluenceTd'> Adds bitstreams listed in the contents file with the bitstream metadata cited there. </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> <tt>-D</tt> or <tt>--deletebitstream [filter plug classname or alias]</tt> </td>
|
||||
<td class='confluenceTd'> Not repeatable. With no argument, this operation deletes bistreams listed in the <em>deletes_contents</em> file. Only bitstream ids are recognized identifiers for this operatiotn. The optional filter argument is the classname of an implementation of <em>org.dspace.app.itemdupate.BitstreamFilter</em> class to identify files for deletion or one of the aliases (ORIGINAL, ORIGINAL_AND_DERIVATIVES, TEXT, THUMBNAIL) which reference existing filters based on membership in a bundle of that name. IN this case, the <em>delete_contents</em> file is not required for any item. The filter properties file will contains properties pertinent to the particular filer used. Multiple filters are not allowed. </td>
|
||||
<td class='confluenceTd'> Not repeatable. With no argument, this operation deletes bitstreams listed in the <em>deletes_contents</em> file. Only bitstream ids are recognized identifiers for this operatiotn. The optional filter argument is the classname of an implementation of <em>org.dspace.app.itemdupate.BitstreamFilter</em> class to identify files for deletion or one of the aliases (ORIGINAL, ORIGINAL_AND_DERIVATIVES, TEXT, THUMBNAIL) which reference existing filters based on membership in a bundle of that name. IN this case, the <em>delete_contents</em> file is not required for any item. The filter properties file will contains properties pertinent to the particular filer used. Multiple filters are not allowed. </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> <tt>-h</tt> or <tt>--help</tt> </td>
|
||||
@@ -879,7 +882,7 @@ In order to avoid duplication of this metadata, run</li>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> <tt>-P</tt> or <tt>--alterprovenance</tt> </td>
|
||||
<td class='confluenceTd'> Prevents any changes to the provenance field to represent changes in the bitstream content resulting from an Add or Delete. No provenance statements are written for thumbnails or text derivative bitstreams, un keepin with the practice of MediaFilterManager. (Optional) </td>
|
||||
<td class='confluenceTd'> Prevents any changes to the provenance field to represent changes in the bitstream content resulting from an Add or Delete. No provenance statements are written for thumbnails or text derivative bitstreams, in keeping with the practice of MediaFilterManager. (Optional) </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> <tt>-F</tt> or <tt>--filterproperties</tt> </td>
|
||||
@@ -1162,7 +1165,7 @@ Adding your own filters is done by creating a class which <em>implements</em> th
|
||||
<pre class="code-java">[dspace]/bin/dspace community-filiator -r -p parentID -c childID</pre>
|
||||
</div></div>
|
||||
|
||||
<p>where '<del>r' or '</del>-remove' means dis-establish the current relationship in which the community identified by 'parentID' is the parent of the community identified by 'childID'. The outcome will be that the 'childID' community will become an orphan, i.e. a top-level community.</p>
|
||||
<p>where '<del>r' or '</del>-remove' means dis-establish the current relationship in which the community identified by 'parentID' is the parent of the community identified by 'childID'. The outcome will be that the 'childID' community will become an orphan, i.e. a top-level community.</p>
|
||||
|
||||
<p>If the required constraints of operation are violated, an error message will appear explaining the problem, and no change will be made. An example in a removal operation, where the stated child community does not have the stated parent community as its parent: "Error, child community not a child of parent community".</p>
|
||||
|
||||
@@ -1304,7 +1307,7 @@ Adding your own filters is done by creating a class which <em>implements</em> th
|
||||
<pre class="code-java">[dspace]/bin/dspace metadata-<span class="code-keyword">import</span> -f /dImport/col_14.csv</pre>
|
||||
</div></div>
|
||||
|
||||
<p>If you are wishing to upload new metadata <b>without</b> bistreams, at the command line:</p>
|
||||
<p>If you are wishing to upload new metadata <b>without</b> bitstreams, at the command line:</p>
|
||||
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">[dspace]/bin/dspace/metadata-<span class="code-keyword">import</span> -f /dImport/new_file.csv -e joe@user.com -w -n -t</pre>
|
||||
@@ -1312,13 +1315,15 @@ Adding your own filters is done by creating a class which <em>implements</em> th
|
||||
|
||||
<p>In the above example we threw in all the arguments. This would add the metadata and engage the workflow, notification, and templates to all be applied to the items that are being added.</p>
|
||||
|
||||
<div class='panelMacro'><table class='infoMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="images/icons/emoticons/information.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td><b>Importing large CSV files</b><br />It is not recommended to import CSV files of more than 1,000 lines. When importing files larger than this, it is hard to accurately verify the changes that the import tool states it will make, and large files may cause 'Out Of Memory' errors part way through the process.</td></tr></table></div>
|
||||
|
||||
|
||||
|
||||
<h3><a name="SystemAdministration-TheCSVFiles"></a>The CSV Files</h3>
|
||||
|
||||
<p>The csv files that this tool can import and export abide by the RFC4180 CSV format <a href="http://www.ietf.org/rfc/rfc4180.txt" title="http://www.ietf.org/rfc/rfc4180.txt">http://www.ietf.org/rfc/rfc4180.txt</a>. This means that new lines, and embedded commas can be included by wrapping elements in double quotes. Double quotes can be included by using two double quotes. The code does all this for you, and any good csv editor such as Excel or OpenOffice will comply with this convention.</p>
|
||||
|
||||
<p><b>File Structure.</b> The first row of the csv must define the metadata values that the rest of the csv represents. The first column must always be "id" which refers to the item'id. All other columns are optional. The other columns contain the dublin core metadata fields that the data is to reside.</p>
|
||||
<p><b>File Structure.</b> The first row of the csv must define the metadata values that the rest of the csv represents. The first column must always be "id" which refers to the item's id. All other columns are optional. The other columns contain the dublin core metadata fields that the data is to reside.</p>
|
||||
|
||||
<p>A typical heading row looks like:</p>
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
@@ -1334,7 +1339,7 @@ Adding your own filters is done by creating a class which <em>implements</em> th
|
||||
</div></div>
|
||||
<p>Elements are stored in the database in the order that they appear in the csv file. You can use this to order elements where order may matter, such as authors, or controlled vocabulary such as Library of Congress Subject Headings.</p>
|
||||
|
||||
<p>When importing a csv file, the importer will <em>overlay</em> the data onto what is already in the repository to determine the differences. It only acts on the contents of the cvs file, rather than on the complete item metadata. This means that the CSV file that is exported can be manipulated quite substantially before being re-imported. Rows (items) or Columns (metadata elements) can be removed and will be ignored. For example, if you only want to edit item abstracts, you can remove all of the other columns and just leave the abstract column. (You do need to leave the ID column intact. This is mandatory).</p>
|
||||
<p>When importing a csv file, the importer will <em>overlay</em> the data onto what is already in the repository to determine the differences. It only acts on the contents of the csv file, rather than on the complete item metadata. This means that the CSV file that is exported can be manipulated quite substantially before being re-imported. Rows (items) or Columns (metadata elements) can be removed and will be ignored. For example, if you only want to edit item abstracts, you can remove all of the other columns and just leave the abstract column. (You do need to leave the ID column intact. This is mandatory).</p>
|
||||
|
||||
<p><b>Editing collection membership.</b> Items can be moved between collections by editing the collection handles in the 'collection' column. Multiple collections can be included. The first collection is the 'owning collection'. The owning collection is the primary collection that the item appears in. Subsequent collections (separated by the field separator) are treated as mapped collections. These are the same as using the map item functionality in the DSpace user interface. To move items between collections, or to edit which other collections they are mapped to, change the data in the collection column.</p>
|
||||
|
||||
@@ -1461,10 +1466,10 @@ The user should refer to Chapter 5. Configuration for specific configuration bey
|
||||
</div>
|
||||
|
||||
<p>The checker will keep starting new bitstream checks for the specific durations, so actual execution duration will be slightly longer than the specified duration. Bear this in mind when scheduling checks.</p></li>
|
||||
<li><b>Specific Bistream mode:</b> <tt>[dspace]/bin/dspace checker -b</tt> Checker will only look at the internal bitsteam IDs. Example: <tt>[dspace]/bin/dspace checker -b 112 113 4567</tt> Checker will only check bitstream IDs 112, 113 and 4567.</li>
|
||||
<li><b>Specific Handle mode:</b> <tt>[dspace]/bin/dspace checker -a</tt> Checker will only check bistreams within the Community, Community or the item itself. Example: <tt>[dspace]/bin/dspace checker -a 123456/999</tt> Checker will only check this handle. If it is a Collection or Community, it will run through the entire Collection or Community.</li>
|
||||
<li><b>Specific Bitstream mode:</b> <tt>[dspace]/bin/dspace checker -b</tt> Checker will only look at the internal bitstream IDs. Example: <tt>[dspace]/bin/dspace checker -b 112 113 4567</tt> Checker will only check bitstream IDs 112, 113 and 4567.</li>
|
||||
<li><b>Specific Handle mode:</b> <tt>[dspace]/bin/dspace checker -a</tt> Checker will only check bitstreams within the Community, Community or the item itself. Example: <tt>[dspace]/bin/dspace checker -a 123456/999</tt> Checker will only check this handle. If it is a Collection or Community, it will run through the entire Collection or Community.</li>
|
||||
<li><b>Looping mode:</b> <tt>[dspace]/bin/dspace checker -l</tt> or <tt>[dspace]/bin/dspace checker -L</tt> There are two modes. The lowercase 'el' (-l) specifies to check every bitstream in the repository once. This is recommended for smaller repositories who are able to loop through all their content in just a few hours maximum. An uppercase 'L' (-L) specifies to continuously loops through the repository. This is not recommended for most repository systems. <b>Cron Jobs</b>. For large repositories that cannot be completely checked in a couple of hours, we recommend the -d option in cron.</li>
|
||||
<li><b>Pruning mode:</b> <tt>[dspace]/bin/dspace checker -p</tt> The Checksum Checker will store the result of every check in the checksum_history table. By default, successful checksum matches that are eight weeks old or older will be deleted when the -p option is used. (Unsuccessful ones will be retained indefinitel). Without this option, the retention settings are ignored and the database table may grow rather large!</li>
|
||||
<li><b>Pruning mode:</b> <tt>[dspace]/bin/dspace checker -p</tt> The Checksum Checker will store the result of every check in the checksum_history table. By default, successful checksum matches that are eight weeks old or older will be deleted when the -p option is used. (Unsuccessful ones will be retained indefinitely). Without this option, the retention settings are ignored and the database table may grow rather large!</li>
|
||||
</ul>
|
||||
|
||||
|
||||
@@ -1474,7 +1479,7 @@ The user should refer to Chapter 5. Configuration for specific configuration bey
|
||||
|
||||
<ol>
|
||||
<li>Editing the retention policies in <tt>[dspace]/config/dspace.cfg</tt> See Chapter 5 Configuration for the property keys. OR</li>
|
||||
<li>Pass in a properties file containting retention policies when using the -p option.To do this, create a file with the following two property keys:
|
||||
<li>Pass in a properties file containing retention policies when using the -p option.To do this, create a file with the following two property keys:
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">checker.retention.<span class="code-keyword">default</span> = 10y
|
||||
checker.retention.CHECKSUM_MATCH = 8w</pre>
|
||||
@@ -1543,7 +1548,7 @@ checker.retention.CHECKSUM_MATCH = 8w</pre>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> <tt>-c</tt> or <tt>--Changed</tt> </td>
|
||||
<td class='confluenceTd'> Send E-mail report for all bitstrems where checksum has been changed for today. </td>
|
||||
<td class='confluenceTd'> Send E-mail report for all bitstreams where checksum has been changed for today. </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> <tt>-u</tt> or <tt>--Unchanged</tt> </td>
|
||||
@@ -1696,12 +1701,12 @@ checker.retention.CHECKSUM_MATCH = 8w</pre>
|
||||
|
||||
<h3><a name="SystemAdministration-RunningtheIndexingPrograms"></a>Running the Indexing Programs</h3>
|
||||
|
||||
<p><b>Complete Index Regeneration</b>. By running <tt>[dspace]/bin/dspace index-init</tt> you will completely regenerate your indexes, tearing down all old tables and reconstructing with the new cofiguration.</p>
|
||||
<p><b>Complete Index Regeneration</b>. By running <tt>[dspace]/bin/dspace index-init</tt> you will completely regenerate your indexes, tearing down all old tables and reconstructing with the new configuration.</p>
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">[dspace]/bin/dspace index-init</pre>
|
||||
</div></div>
|
||||
|
||||
<p><b>Updating the Indexes</b>. By running <tt>[dspace]/bin/dspace index-update</tt> you will reindex your full browse wihtout modifying the table structure. (This should be your default approach if indexing, for example, via a cron job periodically).</p>
|
||||
<p><b>Updating the Indexes</b>. By running <tt>[dspace]/bin/dspace index-update</tt> you will reindex your full browse without modifying the table structure. (This should be your default approach if indexing, for example, via a cron job periodically).</p>
|
||||
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">[dspace]/bin/dspace index-update</pre>
|
||||
@@ -1742,7 +1747,7 @@ As one can see, the choices are limited only by your metadata schema, the metada
|
||||
</ul>
|
||||
|
||||
|
||||
<p>Remember to run <em>index-init</em> after adding any new defitions in the <em>dspace.cfg</em> to have the indexes created and the data indexed.</p>
|
||||
<p>Remember to run <em>index-init</em> after adding any new definitions in the <em>dspace.cfg</em> to have the indexes created and the data indexed.</p>
|
||||
|
||||
|
||||
|
||||
@@ -1783,7 +1788,7 @@ As one can see, the choices are limited only by your metadata schema, the metada
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> <tt>-v</tt> or <tt>-verbose</tt> </td>
|
||||
<td class='confluenceTd'> Display verbose ouput (helpful for debugging) </td>
|
||||
<td class='confluenceTd'> Display verbose output (helpful for debugging) </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> <tt>-h</tt> or <tt>-help</tt> </td>
|
||||
@@ -1818,7 +1823,7 @@ As one can see, the choices are limited only by your metadata schema, the metada
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> <tt>-s</tt> or <tt>--</tt> </td>
|
||||
<td class='confluenceTd'> To skip the reverse DNS lookups that work out where a user is from. (The DNS lookup finds the inforamtion about the host from its IP addess, such as geographical location, etc. This can be slow, and wouldn't work on a server not connected to the internet.) </td>
|
||||
<td class='confluenceTd'> To skip the reverse DNS lookups that work out where a user is from. (The DNS lookup finds the information about the host from its IP address, such as geographical location, etc. This can be slow, and wouldn't work on a server not connected to the internet.) </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> <tt>-v</tt> or <tt>--</tt> </td>
|
||||
@@ -1890,7 +1895,7 @@ As one can see, the choices are limited only by your metadata schema, the metada
|
||||
|
||||
<h2><a name="SystemAdministration-TestDatabase"></a>Test Database</h2>
|
||||
|
||||
<p>This command can be used at any time to test for Database connectivity. It will assist in troubleshooting PostgreSQL and Oracle connection issues with the datase.</p>
|
||||
<p>This command can be used at any time to test for Database connectivity. It will assist in troubleshooting PostgreSQL and Oracle connection issues with the database.</p>
|
||||
<div class='table-wrap'>
|
||||
<table class='confluenceTable'><tbody>
|
||||
<tr>
|
||||
@@ -1924,6 +1929,8 @@ As one can see, the choices are limited only by your metadata schema, the metada
|
||||
</ul>
|
||||
|
||||
|
||||
<p>Items may also be moved in bulk by using the CSV batch metadata editor (see above).</p>
|
||||
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
@@ -1933,7 +1940,7 @@ As one can see, the choices are limited only by your metadata schema, the metada
|
||||
<td height="12" background="https://wiki.duraspace.org/images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Dec 16, 2010 11:47</font></td>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Mar 25, 2011 19:21</font></td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
|
@@ -16,20 +16,23 @@
|
||||
</span>
|
||||
</div>
|
||||
<div class="pagesubheading">
|
||||
This page last changed on Dec 16, 2010 by <font color="#0050B2">tdonohue</font>.
|
||||
This page last changed on Mar 25, 2011 by <font color="#0050B2">tdonohue</font>.
|
||||
</div>
|
||||
|
||||
<h1><a name="UpgradingaDSpaceInstallation-DSpaceSystemDocumentation%3AUpgradingaDSpaceInstallation"></a>DSpace System Documentation: Upgrading a DSpace Installation</h1>
|
||||
|
||||
<p>This section describes how to upgrade a DSpace installation from one version to the next. Details of the differences between the functionality of each version are given in the <a href="History.html" title="History">Version History</a> section.</p>
|
||||
|
||||
<div class='panelMacro'><table class='warningMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="images/icons/emoticons/forbidden.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td><b>Test Your Upgrade Process</b><br />It is always recommended that when performing an upgrade that the user should use a Development or Test instance or server in order to minimize downtime. You should note any problems you have encountered (and also how to resolve them) before attempting to upgrade your production instance or server. It also gives you a chance to "practice" at the upgrade. (And practice makes perfect.)</td></tr></table></div>
|
||||
<div class='panelMacro'><table class='warningMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="images/icons/emoticons/forbidden.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td><b>Test Your Upgrade Process</b><br />In order to minimize downtime, it is always recommended to first perform a DSpace upgrade using a Development or Test server. You should note any problems you may have encountered (and also how to resolve them) before attempting to upgrade your Production server. It also gives you a chance to "practice" at the upgrade. Practice makes perfect, and minimizes problems and downtime. Additionally, if you are using a version control system, such as subversion or git, to manage your locally developed features or modifications, then you can do all of your upgrades in your local version control system on your Development server and commit the changes. That way your Production server can just checkout your well tested and upgraded code.</td></tr></table></div>
|
||||
|
||||
<div class='panelMacro'><table class='infoMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="images/icons/emoticons/information.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td><b>If you are upgrading across multiple versions</b><br />You should perform all of the steps of each upgrade between the version from which you are starting and the version to which you are upgrading. You do <em>not</em> need to install each intervening version, but you do need to carry out all of the configuration changes and additions, and all of the database updates, for each one. For example, when upgrading from 1.5.x to 1.7.x, you need to perform the configuration & database upgrade steps detailed in <a href="#UpgradingaDSpaceInstallation-Upgradingfrom1.5.xto1.6.x">Upgrading from 1.5.x to 1.6.x</a> followed by those detailed in <a href="#UpgradingaDSpaceInstallation-Upgradingfrom1.6.xto1.7.x">Upgrading from 1.6.x to 1.7.x</a>.</td></tr></table></div>
|
||||
|
||||
<div>
|
||||
<ul>
|
||||
<li><a href='#UpgradingaDSpaceInstallation-DSpaceSystemDocumentation%3AUpgradingaDSpaceInstallation'>DSpace System Documentation: Upgrading a DSpace Installation</a></li>
|
||||
<ul>
|
||||
<li><a href='#UpgradingaDSpaceInstallation-Upgradingfrom1.6.xto1.7'>Upgrading from 1.6.x to 1.7</a></li>
|
||||
<li><a href='#UpgradingaDSpaceInstallation-Upgradingfrom1.7to1.7.x'>Upgrading from 1.7 to 1.7.x</a></li>
|
||||
<li><a href='#UpgradingaDSpaceInstallation-Upgradingfrom1.6.xto1.7.x'>Upgrading from 1.6.x to 1.7.x</a></li>
|
||||
<li><a href='#UpgradingaDSpaceInstallation-Upgradingfrom1.6to1.6.x'>Upgrading from 1.6 to 1.6.x</a></li>
|
||||
<li><a href='#UpgradingaDSpaceInstallation-Upgradingfrom1.5.xto1.6.x'>Upgrading from 1.5.x to 1.6.x</a></li>
|
||||
<li><a href='#UpgradingaDSpaceInstallation-UpgradingFrom1.5or1.5.1to1.5.2'>Upgrading From 1.5 or 1.5.1 to 1.5.2</a></li>
|
||||
@@ -47,29 +50,74 @@
|
||||
</ul>
|
||||
</ul></div>
|
||||
|
||||
<h2><a name="UpgradingaDSpaceInstallation-Upgradingfrom1.6.xto1.7"></a>Upgrading from 1.6.x to 1.7</h2>
|
||||
<h2><a name="UpgradingaDSpaceInstallation-Upgradingfrom1.7to1.7.x"></a>Upgrading from 1.7 to 1.7.x</h2>
|
||||
|
||||
<p>In the notes below <tt>[dspace]</tt> refers to the install directory for your existing DSpace installation, and <em>[dspace-source]</em> to the source directory for DSpace 1.7.0. Whenever you see these path references, be sure to replace them with the actual path names on your local system.</p>
|
||||
<p>In the notes below <tt>[dspace]</tt> refers to the install directory for your existing DSpace installation, and <tt>[dspace-source]</tt> to the source directory for DSpace 1.7.1. Whenever you see these path references, be sure to replace them with the actual path names on your local system. Additionally, be sure to backup your configs, source code modifications, and database before doing a step that could destroy your instance.</p>
|
||||
|
||||
|
||||
<ol>
|
||||
<li><b>Download DSpace 1.7.1</b> Either download DSpace 1.7.1 from <a href="http://www.dspace.org/latest-release/">DSpace.org</a> or check it out directly from the <a href="http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1/">SVN code repository</a>. If you downloaded DSpace do not unpack it on top of your existing installation. Refer to <a href="Installation.html#Installation-Installation">Installation Instructions, Step 3</a> for unpacking directives.</li>
|
||||
<li><b>Apply any customizations.</b> If you have made any local customizations to your DSpace installation they will need to be migrated over to the new DSpace. These are housed in one of the following places:
|
||||
<ul>
|
||||
<li>JSPUI modifications: <tt>[dspace-source]/dspace/modules/jspui/src/main/webapp/</tt></li>
|
||||
<li>XMLUI modifications: <tt>[dspace-source]/dspace/modules/xmlui/src/main/webapp/</tt></li>
|
||||
<li>Config modifications: [dspace]/config</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><b>Build DSpace.</b> Run the following commands to compile DSpace:
|
||||
<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
|
||||
<pre>cd [dspace-source]/dspace/
|
||||
mvn -U clean package</pre>
|
||||
</div></div>
|
||||
<p> You will find the result in <tt>[dspace-source]/dspace/target/dspace-[version]-build.dir</tt> . Inside this directory is the compiled binary distribution of DSpace. Before rebuilding DSpace ('package'), the above command will clean out any previously compiled code ('clean') and ensure that your local DSpace JAR files are updated from the remote maven repository.</p></li>
|
||||
<li><b>Stop Tomcat.</b> Take down your servlet container. For Tomcat, use the <tt>$CATALINA/shutdown.sh</tt> script. (Many Unix-based installations will have a startup/shutdown script in the <tt>/etc/init.d</tt> or <tt>/etc/rc.d</tt> directories.)</li>
|
||||
<li><b>Backup Your DSpace.</b> Make a complete backup of your system, including:
|
||||
<ul>
|
||||
<li>A snapshot of the database. <em>To have a "snapshot" of the PostgreSQL database use Postgres'</em> <em><a href="http://www.postgresql.org/docs/8.4/static/app-pgdump.html">pg_dump</a></em> <em>command.</em></li>
|
||||
<li>The asset store (<tt>[dspace]/assetstore</tt> by default, and any other assetstores configured in the <tt>[dspace]/config/dspace.cfg</tt> "assetstore.dir" and "assetstore.dir.#" settings)</li>
|
||||
<li>Your configuration files and customizations to DSpace (including any customized scripts).</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><b>Update DSpace.</b> Update the DSpace installed directory with the new code and libraries. Issue the following commands:
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">cd [dspace-source]/dspace/target/dspace-[version]-build.dir
|
||||
ant -Dconfig=[dspace]/config/dspace.cfg update</pre>
|
||||
</div></div></li>
|
||||
<li><b>Generate Browse and Search Indexes</b>. Though there are not any database changes between 1.7 and 1.7.1 release, it makes good policy to rebuild your search and browse indexes when upgrading to a new release. To do this, run the following command from your DSpace install directory (as the dspace user):
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">[dspace]/bin/dspace index-init</pre>
|
||||
</div></div></li>
|
||||
<li><b>Deploy Web Applications</b>. Copy the web applications files from your <tt>[dspace]/webapps</tt> directory to the subdirectory of your servlet container (e.g. tomcat):
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">cp -R [dspace]/webapps/* [tomcat]/webapps/</pre>
|
||||
</div></div></li>
|
||||
<li><b>Restart servlet container.</b> Now restart your Tomcat/Jetty/Resin server program and test out the upgrade.</li>
|
||||
</ol>
|
||||
|
||||
|
||||
<h2><a name="UpgradingaDSpaceInstallation-Upgradingfrom1.6.xto1.7.x"></a>Upgrading from 1.6.x to 1.7.x</h2>
|
||||
|
||||
<p>In the notes below <tt>[dspace]</tt> refers to the install directory for your existing DSpace installation, and <em>[dspace-source]</em> to the source directory for DSpace 1.7.x. Whenever you see these path references, be sure to replace them with the actual path names on your local system.</p>
|
||||
|
||||
<div class='panelMacro'><table class='infoMacro'><colgroup><col width='24'><col></colgroup><tr><td valign='top'><img src="images/icons/emoticons/information.gif" width="16" height="16" align="absmiddle" alt="" border="0"></td><td>Before upgrading you need to check you are using the current recommended minimum versions of Java (1.6), Maven (2.0.8 or above) and ant (1.7 or above). For more details, see the current listing of <a href="Installation.html#Installation-PrerequisiteSoftware">Prerequisite Software</a></td></tr></table></div>
|
||||
|
||||
<ol>
|
||||
<li><b>Backup Your DSpace.</b> First, and foremost, make a complete backup of your system, including:
|
||||
<ul>
|
||||
<li>A snapshot of the database. <em>To have a "snapshot" of the PostgreSQL database, you need to shut it down during the backup. You should also have your regular PostgreSQL Backup output (using pg_dump commands).</em></li>
|
||||
<li>The asset store (<em>[dspace]/assetstore</em> by default)</li>
|
||||
<li>A snapshot of the database. <em>To have a "snapshot" of the PostgreSQL database, you need to shut it down during the backup. You should also have your regular PostgreSQL Backup output (using Postgres'</em> <em><a href="http://www.postgresql.org/docs/8.4/static/app-pgdump.html">pg_dump command</a></em><em>).</em></li>
|
||||
<li>The asset store (<tt>[dspace]/assetstore</tt> by default)</li>
|
||||
<li>Your configuration files and customizations to DSpace (including any customized scripts).</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><b>Download DSpace 1.7.0</b> Retrieve the new DSpace 1.7.0 source code either as a download from <a href="http://www.dspace.org/latest-release/">DSpace.org</a> or check it out directly from the <a href="http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.0/">SVN code repository</a>. If you downloaded DSpace do not unpack it on top of your existing installation. Refer to <a href="Installation.html#Installation-Installation">Installation Instructions, Step 3</a> for unpacking directives.</li>
|
||||
<li><b>Stop Tomcat.</b> Take down your servlet container. For Tomcat, use the <em>$CATALINA_HOME/bin/shutdown.sh</em> script. (Many Unix-based installations will have a startup/shutdown script in the <em>/etc/init.d</em> or <em>/etc/rc.d</em> directories).</li>
|
||||
<li><b>Download DSpace 1.7.x</b> Retrieve the new DSpace 1.7.x source code either as a download from <a href="http://www.dspace.org/latest-release/">DSpace.org</a> or check it out directly from the <a href="http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1/">SVN code repository</a>. If you downloaded DSpace do not unpack it on top of your existing installation. Refer to <a href="Installation.html#Installation-Installation">Installation Instructions, Step 3</a> for unpacking directives.</li>
|
||||
<li><b>Stop Tomcat.</b> Take down your servlet container. For Tomcat, use the <tt>$CATALINA_HOME/bin/shutdown.sh</tt> script. (Many Unix-based installations will have a startup/shutdown script in the <tt>/etc/init.d</tt> or <tt>/etc/rc.d</tt> directories).</li>
|
||||
<li><b>Apply any customizations.</b> If you have made any local customizations to your DSpace installation they will need to be migrated over to the new DSpace. These are normally housed in one of the following places:
|
||||
<ul>
|
||||
<li>JSPUI modifications: <em>[dspace-source]/dspace/modules/jspui/src/main/webapp/</em></li>
|
||||
<li>XMLUI modifications: <em>[dspace-source]/dspace/modules/xmlui/src/main/webapp/</em></li>
|
||||
<li>JSPUI modifications: <tt>[dspace-source]/dspace/modules/jspui/src/main/webapp/</tt></li>
|
||||
<li>XMLUI modifications: <tt>[dspace-source]/dspace/modules/xmlui/src/main/webapp/</tt></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><b>Update Configuration Files.</b> Some parameters have changed and some are new. You can either attempt to make these changes in your current 1.6.x <tt>dspace.cfg</tt> file, or you can start with a new 1.7.0 <tt>dspace.cfg</tt> and re-modify it as needed. Configuration changes are noted below:
|
||||
<li><b>Update Configuration Files.</b> Some parameters have changed and some are new. You can either attempt to make these changes in your current 1.6.x <tt>dspace.cfg</tt> file, or you can start with a new 1.7 <tt>dspace.cfg</tt> and re-modify it as needed. Configuration changes are noted below:
|
||||
<ul>
|
||||
<li>*<b>CORRECTION</b>* There was a missing hyphen "-" in the property key for mail character set:
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
@@ -270,7 +318,7 @@ aip.disseminate.dmd = MODS, DIM</pre>
|
||||
</div></div></li>
|
||||
<li>*<b>NEW</b>* A new property has been added to control the discovery index for the Event System Configuration:
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java"> consumer to maintain the discovery index
|
||||
<pre class="code-java"># consumer to maintain the discovery index
|
||||
event.consumer.discovery.class = org.dspace.discovery.IndexEventConsumer
|
||||
event.consumer.discovery.filters = Community|Collection|Item|Bundle+Add|Create|Modify|Modify_Metadata|Delete|Remove</pre>
|
||||
</div></div></li>
|
||||
@@ -410,7 +458,7 @@ solr.resolver.timeout = 200
|
||||
<pre class="code-java">cd [dspace-source]/dspace/
|
||||
mvn -U clean <span class="code-keyword">package</span></pre>
|
||||
</div></div>
|
||||
<p> You will find the result in <em>[dspace-source]/dspace/target/dspace-[version]-build.dir</em> . Inside this directory is the compiled binary distribution of DSpace. Before rebuilding DSpace, the above command will clean out any previously compiled code ('clean') and ensure that your local DSpace JAR files are updated from the remote maven code repository.</p></li>
|
||||
<p> You will find the result in <tt>[dspace-source]/dspace/target/dspace-[version]-build.dir</tt> . Inside this directory is the compiled binary distribution of DSpace. Before rebuilding DSpace, the above command will clean out any previously compiled code ('clean') and ensure that your local DSpace JAR files are updated from the remote maven code repository.</p></li>
|
||||
<li><b>Update DSpace.</b> Update the DSpace installed directory with the new code and libraries. Issue the following commands:
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">cd [dspace-source]/dspace/target/dspace-[version]-build.dir
|
||||
@@ -430,7 +478,7 @@ ant -Dconfig=[dspace]/config/dspace.cfg update</pre>
|
||||
<ol>
|
||||
<li>Start SQL*Plus with <tt>sqlplus [connect args]</tt></li>
|
||||
<li>Record the output: <tt>SQL> spool 'upgrade.lst'</tt></li>
|
||||
<li>Run the upgrade script <tt>SQL> @[dspace-source]/dspace/etc/oracle/database_schema_16_17.sql</tt></li>
|
||||
<li>Run the upgrade script <tt>SQL> @[dspace-source]/dspace/etc/oracle/database_schema_16-17.sql</tt></li>
|
||||
<li>Turn off recording of output: <tt>SQL> spool off</tt></li>
|
||||
</ol>
|
||||
</li>
|
||||
@@ -444,7 +492,7 @@ ant -Dconfig=[dspace]/config/dspace.cfg update</pre>
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">cp -R [dspace]/webapps/* [tomcat]/webapps/</pre>
|
||||
</div></div></li>
|
||||
<li><b>Restart servlet.</b> Now restart your Tomcat/Jetty/Resin server program and test out the upgrade.</li>
|
||||
<li><b>Restart servlet container.</b> Now restart your Tomcat/Jetty/Resin server program and test out the upgrade.</li>
|
||||
</ol>
|
||||
|
||||
|
||||
@@ -461,16 +509,21 @@ ant -Dconfig=[dspace]/config/dspace.cfg update</pre>
|
||||
<li>Your configuration files and customizations to DSpace (including any customized scripts).</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><b>Download DSpace 1.6.1</b> Retrieve the new DSpace 1.6.2 source code either as a download from <a href="http://www.dspace.org/latest-release/">DSpace.org</a> or check it out directly from the <a href="http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.6.2/">SVN code repository</a>. If you downloaded DSpace do not unpack it on top of your existing installation. Refer to Chapter 3.3.3 Installation, Step 3 for unpacking directives.</li>
|
||||
<li><b>Download DSpace 1.6.2</b> Retrieve the new DSpace 1.6.2 source code either as a download from <a href="http://www.dspace.org/latest-release/">DSpace.org</a> or check it out directly from the <a href="http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.6.2/">SVN code repository</a>. If you downloaded DSpace do not unpack it on top of your existing installation. Refer to <a href="Installation.html#Installation-Installation">Installation Instructions, Step 3</a> for unpacking directives.</li>
|
||||
<li><b>Stop Tomcat.</b> Take down your servlet container. For Tomcat, use the <em>$CATALINA/shutdown.sh</em> script. (Many installations will have a startup/shutdown script in the <em>/etc/init.d</em> or <em>/etc/rc.d</em> directories.</li>
|
||||
<li><b>Apply any customizations.</b> If you have made any local customizations to your DSpace installation they will need to be migrated over to the new DSpace. These are housed in one of the following places:JSPUI modifications: <em>[dspace-source]/dspace/modules/jspui/src/main/webapp/_XMLUI modifications: _[dspace-source]/dspace/modules/xmlui/src/main/webapp</em></li>
|
||||
<li><b>Apply any customizations.</b> If you have made any local customizations to your DSpace installation they will need to be migrated over to the new DSpace. These are housed in one of the following places:
|
||||
<ul>
|
||||
<li>JSPUI modifications: <tt>[dspace-source]/dspace/modules/jspui/src/main/webapp/</tt></li>
|
||||
<li>XMLUI modifications: <tt>[dspace-source]/dspace/modules/xmlui/src/main/webapp/</tt></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><b>Update Configuration Files.</b> There are no additions to this release. So you do not have to update the configuration files.</li>
|
||||
<li><b>Build DSpace.</b> Run the following commands to compile DSpace.:
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">cd /[dspace-source]/dspace/
|
||||
mvn -U clean <span class="code-keyword">package</span></pre>
|
||||
</div></div>
|
||||
<p>You will find the result in <em>[dspace-source]/dspace/target/dspace-[version]-build.dir</em> . Inside this directory is the compiled binary distribution of DSpace.Before rebuilding DSpace, the above command will clean out any previously compiled code ('clean') and ensure that your local DSpace JAR files are updated from the remote maven repository.</p></li>
|
||||
<p>You will find the result in <em>[dspace-source]/dspace/target/dspace-[version]-build.dir</em> . Inside this directory is the compiled binary distribution of DSpace. Before rebuilding DSpace, the above command will clean out any previously compiled code ('clean') and ensure that your local DSpace JAR files are updated from the remote maven repository.</p></li>
|
||||
<li><b>Update DSpace.</b> Update the DSpace installed directory with the new code and libraries. Issue the following commands:
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">cd [dspace-source]/dspace/target/dspace-[version]-build.dir
|
||||
@@ -487,9 +540,10 @@ ant -Dconfig=[dspace]/config/dspace.cfg update</pre>
|
||||
<p><em>(The line break above is cosmetic. Please place your command in one line.</em></p></li>
|
||||
<li>For Oracle: Execute the upgrade script, e.g. with sqlplus, recording the output:
|
||||
<ol>
|
||||
<li>Start SQL*Plus with "<em>sqlplus [connect args]</em>"</li>
|
||||
<li>Record the output: <em>SQL> spool 'upgrade.lst'</em></li>
|
||||
<li>Run the upgrade script <em>SQL> @[dspace-source]/dspace/etc/oracle/database_schema_15-16.sql</em><em>SQL> spool off</em></li>
|
||||
<li>Start SQL*Plus with <tt>sqlplus [connect args]</tt></li>
|
||||
<li>Record the output: <tt>SQL> spool 'upgrade.lst'</tt></li>
|
||||
<li>Run the upgrade script <tt>SQL> @[dspace-source]/dspace/etc/oracle/database_schema_15-16.sql</tt></li>
|
||||
<li>Turn off recording of output: <tt>SQL> spool off</tt></li>
|
||||
<li>Please note: The final few statements WILL FAIL. That is because you have run some queries and use the results to construct the statements to remove the constraints, manually‚ Oracle doesn't have any easy way to automate this (unless you know PL/SQL). So, look for the comment line beginning:
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java"><span class="code-quote">"--You need to remove the already in place constraints"</span>
|
||||
@@ -519,9 +573,14 @@ the output of the queries you'll need.</pre>
|
||||
<li>Your configuration files and customizations to DSpace (including any customized scripts).</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><b>Download DSpace 1.6.x</b> Retrieve the new DSpace 1.6.x source code either as a download from <a href="http://www.dspace.org/latest-release/">DSpace.org</a> or check it out directly from the <a href="http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.6.2/">SVN code repository</a>. If you downloaded DSpace do not unpack it on top of your existing installation.Refer to Chapter 3.3.3 Installation, Step 3 for unpacking directives.</li>
|
||||
<li><b>Download DSpace 1.6.x</b> Retrieve the new DSpace 1.6.x source code either as a download from <a href="http://www.dspace.org/latest-release/">DSpace.org</a> or check it out directly from the <a href="http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.6.2/">SVN code repository</a>. If you downloaded DSpace do not unpack it on top of your existing installation. Refer to <a href="Installation.html#Installation-Installation">Installation Instructions, Step 3</a> for unpacking directives.</li>
|
||||
<li><b>Stop Tomcat</b>. Take down your servlet container. For Tomcat, use the <em>$CATALINA/shutdown.sh</em> script. (Many installations will have a startup/shutdown script in the <em>/etc/init.d</em> or <em>/etc/rc.d</em> directories.</li>
|
||||
<li><b>Apply any customizations</b>. If you have made any local customizations to your DSpace installation they will need to be migrated over to the new DSpace. These are housed in one of the following places:JSPUI modifications: <em>[dspace-source]/dspace/modules/jspui/src/main/webapp/_XMLUI modifications: _[dspace-source]/dspace/modules/xmlui/src/main/webapp</em></li>
|
||||
<li><b>Apply any customizations</b>. If you have made any local customizations to your DSpace installation they will need to be migrated over to the new DSpace. These are housed in one of the following places:
|
||||
<ul>
|
||||
<li>JSPUI modifications: <tt>[dspace-source]/dspace/modules/jspui/src/main/webapp/</tt></li>
|
||||
<li>XMLUI modifications: <tt>[dspace-source]/dspace/modules/xmlui/src/main/webapp/</tt></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><b>Update Configuration Files</b>. Some of the parameters have change and some are new. Changes will be noted below:
|
||||
<ul>
|
||||
<li>**<b>CHANGE</b>** The base url and oai urls property keys are set differently
|
||||
@@ -994,12 +1053,6 @@ solr.spidersfile = ${dspace.dir}/config/spiders.txt
|
||||
solr.dbfile = ${dspace.dir}/config/GeoLiteCity.dat
|
||||
useProxies = <span class="code-keyword">true</span>
|
||||
|
||||
statistics.items.dc.1=dc.identifier
|
||||
statistics.items.dc.2=dc.date.accessioned
|
||||
statistics.items.type.1=dcinput
|
||||
statistics.items.type.2=date
|
||||
statistics.<span class="code-keyword">default</span>.start.datepick = 01/01/1977
|
||||
|
||||
statistics.item.authorization.admin=<span class="code-keyword">true</span></pre>
|
||||
</div></div></li>
|
||||
</ul>
|
||||
@@ -1015,9 +1068,10 @@ mvn -U clean <span class="code-keyword">package</span></pre>
|
||||
<li>For PostgreSQL: <tt>psql -U [dspace-user] -f [dspace-source]/dspace/etc/postgres/database_schema_15-16.sql [database name]</tt> (Your database name is by default 'dspace'). Example: <tt>psql -U dspace -f /dspace-1.6-1-src-release/dspace/etc/postgres/database_schema_15-16.sql dspace</tt></li>
|
||||
<li>For Oracle: Execute the upgrade script, e.g. with sqlplus, recording the output:
|
||||
<ol>
|
||||
<li>Start SQL*Plus with "<em>sqlplus [connect args]</em>"</li>
|
||||
<li>Record the output: <em>SQL> spool 'upgrade.lst'</em></li>
|
||||
<li>Run the upgrade script <em>SQL> @[dspace-source]/dspace/etc/oracle/database_schema_15_16.sql</em><em>SQL> spool off</em></li>
|
||||
<li>Start SQL*Plus with <tt>sqlplus [connect args]</tt></li>
|
||||
<li>Record the output: <tt>SQL> spool 'upgrade.lst'</tt></li>
|
||||
<li>Run the upgrade script <tt>SQL> @[dspace-source]/dspace/etc/oracle/database_schema_15-16.sql</tt></li>
|
||||
<li>Turn off recording of output: <tt>SQL> spool off</tt></li>
|
||||
<li>Please note: The final few statements WILL FAIL. That is because you have run some queries and use the results to construct the statements to remove the constraints, manually‚ Oracle doesn't have any easy way to automate this (unless you know PL/SQL). So, look for the comment line beginning:
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java"><span class="code-quote">"--You need to remove the already in place constraints"</span>
|
||||
@@ -1521,7 +1575,7 @@ http:<span class="code-comment">//purl.org/net/sword-types/METSDSpaceSIP \
|
||||
<li>Your statistics scripts (<em>[dspace]/bin/stat*</em>) which contain customizable dates</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><b>Download DSpace 1.5</b> Get the new DSpace 1.5 source code either as a download from <a href="http://sourceforge.net/projects/dspace/">SourceForge</a> or check it out directly from the <a href="#UpgradingaDSpaceInstallation-%5C" title="SVN code repository|">SVN code repository\</a>. If you downloaded DSpace do not unpack it on top of your existing installation.</li>
|
||||
<li><b>Download DSpace 1.5.x</b> Get the new DSpace 1.5 source code either as a download from <a href="http://sourceforge.net/projects/dspace/">SourceForge</a> or check it out directly from the <a href="http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.5.2/">SVN code repository</a>. If you downloaded DSpace do not unpack it on top of your existing installation.</li>
|
||||
<li><b>Build DSpace</b> The build process has radically changed for DSpace 1.5. With this new release the build system has moved to a maven-based system enabling the various projects (JSPUI, XMLUI, OAI, and Core API) into separate projects. See the <a href="Installation.html" title="Installation">Installation</a> section for more information on building DSpace using the new maven-based build system. Run the following commands to compile DSpace.
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">
|
||||
@@ -1611,14 +1665,14 @@ event.consumer.eperson.class = org.dspace.eperson.EPersonConsumer
|
||||
event.consumer.eperson.filters = EPerson+Create
|
||||
</pre>
|
||||
</div></div></li>
|
||||
<li><b>Add</b> <b><em>xmlui.xconf</em></b> <b>Manakin configuration</b> 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.
|
||||
<li><b>Add 'xmlui.xconf' Manakin configuration</b> 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.
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">
|
||||
cp [dspace-source]/dspace/config/xmlui.xconf
|
||||
[dspace]/config/xmlui.xconf
|
||||
</pre>
|
||||
</div></div></li>
|
||||
<li><b>Add</b> <b><em>item-submission.xml</em></b> <b>and</b> <b><em>item-submission.dtd</em></b> <b>configurable submission configuration</b> 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.
|
||||
<li><b>Add 'item-submission.xml' and 'item-submission.dtd' configurable submission configuration</b> 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.
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">
|
||||
cp [dspace-source]/dspace/config/item-submission.xml
|
||||
@@ -1628,7 +1682,7 @@ cp [dspace-source]/dspace/config/item-submission.dtd
|
||||
[dspace]/config/item-submission.dtd
|
||||
</pre>
|
||||
</div></div></li>
|
||||
<li><b>Add new</b> <b><em>input-forms.xml</em></b> <b>and</b> <b><em>input-forms.dtd</em></b> <b>configurable submission configuration</b> 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.
|
||||
<li><b>Add new 'input-forms.xml' and 'input-forms.dtd' configurable submission configuration</b> 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.
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">
|
||||
cp [dspace-source]/dspace/config/input-forms.xml
|
||||
@@ -1638,7 +1692,7 @@ cp [dspace-source]/dspace/config/input-forms.dtd
|
||||
[dspace]/config/inputforms.dtd
|
||||
</pre>
|
||||
</div></div></li>
|
||||
<li><b>Add</b> <b><em>sword-swap-ingest.xsl</em></b> <b>and</b> <b><em>xhtml-head-item.properties</em></b> <b>crosswalk files</b> New crosswalk files are required to support SWORD and the inclusion of metadata into the head of items.
|
||||
<li><b>Add 'sword-swap-ingest.xsl' and 'xhtml-head-item.properties' crosswalk files</b> New crosswalk files are required to support SWORD and the inclusion of metadata into the head of items.
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">
|
||||
cp [dspace-source]/dspace/config/crosswalks/sword-swap-ingest.xsl
|
||||
@@ -1650,7 +1704,7 @@ cp
|
||||
[dspace]/config/crosswalks/xhtml-head-item.properties
|
||||
</pre>
|
||||
</div></div></li>
|
||||
<li><b>Add</b> <b><em>registration_notify</em></b> <b>email files</b> A new configuration option (<em>registration.notify = you@your-email.com</em>) 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.
|
||||
<li><b>Add 'registration_notify' email files</b> A new configuration option (<em>registration.notify = you@your-email.com</em>) 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.
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java">
|
||||
cp [dspace-source]/dspace/config/emails/registration_notify
|
||||
@@ -1979,7 +2033,7 @@ report.dir = /dspace/reports/
|
||||
</pre>
|
||||
</div></div></li>
|
||||
<li>Build and install the updated DSpace 1.3.x code. Go to the <em>[dspace-1.3.x-source]</em> directory, and run:<em>ant -Dconfig=[dspace]/config/dspace.cfg update</em></li>
|
||||
<li>You'll need to make some changes to the database schema in your PostgreSQL database. <em>[dspace-1.3.x-source]/etc/database_schema_12-13.sql</em> contains the SQL commands to achieve this. If you've modified the schema locally, you may need to check over this and make alterations.To apply the changes, go to the source directory, and run: <em>psql -f etc/database_schema_12-13.sql [DSpace database name] -h localhost</em></li>
|
||||
<li>You'll need to make some changes to the database schema in your PostgreSQL database. <em>[dspace-1.3.x-source]/etc/database_schema_12-13.sql</em> contains the SQL commands to achieve this. If you've modified the schema locally, you may need to check over this and make alterations. To apply the changes, go to the source directory, and run: <em>psql -f etc/database_schema_12-13.sql [DSpace database name] -h localhost</em></li>
|
||||
<li>Customize the stat generating statistics as per the instructions in System Statistical Reports</li>
|
||||
<li>Initialize the statistics using: <em>[dspace]/bin/stat-initial</em><em>[dspace]/bin/stat-general</em><em>[dspace]/bin/stat-report-initial</em><em>[dspace]/bin/stat-report-general</em></li>
|
||||
<li>Rebuild the search indexes: <em>[dspace]/bin/index-all</em></li>
|
||||
@@ -2222,13 +2276,13 @@ cp [dspace-1.2-source]/build/*.war
|
||||
</pre>
|
||||
</div></div>
|
||||
<p>You might also wish to run it now to generate thumbnails and index full text for the content already in your system.</p></li>
|
||||
<li><b>Note 1</b>: This update process has effectively 'touched' all of your items. Although the dates in the Dublin Core metadata won't have changed (accession date and so forth), the 'last modified' date in the database for each will have been changed.This means the e-mail subscription tool may be confused, thinking that all items in the archive have been deposited that day, and could thus send a rather long email to lots of subscribers. So, it is recommended that you <b>turn off the e-mail subscription feature for the next day</b>, by commenting out the relevant line in DSpace's cron job, and then re-activating it the next day.Say you performed the update on 08-June-2004 (UTC), and your e-mail subscription cron job runs at 4am (UTC). When the subscription tool runs at 4am on 09-June-2004, it will find that everything in the system has a modification date in 08-June-2004, and accordingly send out huge emails. So, immediately after the update, you would edit DSpace's 'crontab' and comment out the <em>/dspace/bin/subs-daily</em> line. Then, after 4am on 09-June-2004 you'd 'un-comment' it out, so that things proceed normally.Of course this means, any <em>real</em> new deposits on 08-June-2004 won't get e-mailed, however if you're updating the system it's likely to be down for some time so this shouldn't be a big problem.</li>
|
||||
<li><b>Note 1</b>: This update process has effectively 'touched' all of your items. Although the dates in the Dublin Core metadata won't have changed (accession date and so forth), the 'last modified' date in the database for each will have been changed. This means the e-mail subscription tool may be confused, thinking that all items in the archive have been deposited that day, and could thus send a rather long email to lots of subscribers. So, it is recommended that you <b>turn off the e-mail subscription feature for the next day</b>, by commenting out the relevant line in DSpace's cron job, and then re-activating it the next day. Say you performed the update on 08-June-2004 (UTC), and your e-mail subscription cron job runs at 4am (UTC). When the subscription tool runs at 4am on 09-June-2004, it will find that everything in the system has a modification date in 08-June-2004, and accordingly send out huge emails. So, immediately after the update, you would edit DSpace's 'crontab' and comment out the <em>/dspace/bin/subs-daily</em> line. Then, after 4am on 09-June-2004 you'd 'un-comment' it out, so that things proceed normally. Of course this means, any <em>real</em> new deposits on 08-June-2004 won't get e-mailed, however if you're updating the system it's likely to be down for some time so this shouldn't be a big problem.</li>
|
||||
<li><b>Note 2:</b> After consultation with the OAI community, various OAI-PMH changes have occurred:
|
||||
<ul>
|
||||
<li>The OAI-PMH identifiers have changed (they're now of the form <em>oai:hostname:handle</em> as opposed to just Handles)</li>
|
||||
<li>The set structure has changed, due to the new sub-communities feature.</li>
|
||||
<li>The default base URL has changed</li>
|
||||
<li>As noted in note 1, every item has been 'touched' and will need re-harvesting. The above means that, if already registered and harvested, you will need to re-register your repository, effectively as a 'new' OAI-PMH data provider. You should also consider posting an announcement to the <a href="http://www.openarchives.org/mailman/listinfo/OAI-implementers" title="OAI implementers e-mail list">OAI implementers e-mail list</a> so that harvesters know to update their systems.Also note that your site may, over the next few days, take quite a big hit from OAI-PMH harvesters. The resumption token support should alleviate this a little, but you might want to temporarily whack up the database connection pool parameters in <em>[dspace]/config/dspace.cfg</em>. See the <em>dspace.cfg</em> distributed with the source code to see what these parameters are and how to use them. (You need to stop and restart Tomcat after changing them.)I realize this is not ideal; for discussion as to the reasons behind this please see relevant posts to the OAI community: <a href="http://openarchives.org/pipermail/oai-implementers/2004-June/001214.html" title="post one">post one</a>, <a href="http://openarchives.org/pipermail/oai-implementers/2004-June/001224.html" title="post two">post two</a>, as well as <a href="#UpgradingaDSpaceInstallation-%5C" title="this post to the dspace-tech mailing list|">this post to the dspace-tech mailing list\</a>.If you really can't live with updating the base URL like this, you can fairly easily have thing proceed more-or-less as they are, by doing the following:</li>
|
||||
<li>As noted in note 1, every item has been 'touched' and will need re-harvesting. The above means that, if already registered and harvested, you will need to re-register your repository, effectively as a 'new' OAI-PMH data provider. You should also consider posting an announcement to the <a href="http://www.openarchives.org/mailman/listinfo/OAI-implementers" title="OAI implementers e-mail list">OAI implementers e-mail list</a> so that harvesters know to update their systems. Also note that your site may, over the next few days, take quite a big hit from OAI-PMH harvesters. The resumption token support should alleviate this a little, but you might want to temporarily whack up the database connection pool parameters in <em>[dspace]/config/dspace.cfg</em>. See the <em>dspace.cfg</em> distributed with the source code to see what these parameters are and how to use them. (You need to stop and restart Tomcat after changing them.)I realize this is not ideal; for discussion as to the reasons behind this please see relevant posts to the OAI community: <a href="http://openarchives.org/pipermail/oai-implementers/2004-June/001214.html" title="post one">post one</a>, <a href="http://openarchives.org/pipermail/oai-implementers/2004-June/001224.html" title="post two">post two</a>, as well as <a href="#UpgradingaDSpaceInstallation-%5C" title="this post to the dspace-tech mailing list|">this post to the dspace-tech mailing list\</a>.If you really can't live with updating the base URL like this, you can fairly easily have thing proceed more-or-less as they are, by doing the following:</li>
|
||||
<li>Change the value of <em>OAI_ID_PREFIX</em> at the top of the <em>org.dspace.app.oai.DSpaceOAICatalog</em> class to <em>hdl:</em></li>
|
||||
<li>Change the servlet mapping for the <em>OAIHandler</em> servlet back to <em>/</em> (from <em>/request</em>)</li>
|
||||
<li>Rebuild and deploy _oai.war_However, note that in this case, all the records will be re-harvested by harvesters anyway, so you still need to brace for the associated DB activity; also note that the set spec changes may not be picked up by some harvesters. It's recommended you read the above-linked mailing list posts to understand why the change was made.<br/>
|
||||
@@ -2396,7 +2450,7 @@ JAVA_OPTS=<span class="code-quote">"-Xmx512M -Xms64M -Dfile.encoding=UTF-8"</spa
|
||||
<td height="12" background="https://wiki.duraspace.org/images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Dec 16, 2010 11:47</font></td>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Mar 25, 2011 19:21</font></td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
|
@@ -175,7 +175,7 @@ Any of the existing themes can be updated to reference this <font color="#2
|
||||
<td height="12" background="https://wiki.duraspace.org/images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Dec 16, 2010 11:47</font></td>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Mar 25, 2011 19:21</font></td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
|
@@ -16,7 +16,7 @@
|
||||
</span>
|
||||
</div>
|
||||
<div class="pagesubheading">
|
||||
This page last changed on Dec 15, 2010 by <font color="#0050B2">bram</font>.
|
||||
This page last changed on Feb 17, 2011 by <font color="#0050B2">helix84</font>.
|
||||
</div>
|
||||
|
||||
<h1><a name="XMLUIConfigurationandCustomization-DSpaceSystemDocumentation%3AManakin%5CXMLUI%5CConfigurationandCustomization"></a>DSpace System Documentation: Manakin [XMLUI] Configuration and Customization</h1>
|
||||
@@ -24,11 +24,11 @@
|
||||
<p>The DSpace digital repository supports two user interfaces: one based on JavaServer Pages (JSP) technologies and one based upon the Apache Cocoon framework (XMLUI). This chapter describes those parameters which are specific to the Manakin (XMLUI) interface based upon the Cocoon framework.</p>
|
||||
|
||||
<style type='text/css'>/*<![CDATA[*/
|
||||
div.rbtoc1292428718703 {margin-left: 0px;padding: 0px;}
|
||||
div.rbtoc1292428718703 ul {list-style: none;margin-left: 0px;}
|
||||
div.rbtoc1292428718703 li {margin-left: 0px;padding-left: 0px;}
|
||||
div.rbtoc1297951040386 {margin-left: 0px;padding: 0px;}
|
||||
div.rbtoc1297951040386 ul {list-style: none;margin-left: 0px;}
|
||||
div.rbtoc1297951040386 li {margin-left: 0px;padding-left: 0px;}
|
||||
|
||||
/*]]>*/</style><div class='rbtoc1292428718703'>
|
||||
/*]]>*/</style><div class='rbtoc1297951040386'>
|
||||
<ul>
|
||||
<li><span class='TOCOutline'>1</span> <a href='#XMLUIConfigurationandCustomization-ManakinConfigurationPropertyKeys'>Manakin Configuration Property Keys</a></li>
|
||||
<li><span class='TOCOutline'>2</span> <a href='#XMLUIConfigurationandCustomization-ConfiguringThemesandAspects'>Configuring Themes and Aspects</a></li>
|
||||
@@ -194,7 +194,7 @@ div.rbtoc1292428718703 li {margin-left: 0px;padding-left: 0px;}
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> Informational Note: </td>
|
||||
<td class='confluenceTd'> 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>
|
||||
<td class='confluenceTd'> Optionally, you may configure Manakin to take advantage of metadata stored as a bitstream. The METS metadata file must be inside the "METADATA" bundle and named METS.xml. If this option is set to "true" and the bitstream is present then it is made available to the theme for display. </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> Property: </td>
|
||||
@@ -206,7 +206,7 @@ div.rbtoc1292428718703 li {margin-left: 0px;padding-left: 0px;}
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> Informational Note: </td>
|
||||
<td class='confluenceTd'> 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 href="http://analytics.google.com" title="http://analytics.google.com">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>
|
||||
<td class='confluenceTd'> 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 href="http://analytics.google.com" title="http://analytics.google.com">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>
|
||||
<td class='confluenceTd'> Property: </td>
|
||||
@@ -218,7 +218,7 @@ div.rbtoc1292428718703 li {margin-left: 0px;padding-left: 0px;}
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> Informational Note: </td>
|
||||
<td class='confluenceTd'> 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>
|
||||
<td class='confluenceTd'> 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>
|
||||
<td class='confluenceTd'> Property: </td>
|
||||
@@ -230,7 +230,7 @@ div.rbtoc1292428718703 li {margin-left: 0px;padding-left: 0px;}
|
||||
</tr>
|
||||
<tr>
|
||||
<td class='confluenceTd'> Informational Note: </td>
|
||||
<td class='confluenceTd'> 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>
|
||||
<td class='confluenceTd'> Determine where the control panel's activity viewer receives an events IP address from. If your DSpace is in a load balanced environment or otherwise behind a context-switch then you will need to set the parameter to the HTTP parameter that records the original IP address. </td>
|
||||
</tr>
|
||||
</tbody></table>
|
||||
</div>
|
||||
@@ -247,11 +247,12 @@ div.rbtoc1292428718703 li {margin-left: 0px;padding-left: 0px;}
|
||||
|
||||
<p>The <em><aspects></em> section defines the "Aspect Chain", or the linear set of aspects that are installed in the repository. For each aspect that is installed in the repository, the aspect makes available new features to the interface. For example, if the "submission" aspect were to be commented out or removed from the <em>xmlui.xconf</em>, then users would not be able to submit new items into the repository (even the links and language prompting users to submit items are removed). Each <em><aspect></em> element has two attributes, <em>name</em> and <em>path</em>. The name is used to identify the Aspect, while the path determines the directory where the aspect's code is located. Here is the default aspect configuration:</p>
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java"> <aspects>
|
||||
<aspect name=<span class="code-quote">"Artifact Browser"</span> path=<span class="code-quote">"resource:<span class="code-comment">//aspects/ArtifactBrowser/"</span> />
|
||||
</span> <aspect name=<span class="code-quote">"Administration"</span> path=<span class="code-quote">"resource:<span class="code-comment">//aspects/Administrative/"</span> />
|
||||
</span> <aspect name=<span class="code-quote">"E-Person"</span> path=<span class="code-quote">"resource:<span class="code-comment">//aspects/EPerson/"</span> />
|
||||
</span> <aspect name=<span class="code-quote">"Submission and Workflow"</span> path=<span class="code-quote">"resource:<span class="code-comment">//aspects/Submission/"</span> />
|
||||
<pre class="code-java">
|
||||
<aspects>
|
||||
<aspect name=<span class="code-quote">"Artifact Browser"</span> path=<span class="code-quote">"resource:<span class="code-comment">//aspects/ArtifactBrowser/"</span> />
|
||||
</span> <aspect name=<span class="code-quote">"Administration"</span> path=<span class="code-quote">"resource:<span class="code-comment">//aspects/Administrative/"</span> />
|
||||
</span> <aspect name=<span class="code-quote">"E-Person"</span> path=<span class="code-quote">"resource:<span class="code-comment">//aspects/EPerson/"</span> />
|
||||
</span> <aspect name=<span class="code-quote">"Submission and Workflow"</span> path=<span class="code-quote">"resource:<span class="code-comment">//aspects/Submission/"</span> />
|
||||
</span> </aspects></pre>
|
||||
</div></div>
|
||||
<p>A standard distribution of Manakin/DSpace includes four "core" aspects:</p>
|
||||
@@ -275,10 +276,11 @@ div.rbtoc1292428718703 li {margin-left: 0px;padding-left: 0px;}
|
||||
<li><b>handle</b> (<em>either regex and/or handle is required</em>)The handle attribute determines which community, collection, or item the theme should apply to.<br/>
|
||||
If you use the "handle" attribute, the effect is cascading, meaning if a rule is established for a community then all collections and items within that community will also have this theme apply to them as well. Here is an example configuration:
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java"> <themes>
|
||||
<theme name=<span class="code-quote">"Theme 1"</span> handle=<span class="code-quote">"123456789/23"</span> path=<span class="code-quote">"theme1/"</span>/>
|
||||
<theme name=<span class="code-quote">"Theme 2"</span> regex=<span class="code-quote">"community-list"</span> path=<span class="code-quote">"theme2/"</span>/>
|
||||
<theme name=<span class="code-quote">"Reference Theme"</span> regex=<span class="code-quote">".*"</span> path=<span class="code-quote">"Reference/"</span>/>
|
||||
<pre class="code-java">
|
||||
<themes>
|
||||
<theme name=<span class="code-quote">"Theme 1"</span> handle=<span class="code-quote">"123456789/23"</span> path=<span class="code-quote">"theme1/"</span>/>
|
||||
<theme name=<span class="code-quote">"Theme 2"</span> regex=<span class="code-quote">"community-list"</span> path=<span class="code-quote">"theme2/"</span>/>
|
||||
<theme name=<span class="code-quote">"Reference Theme"</span> regex=<span class="code-quote">".*"</span> path=<span class="code-quote">"Reference/"</span>/>
|
||||
</themes></pre>
|
||||
</div></div>
|
||||
<p>In the example above three themes are configured: "Theme 1", "Theme 2", and the "Reference Theme". The first rule specifies that "Theme 1" will apply to all communities, collections, or items that are contained under the parent community "123456789/23". The next rule specifies any URL containing the string "community-list" will get "Theme 2". The final rule, using the regular expression ".<b>", will match *anything</b>, so all pages which have not matched one of the preceding rules will be matched to the Reference Theme.</p></li>
|
||||
@@ -314,9 +316,10 @@ Most theme developers do not create a new theme from scratch; instead they start
|
||||
<b>2) Modify theme variables</b><br/>
|
||||
The next step is to modify the theme's parameters so that the theme knows where it is located. Open the <em>[your theme's directory]/sitemap.xmap</em> and look for <em><global-variables></em></p>
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java"> <global-variables>
|
||||
<theme-path>[your theme's directory]</theme-path>
|
||||
<theme-name>[your theme's name]</theme-name>
|
||||
<pre class="code-java">
|
||||
<global-variables>
|
||||
<theme-path>[your theme's directory]</theme-path>
|
||||
<theme-name>[your theme's name]</theme-name>
|
||||
</global-variables></pre>
|
||||
</div></div>
|
||||
<p>Update both the theme's path to the directory name you created in step one. The theme's name is used only for documentation.<br/>
|
||||
@@ -327,7 +330,7 @@ The base theme template will produce a repository interface without any style -
|
||||
|
||||
<p><em>[your theme's directory]/lib/style-ie.css</em> (Specific stylesheet used for internet explorer)<br/>
|
||||
<b>4) Install theme and rebuild DSpace</b><br/>
|
||||
Next rebuild and deploy Dspace (replace <version> with the your current release):</p>
|
||||
Next rebuild and deploy DSpace (replace <version> with the your current release):</p>
|
||||
|
||||
<ol>
|
||||
<li>Rebuild the DSpace installation package by running the following command from your <em>[dspace-source]/dspace/</em> directory:
|
||||
@@ -358,45 +361,46 @@ This will ensure the theme has been installed as described in the previous secti
|
||||
|
||||
<p>Example 1: a single language:</p>
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java"><document>
|
||||
<body>
|
||||
<div id=<span class="code-quote">"file.news.div.news"</span> n=<span class="code-quote">"news"</span> rend=<span class="code-quote">"primary"</span>>
|
||||
<head> TITLE OF YOUR REPOSITORY HERE </head>
|
||||
<p>
|
||||
INTRO MESSAGE HERE
|
||||
Welcome to my wonderful repository etc etc ...
|
||||
A service of <xref target=<span class="code-quote">"http:<span class="code-comment">//myuni.edu/"</span>>My University</xref>
|
||||
</span> </p>
|
||||
</div>
|
||||
</body>
|
||||
<options/>
|
||||
<meta>
|
||||
<userMeta/>
|
||||
<pageMeta/>
|
||||
<repositoryMeta/>
|
||||
</meta>
|
||||
<pre class="code-java"><document>
|
||||
<body>
|
||||
<div id=<span class="code-quote">"file.news.div.news"</span> n=<span class="code-quote">"news"</span> rend=<span class="code-quote">"primary"</span>>
|
||||
<head> TITLE OF YOUR REPOSITORY HERE </head>
|
||||
<p>
|
||||
INTRO MESSAGE HERE
|
||||
Welcome to my wonderful repository etc etc ...
|
||||
A service of <xref target=<span class="code-quote">"http:<span class="code-comment">//myuni.edu/"</span>>My University</xref>
|
||||
</span> </p>
|
||||
</div>
|
||||
</body>
|
||||
<options/>
|
||||
<meta>
|
||||
<userMeta/>
|
||||
<pageMeta/>
|
||||
<repositoryMeta/>
|
||||
</meta>
|
||||
</document></pre>
|
||||
</div></div>
|
||||
<p>Example 2: all text replaced by references to localizable message keys:</p>
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java"><document>
|
||||
<body>
|
||||
<div id=<span class="code-quote">"file.news.div.news"</span> n=<span class="code-quote">"news"</span> rend=<span class="code-quote">"primary"</span>>
|
||||
<head><i18n:text>myuni.repo.title</i18n:text></head>
|
||||
<p>
|
||||
<i18n:text>myuni.repo.intro</i18n:text>
|
||||
<i18n:text>myuni.repo.a.service.of</i18n:text>
|
||||
<xref target=<span class="code-quote">"http:<span class="code-comment">//myuni.edu/"</span>><i18n:text>myuni.name</i18n:text></xref>
|
||||
</span> </p>
|
||||
</div>
|
||||
</body>
|
||||
<options/>
|
||||
<meta>
|
||||
<userMeta/>
|
||||
<pageMeta/>
|
||||
<repositoryMeta/>
|
||||
</meta>
|
||||
</document>
|
||||
<pre class="code-java">
|
||||
<document>
|
||||
<body>
|
||||
<div id=<span class="code-quote">"file.news.div.news"</span> n=<span class="code-quote">"news"</span> rend=<span class="code-quote">"primary"</span>>
|
||||
<head><i18n:text>myuni.repo.title</i18n:text></head>
|
||||
<p>
|
||||
<i18n:text>myuni.repo.intro</i18n:text>
|
||||
<i18n:text>myuni.repo.a.service.of</i18n:text>
|
||||
<xref target=<span class="code-quote">"http:<span class="code-comment">//myuni.edu/"</span>><i18n:text>myuni.name</i18n:text></xref>
|
||||
</span> </p>
|
||||
</div>
|
||||
</body>
|
||||
<options/>
|
||||
<meta>
|
||||
<userMeta/>
|
||||
<pageMeta/>
|
||||
<repositoryMeta/>
|
||||
</meta>
|
||||
</document>
|
||||
</pre>
|
||||
</div></div>
|
||||
|
||||
@@ -408,8 +412,9 @@ This will ensure the theme has been installed as described in the previous secti
|
||||
|
||||
<p>Any static HTML content you add to this directory may also reference static content (e.g. CSS, Javascript, Images, etc.) from the same <em>[dspace-source]/dspace/modules/xmlui/src/main/webapp/static/</em> directory. You may reference other static content from your static HTML files similar to the following:</p>
|
||||
<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
|
||||
<pre class="code-java"> <link href=<span class="code-quote">"./<span class="code-keyword">static</span>/mystyle.css"</span> rel=<span class="code-quote">"stylesheet"</span> type=<span class="code-quote">"text/css"</span>/>
|
||||
<img src=<span class="code-quote">"./<span class="code-keyword">static</span>/images/<span class="code-keyword">static</span>-image.gif"</span> alt=<span class="code-quote">"Static image in /<span class="code-keyword">static</span>/images/ directory"</span>/>
|
||||
<pre class="code-java">
|
||||
<link href=<span class="code-quote">"./<span class="code-keyword">static</span>/mystyle.css"</span> rel=<span class="code-quote">"stylesheet"</span> type=<span class="code-quote">"text/css"</span>/>
|
||||
<img src=<span class="code-quote">"./<span class="code-keyword">static</span>/images/<span class="code-keyword">static</span>-image.gif"</span> alt=<span class="code-quote">"Static image in /<span class="code-keyword">static</span>/images/ directory"</span>/>
|
||||
<img src=<span class="code-quote">"./<span class="code-keyword">static</span>/<span class="code-keyword">static</span>-image.jpg"</span> alt=<span class="code-quote">"Static image in /<span class="code-keyword">static</span>/ directory"</span>/> </pre>
|
||||
</div></div>
|
||||
|
||||
@@ -431,14 +436,14 @@ This will ensure the theme has been installed as described in the previous secti
|
||||
<li>Click the Test Settings button will verify the settings supplied in the previous steps and will usually let you know what, if anything is missing or does not match up.</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>The list of radio buttons labeled "Content being harvested" allows you to select the harvest level. The first one requires no OAI-ORE support on the part of the provider and can be used to harvest metadata from any provider compliant with the OAI-PMH 2.0 specifications. The middle options will harvest the metadata and generate links to bitstreams stored remotely, while the last one will perform full local replication.Select the middle option and click Save<br/>
|
||||
<li>The list of radio buttons labeled "Content being harvested" allows you to select the harvest level. The first one requires no OAI-ORE support on the part of the provider and can be used to harvest metadata from any provider compliant with the OAI-PMH 2.0 specifications. The middle options will harvest the metadata and generate links to bitstreams stored remotely, while the last one will perform full local replication. Select the middle option and click Save<br/>
|
||||
At this point the settings are saved and the menu changes to provide three options:</li>
|
||||
</ol>
|
||||
|
||||
|
||||
<ul>
|
||||
<li>"Change Settings" takes you back to the edit screen.</li>
|
||||
<li>"Import Now" performs a single harvest from the remote collection into the local one. Success, notes, and errors encountered in the process will be reflected in the "Last Harvest Result" entry. More detailed information is available in the dspace log. Note that the whole harvest cycle is execuited withtin a single HTTP request and will time out for large collections. For this reason, it is advisable to use the automatic harvest scheduler set up<br/>
|
||||
<li>"Import Now" performs a single harvest from the remote collection into the local one. Success, notes, and errors encountered in the process will be reflected in the "Last Harvest Result" entry. More detailed information is available in the DSpace log. Note that the whole harvest cycle is executed within a single HTTP request and will time out for large collections. For this reason, it is advisable to use the automatic harvest scheduler set up<br/>
|
||||
either in XMLUI or from the command line. If the scheduler is running, "Import Now" will handle the harvest task as a separate thread.</li>
|
||||
<li>"Reset and Reimport Collection" will perform the same function as "Import Now", but will clear the collection of all existing items before doing so.</li>
|
||||
</ul>
|
||||
@@ -485,7 +490,7 @@ either in XMLUI or from the command line. If the scheduler is running, "Import
|
||||
<td height="12" background="https://wiki.duraspace.org/images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Dec 16, 2010 11:47</font></td>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Mar 25, 2011 19:21</font></td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 594 B |
@@ -3,54 +3,16 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>DSDOC (DSpace Documentation) Test</title>
|
||||
<title>DSpace 1.7.1 Documentation</title>
|
||||
<link rel="stylesheet" href="styles/site.css" type="text/css" />
|
||||
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
|
||||
<tr>
|
||||
<td valign="top" class="pagebody">
|
||||
<center>
|
||||
<h1><font color="#0050B2">Space Details:</font></h1>
|
||||
</center>
|
||||
<table class="grid" border="1" cellpadding="0" cellspacing="0" width="100%">
|
||||
<tr>
|
||||
<td width="200">
|
||||
<b>Key:</b>
|
||||
</td>
|
||||
<td>DSDOC</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="200">
|
||||
<b>Name:</b>
|
||||
</td>
|
||||
<td>DSpace Documentation</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="200">
|
||||
<b>Description:</b>
|
||||
</td>
|
||||
<td><p>DSpace Software Documentation</p></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="200">
|
||||
<b>Creator (Creation Date):</b>
|
||||
</td>
|
||||
<td>cwilper (Jul 15, 2009)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="200">
|
||||
<b>Last Modifier (Mod. Date):</b>
|
||||
</td>
|
||||
<td>tdonohue (Aug 30, 2010)</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br/>
|
||||
<br/>
|
||||
<p>
|
||||
<h2><font color="#0050B2">Available Pages:</font></h2>
|
||||
<h2><font color="#0050B2">Index:</font></h2>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
@@ -270,8 +232,8 @@
|
||||
<td height="12" background="https://wiki.duraspace.org/images/border/border_bottom.gif"><img src="images/border/spacer.gif" width="1" height="1" border="0"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Dec 16, 2010 11:47</font></td>
|
||||
<td align="center"><font color="grey">Document generated by Confluence on Mar 25, 2011 19:21</font></td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
Binary file not shown.
@@ -10,7 +10,7 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>modules</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
</parent>
|
||||
|
||||
<profiles>
|
||||
@@ -73,9 +73,9 @@
|
||||
</profiles>
|
||||
|
||||
<scm>
|
||||
<connection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace/modules/jspui</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace/modules/jspui</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace/modules/jspui</url>
|
||||
<connection>scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</url>
|
||||
</scm>
|
||||
|
||||
<build>
|
||||
|
@@ -12,13 +12,13 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>modules</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
</parent>
|
||||
|
||||
<scm>
|
||||
<connection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace/modules/lni</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace/modules/lni</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace/modules/lni</url>
|
||||
<connection>scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</url>
|
||||
</scm>
|
||||
|
||||
<build>
|
||||
|
@@ -16,7 +16,7 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>modules</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
</parent>
|
||||
|
||||
<!--
|
||||
@@ -25,9 +25,9 @@
|
||||
into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/trunk/dspace/modules/oai</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace/modules/oai</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace/modules/oai</url>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</url>
|
||||
</scm>
|
||||
|
||||
<build>
|
||||
|
@@ -10,14 +10,13 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-parent</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
<version>1.7.1</version>
|
||||
</parent>
|
||||
|
||||
<scm>
|
||||
<connection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace/modules</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace/modules</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace/modules</url>
|
||||
<connection>scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</url>
|
||||
</scm>
|
||||
|
||||
<modules>
|
||||
@@ -29,4 +28,4 @@
|
||||
<module>solr</module>
|
||||
</modules>
|
||||
|
||||
</project>
|
||||
</project>
|
@@ -1,84 +1,84 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.dspace.modules</groupId>
|
||||
<artifactId>solr</artifactId>
|
||||
<packaging>war</packaging>
|
||||
<name>DSpace SOLR :: Web Application</name>
|
||||
<description>
|
||||
DSpace SOLR Service Provider Web Application
|
||||
</description>
|
||||
|
||||
<!--
|
||||
A Parent POM that Maven inherits DSpace Default
|
||||
POM atrributes from.
|
||||
-->
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>modules</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<!--
|
||||
The Subversion repository location is used by Continuum to update
|
||||
against when changes have occured, this spawns a new build cycle
|
||||
and releases snapshots into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://dspace.svn.sourceforge.net/svnroot/dspace/trunk/dspace/modules/solr</connection>
|
||||
<developerConnection>scm:svn:https://dspace.svn.sourceforge.net/svnroot/dspace/trunk/dspace/modules/solr</developerConnection>
|
||||
<url>http://dspace.svn.sourceforge.net/svnroot/dspace/trunk/dspace/modules/solr</url>
|
||||
</scm>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-war-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>prepare-package</phase>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-solr</artifactId>
|
||||
<version>1.4.1.0</version>
|
||||
<classifier>skinny</classifier>
|
||||
<type>war</type>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-solr</artifactId>
|
||||
<version>1.4.1.0</version>
|
||||
<classifier>classes</classifier>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-api</artifactId>
|
||||
<version>1.5.6</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-jdk14</artifactId>
|
||||
<version>1.5.6</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!-- support odd cases where JAXP cannot be found in JVM -->
|
||||
<dependency>
|
||||
<groupId>xalan</groupId>
|
||||
<artifactId>xalan</artifactId>
|
||||
<version>2.7.0</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.dspace.modules</groupId>
|
||||
<artifactId>solr</artifactId>
|
||||
<packaging>war</packaging>
|
||||
<name>DSpace SOLR :: Web Application</name>
|
||||
<description>
|
||||
DSpace SOLR Service Provider Web Application
|
||||
</description>
|
||||
|
||||
<!--
|
||||
A Parent POM that Maven inherits DSpace Default
|
||||
POM atrributes from.
|
||||
-->
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>modules</artifactId>
|
||||
<version>1.7.1</version>
|
||||
</parent>
|
||||
|
||||
<!--
|
||||
The Subversion repository location is used by Continuum to update
|
||||
against when changes have occured, this spawns a new build cycle
|
||||
and releases snapshots into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://dspace.svn.sourceforge.net/svnroot/dspace/tags/dspace-1.7.1</connection>
|
||||
<developerConnection>scm:svn:https://dspace.svn.sourceforge.net/svnroot/dspace/tags/dspace-1.7.1</developerConnection>
|
||||
<url>http://dspace.svn.sourceforge.net/svnroot/dspace/tags/dspace-1.7.1</url>
|
||||
</scm>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-war-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>prepare-package</phase>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-solr</artifactId>
|
||||
<version>1.4.1.1</version>
|
||||
<classifier>skinny</classifier>
|
||||
<type>war</type>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-solr</artifactId>
|
||||
<version>1.4.1.1</version>
|
||||
<classifier>classes</classifier>
|
||||
<type>jar</type>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-api</artifactId>
|
||||
<version>1.5.6</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-jdk14</artifactId>
|
||||
<version>1.5.6</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!-- support odd cases where JAXP cannot be found in JVM -->
|
||||
<dependency>
|
||||
<groupId>xalan</groupId>
|
||||
<artifactId>xalan</artifactId>
|
||||
<version>2.7.0</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
|
@@ -16,7 +16,7 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>modules</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
</parent>
|
||||
|
||||
<!--
|
||||
@@ -25,9 +25,9 @@
|
||||
into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/trunk/dspace/modules/sword</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace/modules/sword</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace/modules/sword</url>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</url>
|
||||
</scm>
|
||||
|
||||
<build>
|
||||
|
@@ -13,13 +13,13 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>modules</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
</parent>
|
||||
|
||||
<scm>
|
||||
<connection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace/modules/xmlui</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace/modules/xmlui</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace/modules/xmlui</url>
|
||||
<connection>scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</url>
|
||||
</scm>
|
||||
|
||||
<build>
|
||||
@@ -143,13 +143,13 @@
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-discovery-xmlui-api</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-discovery-xmlui-webapp</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
<type>war</type>
|
||||
</dependency>
|
||||
|
||||
|
@@ -16,7 +16,7 @@
|
||||
<parent>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-parent</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
</parent>
|
||||
|
||||
<!--
|
||||
@@ -25,9 +25,9 @@
|
||||
into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/trunk/dspace</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk/dspace</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace</url>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</url>
|
||||
</scm>
|
||||
|
||||
<profiles>
|
||||
|
42
pom.xml
42
pom.xml
@@ -3,7 +3,7 @@
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-parent</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
<name>DSpace Parent Project</name>
|
||||
<url>http://projects.dspace.org</url>
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<parent>
|
||||
<artifactId>dspace-pom</artifactId>
|
||||
<groupId>org.dspace</groupId>
|
||||
<version>9</version>
|
||||
<version>10</version>
|
||||
</parent>
|
||||
|
||||
<build>
|
||||
@@ -177,72 +177,72 @@
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-api</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-sword-api</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-sword-webapp</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
<type>war</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-jspui-api</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-jspui-webapp</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
<type>war</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-oai-api</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-oai-webapp</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
<type>war</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-lni-core</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-lni-client</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-lni-webapp</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
<type>war</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-xmlui-api</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-xmlui-webapp</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
<type>war</type>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-xmlui-wing</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
@@ -262,7 +262,7 @@
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-stats</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
</dependency>
|
||||
<!-- DSpace Localization Packages -->
|
||||
<dependency>
|
||||
@@ -279,7 +279,7 @@
|
||||
<dependency>
|
||||
<groupId>org.dspace</groupId>
|
||||
<artifactId>dspace-discovery-provider</artifactId>
|
||||
<version>1.8.0-SNAPSHOT</version>
|
||||
<version>1.7.1</version>
|
||||
</dependency>
|
||||
<!-- DSpace third Party Dependencies -->
|
||||
<dependency>
|
||||
@@ -834,9 +834,9 @@
|
||||
snapshots into the snapshot repository below.
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/trunk</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/trunk</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/trunk</url>
|
||||
<connection>scm:svn:http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</connection>
|
||||
<developerConnection>scm:svn:https://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</developerConnection>
|
||||
<url>http://scm.dspace.org/svn/repo/dspace/tags/dspace-1.7.1</url>
|
||||
</scm>
|
||||
|
||||
<reporting>
|
||||
@@ -911,7 +911,7 @@
|
||||
<artifactId>maven-pmd-plugin</artifactId>
|
||||
<version>2.4</version>
|
||||
<configuration>
|
||||
<targetJdk>${maven.compiler.target}</targetJdk>
|
||||
<targetJdk>${dspace.java.target}</targetJdk>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
|
Reference in New Issue
Block a user