Compare commits

...

71 Commits

Author SHA1 Message Date
Hardy Pottinger
96184cad90 [maven-release-plugin] prepare release dspace-1.7.3 2013-07-25 08:45:15 -05:00
Hardy Pottinger
e782449835 backporting patch to DS-1603 to dspace 1.7 2013-07-24 16:28:46 -05:00
Tim Donohue
a993c9a3c1 More line ending normalization (related to DS-1587) 2013-07-23 21:30:33 +00:00
Tim Donohue
23da4c607c Line ending normalization (related to DS-1587) 2013-07-23 21:19:05 +00:00
Tim Donohue
1bf23d7c4c License Header fixes (related to DS-1587). Fix pom.xml configs to skip files not needing checking 2013-06-26 14:51:40 -05:00
Tim Donohue
38ef9080fa Backporting DS-1587 : Cleanup POMs to work with GitHub and also merge in old "dspace-pom" functionality into dspace-parent POM.
Also includes fixes for DS-1588 : Ensure 1.7.x now builds properly with Maven 3.
2013-06-26 13:04:37 -05:00
Tim Donohue
17be1b9c25 Fix line endings (related to DS-1587) 2013-06-26 10:45:22 -05:00
Tim Donohue
deaf6a5d82 DS-1587 - Commit .gitignore files and .gitattributes 2013-06-26 10:20:50 -05:00
Peter Dietz
16b5ebfdea [maven-release-plugin] prepare for next development iteration
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6398 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-05-27 17:44:19 +00:00
Peter Dietz
e320ebd85a [maven-release-plugin] prepare release dspace-1.7.2
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6396 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-05-27 17:44:03 +00:00
Peter Dietz
e8d7f30ccf [maven-release-plugin] rollback the release of dspace-1.7.2
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6395 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-05-27 17:35:25 +00:00
Peter Dietz
36fa23246c [maven-release-plugin] prepare release dspace-1.7.2
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6394 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-05-27 17:30:33 +00:00
Peter Dietz
ca21676305 [maven-release-plugin] rollback the release of dspace-1.7.2
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6393 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-05-27 17:16:56 +00:00
Peter Dietz
266ec0fc2b [maven-release-plugin] prepare release dspace-1.7.2
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6391 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-05-27 16:55:00 +00:00
Peter Dietz
7e1e0ce8b5 Added 1.7.2 known bugs entry. Fixed typo in NOTICE.
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6389 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-05-27 15:40:12 +00:00
Peter Dietz
faf8883bc9 [DS-841] No such column rnum error in eperson admin with Oracle backend. (Patch by Hardy Pottinger).
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6387 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-05-27 14:27:44 +00:00
Mark Diggory
43fc41fef9 [DS-875] DSpace Configuration service error when using "dspace" script. ( provided by kevin@atmire.com )
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6385 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-05-25 20:46:44 +00:00
Peter Dietz
d863d8a88c [DS-871] Fix XMLUI Caching for community and collection recent submissions
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6381 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-05-16 18:37:34 +00:00
Peter Dietz
21f7f3f9ca [maven-release-plugin] prepare for next development iteration
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6278 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-28 16:18:28 +00:00
Peter Dietz
37a6f5e82a [maven-release-plugin] prepare release dspace-1.7.1
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6276 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-28 16:18:10 +00:00
Tim Donohue
f6f0104cd4 Fix to 1.7.x Branch's main pom.xml. Somehow, all its SCM settings still pointed at Trunk, rather than at this Branch. This caused issues during release tagging, as releases kept being tagged off of *Trunk* rather than the Branch.
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6274 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-28 15:49:52 +00:00
Tim Donohue
4e6973a569 [maven-release-plugin] rollback the release of dspace-1.7.1
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6272 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-28 15:45:22 +00:00
Tim Donohue
aa8dd60640 [maven-release-plugin] prepare for next development iteration
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6271 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-28 15:34:06 +00:00
Tim Donohue
b997ca866f [maven-release-plugin] prepare release dspace-1.7.1
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6269 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-28 15:33:39 +00:00
Peter Dietz
5c6c7e1fd1 [maven-release-plugin] rollback the release of dspace-1.7.1
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6267 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-28 14:42:27 +00:00
Peter Dietz
6e026ed6fd [maven-release-plugin] prepare for next development iteration
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6266 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-28 14:33:00 +00:00
Peter Dietz
c3a48caca4 [maven-release-plugin] prepare release dspace-1.7.1
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6264 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-28 14:32:43 +00:00
Peter Dietz
39538b1ab8 Regenerated Docs to account for changes in DS-860
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6263 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-28 13:58:59 +00:00
Kim Shepherd
f923f7c391 [DS-860] SWORD still uses dspace.url rather than dspace.baseUrl
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6261 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-28 08:29:29 +00:00
Mark Diggory
97e105b88f [DSCR-4] Add AJAX term suggestion against Solr to Search for fields. (Made finding location of JSON more robust)
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6258 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-26 16:14:50 +00:00
Mark Diggory
4eaacd90cb [DSCR-20] Fix Broken Related Items Section
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6257 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-26 07:49:14 +00:00
Mark Diggory
9a075ac5d9 Next release of dspace-pom without broken goals section
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6255 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-25 22:41:01 +00:00
Tim Donohue
f43e2e2992 Undoing last change
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6249 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-25 21:00:13 +00:00
Tim Donohue
06b81964e4 Wrapping <goal> within <goals> -- we had invalid settings for maven-release-plugin
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6248 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-25 20:55:03 +00:00
Peter Dietz
84042ce512 [maven-release-plugin] rollback the release of dspace-parent-1.7.1
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6246 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-25 20:44:17 +00:00
Peter Dietz
3c7d8ba607 Wrapped goal inside of goals.
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6245 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-25 20:33:27 +00:00
Peter Dietz
151afeace5 [maven-release-plugin] prepare for next development iteration
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6244 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-25 20:29:00 +00:00
Peter Dietz
aa6f1baa4a [maven-release-plugin] prepare release dspace-parent-1.7.1
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6242 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-25 20:28:40 +00:00
Peter Dietz
2b67c5ccb2 [maven-release-plugin] prepare for next development iteration
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6241 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-25 20:11:55 +00:00
Peter Dietz
06878eab58 [maven-release-plugin] prepare release dspace-parent-1.7.1
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6239 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-25 20:11:37 +00:00
Peter Dietz
7cc9a5d3d0 Added PDF System Documentation for 1.7.1
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6238 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-25 19:38:46 +00:00
Peter Dietz
8237d8b6e1 Added 1.7.1 html documentation.
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6237 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-25 19:31:22 +00:00
Peter Dietz
48777df275 Removed 1.7.0 html documentation.
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6236 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-25 19:21:13 +00:00
Tim Donohue
908429570c Updates to all README & LICENSE files in preparation for 1.7.1 release. These updates included minor changes to links, changes to the License date range, and spelling corrections.
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6233 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-25 17:12:43 +00:00
Tim Donohue
d999d0b0b7 Fix for DS-857 - CHANGES file now obsolete in SVN - point at online History
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6231 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-25 17:06:49 +00:00
Mark Diggory
2bfd77e634 Latest Fixed Solr Implementation
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6229 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-25 03:16:40 +00:00
Mark Diggory
0a50305ff5 Suppress Site Deployment as it is lengthy and error prone
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6209 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-25 00:03:27 +00:00
Mark Diggory
0bf155628d [DSRV-12] DSpace Configuration service reads in more configuration files - Commit for Kevin Van de Velde
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6196 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-24 23:48:45 +00:00
Kim Shepherd
1bbea4dbc4 [DS-785] SWORD deposits fail when ingest events are fired if Discovery event consumer is configured
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6176 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-23 07:11:41 +00:00
Kim Shepherd
edb6a8a86f [DS-853] MetadataExposure settings for dc.description.provenance are ignored/overridden by XMLUI templates
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6171 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-22 03:21:38 +00:00
Peter Dietz
491ca830a9 [DS-641] Page does not exist
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6164 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-16 23:06:53 +00:00
Peter Dietz
09e049739f [DS-620] Exceed maximum while uploading files got the user stuck should lead to a friendly error page
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6158 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-16 19:34:52 +00:00
Ben Bosman
0a00a8bbe9 [DS-843] Autocomplete in authority control contains small errors in Mirage
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6144 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-16 16:46:07 +00:00
Peter Dietz
0cbeef4010 [DS-776] Collection admin cannot add bitstreams unless there is at least one bundle.
Additionally did whitespace and formatting fix to the file being touched.

git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6143 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-15 18:45:52 +00:00
Mark Diggory
27ae52c8f1 [DS-840] Add Ability to create Top Level Community in at the home page, additional support to force discovery facets to be just under search.
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6141 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-15 06:51:06 +00:00
Mark Diggory
2834c8ccf6 [DS-840] Add Ability to create Top Level Community in at the home page.
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6140 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-15 06:32:25 +00:00
Mark Diggory
1a9a7dfcba [DSCR-19] Case sensitive sidebar facets
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6139 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-15 05:52:34 +00:00
Mark Diggory
27741e59a9 [DS-839] Adding Field to Choice Authority to allow Authorities to be able to know of the field being authority controlled.
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6138 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-15 05:26:02 +00:00
Tim Donohue
1f4e370234 DS-821 fix (AbstractMETSIngester creates an item before adding descriptive metadata). This fix essentially reorganizes logic in AbstractMETSIngester.ingestObject(), to ensure that item is not officially *installed* in DSpace until all of the Descriptive Metadata crosswalks and files are attached. See DS-821 for more info. I've tested this fix via both SWORD ingest and via AIP Ingest, and both seem to work perfectly.
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6137 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-14 19:11:56 +00:00
Robin Taylor
f8c0886738 [DS-435] - Prevent MyExports link appearing when not logged on.
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6110 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-05 10:56:02 +00:00
Stuart Lewis
296a70b4d8 [DS-215] Single-argument Item.getMetadata does not work with mixed-case metadata terms. Re-applied in 1.7.1 / 1.8(trunk) as it got overwritten during a merge in the 1.7 development.
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6107 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-03-04 03:20:04 +00:00
Ben Bosman
c0f8854398 [DS-823] DatabaseManager Oracle compliance
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6092 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-02-24 12:47:24 +00:00
Mark Diggory
f7e2723e5c [DSCR-18] Corrections to allow full text indexing provided by Kevin Van de Velde
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6082 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-02-18 07:54:24 +00:00
Stuart Lewis
314011e069 [DS-806] Item.match() incorrect logic for schema testing
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6052 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-01-27 00:51:49 +00:00
Stuart Lewis
aa708a326c [DS-806] junit test - should cause bamboo to report a test failure. Patch to fix this to be applied shortly.
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6051 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-01-27 00:47:30 +00:00
Ben Bosman
ce3a2098e4 [DS-809] Support for empty dc.abstract dim field in Internet Explorer
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6045 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-01-25 16:37:40 +00:00
Ben Bosman
28bf3e3046 [DS-808] jqueryUI javascript gets imported without corresponding CSS
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6042 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-01-25 16:33:25 +00:00
Claudia Juergen
793974234d [DS-761] MetadataSchema: cache out of sync after calling delete()
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6027 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-01-19 15:29:06 +00:00
Peter Dietz
7ea045b2ed [DS-789] HTTPS renders with errors due to a hardcoded HTTP link
Added a detection for https/http so that when loading JS from CDN uses same protocol, thus solving mixed content warning.

git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6017 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-01-13 17:58:09 +00:00
Claudia Juergen
54d0316724 [DS-758] Mirage theme - lists of unifished submission/workflow task wrong link in collection column
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@6012 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2011-01-07 14:29:33 +00:00
Tim Donohue
77573bc55f Creating a branch for any necessary 1.7.x bug-fix releases
git-svn-id: http://scm.dspace.org/svn/repo/dspace/branches/dspace-1_7_x@5992 9c30dcfa-912a-0410-8fc2-9e0234be79fd
2010-12-16 18:58:44 +00:00
210 changed files with 22819 additions and 23223 deletions

14
.gitattributes vendored Normal file
View File

@@ -0,0 +1,14 @@
# Auto detect text files and perform LF normalization
* text=auto
# Standard to msysgit
*.doc diff=astextplain
*.DOC diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot diff=astextplain
*.DOT diff=astextplain
*.pdf diff=astextplain
*.PDF diff=astextplain
*.rtf diff=astextplain
*.RTF diff=astextplain

23
.gitignore vendored Normal file
View File

@@ -0,0 +1,23 @@
## Ignore the MVN compiled output directories from version tracking
target/
## Ignore project files created by Eclipse
.settings/
.project
.classpath
## Ignore project files created by IntelliJ IDEA
*.iml
*.ipr
*.iws
.idea/
## Ignore project files created by NetBeans
nbproject/private/
build/
nbbuild/
dist/
nbdist/
nbactions.xml
nb-configuration.xml
META-INF/

View File

@@ -1,7 +1,7 @@
DSpace source code license:
Copyright (c) 2002-2010, DuraSpace. All rights reserved.
Copyright (c) 2002-2011, DuraSpace. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are

5
LICENSE_HEADER Normal file
View File

@@ -0,0 +1,5 @@
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/

4
NOTICE
View File

@@ -11,5 +11,5 @@ access and preservation of digital works. The Foundation was able to transfer
the legal copyright from Hewlett-Packard Company (HP) and Massachusetts
Institute of Technology (MIT) to the DSpace Foundation in October 2007. Many
of the files in the source code may contain a copyright statement stating HP
and MIT posses the copyright, in these instances please note that the copy
right has transfered to the DSpace foundation, and subsequently to Duraspace.
and MIT possess the copyright, in these instances please note that the copy
right has transferred to the DSpace foundation, and subsequently to DuraSpace.

10
README
View File

@@ -5,9 +5,9 @@ or
- dspace/docs/pdf/DSpace-Manual.pdf
DSpace version information can be found in this release package under
- dspace/CHANGES
or
- dspace/docs/html/History.html
or viewed online at
- https://wiki.duraspace.org/display/DSDOC/History
Documentation for the most recent stable release(s) may be downloaded
or viewed online at
@@ -31,12 +31,12 @@ mailing list.
Detailed Issue Tracking for DSpace is done on our JIRA Issue Tracker
- http://jira.dspace.org/
- https://jira.duraspace.org/browse/DS
To contribute to DSpace, please see:
- https://wiki.duraspace.org/display/DSPACE/HowToContribute
- https://wiki.duraspace.org/display/DSPACE/How+to+Contribute+to+DSpace
For more details about DSpace, including a list of service providers,
@@ -48,4 +48,4 @@ places to seek help, news articles and lists of other users, please see:
DSpace source code licensing information available online at:
- http://www.dspace.org/license/
Copyright (c) 2002-2010, DuraSpace. All rights reserved.
Copyright (c) 2002-2011, DuraSpace. All rights reserved.

View File

@@ -8,24 +8,19 @@
<!--
A Parent POM that Maven inherits DSpace Defaults
POM atrributes from.
POM attributes from.
-->
<parent>
<groupId>org.dspace</groupId>
<artifactId>dspace-parent</artifactId>
<version>1.7.1-SNAPSHOT</version>
<version>1.7.3</version>
<relativePath>..</relativePath>
</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://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>
</scm>
<properties>
<!-- This is the path to the root [dspace-src] directory. -->
<root.basedir>${basedir}/..</root.basedir>
</properties>
<!--
Runtime and Compile Time dependencies for DSpace.
@@ -60,29 +55,6 @@
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.google.code.maven-license-plugin</groupId>
<artifactId>maven-license-plugin</artifactId>
<version>1.4.0</version>
<configuration>
<header>http://scm.dspace.org/svn/repo/licenses/LICENSE_HEADER</header>
<includes>
<include>src/**</include>
</includes>
<excludes>
<exclude>src/test/resources/dspaceFolder/**</exclude>
</excludes>
<properties />
<encoding>UTF-8</encoding>
</configuration>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
@@ -277,6 +249,16 @@
<artifactId>contiperf</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.rometools</groupId>
<artifactId>rome-modules</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>com.coverity.security</groupId>
<artifactId>coverity-escapers</artifactId>
<version>1.1.1</version>
</dependency>
</dependencies>
</project>

View File

@@ -494,7 +494,7 @@ public class Item extends DSpaceObject
int i = 0;
while(dcf.hasMoreTokens())
{
tokens[i] = dcf.nextToken().toLowerCase().trim();
tokens[i] = dcf.nextToken().trim();
i++;
}
String schema = tokens[0];
@@ -908,7 +908,8 @@ public class Item extends DSpaceObject
return false;
}
}
else if (!schema.equals(Item.ANY))
if (!schema.equals(Item.ANY))
{
if (dcv.schema != null && !dcv.schema.equals(schema))
{

View File

@@ -354,6 +354,7 @@ public class MetadataSchema
"metadata_schema_id=" + getSchemaID()));
DatabaseManager.delete(context, row);
decache();
}
/**

View File

@@ -362,6 +362,34 @@ public class WorkspaceItem implements InProgressSubmission
return wsItems.toArray(new WorkspaceItem[wsItems.size()]);
}
/**
* Check to see if a particular item is currently still in a user's Workspace.
* If so, its WorkspaceItem is returned. If not, null is returned
*
* @param context
* the context object
* @param i
* the item
*
* @return workflow item corresponding to the item, or null
*/
public static WorkspaceItem findByItem(Context context, Item i)
throws SQLException
{
// Look for the unique workspaceitem entry where 'item_id' references this item
TableRow row = DatabaseManager.findByUnique(context, "workspaceitem", "item_id", i.getID());
if (row == null)
{
return null;
}
else
{
return new WorkspaceItem(context, row);
}
}
/**
* Get all workspace items in the whole system
*

View File

@@ -31,6 +31,7 @@ public interface ChoiceAuthority
* defaultSelected index in the Choices instance to the choice, if any,
* that matches the value.
*
* @param field being matched for
* @param text user's value to match
* @param collection database ID of Collection for context (owner of Item)
* @param start choice at which to start, 0 is first.
@@ -38,7 +39,7 @@ public interface ChoiceAuthority
* @param locale explicit localization key if available, or null
* @return a Choices object (never null).
*/
public Choices getMatches(String text, int collection, int start, int limit, String locale);
public Choices getMatches(String field, String text, int collection, int start, int limit, String locale);
/**
* Get the single "best" match (if any) of a value in the authority
@@ -49,12 +50,13 @@ public interface ChoiceAuthority
* This call is typically used in non-interactive metadata ingest
* where there is no interactive agent to choose from among options.
*
* @param field being matched for
* @param text user's value to match
* @param collection database ID of Collection for context (owner of Item)
* @param locale explicit localization key if available, or null
* @return a Choices object (never null) with 1 or 0 values.
*/
public Choices getBestMatch(String text, int collection, String locale);
public Choices getBestMatch(String field, String text, int collection, String locale);
/**
* Get the canonical user-visible "label" (i.e. short descriptive text)
@@ -64,9 +66,10 @@ public interface ChoiceAuthority
* This may get called many times while populating a Web page so it should
* be implemented as efficiently as possible.
*
* @param field being matched for
* @param key authority key known to this authority.
* @param locale explicit localization key if available, or null
* @return descriptive label - should always return something, never null.
*/
public String getLabel(String key, String locale);
public String getLabel(String field, String key, String locale);
}

View File

@@ -153,7 +153,7 @@ public final class ChoiceAuthorityManager
* Wrapper that calls getMatches method of the plugin corresponding to
* the metadata field defined by schema,element,qualifier.
*
* @see ChoiceAuthority#getMatches(String, int, int, int, String)
* @see ChoiceAuthority#getMatches(String, String, int, int, int, String)
* @param schema schema of metadata field
* @param element element of metadata field
* @param qualifier qualifier of metadata field
@@ -175,7 +175,7 @@ public final class ChoiceAuthorityManager
* Wrapper calls getMatches method of the plugin corresponding to
* the metadata field defined by single field key.
*
* @see ChoiceAuthority#getMatches(String, int, int, int, String)
* @see ChoiceAuthority#getMatches(String, String, int, int, int, String)
* @param fieldKey single string identifying metadata field
* @param query user's value to match
* @param collection database ID of Collection for context (owner of Item)
@@ -194,14 +194,14 @@ public final class ChoiceAuthorityManager
"No choices plugin was configured for field \"" + fieldKey
+ "\".");
}
return ma.getMatches(query, collection, start, limit, locale);
return ma.getMatches(fieldKey, query, collection, start, limit, locale);
}
/**
* Wrapper that calls getBestMatch method of the plugin corresponding to
* the metadata field defined by single field key.
*
* @see ChoiceAuthority#getBestMatch(String, int, String)
* @see ChoiceAuthority#getBestMatch(String, String, int, String)
* @param fieldKey single string identifying metadata field
* @param query user's value to match
* @param collection database ID of Collection for context (owner of Item)
@@ -218,7 +218,7 @@ public final class ChoiceAuthorityManager
"No choices plugin was configured for field \"" + fieldKey
+ "\".");
}
return ma.getBestMatch(query, collection, locale);
return ma.getBestMatch(fieldKey, query, collection, locale);
}
/**
@@ -242,7 +242,7 @@ public final class ChoiceAuthorityManager
{
throw new IllegalArgumentException("No choices plugin was configured for field \"" + fieldKey + "\".");
}
return ma.getLabel(authKey, locale);
return ma.getLabel(fieldKey, authKey, locale);
}
/**

View File

@@ -117,7 +117,7 @@ public class DCInputAuthority extends SelfNamedPlugin implements ChoiceAuthority
}
public Choices getMatches(String query, int collection, int start, int limit, String locale)
public Choices getMatches(String field, String query, int collection, int start, int limit, String locale)
{
init();
@@ -134,7 +134,7 @@ public class DCInputAuthority extends SelfNamedPlugin implements ChoiceAuthority
return new Choices(v, 0, v.length, Choices.CF_AMBIGUOUS, false, dflt);
}
public Choices getBestMatch(String text, int collection, String locale)
public Choices getBestMatch(String field, String text, int collection, String locale)
{
init();
for (int i = 0; i < values.length; ++i)
@@ -149,7 +149,7 @@ public class DCInputAuthority extends SelfNamedPlugin implements ChoiceAuthority
return new Choices(Choices.CF_NOTFOUND);
}
public String getLabel(String key, String locale)
public String getLabel(String field, String key, String locale)
{
init();
return labels[Integer.parseInt(key)];

View File

@@ -154,7 +154,7 @@ public class DSpaceControlledVocabulary extends SelfNamedPlugin implements Choic
}
}
public Choices getMatches(String text, int collection, int start, int limit, String locale)
public Choices getMatches(String field, String text, int collection, int start, int limit, String locale)
{
init();
log.debug("Getting matches for '" + text + "'");
@@ -203,14 +203,14 @@ public class DSpaceControlledVocabulary extends SelfNamedPlugin implements Choic
return new Choices(choices, 0, choices.length, Choices.CF_AMBIGUOUS, false);
}
public Choices getBestMatch(String text, int collection, String locale)
public Choices getBestMatch(String field, String text, int collection, String locale)
{
init();
log.debug("Getting best match for '" + text + "'");
return getMatches(text, collection, 0, 2, locale);
return getMatches(field, text, collection, 0, 2, locale);
}
public String getLabel(String key, String locale)
public String getLabel(String field, String key, String locale)
{
init();
String xpathExpression = String.format(idTemplate, key);

View File

@@ -83,16 +83,16 @@ public class LCNameAuthority implements ChoiceAuthority
}
// punt! this is a poor implementation..
public Choices getBestMatch(String text, int collection, String locale)
public Choices getBestMatch(String field, String text, int collection, String locale)
{
return getMatches(text, collection, 0, 2, locale);
return getMatches(field, text, collection, 0, 2, locale);
}
/**
* Match a proposed value against name authority records
* Value is assumed to be in "Lastname, Firstname" format.
*/
public Choices getMatches(String text, int collection, int start, int limit, String locale)
public Choices getMatches(String field, String text, int collection, int start, int limit, String locale)
{
Choices result = queryPerson(text, start, limit);
if (result == null)
@@ -105,7 +105,7 @@ public class LCNameAuthority implements ChoiceAuthority
// punt; supposed to get the canonical display form of a metadata authority key
// XXX FIXME implement this with a query on the authority key, cache results
public String getLabel(String key, String locale)
public String getLabel(String field, String key, String locale)
{
return key;
}

View File

@@ -52,4 +52,8 @@ public class SHERPARoMEOJournalTitle extends SHERPARoMEOProtocol
return result;
}
@Override
public Choices getMatches(String field, String text, int collection, int start, int limit, String locale) {
return getMatches(text, collection, start, limit, locale);
}
}

View File

@@ -72,14 +72,14 @@ public abstract class SHERPARoMEOProtocol implements ChoiceAuthority
// this implements the specific RoMEO API args and XML tag naming
public abstract Choices getMatches(String text, int collection, int start, int limit, String locale);
public Choices getBestMatch(String text, int collection, String locale)
public Choices getBestMatch(String field, String text, int collection, String locale)
{
return getMatches(text, collection, 0, 2, locale);
return getMatches(field, text, collection, 0, 2, locale);
}
// XXX FIXME just punt, returning value, never got around to
// implementing a reverse query.
public String getLabel(String key, String locale)
public String getLabel(String field, String key, String locale)
{
return key;
}

View File

@@ -53,4 +53,9 @@ public class SHERPARoMEOPublisher extends SHERPARoMEOProtocol
}
return result;
}
@Override
public Choices getMatches(String field, String text, int collection, int start, int limit, String locale) {
return getMatches(text, collection, start, limit, locale);
}
}

View File

@@ -33,7 +33,7 @@ public class SampleAuthority implements ChoiceAuthority
"Saturday"
};
public Choices getMatches(String query, int collection, int start, int limit, String locale)
public Choices getMatches(String field, String query, int collection, int start, int limit, String locale)
{
int dflt = -1;
Choice v[] = new Choice[values.length];
@@ -48,7 +48,7 @@ public class SampleAuthority implements ChoiceAuthority
return new Choices(v, 0, v.length, Choices.CF_AMBIGUOUS, false, dflt);
}
public Choices getBestMatch(String text, int collection, String locale)
public Choices getBestMatch(String field, String text, int collection, String locale)
{
for (int i = 0; i < values.length; ++i)
{
@@ -62,7 +62,7 @@ public class SampleAuthority implements ChoiceAuthority
return new Choices(Choices.CF_NOTFOUND);
}
public String getLabel(String key, String locale)
public String getLabel(String field, String key, String locale)
{
return labels[Integer.parseInt(key)];
}

View File

@@ -29,6 +29,7 @@ import org.dspace.content.Community;
import org.dspace.content.DSpaceObject;
import org.dspace.content.FormatIdentifier;
import org.dspace.content.Item;
import org.dspace.content.WorkspaceItem;
import org.dspace.content.crosswalk.CrosswalkException;
import org.dspace.content.crosswalk.MetadataValidationException;
import org.dspace.core.ConfigurationManager;
@@ -36,7 +37,6 @@ import org.dspace.core.Constants;
import org.dspace.core.Context;
import org.dspace.core.LogManager;
import org.dspace.handle.HandleManager;
import org.dspace.workflow.WorkflowItem;
import org.jdom.Element;
/**
@@ -459,24 +459,34 @@ public abstract class AbstractMETSIngester extends AbstractPackageIngester
manifest.crosswalkObjectOtherAdminMD(context, params, dso, callback);
// -- Step 4 --
// Run our Descriptive metadata (dublin core, etc) crosswalks!
crosswalkObjectDmd(context, dso, manifest, callback, manifest
.getItemDmds(), params);
// For Items, also sanity-check the metadata for minimum requirements.
if (type == Constants.ITEM)
{
PackageUtils.checkItemMetadata((Item) dso);
}
// -- Step 5 --
// Add all content files as bitstreams on new DSpace Object
if (type == Constants.ITEM)
{
Item item = (Item) dso;
// @TODO: maybe add an option to apply template Item on ingest??
//Check if this item is still in a user's workspace.
//It should be, as we haven't completed its install yet.
WorkspaceItem wsi = WorkspaceItem.findByItem(context, item);
// Get collection this item is being submitted to
Collection collection = item.getOwningCollection();
if (collection == null)
{
// If an item doesn't have an owning-collection, that means it
// has entered a workflow (and is not fully in the archive yet)
WorkflowItem wfi = WorkflowItem.findByItem(context, item);
// Get the collection this workflow item belongs to
if (wfi != null)
// Get the collection this workspace item belongs to
if (wsi != null)
{
collection = wfi.getCollection();
collection = wsi.getCollection();
}
}
@@ -492,9 +502,14 @@ public abstract class AbstractMETSIngester extends AbstractPackageIngester
// have subclass manage license since it may be extra package file.
addLicense(context, item, license, collection, params);
// XXX FIXME
// should set lastModifiedTime e.g. when ingesting AIP.
// maybe only do it in the finishObject() callback for AIP.
// Finally, if item is still in the workspace, then we actually need
// to install it into the archive & assign its handle.
if(wsi!=null)
{
// Finish creating the item. This actually assigns the handle,
// and will either install item immediately or start a workflow, based on params
PackageUtils.finishCreateItem(context, wsi, handle, params);
}
} // end if ITEM
else if (type == Constants.COLLECTION || type == Constants.COMMUNITY)
@@ -519,17 +534,6 @@ public abstract class AbstractMETSIngester extends AbstractPackageIngester
+ String.valueOf(type));
}
// -- Step 5 --
// Run our Descriptive metadata (dublin core, etc) crosswalks!
crosswalkObjectDmd(context, dso, manifest, callback, manifest
.getItemDmds(), params);
// For Items, also sanity-check the metadata for minimum requirements.
if (type == Constants.ITEM)
{
PackageUtils.checkItemMetadata((Item) dso);
}
// -- Step 6 --
// Finish things up!
@@ -635,7 +639,6 @@ public abstract class AbstractMETSIngester extends AbstractPackageIngester
if (dso.getType() == Constants.ITEM)
{
Item item = (Item) dso;
// @TODO: maybe add an option to apply template Item on ingest??
// save manifest as a bitstream in Item if desired
if (preserveManifest())

View File

@@ -345,7 +345,7 @@ public class PackageUtils
* generic like ".xml", to accidentally get set to this format.
* @param context - the context.
* @param shortDesc - short descriptive name, used to locate existing format.
* @param MIMEtype - mime content-type
* @param MIMEType - mime content-type
* @param desc - long description
* @param internal value for the 'internal' flag of a new format if created.
* @return BitstreamFormat object that was found or created. Never null.
@@ -472,11 +472,10 @@ public class PackageUtils
//(Note: Handle is not set until item is finished)
WorkspaceItem wsi = WorkspaceItem.create(context, (Collection)parent, params.useCollectionTemplate());
// Finish creating item with specified handle
// (this will either install item immediately or start a workflow, based on params)
dso = finishCreateItem(context, wsi, handle, params);
return dso;
// Please note that we are returning an Item which is *NOT* yet in the Archive,
// and doesn't yet have a handle assigned.
// This Item will remain "incomplete" until 'PackageUtils.finishCreateItem()' is called
return wsi.getItem();
case Constants.SITE:
return Site.find(context, Site.SITE_ID);
@@ -528,7 +527,7 @@ public class PackageUtils
// default: skip workflow, but otherwise normal submission (i.e. package treated like a SIP)
else
{
// Intall item immediately with the specified handle
// Install item immediately with the specified handle
InstallItem.installItem(context, wsi, handle);
// return newly installed item
@@ -802,7 +801,7 @@ public class PackageUtils
* Also see the translateGroupNameForImport() method which does the opposite
* of this method.
*
* @param relatedDso DSpaceObject associated with group
* @param context current DSpace Context
* @param groupName Group's name
* @return the group name, with any internal IDs translated to Handles
*/
@@ -886,7 +885,7 @@ public class PackageUtils
* Also see the translateGroupNameForExport() method which does the opposite
* of this method.
*
* @param relatedDso DSpaceObject associated with group
* @param context current DSpace Context
* @param groupName Group's name
* @return the group name, with any Handles translated to internal IDs
*/

View File

@@ -26,7 +26,7 @@ import java.util.Calendar;
import java.util.GregorianCalendar;
import java.text.SimpleDateFormat;
import java.text.ParseException;
import com.coverity.security.Escape;
import org.apache.log4j.Logger;
/**
@@ -280,21 +280,8 @@ public final class Utils
*/
public static String addEntities(String value)
{
if (value==null || value.length() == 0)
{
return value;
}
value = value.replaceAll("&", "&amp;");
value = value.replaceAll("\"", "&quot;");
// actually, &apos; is an XML entity, not in HTML.
// that's why it's commented out.
// value = value.replaceAll("'", "&apos;");
value = value.replaceAll("<", "&lt;");
value = value.replaceAll(">", "&gt;");
return value;
return Escape.html(value);
}
/**

View File

@@ -351,7 +351,7 @@ public class EPerson extends DSpaceObject
}
// Get all the epeople that match the query
TableRowIterator rows = DatabaseManager.queryTable(context, "eperson",
TableRowIterator rows = DatabaseManager.query(context,
dbquery, paramArr);
try
{
@@ -473,7 +473,7 @@ public class EPerson extends DSpaceObject
// NOTE: The use of 's' in the order by clause can not cause an SQL
// injection because the string is derived from constant values above.
TableRowIterator rows = DatabaseManager.queryTable(context, "eperson",
TableRowIterator rows = DatabaseManager.query(context,
"SELECT * FROM eperson ORDER BY "+s);
try
@@ -955,7 +955,7 @@ public class EPerson extends DSpaceObject
List<String> tableList = new ArrayList<String>();
// check for eperson in item table
TableRowIterator tri = DatabaseManager.queryTable(myContext, "item",
TableRowIterator tri = DatabaseManager.query(myContext,
"SELECT * from item where submitter_id= ? ",
getID());
@@ -976,7 +976,7 @@ public class EPerson extends DSpaceObject
}
// check for eperson in workflowitem table
tri = DatabaseManager.queryTable(myContext, "workflowitem",
tri = DatabaseManager.query(myContext,
"SELECT * from workflowitem where owner= ? ",
getID());
@@ -997,7 +997,7 @@ public class EPerson extends DSpaceObject
}
// check for eperson in tasklistitem table
tri = DatabaseManager.queryTable(myContext, "tasklistitem",
tri = DatabaseManager.query(myContext,
"SELECT * from tasklistitem where eperson_id= ? ",
getID());

View File

@@ -1102,6 +1102,7 @@ public class DatabaseManager
break;
case Types.INTEGER:
case Types.NUMERIC:
if (isOracle)
{
long longValue = results.getLong(i);
@@ -1120,7 +1121,6 @@ public class DatabaseManager
}
break;
case Types.NUMERIC:
case Types.DECIMAL:
case Types.BIGINT:
row.setColumn(name, results.getLong(i));

View File

@@ -5,6 +5,7 @@
#
# http://www.dspace.org/license/
#
browse.page-title = Browsing DSpace
browse.et-al = et al
@@ -480,6 +481,8 @@ jsp.error.404.title = Error: Documen
jsp.error.authorize.text1 = You do not have permission to perform the action you just attempted.
jsp.error.authorize.text2 = If you think you should have authorization, please feel free to contact the DSpace administrators:
jsp.error.authorize.title = Authorization Required
jsp.error.exceeded-size.text1 = Sorry, but the file you have tried to upload ({0} bytes) exceeds the maximum file size limit of ({1} bytes). You can contact the repository manager with questions about this limit.
jsp.error.exceeded-size.title = Exceeded Maximum File Size Error
jsp.error.integrity.heading = System Error: Malformed Request
jsp.error.integrity.list1 = Sometimes, if you used your browser's "back" button during an operation like a submission, clicking on a button may try and do something that's already been done, such as commit the submission to the archive. Clicking your browsers "reload" or "refresh" button may have similar results.
jsp.error.integrity.list2 = If you got here by following a link or bookmark provided by someone else, the link may be incorrect or you mistyped the link. Please check the link and try again.

View File

@@ -314,6 +314,23 @@ public class ItemTest extends AbstractDSpaceObjectTest
assertTrue("testGetMetadata_String 5",dc.length == 0);
}
/**
* A test for DS-806: Item.match() incorrect logic for schema testing
*/
@Test
public void testDS806()
{
// Set the item to have two pieces of metadata for dc.type and dc2.type
String dcType = "DC-TYPE";
String testType = "TEST-TYPE";
it.addMetadata("dc", "type", null, null, dcType);
it.addMetadata("test", "type", null, null, testType);
// Check that only one is returned when we ask for all dc.type values
DCValue[] values = it.getMetadata("dc", "type", null, null);
assertTrue("Return results", values.length == 1);
}
/**
* Test of addDC method, of class Item.
*/

View File

@@ -1784,7 +1784,7 @@ crosswalk.submission.SWORD.stylesheet = crosswalks/sword-swap-ingest.xsl
# which DSpace will construct the deposit location urls for
# collections.
#
# The default is {dspace.url}/sword/deposit
# The default is {dspace.baseUrl}/sword/deposit
#
# In the event that you are not deploying DSpace as the ROOT
# application in the servlet container, this will generate
@@ -1797,7 +1797,7 @@ crosswalk.submission.SWORD.stylesheet = crosswalks/sword-swap-ingest.xsl
# URL from which DSpace will construct the service document
# location urls for the site, and for individual collections
#
# The default is {dspace.url}/sword/servicedocument
# The default is {dspace.baseUrl}/sword/servicedocument
#
# In the event that you are not deploying DSpace as the ROOT
# application in the servlet container, this will generate
@@ -1810,7 +1810,7 @@ crosswalk.submission.SWORD.stylesheet = crosswalks/sword-swap-ingest.xsl
# which DSpace will use to construct the media link urls
# for items which are deposited via sword
#
# The default is {dspace.url}/sword/media-link
# The default is {dspace.baseUrl}/sword/media-link
#
# In the event that you are not deploying DSpace as the ROOT
# application in the servlet container, this will generate

View File

@@ -584,4 +584,18 @@
<scope_note>Nature or genre of content.</scope_note>
</dc-type>
<!-- A second test schema for testing purposes. -->
<dc-schema>
<name>test</name>
<namespace>http://example.com/test/</namespace>
</dc-schema>
<dc-type>
<schema>test</schema>
<element>type</element>
<!-- unqualified -->
<scope_note>A second test schema type element.</scope_note>
</dc-type>
</dspace-dc-types>

View File

@@ -4,7 +4,7 @@
<packaging>jar</packaging>
<groupId>org.dspace</groupId>
<artifactId>dspace-discovery-provider</artifactId>
<version>1.7.1-SNAPSHOT</version>
<version>1.7.3</version>
<name>DSpace Discovery :: Discovery Provider Library</name>
<description>
@@ -17,9 +17,15 @@
<parent>
<groupId>org.dspace</groupId>
<artifactId>discovery-modules</artifactId>
<version>1.7.1-SNAPSHOT</version>
<version>1.7.3</version>
<relativePath>..</relativePath>
</parent>
<properties>
<!-- This is the path to the root [dspace-src] directory. -->
<root.basedir>${basedir}/../..</root.basedir>
</properties>
<dependencies>
<dependency>
@@ -109,16 +115,4 @@
</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>
</project>

View File

@@ -44,6 +44,8 @@ public class SearchUtils {
private static List<String> dateIndexableFields = new ArrayList<String>();
public static final String FILTER_SEPARATOR = "|||";
static {
log.debug("loading configuration");
@@ -190,6 +192,20 @@ public class SearchUtils {
return dateIndexableFields;
}
public static String getFilterQueryDisplay(String filterQuery){
String separator = SearchUtils.getConfig().getString("solr.facets.split.char", SearchUtils.FILTER_SEPARATOR);
//Escape any regex chars
separator = java.util.regex.Pattern.quote(separator);
String[] fqParts = filterQuery.split(separator);
String result = "";
int start = fqParts.length / 2;
for(int i = start; i < fqParts.length; i++){
result += fqParts[i];
}
return result;
}
public static class SolrFacetConfig {
private String facetField;

View File

@@ -8,6 +8,7 @@
package org.dspace.discovery;
import org.apache.commons.collections.ExtendedProperties;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.time.DateFormatUtils;
import org.apache.log4j.Logger;
import org.apache.solr.client.solrj.SolrQuery;
@@ -699,7 +700,10 @@ public class SolrServiceImpl implements SearchService, IndexingService {
if(SearchUtils.getAllFacets().contains(field) || SearchUtils.getAllFacets().contains(unqualifiedField + "." + Item.ANY)){
//Add a special filter
doc.addField(field + "_filter", value);
//We use a separator to split up the lowercase and regular case, this is needed to get our filters in regular case
//Solr has issues with facet prefix and cases
String separator = SearchUtils.getConfig().getString("solr.facets.split.char", SearchUtils.FILTER_SEPARATOR);
doc.addField(field + "_filter", value.toLowerCase() + separator + value);
}
if(SearchUtils.getSortFields().contains(field) && !sortFieldsAdded.contains(field)){
@@ -773,9 +777,7 @@ public class SolrServiceImpl implements SearchService, IndexingService {
readers.add(is);
// Add each InputStream to the Indexed Document
// (Acts like an Append)
// doc.addField("default", is);
//doc.add(new Field("default", is));
doc.addField("fulltext", IOUtils.toString(is));
log.debug(" Added BitStream: "
+ myBitstreams[j].getStoreNumber() + " "

View File

@@ -5,15 +5,21 @@
<packaging>jar</packaging>
<groupId>org.dspace</groupId>
<artifactId>dspace-discovery-xmlui-api</artifactId>
<version>1.7.1-SNAPSHOT</version>
<version>1.7.3</version>
<name>DSpace Discovery :: Discovery XMLUI API</name>
<parent>
<groupId>org.dspace</groupId>
<artifactId>discovery-modules</artifactId>
<version>1.7.1-SNAPSHOT</version>
<version>1.7.3</version>
<relativePath>..</relativePath>
</parent>
<properties>
<!-- This is the path to the root [dspace-src] directory. -->
<root.basedir>${basedir}/../..</root.basedir>
</properties>
<dependencies>
<dependency>
@@ -47,6 +53,7 @@
<plugin>
<groupId>org.apache.cocoon</groupId>
<artifactId>cocoon-maven-plugin</artifactId>
<version>1.0.0</version>
<executions>
<execution>
<id>prepare</id>
@@ -114,17 +121,4 @@
</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>

View File

@@ -37,7 +37,6 @@ import org.xml.sax.SAXException;
import java.io.IOException;
import java.io.Serializable;
import java.net.URLEncoder;
import java.sql.SQLException;
import java.util.*;
import java.util.regex.Matcher;
@@ -386,7 +385,7 @@ public abstract class AbstractFiltersTransformer extends AbstractDSpaceTransform
continue;
}
for (FacetField.Count count : facetVals) {
values.add(new FilterDisplayValue(count.getName(), count.getCount(), count.getAsFilterQuery()));
values.add(new FilterDisplayValue(SearchUtils.getFilterQueryDisplay(count.getName()), count.getCount(), count.getAsFilterQuery()));
}
}
if(field.isDate()){
@@ -463,12 +462,15 @@ public abstract class AbstractFiltersTransformer extends AbstractDSpaceTransform
if(keys != null){
while (keys.hasMoreElements()){
String key = (String) keys.nextElement();
if(key != null){
paramsQuery += key + "=" + URLEncoder.encode(request.getParameter(key), "UTF-8");
if(key != null && !"page".equals(key)){
String[] vals = request.getParameterValues(key);
for(String paramValue : vals){
paramsQuery += key + "=" + paramValue;
paramsQuery += "&";
}
}
}
}
filterValsList.addItem().addXref(
contextPath +
@@ -476,7 +478,7 @@ public abstract class AbstractFiltersTransformer extends AbstractDSpaceTransform
"/discover?" +
paramsQuery +
"fq=" +
URLEncoder.encode(filterQuery, "UTF-8"),
filterQuery,
displayedValue + " (" + value.getCount() + ")"
);
}

View File

@@ -120,6 +120,13 @@ public class Navigation extends AbstractDSpaceTransformer implements CacheablePr
browseGlobal.addItem().addXref(contextPath + "/community-list", T_head_all_of_dspace );
*/
/* regulate the ordering */
options.addList("discovery");
options.addList("browse");
options.addList("account");
options.addList("context");
options.addList("administrative");
}
/**

View File

@@ -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());

View File

@@ -558,7 +558,7 @@ public class SearchFacetFilter extends AbstractDSpaceTransformer implements Cach
//No use in selecting the same filter twice
if(filterQueries.contains(filterQuery)){
cell.addContent(displayedValue + " (" + value.getCount() + ")");
cell.addContent(SearchUtils.getFilterQueryDisplay(displayedValue) + " (" + value.getCount() + ")");
} else {
//Add the basics
Map<String, String> urlParams = new HashMap<String, String>();
@@ -567,8 +567,8 @@ public class SearchFacetFilter extends AbstractDSpaceTransformer implements Cach
//Add already existing filter queries
url = addFilterQueriesToUrl(url);
//Last add the current filter query
url += "&fq=" + URLEncoder.encode(filterQuery, "UTF-8");
cell.addXref(url, displayedValue + " (" + value.getCount() + ")"
url += "&fq=" + filterQuery;
cell.addXref(url, SearchUtils.getFilterQueryDisplay(displayedValue) + " (" + value.getCount() + ")"
);
}
}

View File

@@ -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);
@@ -166,6 +166,9 @@ public class SimpleSearch extends AbstractSearch implements CacheableProcessingC
if(field.equals("location.comm") || field.equals("location.coll")){
//We have a community/collection, resolve it to a dspaceObject
value = SolrServiceImpl.locationToName(context, field, value);
} else
if(field.endsWith("_filter")){
value = SearchUtils.getFilterQueryDisplay(value);
}
//Check for a range query
Pattern pattern = Pattern.compile("\\[(.*? TO .*?)\\]");

View File

@@ -21,15 +21,21 @@
<packaging>war</packaging>
<groupId>org.dspace</groupId>
<artifactId>dspace-discovery-xmlui-webapp</artifactId>
<version>1.7.1-SNAPSHOT</version>
<version>1.7.3</version>
<name>DSpace Discovery :: Discovery XMLUI Webapp</name>
<parent>
<groupId>org.dspace</groupId>
<artifactId>discovery-modules</artifactId>
<version>1.7.1-SNAPSHOT</version>
<version>1.7.3</version>
<relativePath>..</relativePath>
</parent>
<properties>
<!-- This is the path to the root [dspace-src] directory. -->
<root.basedir>${basedir}/../..</root.basedir>
</properties>
<dependencies>
<dependency>
@@ -46,7 +52,7 @@
<dependency>
<groupId>org.dspace</groupId>
<artifactId>dspace-discovery-xmlui-api</artifactId>
<version>1.7.1-SNAPSHOT</version>
<version>1.7.3</version>
</dependency>
<!-- external -->
@@ -65,6 +71,7 @@
<plugin>
<groupId>org.apache.cocoon</groupId>
<artifactId>cocoon-maven-plugin</artifactId>
<version>1.0.0</version>
<executions>
<execution>
<id>prepare</id>
@@ -121,6 +128,21 @@
</systemProperty>
</systemProperties>
</configuration>
</plugin>
<plugin>
<groupId>com.mycila.maven-license-plugin</groupId>
<artifactId>maven-license-plugin</artifactId>
<configuration>
<!--Exclude license check for Discovery files which don't need it-->
<excludes>
<exclude>**/COPYRIGHT.txt</exclude>
<exclude>**/LICENSE.txt</exclude>
<exclude>**/*.LICENSE</exclude>
<exclude>**/jquery*</exclude>
<exclude>**/jquery/*</exclude>
<exclude>**/*.xmap</exclude>
</excludes>
</configuration>
</plugin>
<!--
<plugin>
@@ -139,17 +161,4 @@
</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>

View File

@@ -5,15 +5,21 @@
<packaging>pom</packaging>
<groupId>org.dspace</groupId>
<artifactId>discovery-modules</artifactId>
<version>1.7.1-SNAPSHOT</version>
<version>1.7.3</version>
<name>DSpace Discovery :: Modules</name>
<parent>
<artifactId>dspace-parent</artifactId>
<groupId>org.dspace</groupId>
<version>1.7.1-SNAPSHOT</version>
<version>1.7.3</version>
<relativePath>..</relativePath>
</parent>
<properties>
<!-- This is the path to the root [dspace-src] directory. -->
<root.basedir>${basedir}/..</root.basedir>
</properties>
<modules>
<module>dspace-discovery-provider</module>
<module>dspace-discovery-xmlui-api</module>
@@ -46,19 +52,6 @@
</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>

View File

@@ -14,19 +14,14 @@
<parent>
<groupId>org.dspace</groupId>
<artifactId>dspace-jspui</artifactId>
<version>1.7.1-SNAPSHOT</version>
<version>1.7.3</version>
<relativePath>..</relativePath>
</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://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>
</scm>
<properties>
<!-- This is the path to the root [dspace-src] directory. -->
<root.basedir>${basedir}/../..</root.basedir>
</properties>
<dependencies>
<dependency>

View File

@@ -98,7 +98,7 @@ public class BrowserServlet extends AbstractBrowserServlet
throws ServletException, IOException, SQLException,
AuthorizeException
{
JSPManager.showJSP(request, response, "/browse/error.jsp");
JSPManager.showInternalError(request, response);
}
/**

View File

@@ -19,6 +19,7 @@ import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileUploadBase.FileSizeLimitExceededException;
import org.apache.log4j.Logger;
import org.dspace.app.util.SubmissionInfo;
@@ -218,8 +219,15 @@ public class SubmissionController extends DSpaceServlet
// in order to be able to retrieve request parameters, etc.
if ((contentType != null)
&& (contentType.indexOf("multipart/form-data") != -1))
{
try
{
request = wrapMultipartRequest(request);
} catch (FileSizeLimitExceededException e)
{
log.warn("Upload exceeded upload.max");
JSPManager.showFileSizeLimitExceededError(request, response, e.getMessage(), e.getActualSize(), e.getPermittedSize());
}
//also, upload any files and save their contents to Request (for later processing by UploadStep)
uploadFiles(context, request);
@@ -1350,7 +1358,7 @@ public class SubmissionController extends DSpaceServlet
* if there are no more pages in this step
*/
private HttpServletRequest wrapMultipartRequest(HttpServletRequest request)
throws ServletException
throws ServletException, FileSizeLimitExceededException
{
HttpServletRequest wrappedRequest;
@@ -1370,6 +1378,10 @@ public class SubmissionController extends DSpaceServlet
return request;
}
}
catch (FileSizeLimitExceededException e)
{
throw new FileSizeLimitExceededException(e.getMessage(),e.getActualSize(),e.getPermittedSize());
}
catch (Exception e)
{
throw new ServletException(e);

View File

@@ -18,6 +18,7 @@ import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileUploadBase.FileSizeLimitExceededException;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
@@ -457,16 +458,13 @@ public class CollectionWizardServlet extends DSpaceServlet
HttpServletResponse response) throws SQLException,
ServletException, IOException, AuthorizeException
{
try {
// Wrap multipart request to get the submission info
FileUploadRequest wrapper = new FileUploadRequest(request);
Collection collection = Collection.find(context, UIUtil
.getIntParameter(wrapper, "collection_id"));
Collection collection = Collection.find(context, UIUtil.getIntParameter(wrapper, "collection_id"));
if (collection == null)
{
log.warn(LogManager.getHeader(context, "integrity_error", UIUtil
.getRequestLogInfo(wrapper)));
log.warn(LogManager.getHeader(context, "integrity_error", UIUtil.getRequestLogInfo(wrapper)));
JSPManager.showIntegrityError(request, response);
return;
@@ -474,17 +472,11 @@ public class CollectionWizardServlet extends DSpaceServlet
// Get metadata
collection.setMetadata("name", wrapper.getParameter("name"));
collection.setMetadata("short_description", wrapper
.getParameter("short_description"));
collection.setMetadata("introductory_text", wrapper
.getParameter("introductory_text"));
collection.setMetadata("copyright_text", wrapper
.getParameter("copyright_text"));
collection.setMetadata("side_bar_text", wrapper
.getParameter("side_bar_text"));
collection.setMetadata("provenance_description", wrapper
.getParameter("provenance_description"));
collection.setMetadata("short_description", wrapper.getParameter("short_description"));
collection.setMetadata("introductory_text", wrapper.getParameter("introductory_text"));
collection.setMetadata("copyright_text", wrapper.getParameter("copyright_text"));
collection.setMetadata("side_bar_text", wrapper.getParameter("side_bar_text"));
collection.setMetadata("provenance_description", wrapper.getParameter("provenance_description"));
// Need to be more careful about license -- make sure it's null if
// nothing was entered
String license = wrapper.getParameter("license");
@@ -522,8 +514,7 @@ public class CollectionWizardServlet extends DSpaceServlet
// Identify the format
BitstreamFormat bf = FormatIdentifier.guessFormat(context, logoBS);
logoBS.setFormat(bf);
AuthorizeManager.addPolicy(context, logoBS, Constants.WRITE, context
.getCurrentUser());
AuthorizeManager.addPolicy(context, logoBS, Constants.WRITE, context.getCurrentUser());
logoBS.update();
// Remove temp file
@@ -539,6 +530,11 @@ public class CollectionWizardServlet extends DSpaceServlet
showNextPage(context, request, response, collection, BASIC_INFO);
context.complete();
} catch (FileSizeLimitExceededException ex)
{
log.warn("Upload exceeded upload.max");
JSPManager.showFileSizeLimitExceededError(request, response, ex.getMessage(), ex.getActualSize(), ex.getPermittedSize());
}
}
/**

View File

@@ -17,6 +17,7 @@ import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileUploadBase.FileSizeLimitExceededException;
import org.apache.log4j.Logger;
import org.dspace.app.util.AuthorizeUtil;
@@ -893,14 +894,11 @@ public class EditCommunitiesServlet extends DSpaceServlet
HttpServletResponse response) throws ServletException, IOException,
SQLException, AuthorizeException
{
try {
// Wrap multipart request to get the submission info
FileUploadRequest wrapper = new FileUploadRequest(request);
Community community = Community.find(context, UIUtil.getIntParameter(
wrapper, "community_id"));
Collection collection = Collection.find(context, UIUtil
.getIntParameter(wrapper, "collection_id"));
Community community = Community.find(context, UIUtil.getIntParameter(wrapper, "community_id"));
Collection collection = Collection.find(context, UIUtil.getIntParameter(wrapper, "collection_id"));
File temp = wrapper.getFile("file");
// Read the temp file as logo
@@ -936,8 +934,7 @@ public class EditCommunitiesServlet extends DSpaceServlet
// Identify the format
BitstreamFormat bf = FormatIdentifier.guessFormat(context, logoBS);
logoBS.setFormat(bf);
AuthorizeManager.addPolicy(context, logoBS, Constants.WRITE, context
.getCurrentUser());
AuthorizeManager.addPolicy(context, logoBS, Constants.WRITE, context.getCurrentUser());
logoBS.update();
String jsp;
@@ -980,5 +977,10 @@ public class EditCommunitiesServlet extends DSpaceServlet
// Update DB
context.complete();
} catch (FileSizeLimitExceededException ex)
{
log.warn("Upload exceeded upload.max");
JSPManager.showFileSizeLimitExceededError(request, response, ex.getMessage(), ex.getActualSize(), ex.getPermittedSize());
}
}
}

View File

@@ -25,6 +25,7 @@ import java.util.StringTokenizer;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileUploadBase.FileSizeLimitExceededException;
import org.apache.log4j.Logger;
import org.dspace.app.util.AuthorizeUtil;
@@ -766,13 +767,11 @@ public class EditItemServlet extends DSpaceServlet
throws ServletException, IOException, SQLException,
AuthorizeException
{
try {
// Wrap multipart request to get the submission info
FileUploadRequest wrapper = new FileUploadRequest(request);
Bitstream b = null;
Item item = Item.find(context, UIUtil.getIntParameter(wrapper,
"item_id"));
Item item = Item.find(context, UIUtil.getIntParameter(wrapper, "item_id"));
File temp = wrapper.getFile("file");
// Read the temp file as logo
@@ -838,5 +837,10 @@ public class EditItemServlet extends DSpaceServlet
// Update DB
context.complete();
} catch (FileSizeLimitExceededException ex)
{
log.warn("Upload exceeded upload.max");
JSPManager.showFileSizeLimitExceededError(request, response, ex.getMessage(), ex.getActualSize(), ex.getPermittedSize());
}
}
}

View File

@@ -87,7 +87,7 @@ public class WithdrawnBrowserServlet extends AbstractBrowserServlet
{
request.setAttribute("useAdminLayout", "yes");
JSPManager.showJSP(request, response, "/browse/error.jsp");
JSPManager.showInternalError(request, response);
}
/**

View File

@@ -15,6 +15,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadBase.FileSizeLimitExceededException;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.dspace.core.ConfigurationManager;
@@ -47,7 +48,7 @@ public class FileUploadRequest extends HttpServletRequestWrapper
* @param req
* the original request
*/
public FileUploadRequest(HttpServletRequest req) throws IOException
public FileUploadRequest(HttpServletRequest req) throws IOException, FileSizeLimitExceededException
{
super(req);
@@ -90,6 +91,16 @@ public class FileUploadRequest extends HttpServletRequestWrapper
}
catch (Exception e)
{
if(e.getMessage().contains("exceeds the configured maximum"))
{
// ServletFileUpload is not throwing the correct error, so this is workaround
// the request was rejected because its size (11302) exceeds the configured maximum (536)
int startFirstParen = e.getMessage().indexOf("(")+1;
int endFirstParen = e.getMessage().indexOf(")");
String uploadedSize = e.getMessage().substring(startFirstParen, endFirstParen).trim();
Long actualSize = Long.parseLong(uploadedSize);
throw new FileSizeLimitExceededException(e.getMessage(), actualSize, maxSize);
}
throw new IOException(e.getMessage(), e);
}
}

View File

@@ -142,4 +142,26 @@ public class JSPManager
showJSP(request, response, "/error/invalid-id.jsp");
}
/**
* Display a "file upload was too large" error message. Passing in information
* about the size of the file uploaded, and the maximum file size limit so
* the user knows why they encountered an error.
* @param request
* @param response
* @param message
* @param actualSize
* @param permittedSize
* @throws ServletException
* @throws IOException
*/
public static void showFileSizeLimitExceededError(HttpServletRequest request,
HttpServletResponse response, String message, long actualSize, long permittedSize) throws ServletException, IOException
{
request.setAttribute("error.message", message);
request.setAttribute("actualSize", actualSize);
request.setAttribute("permittedSize", permittedSize);
response.setStatus(HttpServletResponse.SC_REQUEST_ENTITY_TOO_LARGE);
showJSP(request, response, "/error/exceeded-size.jsp");
}
}

View File

@@ -14,19 +14,14 @@
<parent>
<groupId>org.dspace</groupId>
<artifactId>dspace-jspui</artifactId>
<version>1.7.1-SNAPSHOT</version>
<version>1.7.3</version>
<relativePath>..</relativePath>
</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://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>
</scm>
<properties>
<!-- This is the path to the root [dspace-src] directory. -->
<root.basedir>${basedir}/../..</root.basedir>
</properties>
<build>
<plugins>
@@ -53,6 +48,18 @@
<phase>prepare-package</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.mycila.maven-license-plugin</groupId>
<artifactId>maven-license-plugin</artifactId>
<configuration>
<!--Exclude license check for JSPUI files which don't need it-->
<excludes>
<exclude>**/robots.txt</exclude>
<exclude>**/readme*</exclude>
<exclude>**/*.tld</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>

View File

@@ -27,6 +27,7 @@
<%@ taglib uri="http://www.dspace.org/dspace-tags.tld" prefix="dspace" %>
<%@ page import="org.dspace.eperson.EPerson" %>
<%@ page import="org.dspace.core.Utils" %>
<%
EPerson[] epeople =
@@ -115,10 +116,10 @@
<%= (e.getEmail() == null ? "" : e.getEmail()) %>
</td>
<td headers="t3" class="<%= row %>RowOddCol">
<%= (e.getLastName() == null ? "" : e.getLastName()) %>
<%= (e.getLastName() == null ? "" : Utils.addEntities(e.getLastName())) %>
</td>
<td headers="t4" class="<%= row %>RowEvenCol">
<%= (e.getFirstName() == null ? "" : e.getFirstName()) %>
<%= (e.getFirstName() == null ? "" : Utils.addEntities(e.getFirstName())) %>
</td>
<td headers="t5" class="<%= row %>RowOddCol" align="center">
<%= e.canLogIn() ? "yes" : "no" %>
@@ -130,7 +131,7 @@
<%= e.getSelfRegistered() ? "yes" : "no" %>
</td>
<td headers="t8" class="<%= row %>RowEvenCol">
<%= (e.getMetadata("phone") == null ? "" : e.getMetadata("phone")) %>
<%= (e.getMetadata("phone") == null ? "" : Utils.addEntities(e.getMetadata("phone"))) %>
</td>
<td headers="t9" class="<%= row %>RowOddCol">
<input type="hidden" name="eperson_id" value="<%= e.getID() %>"/>

View File

@@ -20,6 +20,7 @@
prefix="fmt" %>
<%@ page import="org.dspace.eperson.EPerson" %>
<%@ page import="org.dspace.core.Utils" %>
<%@ taglib uri="http://www.dspace.org/dspace-tags.tld" prefix="dspace" %>
@@ -32,9 +33,9 @@
parenttitlekey="jsp.administer"
parentlink="/dspace-admin">
<%-- <h1>Delete e-person: <%= eperson.getFullName() %> (<%= eperson.getEmail() %>)</h1> --%>
<%-- <h1>Delete e-person: <%= Utils.addEntities(eperson.getFullName()) %> (<%= eperson.getEmail() %>)</h1> --%>
<h1><fmt:message key="jsp.dspace-admin.eperson-confirm-delete.heading">
<fmt:param><%= eperson.getFullName() %></fmt:param>
<fmt:param><%= Utils.addEntities(eperson.getFullName()) %></fmt:param>
<fmt:param><%= eperson.getEmail() %></fmt:param>
</fmt:message></h1>

View File

@@ -28,11 +28,12 @@
<%@ page import="org.dspace.eperson.EPerson" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.Iterator" %>
<%@ page import="org.dspace.core.Utils" %>
<%
EPerson eperson = (EPerson) request.getAttribute("eperson");
List tableList = (List) request.getAttribute("tableList");
String fullName = eperson.getFullName();
String fullName = Utils.addEntities(eperson.getFullName());
Iterator tableIt = tableList.iterator();
%>

View File

@@ -28,6 +28,7 @@
<%@ page import="org.dspace.eperson.EPerson" %>
<%@ page import="org.dspace.eperson.Group" %>
<%@ page import="org.dspace.content.WorkspaceItem" %>
<%@ page import="org.dspace.core.Utils" %>
<%
// get item and group out of the request
@@ -75,7 +76,7 @@
<br/><br/>
<strong><fmt:message key="jsp.dspace-admin.supervise-confirm-remove.authorheader"/></strong>:
<br/>
<a href="mailto:<%= submitter.getEmail() %>"><%= submitter.getFullName() %></a>
<a href="mailto:<%= submitter.getEmail() %>"><%= Utils.addEntities(submitter.getFullName()) %></a>
<br/><br/>
<strong><fmt:message key="jsp.dspace-admin.supervise-confirm-remove.supervisorgroupheader"/></strong>:
<br/>

View File

@@ -28,6 +28,7 @@
<%@ page import="org.dspace.eperson.EPerson" %>
<%@ page import="org.dspace.eperson.Group" %>
<%@ page import="org.dspace.eperson.Supervisor" %>
<%@ page import="org.dspace.core.Utils" %>
<%
// get objects from request
@@ -109,7 +110,7 @@
<%= workspaceItems[i].getID() %>
</td>
<td class="<%= row %>RowEvenCol">
<a href="mailto:<%= submitter.getEmail() %>"><%= submitter.getFullName() %></a>
<a href="mailto:<%= submitter.getEmail() %>"><%= Utils.addEntities(submitter.getFullName()) %></a>
</td>
<td class="<%= row %>RowOddCol">
<%

View File

@@ -25,6 +25,7 @@
<%@ page import="org.dspace.content.SupervisedItem" %>
<%@ page import="org.dspace.eperson.EPerson" %>
<%@ page import="org.dspace.eperson.Group" %>
<%@ page import="org.dspace.core.Utils" %>
<%
// get the object array out of the request
@@ -97,7 +98,7 @@
<%= supervisors[j].getName() %>
</td>
<td class="<%= row %>RowOddCol">
<a href="mailto:<%= submitter.getEmail() %>"><%= submitter.getFullName() %></a>
<a href="mailto:<%= submitter.getEmail() %>"><%= Utils.addEntities(submitter.getFullName()) %></a>
</td>
<td class="<%= row %>RowEvenCol">
<%

View File

@@ -0,0 +1,52 @@
<%--
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/
--%>
<%--
- Error page for when the file uploaded exceeded the size limit
--%>
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt"
prefix="fmt" %>
<%@ page import="java.io.PrintWriter" %>
<%@ page isErrorPage="true" %>
<%@ taglib uri="http://www.dspace.org/dspace-tags.tld" prefix="dspace" %>
<dspace:layout titlekey="jsp.error.exceeded-size.title">
<h1><fmt:message key="jsp.error.exceeded-size.title"/></h1>
<p>
<fmt:message key="jsp.error.exceeded-size.text1">
<fmt:param><%= request.getAttribute("actualSize") %></fmt:param>
<fmt:param><%= request.getAttribute("permittedSize") %></fmt:param>
</fmt:message>
</p>
<dspace:include page="/components/contact-info.jsp" />
<p align="center">
<a href="<%= request.getContextPath() %>/"><fmt:message key="jsp.general.gohome"/></a>
</p>
<!--
<%
String error = request.getAttribute("error.message").toString();
if(error == null)
{
out.println("No stack trace available<br/>");
}
else
{
out.println(error);
}
%>
-->
</dspace:layout>

View File

@@ -25,7 +25,6 @@
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt"
prefix="fmt" %>
<%@ taglib uri="http://www.dspace.org/dspace-tags.tld" prefix="dspace" %>
<%@ page import="javax.servlet.jsp.jstl.fmt.LocaleSupport" %>
@@ -78,7 +77,7 @@
<tr>
<td align="left">
<h1>
<fmt:message key="jsp.mydspace"/>: <%= user.getFullName() %>
<fmt:message key="jsp.mydspace"/>: <%= Utils.addEntities(user.getFullName()) %>
</h1>
</td>
<td align="right" class="standard">
@@ -136,7 +135,7 @@
</td>
<td headers="t2" class="<%= row %>RowEvenCol"><%= Utils.addEntities(title) %></td>
<td headers="t3" class="<%= row %>RowOddCol"><%= owned[i].getCollection().getMetadata("name") %></td>
<td headers="t4" class="<%= row %>RowEvenCol"><a href="mailto:<%= submitter.getEmail() %>"><%= submitter.getFullName() %></a></td>
<td headers="t4" class="<%= row %>RowEvenCol"><a href="mailto:<%= submitter.getEmail() %>"><%= Utils.addEntities(submitter.getFullName()) %></a></td>
<!-- <td headers="t5" class="<%= row %>RowOddCol"></td> -->
<td headers="t5" class="<%= row %>RowEvenCol">
<form action="<%= request.getContextPath() %>/mydspace" method="post">
@@ -200,7 +199,7 @@
</td>
<td headers="t7" class="<%= row %>RowEvenCol"><%= Utils.addEntities(title) %></td>
<td headers="t8" class="<%= row %>RowOddCol"><%= pooled[i].getCollection().getMetadata("name") %></td>
<td headers="t9" class="<%= row %>RowEvenCol"><a href="mailto:<%= submitter.getEmail() %>"><%= submitter.getFullName() %></a></td>
<td headers="t9" class="<%= row %>RowEvenCol"><a href="mailto:<%= submitter.getEmail() %>"><%= Utils.addEntities(submitter.getFullName()) %></a></td>
<td class="<%= row %>RowOddCol">
<form action="<%= request.getContextPath() %>/mydspace" method="post">
<input type="hidden" name="step" value="<%= MyDSpaceServlet.MAIN_PAGE %>" />
@@ -285,7 +284,7 @@
</form>
</td>
<td headers="t10" class="<%= row %>RowEvenCol">
<a href="mailto:<%= submitter.getEmail() %>"><%= submitter.getFullName() %></a>
<a href="mailto:<%= submitter.getEmail() %>"><%= Utils.addEntities(submitter.getFullName()) %></a>
</td>
<td headers="t11" class="<%= row %>RowOddCol"><%= Utils.addEntities(title) %></td>
<td headers="t12" class="<%= row %>RowEvenCol"><%= workspaceItems[i].getCollection().getMetadata("name") %></td>
@@ -332,7 +331,7 @@
</form>
</td>
<td class="<%= row %>RowEvenCol">
<a href="mailto:<%= submitter.getEmail() %>"><%= submitter.getFullName() %></a>
<a href="mailto:<%= submitter.getEmail() %>"><%= Utils.addEntities(submitter.getFullName()) %></a>
</td>
<td class="<%= row %>RowOddCol"><%= Utils.addEntities(title) %></td>
<td class="<%= row %>RowEvenCol"><%= supervisedItems[i].getCollection().getMetadata("name") %></td>

View File

@@ -29,6 +29,7 @@
<%@ page import="org.dspace.app.webui.servlet.RegisterServlet" %>
<%@ page import="org.dspace.eperson.EPerson" %>
<%@ page import="org.dspace.core.Utils" %>
<%
EPerson eperson = (EPerson) request.getAttribute("eperson");
@@ -43,9 +44,9 @@
<%-- <h1>Enter a New Password</h1> --%>
<h1><fmt:message key="jsp.register.new-password.title"/></h1>
<!-- <p>Hello <%= eperson.getFullName() %>,</p> -->
<!-- <p>Hello <%= Utils.addEntities(eperson.getFullName()) %>,</p> -->
<p><fmt:message key="jsp.register.new-password.hello">
<fmt:param><%= eperson.getFullName() %></fmt:param>
<fmt:param><%= Utils.addEntities(eperson.getFullName()) %></fmt:param>
</fmt:message></p>
<%

View File

@@ -25,6 +25,7 @@
<%@ page import="org.dspace.app.webui.servlet.RegisterServlet" %>
<%@ page import="org.dspace.eperson.EPerson" %>
<%@ page import="org.dspace.core.Utils" %>
<%
EPerson eperson = (EPerson) request.getAttribute("eperson");
@@ -35,9 +36,9 @@
<%-- <h1>Registration Complete</h1> --%>
<h1><fmt:message key="jsp.register.registered.title"/></h1>
<%-- <p>Thank you <%= eperson.getFirstName() %>,</p> --%>
<%-- <p>Thank you <%= Utils.addEntities(eperson.getFirstName()) %>,</p> --%>
<p><fmt:message key="jsp.register.registered.thank">
<fmt:param><%= eperson.getFirstName() %></fmt:param>
<fmt:param><%= Utils.addEntities(eperson.getFirstName()) %></fmt:param>
</fmt:message></p>
<%-- <p>You're now registered to use the DSpace system. You can subscribe to

View File

@@ -50,6 +50,7 @@
<%@ page import="org.dspace.content.authority.ChoiceAuthorityManager" %>
<%@ page import="org.dspace.content.authority.Choices" %>
<%@ page import="org.dspace.core.ConfigurationManager" %>
<%@ page import="org.dspace.core.Utils" %>
<%@ taglib uri="http://www.dspace.org/dspace-tags.tld" prefix="dspace" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
@@ -325,9 +326,9 @@
if (repeatable && !readonly && i < defaults.length)
{
name.setLength(0);
name.append(dpn.getLastName())
name.append(Utils.addEntities(dpn.getLastName()))
.append(' ')
.append(dpn.getFirstNames());
.append(Utils.addEntities(dpn.getFirstNames()));
// put a remove button next to filled in values
sb.append("<td><input type=\"submit\" name=\"submit_")
.append(fieldName)

View File

@@ -281,7 +281,7 @@ function clearEPeople()
{
EPerson e = epeople[i];
// Make sure no quotes in full name will mess up our Javascript
String fullname = e.getFullName().replace('\'', ' ');
String fullname = Utils.addEntities(e.getFullName().replace('\'', ' '));
%>
<tr>
<td headers="t1" class="<%= row %>RowOddCol">
@@ -291,10 +291,10 @@ function clearEPeople()
<td headers="t2" class="<%= row %>RowEvenCol"><%= e.getID() %></td>
<td headers="t3" class="<%= row %>RowOddCol"><%= e.getEmail() %></td>
<td headers="t4" class="<%= row %>RowEvenCol">
<%= (e.getLastName() == null ? "" : e.getLastName()) %>
<%= (e.getLastName() == null ? "" : Utils.addEntities(e.getLastName())) %>
</td>
<td headers="t5" class="<%= row %>RowOddCol">
<%= (e.getFirstName() == null ? "" : e.getFirstName()) %>
<%= (e.getFirstName() == null ? "" : Utils.addEntities(e.getFirstName())) %>
</td>
<td headers="t6" class="<%= row %>RowOddCol">
<%= (e.getLanguage() == null ? "" : e.getLanguage()) %>

View File

@@ -26,6 +26,7 @@
<%@ page import="org.dspace.content.WorkspaceItem" %>
<%@ page import="org.dspace.eperson.EPerson" %>
<%@ page import="javax.servlet.jsp.jstl.fmt.LocaleSupport" %>
<%@ page import="org.dspace.core.Utils" %>
<%
// get the workspace item from the request
@@ -73,7 +74,7 @@
}
%>
<p><strong><a href="mailto:<%= submitter.getEmail() %>"><%= submitter.getFullName() %></a></strong></p>
<p><strong><a href="mailto:<%= submitter.getEmail() %>"><%= Utils.addEntities(submitter.getFullName()) %></a></strong></p>
<p><fmt:message key="jsp.workspace.ws-main.submitmsg"/>
<%= workspaceItem.getCollection().getMetadata("name") %></p>

View File

@@ -14,19 +14,14 @@
<parent>
<groupId>org.dspace</groupId>
<artifactId>dspace-parent</artifactId>
<version>1.7.1-SNAPSHOT</version>
<version>1.7.3</version>
<relativePath>..</relativePath>
</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://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>
</scm>
<properties>
<!-- This is the path to the root [dspace-src] directory. -->
<root.basedir>${basedir}/..</root.basedir>
</properties>
<modules>
<module>dspace-jspui-api</module>

View File

@@ -12,14 +12,14 @@
<parent>
<groupId>org.dspace</groupId>
<artifactId>dspace-lni</artifactId>
<version>1.7.1-SNAPSHOT</version>
<version>1.7.3</version>
<relativePath>..</relativePath>
</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>
</scm>
<properties>
<!-- This is the path to the root [dspace-src] directory. -->
<root.basedir>${basedir}/../..</root.basedir>
</properties>
<profiles>
<profile>
@@ -82,6 +82,16 @@
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.mycila.maven-license-plugin</groupId>
<artifactId>maven-license-plugin</artifactId>
<configuration>
<!--Exclude license check for LNI files which don't need it-->
<excludes>
<exclude>**/*.wsdl</exclude>
</excludes>
</configuration>
</plugin>
<!--
This is another approach to packaging the LNI client that may be approached.

View File

@@ -10,14 +10,14 @@
<parent>
<groupId>org.dspace</groupId>
<artifactId>dspace-lni</artifactId>
<version>1.7.1-SNAPSHOT</version>
<version>1.7.3</version>
<relativePath>..</relativePath>
</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>
</scm>
<properties>
<!-- This is the path to the root [dspace-src] directory. -->
<root.basedir>${basedir}/../..</root.basedir>
</properties>
<dependencies>
<dependency>

View File

@@ -12,14 +12,14 @@
<parent>
<groupId>org.dspace</groupId>
<artifactId>dspace-lni</artifactId>
<version>1.7.1-SNAPSHOT</version>
<version>1.7.3</version>
<relativePath>..</relativePath>
</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>
</scm>
<properties>
<!-- This is the path to the root [dspace-src] directory. -->
<root.basedir>${basedir}/../..</root.basedir>
</properties>
<build>
<plugins>
@@ -46,6 +46,16 @@
<phase>prepare-package</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.mycila.maven-license-plugin</groupId>
<artifactId>maven-license-plugin</artifactId>
<configuration>
<!--Exclude license check for LNI files which don't need it-->
<excludes>
<exclude>**/*.wsdd</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>

View File

@@ -12,19 +12,14 @@
<parent>
<groupId>org.dspace</groupId>
<artifactId>dspace-parent</artifactId>
<version>1.7.1-SNAPSHOT</version>
<version>1.7.3</version>
<relativePath>..</relativePath>
</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://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>
</scm>
<properties>
<!-- This is the path to the root [dspace-src] directory. -->
<root.basedir>${basedir}/..</root.basedir>
</properties>
<modules>
<module>dspace-lni-core</module>

View File

@@ -14,19 +14,14 @@
<parent>
<groupId>org.dspace</groupId>
<artifactId>dspace-oai</artifactId>
<version>1.7.1-SNAPSHOT</version>
<version>1.7.3</version>
<relativePath>..</relativePath>
</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://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>
</scm>
<properties>
<!-- This is the path to the root [dspace-src] directory. -->
<root.basedir>${basedir}/../..</root.basedir>
</properties>
<dependencies>
<dependency>

View File

@@ -14,19 +14,14 @@
<parent>
<groupId>org.dspace</groupId>
<artifactId>dspace-oai</artifactId>
<version>1.7.1-SNAPSHOT</version>
<version>1.7.3</version>
<relativePath>..</relativePath>
</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://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>
</scm>
<properties>
<!-- This is the path to the root [dspace-src] directory. -->
<root.basedir>${basedir}/../..</root.basedir>
</properties>
<build>
<plugins>

View File

@@ -14,19 +14,14 @@
<parent>
<groupId>org.dspace</groupId>
<artifactId>dspace-parent</artifactId>
<version>1.7.1-SNAPSHOT</version>
<version>1.7.3</version>
<relativePath>..</relativePath>
</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://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>
</scm>
<properties>
<!-- This is the path to the root [dspace-src] directory. -->
<root.basedir>${basedir}/..</root.basedir>
</properties>
<modules>
<module>dspace-oai-api</module>

View File

@@ -3,26 +3,21 @@
<parent>
<artifactId>dspace-parent</artifactId>
<groupId>org.dspace</groupId>
<version>1.7.1-SNAPSHOT</version>
<version>1.7.3</version>
<relativePath>..</relativePath>
</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-SNAPSHOT</version>
<version>1.7.3</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>
<properties>
<!-- This is the path to the root [dspace-src] directory. -->
<root.basedir>${basedir}/..</root.basedir>
</properties>
<developers>
<developer>
@@ -114,21 +109,22 @@
<plugins>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.8</version>
<configuration>
<minmemory>128m</minmemory>
<maxmemory>1g</maxmemory>
</configuration>
</plugin>
<plugin>
<artifactId>maven-jxr-plugin</artifactId>
<version>2.3</version>
<configuration>
<aggregate>true</aggregate>
</configuration>
</plugin>
<plugin>
<artifactId>maven-site-plugin</artifactId>
<version>3.0</version>
</plugin>
</plugins>
</reporting>

View File

@@ -16,21 +16,14 @@
<parent>
<groupId>org.dspace</groupId>
<artifactId>dspace-sword</artifactId>
<version>1.7.1-SNAPSHOT</version>
<version>1.7.3</version>
<relativePath>..</relativePath>
</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://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
</developerConnection>
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-sword/dspace-sword-api</url>
</scm>
<properties>
<!-- This is the path to the root [dspace-src] directory. -->
<root.basedir>${basedir}/../..</root.basedir>
</properties>
<dependencies>
@@ -45,6 +38,17 @@
<dependency>
<groupId>org.dspace</groupId>
<artifactId>dspace-api</artifactId>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.dspace</groupId>
<artifactId>dspace-services-impl</artifactId>
</dependency>
<dependency>

View File

@@ -101,9 +101,9 @@ public class CollectionLocation
* If the configuration sword.deposit.url is set, this will be returned,
* but if not, it will construct the url as follows:
*
* [dspace.url]/dspace-sword/deposit
* [dspace.baseUrl]/sword/deposit
*
* where dspace.url is also in the configuration file.
* where dspace.baseUrl is also in the configuration file.
*
* @return the base URL for sword deposit
* @throws DSpaceSWORDException
@@ -114,10 +114,10 @@ public class CollectionLocation
String depositUrl = ConfigurationManager.getProperty("sword.deposit.url");
if (depositUrl == null || "".equals(depositUrl))
{
String dspaceUrl = ConfigurationManager.getProperty("dspace.url");
String dspaceUrl = ConfigurationManager.getProperty("dspace.baseUrl");
if (dspaceUrl == null || "".equals(dspaceUrl))
{
throw new DSpaceSWORDException("Unable to construct deposit urls, due to missing/invalid config in sword.deposit.url and/or dspace.url");
throw new DSpaceSWORDException("Unable to construct deposit urls, due to missing/invalid config in sword.deposit.url and/or dspace.baseUrl");
}
try
@@ -127,7 +127,7 @@ public class CollectionLocation
}
catch (MalformedURLException e)
{
throw new DSpaceSWORDException("Unable to construct deposit urls, due to invalid dspace.url " + e.getMessage(),e);
throw new DSpaceSWORDException("Unable to construct deposit urls, due to invalid dspace.baseUrl " + e.getMessage(),e);
}

View File

@@ -314,11 +314,11 @@ public class SWORDUrlManager
String depositUrl = ConfigurationManager.getProperty("sword.servicedocument.url");
if (depositUrl == null || "".equals(depositUrl))
{
String dspaceUrl = ConfigurationManager.getProperty("dspace.url");
String dspaceUrl = ConfigurationManager.getProperty("dspace.baseUrl");
if (dspaceUrl == null || "".equals(dspaceUrl))
{
throw new DSpaceSWORDException("Unable to construct service document urls, due to missing/invalid " +
"config in sword.servicedocument.url and/or dspace.url");
"config in sword.servicedocument.url and/or dspace.baseUrl");
}
try
@@ -328,7 +328,7 @@ public class SWORDUrlManager
}
catch (MalformedURLException e)
{
throw new DSpaceSWORDException("Unable to construct service document urls, due to invalid dspace.url " +
throw new DSpaceSWORDException("Unable to construct service document urls, due to invalid dspace.baseUrl " +
e.getMessage(),e);
}
@@ -346,9 +346,9 @@ public class SWORDUrlManager
* If the configuration sword.deposit.url is set, this will be returned,
* but if not, it will construct the url as follows:
*
* [dspace.url]/dspace-sword/deposit
* [dspace.baseUrl]/sword/deposit
*
* where dspace.url is also in the configuration file.
* where dspace.baseUrl is also in the configuration file.
*
* @return the base URL for sword deposit
* @throws DSpaceSWORDException
@@ -359,11 +359,11 @@ public class SWORDUrlManager
String depositUrl = ConfigurationManager.getProperty("sword.deposit.url");
if (depositUrl == null || "".equals(depositUrl))
{
String dspaceUrl = ConfigurationManager.getProperty("dspace.url");
String dspaceUrl = ConfigurationManager.getProperty("dspace.baseUrl");
if (dspaceUrl == null || "".equals(dspaceUrl))
{
throw new DSpaceSWORDException("Unable to construct deposit urls, due to missing/invalid config in " +
"sword.deposit.url and/or dspace.url");
"sword.deposit.url and/or dspace.baseUrl");
}
try
@@ -373,7 +373,7 @@ public class SWORDUrlManager
}
catch (MalformedURLException e)
{
throw new DSpaceSWORDException("Unable to construct deposit urls, due to invalid dspace.url " +
throw new DSpaceSWORDException("Unable to construct deposit urls, due to invalid dspace.baseUrl " +
e.getMessage(),e);
}
@@ -475,11 +475,11 @@ public class SWORDUrlManager
String mlUrl = ConfigurationManager.getProperty("sword.media-link.url");
if (mlUrl == null || "".equals(mlUrl))
{
String dspaceUrl = ConfigurationManager.getProperty("dspace.url");
String dspaceUrl = ConfigurationManager.getProperty("dspace.baseUrl");
if (dspaceUrl == null || "".equals(dspaceUrl))
{
throw new DSpaceSWORDException("Unable to construct media-link urls, due to missing/invalid config in " +
"sword.media-link.url and/or dspace.url");
"sword.media-link.url and/or dspace.baseUrl");
}
try
@@ -489,7 +489,7 @@ public class SWORDUrlManager
}
catch (MalformedURLException e)
{
throw new DSpaceSWORDException("Unable to construct media-link urls, due to invalid dspace.url " +
throw new DSpaceSWORDException("Unable to construct media-link urls, due to invalid dspace.baseUrl " +
e.getMessage(),e);
}

View File

@@ -14,19 +14,14 @@
<parent>
<groupId>org.dspace</groupId>
<artifactId>dspace-sword</artifactId>
<version>1.7.1-SNAPSHOT</version>
<version>1.7.3</version>
<relativePath>..</relativePath>
</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://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>
</scm>
<properties>
<!-- This is the path to the root [dspace-src] directory. -->
<root.basedir>${basedir}/../..</root.basedir>
</properties>
<build>
<plugins>
@@ -113,7 +108,7 @@
<dependency>
<groupId>org.dspace</groupId>
<artifactId>dspace-sword-api</artifactId>
<version>1.7.1-SNAPSHOT</version>
<version>1.7.3</version>
</dependency>
</dependencies>

View File

@@ -81,6 +81,11 @@
<!--
Listener to initialise DSpace configuration and clean up the application
-->
<listener>
<listener-class>
org.dspace.servicemanager.servlet.DSpaceKernelServletContextListener
</listener-class>
</listener>
<listener>
<listener-class>
org.dspace.app.util.DSpaceContextListener

View File

@@ -16,37 +16,14 @@
<parent>
<groupId>org.dspace</groupId>
<artifactId>dspace-parent</artifactId>
<version>1.7.1-SNAPSHOT</version>
<version>1.7.3</version>
<relativePath>..</relativePath>
</parent>
<repositories>
<repository>
<id>maven.dspace.org/snapshot</id>
<name>DSpace Maven Snapshot Repository</name>
<url>http://maven.dspace.org/snapshot</url>
<releases>
<enabled>false</enabled>
<checksumPolicy>fail</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
</repository>
</repositories>
<!--
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-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>
</scm>
<properties>
<!-- This is the path to the root [dspace-src] directory. -->
<root.basedir>${basedir}/..</root.basedir>
</properties>
<modules>
<module>dspace-sword-api</module>

View File

@@ -13,15 +13,14 @@
<parent>
<groupId>org.dspace</groupId>
<artifactId>dspace-xmlui</artifactId>
<version>1.7.1-SNAPSHOT</version>
<version>1.7.3</version>
<relativePath>..</relativePath>
</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
</developerConnection>
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-xmlui/dspace-xmlui-api/</url>
</scm>
<properties>
<!-- This is the path to the root [dspace-src] directory. -->
<root.basedir>${basedir}/../..</root.basedir>
</properties>
<dependencies>

View File

@@ -169,11 +169,17 @@ public class Navigation extends AbstractDSpaceTransformer implements CacheablePr
public void setup(SourceResolver resolver, Map objectModel, String src, Parameters parameters) throws ProcessingException, SAXException, IOException {
super.setup(resolver, objectModel, src, parameters);
try{
availableExports = null;
if (context.getCurrentUser() != null)
{
try
{
availableExports = ItemExport.getExportsAvailable(context.getCurrentUser());
}
catch (Exception e) {
// nothing to do
catch (Exception e)
{
throw new ProcessingException("Error getting available exports", e);
}
}
}
@@ -258,7 +264,7 @@ public class Navigation extends AbstractDSpaceTransformer implements CacheablePr
}
}
if (isSystemAdmin && "community-list".equals(this.sitemapURI))
if (isSystemAdmin && ("community-list".equals(this.sitemapURI) || "".equals(this.sitemapURI)))
{
// Only System administrators can create top-level communities
context.setHead(T_context_head);
@@ -341,7 +347,7 @@ public class Navigation extends AbstractDSpaceTransformer implements CacheablePr
}
}
if ("community-list".equals(this.sitemapURI) && AuthorizeManager.isAdmin(this.context))
if (("community-list".equals(this.sitemapURI) || "".equals(this.sitemapURI)) && AuthorizeManager.isAdmin(this.context))
{
context.addItemXref(contextPath+"/admin/community?createNew", T_context_create_community);
options++;

View File

@@ -66,18 +66,17 @@ public class AddBitstreamForm extends AbstractDSpaceTransformer
pageMeta.addMetadata("title").addContent(T_title);
pageMeta.addTrailLink(contextPath + "/", T_dspace_home);
pageMeta.addTrailLink(contextPath + "/admin/item",T_item_trail);
pageMeta.addTrailLink(contextPath + "/admin/item", T_item_trail);
pageMeta.addTrail().addContent(T_trail);
}
public void addBody(Body body) throws SAXException, WingException,
UIException, SQLException, IOException, AuthorizeException
public void addBody(Body body) throws SAXException, WingException, UIException, SQLException, IOException, AuthorizeException
{
int itemID = parameters.getParameterAsInteger("itemID",-1);
org.dspace.content.Item item = org.dspace.content.Item.find(context,itemID);
int itemID = parameters.getParameterAsInteger("itemID", -1);
org.dspace.content.Item item = org.dspace.content.Item.find(context, itemID);
// DIVISION: main div
Division div = body.addInteractiveDivision("add-bitstream", contextPath+"/admin/item", Division.METHOD_MULTIPART, "primary administrative item");
Division div = body.addInteractiveDivision("add-bitstream", contextPath + "/admin/item", Division.METHOD_MULTIPART, "primary administrative item");
// LIST: upload form
List upload = div.addList("submit-upload-new", List.TYPE_FORM);
@@ -97,15 +96,14 @@ public class AddBitstreamForm extends AbstractDSpaceTransformer
String[] parts = bundleString.split(",");
for (String part : parts)
{
if (addBundleOption(item,select,part.trim()))
if (addBundleOption(item, select, part.trim()))
{
bundleCount++;
}
}
select.setOptionSelected("ORIGINAL");
if (bundleCount == 0)
{
if (bundleCount == 0) {
select.setDisabled();
}
@@ -115,8 +113,7 @@ public class AddBitstreamForm extends AbstractDSpaceTransformer
file.setHelp(T_file_help);
file.setRequired();
if (bundleCount == 0)
{
if (bundleCount == 0) {
file.setDisabled();
}
@@ -124,13 +121,11 @@ public class AddBitstreamForm extends AbstractDSpaceTransformer
description.setLabel(T_description_label);
description.setHelp(T_description_help);
if (bundleCount == 0)
{
if (bundleCount == 0) {
description.setDisabled();
}
if (bundleCount == 0)
{
if (bundleCount == 0) {
upload.addItem().addContent(T_no_bundles);
}
@@ -138,8 +133,7 @@ public class AddBitstreamForm extends AbstractDSpaceTransformer
Item actions = upload.addItem();
Button button = actions.addButton("submit_upload");
button.setValue(T_submit_upload);
if (bundleCount == 0)
{
if (bundleCount == 0) {
button.setDisabled();
}
@@ -148,39 +142,44 @@ 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
* @param item DSO item being evaluated
* @param select DRI wing select box that is being added to
* @param bundleName
* @return boolean indicating whether user can upload to bundle
* @throws SQLException
* @throws WingException
*/
public boolean addBundleOption(org.dspace.content.Item item, Select select, String bundleName) throws SQLException, WingException
{
// For some crazzy reason multiple bundles can share the same name
Bundle[] bundles = item.getBundles(bundleName);
if (bundles == null || bundles.length == 0)
{
// If the bundle does not exist then you have to be supper admin to be able
// to upload to this bundle because at upload time the bundle will be created but
// there is no way anyone but super admin could have access to add to the bundle.
if ( ! AuthorizeManager.isAdmin(context))
// No bundle, so the user has to be authorized to add to item.
if(!AuthorizeManager.authorizeActionBoolean(context, item, Constants.ADD))
{
return false; // you can't upload to this bundle.
return false;
}
}
else
} else
{
// At least one bundle exists, does the user have privleges to upload to it?
Bundle bundle = bundles[0];
if ( ! AuthorizeManager.authorizeActionBoolean(context, bundle, Constants.ADD))
if (!AuthorizeManager.authorizeActionBoolean(context, bundle, Constants.ADD))
{
return false; // you can't upload to this bundle.
}
// You also need the write privlege on the bundle.
if ( ! AuthorizeManager.authorizeActionBoolean(context, bundle, Constants.WRITE))
if (!AuthorizeManager.authorizeActionBoolean(context, bundle, Constants.WRITE))
{
return false; // you can't upload
}
}
// It's okay to upload.
select.addOption(bundleName, message("xmlui.administrative.item.AddBitstreamForm.bundle."+bundleName));
select.addOption(bundleName, message("xmlui.administrative.item.AddBitstreamForm.bundle." + bundleName));
return true;
}

View File

@@ -222,6 +222,7 @@ public class CollectionRecentSubmissions extends AbstractDSpaceTransformer imple
{
// Clear out our item's cache.
this.recentSubmissionItems = null;
this.validity = null;
super.recycle();
}
}

View File

@@ -204,6 +204,7 @@ public class CommunityRecentSubmissions extends AbstractDSpaceTransformer implem
@Override
public void recycle() {
this.recentSubmittedItems = null;
this.validity = null;
super.recycle();
}
}

View File

@@ -10,14 +10,13 @@ package org.dspace.app.xmlui.aspect.artifactbrowser;
import java.io.IOException;
import java.io.Serializable;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.*;
import org.apache.cocoon.ResourceNotFoundException;
import org.apache.cocoon.caching.CacheableProcessingComponent;
import org.apache.cocoon.environment.ObjectModelHelper;
import org.apache.cocoon.environment.Request;
import org.apache.cocoon.environment.http.HttpEnvironment;
import org.apache.cocoon.util.HashUtil;
import org.apache.excalibur.source.SourceValidity;
import org.apache.log4j.Logger;
@@ -58,6 +57,8 @@ import org.dspace.core.Context;
import org.dspace.core.LogManager;
import org.xml.sax.SAXException;
import javax.servlet.http.HttpServletResponse;
/**
* Implements all the browse functionality (browse by title, subject, authors,
* etc.) The types of browse available are configurable by the implementor. See
@@ -244,7 +245,16 @@ public class ConfigurableBrowse extends AbstractDSpaceTransformer implements
public void addBody(Body body) throws SAXException, WingException, UIException, SQLException,
IOException, AuthorizeException
{
BrowseParams params = getUserParams();
BrowseParams params = null;
try {
params = getUserParams();
} catch (ResourceNotFoundException e) {
HttpServletResponse response = (HttpServletResponse)objectModel
.get(HttpEnvironment.HTTP_RESPONSE_OBJECT);
response.setStatus(HttpServletResponse.SC_NOT_FOUND);
}
BrowseInfo info = getBrowseInfo();
String type = info.getBrowseIndex().getName();
@@ -605,8 +615,8 @@ public class ConfigurableBrowse extends AbstractDSpaceTransformer implements
* @throws SQLException
* @throws UIException
*/
private BrowseParams getUserParams() throws SQLException, UIException
{
private BrowseParams getUserParams() throws SQLException, UIException, ResourceNotFoundException, IllegalArgumentException {
if (this.userParams != null)
{
return this.userParams;
@@ -639,10 +649,20 @@ public class ConfigurableBrowse extends AbstractDSpaceTransformer implements
String type = request.getParameter(BrowseParams.TYPE);
int sortBy = RequestUtils.getIntParameter(request, BrowseParams.SORT_BY);
if(!request.getParameters().containsKey("type"))
{
// default to first browse index.
String defaultBrowseIndex = ConfigurationManager.getProperty("webui.browse.index.1");
if(defaultBrowseIndex != null)
{
type = defaultBrowseIndex.split(":")[0];
}
}
BrowseIndex bi = BrowseIndex.getBrowseIndex(type);
if (bi == null)
{
throw new BrowseException("There is no browse index of the type: " + type);
throw new ResourceNotFoundException("Browse index " + type + " not found");
}
// If we don't have a sort column
@@ -769,7 +789,12 @@ public class ConfigurableBrowse extends AbstractDSpaceTransformer implements
// Get the parameters we will use for the browse
// (this includes a browse scope)
BrowseParams params = getUserParams();
BrowseParams params = null;
try {
params = getUserParams();
} catch (ResourceNotFoundException e) {
return null;
}
try
{

View File

@@ -215,7 +215,8 @@ public class Submissions extends AbstractDSpaceTransformer
for (WorkflowItem owned : ownedItems)
{
int workflowItemID = owned.getID();
String url = contextPath+"/handle/"+owned.getCollection().getHandle()+"/workflow?workflowID="+workflowItemID;
String collectionUrl = contextPath + "/handle/" + owned.getCollection().getHandle();
String ownedWorkflowItemUrl = contextPath + "/handle/" + owned.getCollection().getHandle() + "/workflow?workflowID=" + workflowItemID;
DCValue[] titles = owned.getItem().getDC("title", null, Item.ANY);
String collectionName = owned.getCollection().getMetadata("name");
EPerson submitter = owned.getSubmitter();
@@ -231,7 +232,7 @@ public class Submissions extends AbstractDSpaceTransformer
remove.addOption(workflowItemID);
// The task description
row.addCell().addXref(url,state);
row.addCell().addXref(ownedWorkflowItemUrl, state);
// The item description
if (titles != null && titles.length > 0)
@@ -241,15 +242,15 @@ public class Submissions extends AbstractDSpaceTransformer
{
displayTitle = displayTitle.substring(0, 50) + " ...";
}
row.addCell().addXref(url,displayTitle);
row.addCell().addXref(ownedWorkflowItemUrl, displayTitle);
}
else
{
row.addCell().addXref(url, T_untitled);
row.addCell().addXref(ownedWorkflowItemUrl, T_untitled);
}
// Submitted too
row.addCell().addXref(url,collectionName);
row.addCell().addXref(collectionUrl, collectionName);
// Submitted by
Cell cell = row.addCell();
@@ -287,7 +288,8 @@ public class Submissions extends AbstractDSpaceTransformer
for (WorkflowItem pooled : pooledItems)
{
int workflowItemID = pooled.getID();
String url = contextPath+"/handle/"+pooled.getCollection().getHandle()+"/workflow?workflowID="+workflowItemID;
String collectionUrl = contextPath + "/handle/" + pooled.getCollection().getHandle();
String pooledItemUrl = contextPath + "/handle/" + pooled.getCollection().getHandle() + "/workflow?workflowID=" + workflowItemID;
DCValue[] titles = pooled.getItem().getDC("title", null, Item.ANY);
String collectionName = pooled.getCollection().getMetadata("name");
EPerson submitter = pooled.getSubmitter();
@@ -304,7 +306,7 @@ public class Submissions extends AbstractDSpaceTransformer
remove.addOption(workflowItemID);
// The task description
row.addCell().addXref(url,state);
row.addCell().addXref(pooledItemUrl, state);
// The item description
if (titles != null && titles.length > 0)
@@ -315,15 +317,15 @@ public class Submissions extends AbstractDSpaceTransformer
displayTitle = displayTitle.substring(0, 50) + " ...";
}
row.addCell().addXref(url,displayTitle);
row.addCell().addXref(pooledItemUrl, displayTitle);
}
else
{
row.addCell().addXref(url, T_untitled);
row.addCell().addXref(pooledItemUrl, T_untitled);
}
// Submitted too
row.addCell().addXref(url,collectionName);
row.addCell().addXref(collectionUrl, collectionName);
// Submitted by
Cell cell = row.addCell();
@@ -418,7 +420,8 @@ public class Submissions extends AbstractDSpaceTransformer
EPerson submitterEPerson = workspaceItem.getItem().getSubmitter();
int workspaceItemID = workspaceItem.getID();
String url = contextPath+"/submit?workspaceID="+workspaceItemID;
String collectionUrl = contextPath + "/handle/" + workspaceItem.getCollection().getHandle();
String workspaceItemUrl = contextPath + "/submit?workspaceID=" + workspaceItemID;
String submitterName = submitterEPerson.getFullName();
String submitterEmail = submitterEPerson.getEmail();
String collectionName = workspaceItem.getCollection().getMetadata("name");
@@ -435,13 +438,13 @@ public class Submissions extends AbstractDSpaceTransformer
{
displayTitle = displayTitle.substring(0, 50) + " ...";
}
row.addCell().addXref(url,displayTitle);
row.addCell().addXref(workspaceItemUrl, displayTitle);
}
else
{
row.addCell().addXref(url, T_untitled);
row.addCell().addXref(workspaceItemUrl, T_untitled);
}
row.addCell().addXref(url,collectionName);
row.addCell().addXref(collectionUrl, collectionName);
Cell cell = row.addCell();
cell.addContent(T_email);
cell.addXref("mailto:"+submitterEmail,submitterName);

View File

@@ -13,15 +13,14 @@
<parent>
<groupId>org.dspace</groupId>
<artifactId>dspace-xmlui</artifactId>
<version>1.7.1-SNAPSHOT</version>
<version>1.7.3</version>
<relativePath>..</relativePath>
</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
</developerConnection>
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-xmlui/dspace-xmlui-webapp</url>
</scm>
<properties>
<!-- This is the path to the root [dspace-src] directory. -->
<root.basedir>${basedir}/../..</root.basedir>
</properties>
<build>
<plugins>
@@ -48,6 +47,27 @@
<phase>prepare-package</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.mycila.maven-license-plugin</groupId>
<artifactId>maven-license-plugin</artifactId>
<configuration>
<!--Exclude license check for XMLUI files which don't need it-->
<excludes>
<exclude>**/META-INF/**</exclude>
<exclude>**/robots.txt</exclude>
<exclude>**/readme*</exclude>
<exclude>**/*.LICENSE</exclude>
<exclude>**/*.LICENCE</exclude>
<exclude>**/cocoon/**</exclude>
<exclude>**/scriptaculous/**</exclude>
<exclude>**/jquery*</exclude>
<exclude>**/modernizr*</exclude>
<exclude>**/DD_belated*</exclude>
<exclude>**/*.xmap</exclude>
<exclude>**/exception2html.xslt</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
@@ -113,9 +133,7 @@
</dependency>
</dependencies>
<properties>
<netbeans.hint.deploy.server>Tomcat60</netbeans.hint.deploy.server>
</properties>
</project>

View File

@@ -7,6 +7,10 @@
*/
/** Additions for Authority Control elements **/
/* for scriptaculous autocomplete */
div.autocomplete {
display: none;
}
div.autocomplete, ul.ui-menu {
position:absolute;
width:250px;
@@ -36,10 +40,6 @@ ul.ui-menu li a {
ul.ui-menu li a.ui-state-hover {
background-color: #ffb;
}
#aspect_submission_StepTransformer_field_dc_title_container {
display: none;
}
/* this magic gets the 16x16 icon to show up.. setting height/width didn't
do it, but adding padding actually made it show up. */
img.ds-authority-confidence

View File

@@ -61,10 +61,10 @@
<xsl:text>]</xsl:text>
</xsl:if>
</div>
<xsl:if test="$data/dim:field[@element = 'description' and @qualifier='abstract']">
<xsl:variable name="abstract" select="$data/dim:field[@element = 'description' and @qualifier='abstract']/node()"/>
<xsl:if test="$abstract and string-length($abstract[1]) &gt; 0">
<div class="artifact-info">
<span class="short-description">
<xsl:variable name="abstract" select="$data/dim:field[@element = 'description' and @qualifier='abstract']/node()"/>
<xsl:value-of select="util:shortenString($abstract, 220, 10)"/>
</span>
</div>

View File

@@ -62,10 +62,10 @@
<xsl:text>]</xsl:text>
</xsl:if>
</div>
<xsl:if test="$data/dim:field[@element = 'description' and @qualifier='abstract']">
<xsl:variable name="abstract" select="$data/dim:field[@element = 'description' and @qualifier='abstract']/node()"/>
<xsl:if test="$abstract and string-length($abstract[1]) &gt; 0">
<div class="artifact-info">
<span class="short-description">
<xsl:variable name="abstract" select="$data/dim:field[@element = 'description' and @qualifier='abstract']/node()"/>
<xsl:value-of select="util:shortenString($abstract, 220, 10)"/>
</span>
</div>

View File

@@ -308,7 +308,6 @@
</xsl:template>
<xsl:template match="dim:field" mode="itemDetailView-DIM">
<xsl:if test="not(@element='description' and @qualifier='provenance')">
<tr>
<xsl:attribute name="class">
<xsl:text>ds-table-row </xsl:text>
@@ -334,7 +333,6 @@
</td>
<td><xsl:value-of select="./@language"/></td>
</tr>
</xsl:if>
</xsl:template>
<!--dont render the item-view-toggle automatically in the summary view, only when it get's called-->

View File

@@ -214,7 +214,8 @@
<xsl:param name="confidenceName" select="''"/>
<xsl:param name="isClosed" select="'false'"/>
<script type="text/javascript">
<xsl:text>window.onload = function() {</xsl:text>
<xsl:text>runAfterJSImports.add(function() {</xsl:text>
<xsl:text>$(document).ready(function() {</xsl:text>
<xsl:text>var gigo = DSpaceSetupAutocomplete('</xsl:text>
<xsl:value-of select="$formID"/>
<xsl:text>', { metadataField: '</xsl:text>
@@ -238,7 +239,8 @@
<xsl:text>, contextPath: '</xsl:text>
<xsl:value-of select="/dri:document/dri:meta/dri:pageMeta/dri:metadata[@element='contextPath'][not(@qualifier)]"/>
<xsl:text>'});</xsl:text>
<xsl:text>};</xsl:text>
<xsl:text>});</xsl:text>
<xsl:text>});</xsl:text>
</script>
</xsl:template>

View File

@@ -240,6 +240,30 @@
else
return true;
}
function FnArray()
{
this.funcs = new Array;
}
FnArray.prototype.add = function(f)
{
if( typeof f!= "function" )
{
f = new Function(f);
}
this.funcs[this.funcs.length] = f;
};
FnArray.prototype.execute = function()
{
for( var i=0; i <xsl:text disable-output-escaping="yes">&lt;</xsl:text> this.funcs.length; i++ )
{
this.funcs[i]();
}
};
var runAfterJSImports = new FnArray();
</script>
<!-- Modernizr enables HTML5 elements & feature detects -->
@@ -496,7 +520,10 @@
-->
<xsl:template name="addJavascript">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js">&#160;</script>
<script type="text/javascript">
<xsl:text disable-output-escaping="yes">var JsHost = (("https:" == document.location.protocol) ? "https://" : "http://");
document.write(unescape("%3Cscript src='" + JsHost + "ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js' type='text/javascript'%3E%3C/script%3E"));</xsl:text>
</script>
<xsl:variable name="localJQuerySrc">
<xsl:value-of select="/dri:document/dri:meta/dri:pageMeta/dri:metadata[@element='contextPath'][not(@qualifier)]"/>
@@ -570,6 +597,10 @@
<xsl:text disable-output-escaping="yes" >&lt;![endif]--&gt;</xsl:text>
<script type="text/javascript">
runAfterJSImports.execute();
</script>
<!-- Add a google analytics script if the key is present -->
<xsl:if test="/dri:document/dri:meta/dri:pageMeta/dri:metadata[@element='google'][@qualifier='analytics']">
<script type="text/javascript"><xsl:text>

View File

@@ -125,8 +125,9 @@
<map:parameter name="stylesheet.screen#1" value="lib/css/reset.css"/>
<map:parameter name="stylesheet.screen#2" value="lib/css/base.css"/>
<map:parameter name="stylesheet.screen#3" value="lib/css/helper.css"/>
<map:parameter name="stylesheet.screen#4" value="lib/css/style.css"/>
<map:parameter name="stylesheet.screen#5" value="lib/css/authority-control.css"/>
<map:parameter name="stylesheet.screen#4" value="lib/css/jquery-ui-1.8.5.custom.css"/>
<map:parameter name="stylesheet.screen#5" value="lib/css/style.css"/>
<map:parameter name="stylesheet.screen#6" value="lib/css/authority-control.css"/>
</map:transform>
<map:transform type="IncludePageMeta">

View File

@@ -369,7 +369,6 @@
</xsl:template>
<xsl:template match="dim:field" mode="itemDetailView-DIM">
<xsl:if test="not(@element='description' and @qualifier='provenance')">
<tr>
<xsl:attribute name="class">
<xsl:text>ds-table-row </xsl:text>
@@ -395,7 +394,6 @@
</td>
<td><xsl:value-of select="./@language"/></td>
</tr>
</xsl:if>
</xsl:template>
<!-- Generate the bitstream information from the file section -->

View File

@@ -744,7 +744,6 @@
</xsl:template>
<xsl:template match="dim:field" mode="itemDetailView-DIM">
<xsl:if test="not(@element='description' and @qualifier='provenance')">
<tr>
<xsl:attribute name="class">
<xsl:text>ds-table-row </xsl:text>
@@ -770,7 +769,6 @@
</td>
<td><xsl:value-of select="./@language"/></td>
</tr>
</xsl:if>
</xsl:template>

View File

@@ -10,15 +10,14 @@
<parent>
<groupId>org.dspace</groupId>
<artifactId>dspace-xmlui</artifactId>
<version>1.7.1-SNAPSHOT</version>
<version>1.7.3</version>
<relativePath>..</relativePath>
</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
</developerConnection>
<url>http://scm.dspace.org/svn/repo/dspace/trunk/dspace-xmlui/dspace-xmlui-wing</url>
</scm>
<properties>
<!-- This is the path to the root [dspace-src] directory. -->
<root.basedir>${basedir}/../..</root.basedir>
</properties>
<dependencies>

View File

@@ -12,19 +12,14 @@
<parent>
<groupId>org.dspace</groupId>
<artifactId>dspace-parent</artifactId>
<version>1.7.1-SNAPSHOT</version>
<version>1.7.3</version>
<relativePath>..</relativePath>
</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://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>
</scm>
<properties>
<!-- This is the path to the root [dspace-src] directory. -->
<root.basedir>${basedir}/..</root.basedir>
</properties>
<modules>
<module>dspace-xmlui-wing</module>

File diff suppressed because it is too large Load Diff

View File

@@ -11,6 +11,12 @@ KNOWN BUGS
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.2:
https://jira.duraspace.org/secure/IssueNavigator.jspa?reset=true&jqlQuery=project+=+DS+AND+affectedVersion+=+"1.7.2"+AND+fixVersion+!=+"1.7.2"
- 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"
- 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"

View File

@@ -1,7 +1,7 @@
DSpace source code license:
Copyright (c) 2002-2010, DuraSpace. All rights reserved.
Copyright (c) 2002-2011, DuraSpace. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are

View File

@@ -11,5 +11,5 @@ access and preservation of digital works. The Foundation was able to transfer
the legal copyright from Hewlett-Packard Company (HP) and Massachusetts
Institute of Technology (MIT) to the DSpace Foundation in October 2007. Many
of the files in the source code may contain a copyright statement stating HP
and MIT posses the copyright, in these instances please note that the copy
right has transfered to the DSpace foundation, and subsequently to Duraspace.
and MIT possess the copyright, in these instances please note that the copy
right has transferred to the DSpace foundation, and subsequently to DuraSpace.

Some files were not shown because too many files have changed in this diff Show More