Compare commits

...

5282 Commits

Author SHA1 Message Date
dependabot[bot]
2a4ac311c2 Bump com.amazonaws:aws-java-sdk-s3 from 1.12.791 to 1.12.792
Bumps [com.amazonaws:aws-java-sdk-s3](https://github.com/aws/aws-sdk-java) from 1.12.791 to 1.12.792.
- [Changelog](https://github.com/aws/aws-sdk-java/blob/master/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-java/compare/1.12.791...1.12.792)

---
updated-dependencies:
- dependency-name: com.amazonaws:aws-java-sdk-s3
  dependency-version: 1.12.792
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-06 20:00:09 +00:00
Tim Donohue
5723ea1297 Merge pull request #11381 from DSpace/dependabot/maven/dspace-7_x/apache-commons-646c41dc72
Bump org.apache.commons:commons-lang3 from 3.18.0 to 3.19.0 in the apache-commons group
2025-10-06 13:33:10 -05:00
Tim Donohue
fa2a639615 Merge pull request #11380 from DSpace/dependabot/maven/dspace-7_x/test-tools-9b413dd7df
Bump the test-tools group with 2 updates
2025-10-06 13:22:57 -05:00
Tim Donohue
a6699f3c43 Merge pull request #11378 from DSpace/dependabot/maven/dspace-7_x/build-tools-4e1d998f9d
Bump the build-tools group with 6 updates
2025-10-06 13:18:24 -05:00
Tim Donohue
5fe6f9f1d0 Merge pull request #11385 from DSpace/dependabot/maven/dspace-7_x/log4j.version-2.25.2
Bump log4j.version from 2.25.1 to 2.25.2
2025-10-06 13:15:27 -05:00
Tim Donohue
97782fae6e Merge pull request #10534 from 4Science/task/dspace-7_x/DURACOM-243
[dspace-7_x] Handles Rotation EXIF Metadata inside JPEGFilter
2025-10-02 14:37:59 -05:00
Tim Donohue
8fc191e9cb Merge pull request #11403 from tdonohue/port_11321_to_7x
[Port dspace-7_x] DS-8943: adds limit to number of typed links to bitstreams in header
2025-10-02 08:48:10 -05:00
nwoodward
b5501981ab added limit to number of typed links to bitstreams to display, falls back to Link Sets if limit is exceeded 2025-10-01 17:15:14 -05:00
Tim Donohue
61f2695b83 Merge pull request #11396 from TexasDigitalLibrary/port_11329_to_7x
[Port dspace-7_x] Fix Hibernate syntax bugs in the CollectionDAO and BitstreamDAO
2025-10-01 16:44:36 -05:00
Tim Donohue
8643888d68 Merge pull request #11399 from tdonohue/port_11139_to_7x
[Port dspace-7_x] fix(#10721): Sanitize non-characters during OAI indexing
2025-10-01 16:39:31 -05:00
JohnnyMendesC
d8fbe16ede fix(#10721): Sanitize non-characters during OAI indexing (#11139)
* fix(#10721): Sanitize non-characters during OAI indexing

* refactor: Use StringEscapeUtils as suggested in review

* fix: Removed whitespace before the import that was causing error

Maven Unit Test failed due to the whitespace before the import
https://github.com/DSpace/DSpace/actions/runs/16891881837/job/47853392956?pr=11139#step:4:1959

* fix: Removed trailing whitespace that was causing error
2025-10-01 15:28:11 -05:00
nwoodward
29e13b77fc checkstyle fix 2025-10-01 13:46:40 -05:00
nwoodward
fc74a7ffdf fix Hibernate bugs 2025-10-01 13:41:41 -05:00
dependabot[bot]
dd6b3b4a55 Bump log4j.version from 2.25.1 to 2.25.2
Bumps `log4j.version` from 2.25.1 to 2.25.2.

Updates `org.apache.logging.log4j:log4j-api` from 2.25.1 to 2.25.2

Updates `org.apache.logging.log4j:log4j-core` from 2.25.1 to 2.25.2

Updates `org.apache.logging.log4j:log4j-1.2-api` from 2.25.1 to 2.25.2

---
updated-dependencies:
- dependency-name: org.apache.logging.log4j:log4j-api
  dependency-version: 2.25.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.apache.logging.log4j:log4j-core
  dependency-version: 2.25.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.apache.logging.log4j:log4j-1.2-api
  dependency-version: 2.25.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-01 02:36:10 +00:00
dependabot[bot]
fa9df3a4ca Bump org.apache.commons:commons-lang3 in the apache-commons group
Bumps the apache-commons group with 1 update: org.apache.commons:commons-lang3.


Updates `org.apache.commons:commons-lang3` from 3.18.0 to 3.19.0

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-lang3
  dependency-version: 3.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: apache-commons
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-01 02:34:22 +00:00
dependabot[bot]
5bc41cb8ab Bump the test-tools group with 2 updates
Bumps the test-tools group with 2 updates: [com.h2database:h2](https://github.com/h2database/h2database) and [org.xmlunit:xmlunit-core](https://github.com/xmlunit/xmlunit).


Updates `com.h2database:h2` from 2.3.232 to 2.4.240
- [Release notes](https://github.com/h2database/h2database/releases)
- [Commits](https://github.com/h2database/h2database/compare/version-2.3.232...version-2.4.240)

Updates `org.xmlunit:xmlunit-core` from 2.10.3 to 2.10.4
- [Release notes](https://github.com/xmlunit/xmlunit/releases)
- [Changelog](https://github.com/xmlunit/xmlunit/blob/main/RELEASE_NOTES.md)
- [Commits](https://github.com/xmlunit/xmlunit/compare/v2.10.3...v2.10.4)

---
updated-dependencies:
- dependency-name: com.h2database:h2
  dependency-version: 2.4.240
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: test-tools
- dependency-name: org.xmlunit:xmlunit-core
  dependency-version: 2.10.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-01 02:34:10 +00:00
dependabot[bot]
ccd3d12ad8 Bump the build-tools group with 6 updates
Bumps the build-tools group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [com.github.spotbugs:spotbugs](https://github.com/spotbugs/spotbugs) | `4.9.4` | `4.9.6` |
| [org.apache.maven.plugins:maven-compiler-plugin](https://github.com/apache/maven-compiler-plugin) | `3.14.0` | `3.14.1` |
| [com.github.spotbugs:spotbugs-maven-plugin](https://github.com/spotbugs/spotbugs-maven-plugin) | `4.9.4.2` | `4.9.6.0` |
| [org.sonatype.central:central-publishing-maven-plugin](https://github.com/sonatype/central-publishing-maven-plugin) | `0.8.0` | `0.9.0` |
| [org.apache.maven.plugins:maven-javadoc-plugin](https://github.com/apache/maven-javadoc-plugin) | `3.11.3` | `3.12.0` |
| [org.codehaus.mojo:license-maven-plugin](https://github.com/mojohaus/license-maven-plugin) | `2.6.0` | `2.7.0` |


Updates `com.github.spotbugs:spotbugs` from 4.9.4 to 4.9.6
- [Release notes](https://github.com/spotbugs/spotbugs/releases)
- [Changelog](https://github.com/spotbugs/spotbugs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/spotbugs/spotbugs/compare/4.9.4...4.9.6)

Updates `org.apache.maven.plugins:maven-compiler-plugin` from 3.14.0 to 3.14.1
- [Release notes](https://github.com/apache/maven-compiler-plugin/releases)
- [Commits](https://github.com/apache/maven-compiler-plugin/compare/maven-compiler-plugin-3.14.0...maven-compiler-plugin-3.14.1)

Updates `com.github.spotbugs:spotbugs-maven-plugin` from 4.9.4.2 to 4.9.6.0
- [Release notes](https://github.com/spotbugs/spotbugs-maven-plugin/releases)
- [Commits](https://github.com/spotbugs/spotbugs-maven-plugin/compare/spotbugs-maven-plugin-4.9.4.2...spotbugs-maven-plugin-4.9.6.0)

Updates `org.sonatype.central:central-publishing-maven-plugin` from 0.8.0 to 0.9.0
- [Commits](https://github.com/sonatype/central-publishing-maven-plugin/commits)

Updates `org.apache.maven.plugins:maven-javadoc-plugin` from 3.11.3 to 3.12.0
- [Release notes](https://github.com/apache/maven-javadoc-plugin/releases)
- [Commits](https://github.com/apache/maven-javadoc-plugin/compare/maven-javadoc-plugin-3.11.3...maven-javadoc-plugin-3.12.0)

Updates `org.codehaus.mojo:license-maven-plugin` from 2.6.0 to 2.7.0
- [Release notes](https://github.com/mojohaus/license-maven-plugin/releases)
- [Commits](https://github.com/mojohaus/license-maven-plugin/compare/2.6.0...2.7.0)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs
  dependency-version: 4.9.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build-tools
- dependency-name: org.apache.maven.plugins:maven-compiler-plugin
  dependency-version: 3.14.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build-tools
- dependency-name: com.github.spotbugs:spotbugs-maven-plugin
  dependency-version: 4.9.6.0
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build-tools
- dependency-name: org.sonatype.central:central-publishing-maven-plugin
  dependency-version: 0.9.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build-tools
- dependency-name: org.apache.maven.plugins:maven-javadoc-plugin
  dependency-version: 3.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build-tools
- dependency-name: org.codehaus.mojo:license-maven-plugin
  dependency-version: 2.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build-tools
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-01 02:33:13 +00:00
Tim Donohue
6ac823d29a Merge pull request #11358 from DSpace/backport-11330-to-dspace-7_x
[Port dspace-7_x] Fix (#9694): Change Solr dynamic field *.year to *_year
2025-09-30 17:29:57 -05:00
JohnnyMendesC
0246588ab5 Fix (#9694): Change Solr dynamic field *.year to *_year
(cherry picked from commit 9fc163fbda)
2025-09-30 21:44:34 +00:00
Tim Donohue
190b908a8a Merge pull request #11355 from DSpace/backport-11328-to-dspace-7_x
[Port dspace-7_x] Fix Hibernate syntax bug in the CollectionDAO
2025-09-30 16:38:57 -05:00
nwoodward
f8ac04b591 lint fixes
(cherry picked from commit b8812aad45)
2025-09-30 21:07:21 +00:00
nwoodward
23cd582801 fix hibernate syntax bug
(cherry picked from commit d9cbb96655)
2025-09-30 21:07:21 +00:00
Tim Donohue
c100eb2567 Merge pull request #11344 from tdonohue/port_11341_to_7x
[Port dspace-7_x] [GitHub Actions] Decrease cache size of our Docker images in GitHub Actions
2025-09-23 16:39:24 -05:00
Tim Donohue
de50420624 Change to "mode=min" in order to minimize our cache size for Docker images 2025-09-23 15:54:55 -05:00
Tim Donohue
988a67d8fe Merge pull request #11338 from DSpace/backport-11337-to-dspace-7_x
[Port dspace-7_x] Remove ratingreviewaction in workflow-actions.xml
2025-09-23 15:09:35 -05:00
Sascha Szott
7a95781068 remove ratingreviewaction in test context
(cherry picked from commit ddccb342d6)
2025-09-23 18:47:37 +00:00
Sascha Szott
cad7e9397b remove ratingreviewaction bean in workflow-actions.xml
(cherry picked from commit 770ab0ca79)
2025-09-23 18:47:36 +00:00
Tim Donohue
f84ddb541d Merge pull request #11318 from tdonohue/port_11261_to_7x
[Port dspace-7_x] Fix/11033 solr logging thumbnail download stats
2025-09-12 16:14:56 -05:00
Tim Donohue
45fa8277d8 Merge pull request #11312 from DSpace/backport-10756-to-dspace-7_x
[Port dspace-7_x] The subscription sends an email with `No items` however there are changes in the collection
2025-09-12 15:58:40 -05:00
JohnnyMendesC
d4c826d871 fix(#11033): Prevent logging of ignored bundles in Solr stats 2025-09-12 15:03:15 -05:00
jm
ee5093b6a6 Fixed https://github.com/DSpace/DSpace/issues/10754 by setting the context user to the current subscriber
(cherry picked from commit 6275d3b756)
2025-09-12 19:25:41 +00:00
Tim Donohue
e672be5eaa Merge pull request #11309 from DSpace/backport-10555-to-dspace-7_x
[Port dspace-7_x] Fix sort order in AbstractHibernateDAO findByX
2025-09-12 13:52:27 -05:00
abhinav
fcde7489d3 Added a test case to verify the sort
(cherry picked from commit 989d930417)
2025-09-12 17:30:09 +00:00
abhinav
4402847f38 129616: Added order by
(cherry picked from commit cc6520bfbb)
2025-09-12 17:30:09 +00:00
Tim Donohue
a180a257cd Merge pull request #11305 from DSpace/backport-11253-to-dspace-7_x
[Port dspace-7_x] Add ORCID document type
2025-09-11 13:56:24 -05:00
Pierre Lasou
467e42ca27 Add ORCID document type
Addiing new mappings between ORCID document type and DSpace default type.

(cherry picked from commit e213f5b305)
2025-09-11 15:59:20 +00:00
Tim Donohue
13c6835656 Merge pull request #11302 from DSpace/backport-10929-to-dspace-7_x
[Port dspace-7_x] Fix SAF Import Open connection leak
2025-09-10 15:50:31 -05:00
Tim Donohue
f700c37a73 Merge pull request #11299 from DSpace/backport-11263-to-dspace-7_x
[Port dspace-7_x] Add familyName and givenName when creating profile author and fix EPe…
2025-09-10 15:49:47 -05:00
Nathan Buckingham
0902db21eb 132206: Saf Imports close connections
(cherry picked from commit 35135c80ae)
2025-09-10 19:32:40 +00:00
Jesiel Viana
11ba34b1fd Add familyName and givenName when creating profile author and fix EPerson#getName
(cherry picked from commit df0dd01776)
2025-09-10 19:22:58 +00:00
Tim Donohue
936cb3c101 Merge pull request #11227 from DSpace/dependabot/maven/dspace-7_x/io.grpc-grpc-context-1.75.0
Bump io.grpc:grpc-context from 1.74.0 to 1.75.0
2025-09-10 09:50:25 -05:00
Tim Donohue
7c7bbeadc5 Merge pull request #11235 from DSpace/dependabot/maven/dspace-7_x/org.ehcache-ehcache-3.11.1
Bump org.ehcache:ehcache from 3.10.8 to 3.11.1
2025-09-10 09:48:33 -05:00
Tim Donohue
5e3c57a920 Merge pull request #11276 from DSpace/dependabot/maven/dspace-7_x/com.amazonaws-aws-java-sdk-s3-1.12.791
Bump com.amazonaws:aws-java-sdk-s3 from 1.12.788 to 1.12.791
2025-09-10 09:40:49 -05:00
Tim Donohue
beb5a096ab Merge pull request #11275 from DSpace/dependabot/maven/dspace-7_x/com.github.spotbugs-spotbugs-maven-plugin-4.9.4.2
Bump com.github.spotbugs:spotbugs-maven-plugin from 4.9.4.0 to 4.9.4.2
2025-09-09 17:10:17 -05:00
Tim Donohue
73a0316f99 Merge pull request #11237 from DSpace/dependabot/maven/dspace-7_x/net.minidev-json-smart-2.6.0
Bump net.minidev:json-smart from 2.5.2 to 2.6.0
2025-09-09 17:06:38 -05:00
Tim Donohue
257dc13d32 Merge pull request #11274 from DSpace/dependabot/maven/dspace-7_x/test-tools-7b258dae6a
Bump the test-tools group with 6 updates
2025-09-09 17:03:06 -05:00
Tim Donohue
dfa38c90df Merge pull request #11295 from DSpace/backport-11170-to-dspace-7_x
[Port dspace-7_x] DS-3796 Fix dates for Not to be processed checker-emailer report
2025-09-09 16:48:05 -05:00
Miika Nurminen
cd62cac431 DS-3796 Fix dates for Not to be processed checker-emailer report
Based on 86de8c74a7 (ResultTypeInDateRange dates have already been fixed in upstream).

(cherry picked from commit fac888793c)
2025-09-09 21:14:21 +00:00
dependabot[bot]
847904cadb Bump com.amazonaws:aws-java-sdk-s3 from 1.12.788 to 1.12.791
Bumps [com.amazonaws:aws-java-sdk-s3](https://github.com/aws/aws-sdk-java) from 1.12.788 to 1.12.791.
- [Changelog](https://github.com/aws/aws-sdk-java/blob/master/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-java/compare/1.12.788...1.12.791)

---
updated-dependencies:
- dependency-name: com.amazonaws:aws-java-sdk-s3
  dependency-version: 1.12.791
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 20:35:21 +00:00
dependabot[bot]
127770219b Bump com.github.spotbugs:spotbugs-maven-plugin from 4.9.4.0 to 4.9.4.2
Bumps [com.github.spotbugs:spotbugs-maven-plugin](https://github.com/spotbugs/spotbugs-maven-plugin) from 4.9.4.0 to 4.9.4.2.
- [Release notes](https://github.com/spotbugs/spotbugs-maven-plugin/releases)
- [Commits](https://github.com/spotbugs/spotbugs-maven-plugin/compare/spotbugs-maven-plugin-4.9.4.0...spotbugs-maven-plugin-4.9.4.2)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-maven-plugin
  dependency-version: 4.9.4.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 20:34:23 +00:00
dependabot[bot]
98e89caa35 Bump the test-tools group with 6 updates
Bumps the test-tools group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [io.netty:netty-buffer](https://github.com/netty/netty) | `4.2.4.Final` | `4.2.6.Final` |
| [io.netty:netty-transport](https://github.com/netty/netty) | `4.2.4.Final` | `4.2.6.Final` |
| [io.netty:netty-transport-native-unix-common](https://github.com/netty/netty) | `4.2.4.Final` | `4.2.6.Final` |
| [io.netty:netty-common](https://github.com/netty/netty) | `4.2.4.Final` | `4.2.6.Final` |
| [io.netty:netty-handler](https://github.com/netty/netty) | `4.2.4.Final` | `4.2.6.Final` |
| [io.netty:netty-codec](https://github.com/netty/netty) | `4.2.4.Final` | `4.2.6.Final` |


Updates `io.netty:netty-buffer` from 4.2.4.Final to 4.2.6.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.2.4.Final...netty-4.2.6.Final)

Updates `io.netty:netty-transport` from 4.2.4.Final to 4.2.6.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.2.4.Final...netty-4.2.6.Final)

Updates `io.netty:netty-transport-native-unix-common` from 4.2.4.Final to 4.2.6.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.2.4.Final...netty-4.2.6.Final)

Updates `io.netty:netty-common` from 4.2.4.Final to 4.2.6.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.2.4.Final...netty-4.2.6.Final)

Updates `io.netty:netty-handler` from 4.2.4.Final to 4.2.6.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.2.4.Final...netty-4.2.6.Final)

Updates `io.netty:netty-codec` from 4.2.4.Final to 4.2.6.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.2.4.Final...netty-4.2.6.Final)

---
updated-dependencies:
- dependency-name: io.netty:netty-buffer
  dependency-version: 4.2.6.Final
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-transport
  dependency-version: 4.2.6.Final
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-transport-native-unix-common
  dependency-version: 4.2.6.Final
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-common
  dependency-version: 4.2.6.Final
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-handler
  dependency-version: 4.2.6.Final
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-codec
  dependency-version: 4.2.6.Final
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 20:33:03 +00:00
Tim Donohue
a063a7a4f6 Merge pull request #11273 from tdonohue/port_11171_to_7x
[Port dspace-7_x] Error in file upload after security fixes
2025-09-08 13:23:38 -05:00
Stefano Maffei
7dd2b5318b [CST-21947] fix security fix 2025-09-08 12:17:59 -05:00
Tim Donohue
29b3ba9c57 Merge pull request #11269 from tdonohue/port_11268_to_7x
[Port dspace-7_x] fix(#11191): Align Content-Disposition with RFC 5987/6266
2025-09-05 17:30:08 -05:00
Tim Donohue
568fdab395 Merge pull request #11264 from DSpace/backport-11245-to-dspace-7_x
[Port dspace-7_x] AIP Packager bitstream URL fix
2025-09-05 16:57:27 -05:00
JohnnyMendesC
fe4077acee fix(#11191): Align Content-Disposition with RFC 5987/6266 2025-09-05 16:55:45 -05:00
Kristof De Langhe
cbecc64a5a 133552: unused import
(cherry picked from commit 93240941d3)
2025-09-05 21:18:54 +00:00
Kristof De Langhe
5ed0b28a36 133552: AIP packager bitstream url fix
(cherry picked from commit 11da562ea4)
2025-09-05 21:18:54 +00:00
Tim Donohue
54a6011e60 Merge pull request #11257 from DSpace/backport-10142-to-dspace-7_x
[Port dspace-7_x] DS-10133: make several usage statistics parameters configurable
2025-09-04 12:03:46 -05:00
nwoodward
be9d2bd2bf make several usage statistics parameters configurable
(cherry picked from commit cd57985934)
2025-09-04 14:31:45 +00:00
Tim Donohue
e4d058f1c9 Merge pull request #11251 from DSpace/backport-11174-to-dspace-7_x
[Port dspace-7_x] Fix #11074 export simple archive format when item has no collection
2025-09-03 15:47:29 -05:00
Tim Donohue
603f638174 Merge pull request #11247 from DSpace/backport-11200-to-dspace-7_x
[Port dspace-7_x] Fix database connection leak on failed login attempts
2025-09-03 14:51:14 -05:00
Martin Walk
66fc49800d Fix #11074 export simple archive format with no collection
(cherry picked from commit d282f92427)
2025-09-03 19:46:19 +00:00
Alexandre Vryghem
376f49e99b 133421: Removed database connection leak on unsuccessful login
(cherry picked from commit 0b0c9fc84c)
2025-09-03 19:09:02 +00:00
Tim Donohue
4dedd1b66f Merge pull request #11242 from DSpace/backport-11195-to-dspace-7_x
[Port dspace-7_x] Implement logging for index out-of-range in MetadataValueRemovePatchOperation
2025-09-02 15:10:25 -05:00
Sascha Szott
8f4a3f963a Implement logging for index out-of-range
Add logging for out-of-range index when removing metadata values.

(cherry picked from commit 7692b02b12)
2025-09-02 19:34:30 +00:00
Tim Donohue
cc35141661 Merge pull request #11226 from DSpace/dependabot/maven/dspace-7_x/build-tools-e11e9b5c2b
Bump the build-tools group with 3 updates
2025-09-02 13:01:34 -05:00
Tim Donohue
fd1aa013a7 Merge pull request #11233 from DSpace/dependabot/maven/dspace-7_x/apache-commons-4538dd79bf
Bump commons-cli:commons-cli from 1.9.0 to 1.10.0 in the apache-commons group
2025-09-02 10:51:10 -05:00
Tim Donohue
3721d231b3 Merge pull request #11234 from DSpace/dependabot/maven/dspace-7_x/jetty.version-9.4.58.v20250814
Bump jetty.version from 9.4.57.v20241219 to 9.4.58.v20250814
2025-09-02 10:48:42 -05:00
Tim Donohue
45b677c20e Merge pull request #11223 from DSpace/dependabot/maven/dspace-7_x/test-tools-2cb88a00ef
Bump the test-tools group with 6 updates
2025-09-02 10:47:02 -05:00
dependabot[bot]
ccf253ddda Bump net.minidev:json-smart from 2.5.2 to 2.6.0
Bumps [net.minidev:json-smart](https://github.com/netplex/json-smart-v2) from 2.5.2 to 2.6.0.
- [Release notes](https://github.com/netplex/json-smart-v2/releases)
- [Commits](https://github.com/netplex/json-smart-v2/compare/2.5.2...v2.6.0)

---
updated-dependencies:
- dependency-name: net.minidev:json-smart
  dependency-version: 2.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-01 06:01:09 +00:00
dependabot[bot]
2c34dde3a8 Bump org.ehcache:ehcache from 3.10.8 to 3.11.1
Bumps [org.ehcache:ehcache](https://github.com/ehcache/ehcache3) from 3.10.8 to 3.11.1.
- [Release notes](https://github.com/ehcache/ehcache3/releases)
- [Commits](https://github.com/ehcache/ehcache3/compare/v3.10.8...v3.11.1)

---
updated-dependencies:
- dependency-name: org.ehcache:ehcache
  dependency-version: 3.11.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-01 06:00:09 +00:00
dependabot[bot]
13982618df Bump jetty.version from 9.4.57.v20241219 to 9.4.58.v20250814
Bumps `jetty.version` from 9.4.57.v20241219 to 9.4.58.v20250814.

Updates `org.eclipse.jetty:jetty-server` from 9.4.57.v20241219 to 9.4.58.v20250814

Updates `org.eclipse.jetty:jetty-alpn-java-server` from 9.4.57.v20241219 to 9.4.58.v20250814

Updates `org.eclipse.jetty:jetty-deploy` from 9.4.57.v20241219 to 9.4.58.v20250814

Updates `org.eclipse.jetty:jetty-http` from 9.4.57.v20241219 to 9.4.58.v20250814

Updates `org.eclipse.jetty:jetty-io` from 9.4.57.v20241219 to 9.4.58.v20250814

Updates `org.eclipse.jetty:jetty-servlet` from 9.4.57.v20241219 to 9.4.58.v20250814

Updates `org.eclipse.jetty:jetty-servlets` from 9.4.57.v20241219 to 9.4.58.v20250814

Updates `org.eclipse.jetty:jetty-util` from 9.4.57.v20241219 to 9.4.58.v20250814

Updates `org.eclipse.jetty:jetty-webapp` from 9.4.57.v20241219 to 9.4.58.v20250814

Updates `org.eclipse.jetty:jetty-xml` from 9.4.57.v20241219 to 9.4.58.v20250814

Updates `org.eclipse.jetty.http2:http2-common` from 9.4.57.v20241219 to 9.4.58.v20250814

Updates `org.eclipse.jetty.http2:http2-server` from 9.4.57.v20241219 to 9.4.58.v20250814

---
updated-dependencies:
- dependency-name: org.eclipse.jetty:jetty-server
  dependency-version: 9.4.58.v20250814
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.eclipse.jetty:jetty-alpn-java-server
  dependency-version: 9.4.58.v20250814
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.eclipse.jetty:jetty-deploy
  dependency-version: 9.4.58.v20250814
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.eclipse.jetty:jetty-http
  dependency-version: 9.4.58.v20250814
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.eclipse.jetty:jetty-io
  dependency-version: 9.4.58.v20250814
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.eclipse.jetty:jetty-servlet
  dependency-version: 9.4.58.v20250814
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.eclipse.jetty:jetty-servlets
  dependency-version: 9.4.58.v20250814
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.eclipse.jetty:jetty-util
  dependency-version: 9.4.58.v20250814
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.eclipse.jetty:jetty-webapp
  dependency-version: 9.4.58.v20250814
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.eclipse.jetty:jetty-xml
  dependency-version: 9.4.58.v20250814
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.eclipse.jetty.http2:http2-common
  dependency-version: 9.4.58.v20250814
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.eclipse.jetty.http2:http2-server
  dependency-version: 9.4.58.v20250814
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-01 05:53:13 +00:00
dependabot[bot]
cf3f8e9bb2 Bump commons-cli:commons-cli in the apache-commons group
Bumps the apache-commons group with 1 update: [commons-cli:commons-cli](https://github.com/apache/commons-cli).


Updates `commons-cli:commons-cli` from 1.9.0 to 1.10.0
- [Changelog](https://github.com/apache/commons-cli/blob/master/RELEASE-NOTES.txt)
- [Commits](https://github.com/apache/commons-cli/compare/rel/commons-cli-1.9.0...rel/commons-cli-1.10.0)

---
updated-dependencies:
- dependency-name: commons-cli:commons-cli
  dependency-version: 1.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: apache-commons
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-01 05:51:23 +00:00
dependabot[bot]
9bef7b58d6 Bump io.grpc:grpc-context from 1.74.0 to 1.75.0
Bumps [io.grpc:grpc-context](https://github.com/grpc/grpc-java) from 1.74.0 to 1.75.0.
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.74.0...v1.75.0)

---
updated-dependencies:
- dependency-name: io.grpc:grpc-context
  dependency-version: 1.75.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-01 05:45:53 +00:00
dependabot[bot]
b78f570dbf Bump the build-tools group with 3 updates
Bumps the build-tools group with 3 updates: [com.github.spotbugs:spotbugs](https://github.com/spotbugs/spotbugs), [com.github.spotbugs:spotbugs-maven-plugin](https://github.com/spotbugs/spotbugs-maven-plugin) and [org.apache.maven.plugins:maven-javadoc-plugin](https://github.com/apache/maven-javadoc-plugin).


Updates `com.github.spotbugs:spotbugs` from 4.9.3 to 4.9.4
- [Release notes](https://github.com/spotbugs/spotbugs/releases)
- [Changelog](https://github.com/spotbugs/spotbugs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/spotbugs/spotbugs/compare/4.9.3...4.9.4)

Updates `com.github.spotbugs:spotbugs-maven-plugin` from 4.9.3.2 to 4.9.4.0
- [Release notes](https://github.com/spotbugs/spotbugs-maven-plugin/releases)
- [Commits](https://github.com/spotbugs/spotbugs-maven-plugin/compare/spotbugs-maven-plugin-4.9.3.2...spotbugs-maven-plugin-4.9.4.0)

Updates `org.apache.maven.plugins:maven-javadoc-plugin` from 3.11.2 to 3.11.3
- [Release notes](https://github.com/apache/maven-javadoc-plugin/releases)
- [Commits](https://github.com/apache/maven-javadoc-plugin/compare/maven-javadoc-plugin-3.11.2...maven-javadoc-plugin-3.11.3)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs
  dependency-version: 4.9.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build-tools
- dependency-name: com.github.spotbugs:spotbugs-maven-plugin
  dependency-version: 4.9.4.0
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build-tools
- dependency-name: org.apache.maven.plugins:maven-javadoc-plugin
  dependency-version: 3.11.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build-tools
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-01 05:44:48 +00:00
dependabot[bot]
103d7f754a Bump the test-tools group with 6 updates
Bumps the test-tools group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [io.netty:netty-buffer](https://github.com/netty/netty) | `4.2.3.Final` | `4.2.4.Final` |
| [io.netty:netty-transport](https://github.com/netty/netty) | `4.2.3.Final` | `4.2.4.Final` |
| [io.netty:netty-transport-native-unix-common](https://github.com/netty/netty) | `4.2.3.Final` | `4.2.4.Final` |
| [io.netty:netty-common](https://github.com/netty/netty) | `4.2.3.Final` | `4.2.4.Final` |
| [io.netty:netty-handler](https://github.com/netty/netty) | `4.2.3.Final` | `4.2.4.Final` |
| [io.netty:netty-codec](https://github.com/netty/netty) | `4.2.3.Final` | `4.2.4.Final` |


Updates `io.netty:netty-buffer` from 4.2.3.Final to 4.2.4.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.2.3.Final...netty-4.2.4.Final)

Updates `io.netty:netty-transport` from 4.2.3.Final to 4.2.4.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.2.3.Final...netty-4.2.4.Final)

Updates `io.netty:netty-transport-native-unix-common` from 4.2.3.Final to 4.2.4.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.2.3.Final...netty-4.2.4.Final)

Updates `io.netty:netty-common` from 4.2.3.Final to 4.2.4.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.2.3.Final...netty-4.2.4.Final)

Updates `io.netty:netty-handler` from 4.2.3.Final to 4.2.4.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.2.3.Final...netty-4.2.4.Final)

Updates `io.netty:netty-codec` from 4.2.3.Final to 4.2.4.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.2.3.Final...netty-4.2.4.Final)

---
updated-dependencies:
- dependency-name: io.netty:netty-buffer
  dependency-version: 4.2.4.Final
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-transport
  dependency-version: 4.2.4.Final
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-transport-native-unix-common
  dependency-version: 4.2.4.Final
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-common
  dependency-version: 4.2.4.Final
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-handler
  dependency-version: 4.2.4.Final
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-codec
  dependency-version: 4.2.4.Final
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-01 05:44:10 +00:00
Tim Donohue
ff0ebea316 Merge pull request #11188 from DSpace/backport-11160-to-dspace-7_x
[Port dspace-7_x] fix(#8852): Statistics event processor now uses oaiPrefix instead of getHost
2025-08-21 16:56:25 -05:00
JohnnyMendesC
f831acf4d7 fix(#8852): Statistics event processor now uses oaiPrefix instead of getHost
(cherry picked from commit c8fe80c22b)
2025-08-21 21:15:20 +00:00
Tim Donohue
21343d3158 Merge pull request #11184 from DSpace/backport-11161-to-dspace-7_x
[Port dspace-7_x] dspace-api/pom.xml: remove build-helper-maven-plugin
2025-08-21 08:54:54 -05:00
Tim Donohue
abc238cdd0 Merge pull request #11183 from tdonohue/port_11168_to_7x
[Port dspace-7_x] Fix bean initialization with citation-page.enabled_communities
2025-08-21 08:46:31 -05:00
Alan Orth
922109b10a dspace-api/pom.xml: remove build-helper-maven-plugin
Remove the org.codehaus.mojo:build-helper-maven-plugin because the
`maven-version` property has been included by maven itself since
version 3.0.4. This fixes the following warning during build:

    [INFO] --- build-helper:3.6.1:maven-version (default) @ dspace-api ---
    [WARNING]  Goal 'maven-version' is deprecated: Maven since version 3.0.4 has such property build in: MNG-4112 <https://issues.apache.org/jira/browse/MNG-4112>. So goal can be removed.

(cherry picked from commit de3170d4eb)
2025-08-21 13:20:36 +00:00
Tim Donohue
23150bc89a Merge pull request #11180 from tdonohue/port-11166-to-7x
[Port dspace-7_x] .github/workflows/codescan.yml: use codeql-action v3
2025-08-20 17:15:35 -05:00
Miika Nurminen
e51a2537ac Fix bean initialization error on Tomcat startup if citation-page.enabled_communities is set
Arrays.asList produces non-mutable list but with communities, sub-collections are added dynamically on initializaion.
2025-08-20 17:05:46 -05:00
Alan Orth
94a1a0b2e0 .github/workflows/codescan.yml: use codeql-action v3
Version 2 was deprecated in January, 2024 after the release of v3.

See: https://github.blog/changelog/2025-01-10-code-scanning-codeql-action-v2-is-now-deprecated/
2025-08-20 16:30:23 -05:00
Tim Donohue
71af1503ae Merge pull request #11175 from DSpace/backport-11156-to-dspace-7_x
[Port dspace-7_x] Metadata import empty collection column check
2025-08-20 16:28:23 -05:00
Joran De Braekeleer
d063f1ef66 133268: Metadata import empty collection col check
(cherry picked from commit b9513228d7)
2025-08-20 20:50:47 +00:00
kshepherd
be3702f419 Merge pull request #11151 from DSpace/backport-11150-to-dspace-7_x
[Port dspace-7_x] Fix for #9589 Incorrect Export of Search Results with Double Quotation Marks in DSpace 7. Reference PR #10103
2025-08-12 18:10:49 +02:00
im-shubham-vish
aa0fe083a6 Make parse protected to make it override in MetadataExportSearch Add Test for Double Quoted Search CSV Export
(cherry picked from commit 39a45f7f34)
2025-08-12 14:36:37 +00:00
Tim Donohue
38dd432feb Merge pull request #11143 from DSpace/backport-10508-to-dspace-7_x
[Port dspace-7_x] Fix checkpointing for DSpace "checker" command
2025-08-06 16:30:25 -05:00
Tim Donohue
bce865f299 Revert to using java.util.Date instead of Instant to support earlier versions of DSpace. 2025-08-06 15:10:41 -05:00
David P. Steelman
558f0c7bea Fix checkpointing for checksum checking
Fixes the checkpointing for checksum checking by actually committing
the changes to the database.

Replacing "uncacheEntity" with "commit", as testing has shown that this
is necessary to ensure that the checksum status is properly updated in
the most_recent_checksum" table when checksum process is interrupted.

The provided integration test fails if the checksums of bitstreams that
were checked before the interruption are not properly recorded in the
database.

(cherry picked from commit 502b655ef6)
2025-08-06 19:43:04 +00:00
Tim Donohue
eec374a7c5 Merge pull request #11140 from DSpace/backport-11138-to-dspace-7_x
[Port dspace-7_x] FIX uses dc.source for bitstream originalName tag
2025-08-06 14:14:15 -05:00
Tim Donohue
375c0aee1c Merge pull request #11135 from DSpace/backport-11131-to-dspace-7_x
[Port dspace-7_x] Enhance SWORDv1 Integration Tests & fix WRITE Permissions error for submitters
2025-08-06 14:09:11 -05:00
Vincenzo Mecca
56b38bb26d fix: uses dc.source for bitstream originalName tag
Refs: DURACOM-391, #1130
(cherry picked from commit f5c0c17c66)
2025-08-06 18:37:42 +00:00
Tim Donohue
e4f9e90394 Merge pull request #11134 from the-library-code/orcid-identifier-fix-7x_backport
[Port dspace-7_x] ORCID Push: Fix SELF and PART_OF external identifier handling
2025-08-06 13:32:54 -05:00
Tim Donohue
05af860553 getContentAsByteArray() didn't exist in Spring 5. Use readAllBytes() from InputStream instead. 2025-08-06 12:19:14 -05:00
Tim Donohue
ea6e025519 Fix WRITE permissions error when ingesting a new Item. Do not call "updateDSpaceObject" after calling "finishCreateItem" as the latter saves the object and removes submitter privileges from it.
(cherry picked from commit c2d05891ab)
2025-08-06 16:33:00 +00:00
Tim Donohue
b8cbaa053d Add a deposit integration test for SWORDv1 based on the similar SWORDv2 test.
(cherry picked from commit 0589011849)
2025-08-06 16:33:00 +00:00
Kim Shepherd
af654e57f2 [TLC-1097] Additional javadoc for ORCID sync fix 2025-08-06 17:26:12 +02:00
Kim Shepherd
3bca2164be [TLC-1097] ORCID external identifier sync fix
Handle SELF and PART_OF identifiers properly based on
configuration, work type, and identifier type
2025-08-06 17:25:57 +02:00
Tim Donohue
389269e958 Merge pull request #11123 from DSpace/backport-10490-to-dspace-7_x
[Port dspace-7_x] Fix checkpointing for bitstore migration
2025-07-31 16:24:12 -05:00
David P. Steelman
2d353ea995 Fix checkpointing for bitstore migration
Fixes the checkpointing for bitstore migration by actually committing
the changes to the database.

Replacing "dispatchEvents" with "commit" as testing has shown that this
is necessary to ensure that the status of bitstreams is properly
updated when the bitstore migration is interrupted.

The provided integration tests fail if bitstreams successfully migrated
before the interruption are not properly recorded in the database as
being in the destination assetstore.

(cherry picked from commit 3d7c45852d)
2025-07-31 20:52:41 +00:00
Tim Donohue
e0dd7454a4 Merge pull request #11116 from DSpace/dependabot/maven/dspace-7_x/apache-commons-cb46d7dc0f
Bump org.apache.commons:commons-compress from 1.27.1 to 1.28.0 in the apache-commons group
2025-07-31 08:47:43 -05:00
Tim Donohue
7153efe412 Merge pull request #11119 from DSpace/dependabot/maven/dspace-7_x/com.github.spotbugs-spotbugs-maven-plugin-4.9.3.2
Bump com.github.spotbugs:spotbugs-maven-plugin from 4.9.3.0 to 4.9.3.2
2025-07-30 17:08:55 -05:00
Tim Donohue
0a3733db95 Merge pull request #11121 from DSpace/dependabot/maven/dspace-7_x/io.grpc-grpc-context-1.74.0
Bump io.grpc:grpc-context from 1.73.0 to 1.74.0
2025-07-30 15:42:04 -05:00
Tim Donohue
ee45f736cd Merge pull request #11113 from tdonohue/port_11111_to_7x
[Port dspace-7_x] Ensure DSpace defaults to UTC time zone in all code / tests
2025-07-30 14:13:10 -05:00
dependabot[bot]
808135f688 Bump io.grpc:grpc-context from 1.73.0 to 1.74.0
Bumps [io.grpc:grpc-context](https://github.com/grpc/grpc-java) from 1.73.0 to 1.74.0.
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.73.0...v1.74.0)

---
updated-dependencies:
- dependency-name: io.grpc:grpc-context
  dependency-version: 1.74.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-30 18:42:52 +00:00
dependabot[bot]
1ecb5660f8 Bump com.github.spotbugs:spotbugs-maven-plugin from 4.9.3.0 to 4.9.3.2
Bumps [com.github.spotbugs:spotbugs-maven-plugin](https://github.com/spotbugs/spotbugs-maven-plugin) from 4.9.3.0 to 4.9.3.2.
- [Release notes](https://github.com/spotbugs/spotbugs-maven-plugin/releases)
- [Commits](https://github.com/spotbugs/spotbugs-maven-plugin/compare/spotbugs-maven-plugin-4.9.3.0...spotbugs-maven-plugin-4.9.3.2)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-maven-plugin
  dependency-version: 4.9.3.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-30 18:41:59 +00:00
dependabot[bot]
6282cb9f12 Bump org.apache.commons:commons-compress in the apache-commons group
Bumps the apache-commons group with 1 update: [org.apache.commons:commons-compress](https://github.com/apache/commons-compress).


Updates `org.apache.commons:commons-compress` from 1.27.1 to 1.28.0
- [Changelog](https://github.com/apache/commons-compress/blob/master/RELEASE-NOTES.txt)
- [Commits](https://github.com/apache/commons-compress/compare/rel/commons-compress-1.27.1...rel/commons-compress-1.28.0)

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-compress
  dependency-version: 1.28.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: apache-commons
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-30 18:40:38 +00:00
Tim Donohue
2b2d0b19b6 Ensure DSpace defaults to UTC time zone in all code / tests. This is necessary so that Spring / Hibernate don't auto-switch timezones when reading from database. 2025-07-30 12:08:23 -05:00
Tim Donohue
77f07a735b Merge pull request #11105 from tdonohue/port_11077_to_7x
[Port dspace-7_x] Add basic logging tests to our docker deployment script in GitHub actions
2025-07-29 10:14:54 -05:00
Tim Donohue
613ef1dc62 Merge pull request #11067 from kshepherd/log4j_it
Simple Log4j tests with in-memory log appender
2025-07-29 09:14:59 -05:00
Tim Donohue
5e3463bd8b Add tests for backend logging to docker deployment tests 2025-07-29 09:11:36 -05:00
Tim Donohue
e3c64906de Merge pull request #11088 from DSpace/dependabot/maven/dspace-7_x/org.apache.james-apache-mime4j-core-0.8.13
Bump org.apache.james:apache-mime4j-core from 0.8.12 to 0.8.13
2025-07-28 16:33:12 -05:00
Tim Donohue
8c79201da3 Merge pull request #10976 from DSpace/dependabot/maven/dspace-7_x/google-apis-d482fb5384
Bump the google-apis group with 3 updates
2025-07-28 16:30:14 -05:00
Tim Donohue
c22583e892 Merge pull request #11005 from DSpace/dependabot/maven/dspace-7_x/build-tools-4f2f951df2
Bump the build-tools group across 1 directory with 2 updates
2025-07-28 15:52:14 -05:00
dependabot[bot]
af38697ade Bump the build-tools group across 1 directory with 2 updates
Bumps the build-tools group with 2 updates in the / directory: [org.apache.maven.plugins:maven-enforcer-plugin](https://github.com/apache/maven-enforcer) and [org.codehaus.mojo:license-maven-plugin](https://github.com/mojohaus/license-maven-plugin).


Updates `org.apache.maven.plugins:maven-enforcer-plugin` from 3.5.0 to 3.6.0
- [Release notes](https://github.com/apache/maven-enforcer/releases)
- [Commits](https://github.com/apache/maven-enforcer/compare/enforcer-3.5.0...enforcer-3.6.0)

Updates `org.codehaus.mojo:license-maven-plugin` from 2.5.0 to 2.6.0
- [Release notes](https://github.com/mojohaus/license-maven-plugin/releases)
- [Commits](https://github.com/mojohaus/license-maven-plugin/compare/2.5.0...2.6.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-enforcer-plugin
  dependency-version: 3.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build-tools
- dependency-name: org.codehaus.mojo:license-maven-plugin
  dependency-version: 2.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build-tools
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-28 19:43:25 +00:00
Tim Donohue
ccdbc381c5 Merge pull request #11047 from DSpace/dependabot/maven/dspace-7_x/test-tools-68aaeff8ca
Bump the test-tools group across 1 directory with 7 updates
2025-07-28 14:37:51 -05:00
Tim Donohue
584d70db81 Merge pull request #11100 from mwoodiupui/my-11042-7x
Avoid injection vulnerability in controlled vocabulary lookup 7_x
2025-07-28 14:18:43 -05:00
Mark H. Wood
ceab9526c4 Port #11075 to 7_x 2025-07-28 13:42:28 -04:00
Alan Orth
45c37bcf66 Merge pull request #11089 from DSpace/dependabot/maven/dspace-7_x/com.opencsv-opencsv-5.12.0 2025-07-28 09:30:39 -07:00
Tim Donohue
69a83f0bdd Merge pull request #11049 from DSpace/dependabot/maven/dspace-7_x/com.amazonaws-aws-java-sdk-s3-1.12.788
Bump com.amazonaws:aws-java-sdk-s3 from 1.12.785 to 1.12.788
2025-07-28 08:58:22 -05:00
Tim Donohue
18d53743cd Merge pull request #11087 from DSpace/dependabot/maven/dspace-7_x/apache-commons-7e5b090d5c
Bump the apache-commons group across 1 directory with 5 updates
2025-07-28 08:55:42 -05:00
Tim Donohue
f6f2d5e05c Merge pull request #11050 from DSpace/dependabot/maven/dspace-7_x/fasterxml-d1c1cdfb0c
Bump the fasterxml group with 3 updates
2025-07-28 08:50:51 -05:00
dependabot[bot]
dc65c7a304 Bump com.opencsv:opencsv from 5.11.1 to 5.12.0
Bumps com.opencsv:opencsv from 5.11.1 to 5.12.0.

---
updated-dependencies:
- dependency-name: com.opencsv:opencsv
  dependency-version: 5.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-28 03:39:24 +00:00
dependabot[bot]
de220d55ac Bump org.apache.james:apache-mime4j-core from 0.8.12 to 0.8.13
Bumps org.apache.james:apache-mime4j-core from 0.8.12 to 0.8.13.

---
updated-dependencies:
- dependency-name: org.apache.james:apache-mime4j-core
  dependency-version: 0.8.13
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-28 03:37:58 +00:00
dependabot[bot]
ac81a3d36f Bump the apache-commons group across 1 directory with 5 updates
Bumps the apache-commons group with 5 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [commons-codec:commons-codec](https://github.com/apache/commons-codec) | `1.18.0` | `1.19.0` |
| [commons-io:commons-io](https://github.com/apache/commons-io) | `2.19.0` | `2.20.0` |
| org.apache.commons:commons-lang3 | `3.17.0` | `3.18.0` |
| [org.apache.commons:commons-text](https://github.com/apache/commons-text) | `1.13.1` | `1.14.0` |
| commons-validator:commons-validator | `1.9.0` | `1.10.0` |



Updates `commons-codec:commons-codec` from 1.18.0 to 1.19.0
- [Changelog](https://github.com/apache/commons-codec/blob/master/RELEASE-NOTES.txt)
- [Commits](https://github.com/apache/commons-codec/compare/rel/commons-codec-1.18.0...rel/commons-codec-1.19.0)

Updates `commons-io:commons-io` from 2.19.0 to 2.20.0
- [Changelog](https://github.com/apache/commons-io/blob/master/RELEASE-NOTES.txt)
- [Commits](https://github.com/apache/commons-io/compare/rel/commons-io-2.19.0...rel/commons-io-2.20.0)

Updates `org.apache.commons:commons-lang3` from 3.17.0 to 3.18.0

Updates `org.apache.commons:commons-text` from 1.13.1 to 1.14.0
- [Changelog](https://github.com/apache/commons-text/blob/master/RELEASE-NOTES.txt)
- [Commits](https://github.com/apache/commons-text/compare/rel/commons-text-1.13.1...rel/commons-text-1.14.0)

Updates `commons-validator:commons-validator` from 1.9.0 to 1.10.0

---
updated-dependencies:
- dependency-name: commons-codec:commons-codec
  dependency-version: 1.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: apache-commons
- dependency-name: commons-io:commons-io
  dependency-version: 2.20.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: apache-commons
- dependency-name: org.apache.commons:commons-lang3
  dependency-version: 3.18.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: apache-commons
- dependency-name: org.apache.commons:commons-text
  dependency-version: 1.14.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: apache-commons
- dependency-name: commons-validator:commons-validator
  dependency-version: 1.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: apache-commons
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-28 03:36:02 +00:00
dependabot[bot]
92120211da Bump the test-tools group across 1 directory with 7 updates
---
updated-dependencies:
- dependency-name: org.xmlunit:xmlunit-core
  dependency-version: 2.10.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-buffer
  dependency-version: 4.2.3.Final
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-transport
  dependency-version: 4.2.3.Final
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-transport-native-unix-common
  dependency-version: 4.2.3.Final
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-common
  dependency-version: 4.2.3.Final
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-handler
  dependency-version: 4.2.3.Final
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-codec
  dependency-version: 4.2.3.Final
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-28 02:55:44 +00:00
dependabot[bot]
609062befb Bump the google-apis group with 3 updates
Bumps the google-apis group with 3 updates: [com.google.http-client:google-http-client](https://github.com/googleapis/google-http-java-client), [com.google.http-client:google-http-client-jackson2](https://github.com/googleapis/google-http-java-client) and [com.google.http-client:google-http-client-gson](https://github.com/googleapis/google-http-java-client).


Updates `com.google.http-client:google-http-client` from 1.47.0 to 1.47.1
- [Release notes](https://github.com/googleapis/google-http-java-client/releases)
- [Changelog](https://github.com/googleapis/google-http-java-client/blob/main/CHANGELOG.md)
- [Commits](https://github.com/googleapis/google-http-java-client/compare/v1.47.0...v1.47.1)

Updates `com.google.http-client:google-http-client-jackson2` from 1.47.0 to 1.47.1
- [Release notes](https://github.com/googleapis/google-http-java-client/releases)
- [Changelog](https://github.com/googleapis/google-http-java-client/blob/main/CHANGELOG.md)
- [Commits](https://github.com/googleapis/google-http-java-client/compare/v1.47.0...v1.47.1)

Updates `com.google.http-client:google-http-client-gson` from 1.47.0 to 1.47.1
- [Release notes](https://github.com/googleapis/google-http-java-client/releases)
- [Changelog](https://github.com/googleapis/google-http-java-client/blob/main/CHANGELOG.md)
- [Commits](https://github.com/googleapis/google-http-java-client/compare/v1.47.0...v1.47.1)

---
updated-dependencies:
- dependency-name: com.google.http-client:google-http-client
  dependency-version: 1.47.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: google-apis
- dependency-name: com.google.http-client:google-http-client-jackson2
  dependency-version: 1.47.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: google-apis
- dependency-name: com.google.http-client:google-http-client-gson
  dependency-version: 1.47.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: google-apis
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-28 02:55:24 +00:00
dependabot[bot]
ffd60bf811 Bump the fasterxml group with 3 updates
Bumps the fasterxml group with 3 updates: [com.fasterxml.jackson.core:jackson-annotations](https://github.com/FasterXML/jackson), [com.fasterxml.jackson.core:jackson-core](https://github.com/FasterXML/jackson-core) and [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson).


Updates `com.fasterxml.jackson.core:jackson-annotations` from 2.19.1 to 2.19.2
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-core` from 2.19.1 to 2.19.2
- [Commits](https://github.com/FasterXML/jackson-core/compare/jackson-core-2.19.1...jackson-core-2.19.2)

Updates `com.fasterxml.jackson.core:jackson-core` from 2.19.1 to 2.19.2
- [Commits](https://github.com/FasterXML/jackson-core/compare/jackson-core-2.19.1...jackson-core-2.19.2)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.19.1 to 2.19.2
- [Commits](https://github.com/FasterXML/jackson/commits)

---
updated-dependencies:
- dependency-name: com.fasterxml.jackson.core:jackson-annotations
  dependency-version: 2.19.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: fasterxml
- dependency-name: com.fasterxml.jackson.core:jackson-core
  dependency-version: 2.19.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: fasterxml
- dependency-name: com.fasterxml.jackson.core:jackson-core
  dependency-version: 2.19.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: fasterxml
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: fasterxml
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-28 02:55:08 +00:00
Tim Donohue
695aa673d3 Merge pull request #11071 from tdonohue/port_10356_to_7x
[Port dspace-7_x] Live Import - PubMed - support optional apiKey config
2025-07-23 15:05:28 -05:00
Marie Verdonck
2f66457abe 109807: Live Import - PubMed - support optional apiKey config 2025-07-23 12:41:25 -05:00
Tim Donohue
c061015ecf [maven-release-plugin] prepare for next development iteration 2025-07-22 15:03:08 -05:00
Tim Donohue
6e8b6cc33a [maven-release-plugin] prepare release dspace-7.6.5 2025-07-22 15:03:04 -05:00
Tim Donohue
479cb76885 Minor updates to LICENSES_THIRD_PARTY for 7.6.5 release 2025-07-22 14:42:47 -05:00
Kim Shepherd
588c4ef4d2 Add simple log4j WebappLoggingIT test 2025-07-22 18:12:05 +02:00
Tim Donohue
5f291400b3 Merge pull request #11066 from tdonohue/port_11063_to_7x
[Port dspace-7_x] Fix several unit/integration test failures that only occur on Windows
2025-07-22 09:34:56 -05:00
kshepherd
1bd4da3899 Merge pull request #11028 from DSpace/dependabot/maven/dspace-7_x/log4j.version-2.25.1
Bump log4j.version from 2.25.0 to 2.25.1
2025-07-22 16:23:59 +02:00
Tim Donohue
15b3f314a3 Force UTF-8 encoding in all tests. This fixes several test failures when running tests from Windows commandline because Windows doesn't default to using UTF-8. 2025-07-22 08:59:50 -05:00
Tim Donohue
28686fc48a Improve logging in AbstractLiveImportIntegrationTest (to make tests easier to debug). Replace obscure StringInputStream (from Ant) with IOUtils.toInputStream 2025-07-22 08:59:44 -05:00
Tim Donohue
d2c120bd8b Fix broken tests on Windows by using Paths to split file path instead of regex. Also switch to in-memory s3mock because Windows cannot cleanup created files successfully. 2025-07-22 08:59:39 -05:00
Tim Donohue
39fb2afba1 Update test to no longer assume 127.0.0.1 will always respond with "localhost" as the hostname. On my machine it does not. 2025-07-22 08:59:34 -05:00
dependabot[bot]
5cd3daa379 Bump com.amazonaws:aws-java-sdk-s3 from 1.12.785 to 1.12.788
Bumps [com.amazonaws:aws-java-sdk-s3](https://github.com/aws/aws-sdk-java) from 1.12.785 to 1.12.788.
- [Changelog](https://github.com/aws/aws-sdk-java/blob/master/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-java/compare/1.12.785...1.12.788)

---
updated-dependencies:
- dependency-name: com.amazonaws:aws-java-sdk-s3
  dependency-version: 1.12.788
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-21 02:49:30 +00:00
Tim Donohue
9424ccf4aa [maven-release-plugin] prepare for next development iteration 2025-07-14 12:03:15 -05:00
Tim Donohue
a5f04f9c77 [maven-release-plugin] prepare release dspace-7.6.4 2025-07-14 12:03:12 -05:00
Tim Donohue
f506d18bb1 Merge pull request #11036 from DSpace/backport-11031-to-dspace-7_x
[Port dspace-7_x] Improve SAF manifest path handling
2025-07-14 10:18:06 -05:00
Kim Shepherd
bc17559162 Fix line length in DSBitstore log
(cherry picked from commit dbf524c112)
2025-07-14 14:36:58 +00:00
Kim Shepherd
907b42c2a9 return existing File constructed and validated for bitstream
(cherry picked from commit 31b1c922b2)
2025-07-14 14:36:58 +00:00
Kim Shepherd
b0a4a3400f Enforce bitstream path to be within (fs) bitstore base on get
(cherry picked from commit 6799660a90)
2025-07-14 14:36:58 +00:00
MMilosz
84e308c8f5 fix: prevent path traversal in SAF import
(cherry picked from commit 596d8666f4)
2025-07-14 14:36:58 +00:00
Tim Donohue
91989e5efb Merge pull request #11032 from kshepherd/saf-xml-fix-2_7.x
Improve SAF Import XML handling (7.x)
2025-07-14 09:22:15 -05:00
Kim Shepherd
e9bc74cf6d Fix missing XMLUtils imports 2025-07-14 13:09:43 +02:00
Kim Shepherd
dda6d9ec9d Remove unused imports 2025-07-14 13:07:45 +02:00
Kim Shepherd
45a9f8b530 Re-add file separator to normalized SAF item path 2025-07-14 12:50:32 +02:00
dependabot[bot]
a381611ebd Bump log4j.version from 2.25.0 to 2.25.1
Bumps `log4j.version` from 2.25.0 to 2.25.1.

Updates `org.apache.logging.log4j:log4j-api` from 2.25.0 to 2.25.1

Updates `org.apache.logging.log4j:log4j-core` from 2.25.0 to 2.25.1

Updates `org.apache.logging.log4j:log4j-1.2-api` from 2.25.0 to 2.25.1

---
updated-dependencies:
- dependency-name: org.apache.logging.log4j:log4j-api
  dependency-version: 2.25.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.apache.logging.log4j:log4j-core
  dependency-version: 2.25.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.apache.logging.log4j:log4j-1.2-api
  dependency-version: 2.25.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-14 03:45:03 +00:00
Kim Shepherd
259c3ddd37 Enforce path traversal check on import subdir (pre-processing) 2025-07-13 10:08:30 +02:00
Tim Donohue
d48e22aff5 Update LICENSES_THIRD_PARTY to prepare for 7.6.4 release. 2025-07-11 14:01:37 -05:00
Tim Donohue
4fd3112ebf Merge pull request #10690 from atmire/w2p-119612_export-item-limit-dspace-7_x
[Port dspace-7_x] support a configurable limit for exporting items as it can take a up a huge amount of resources
2025-07-10 13:25:38 -05:00
Kim Shepherd
99b2a630a7 Allow trusted XML builder to enforce base path for entities 2025-07-10 17:22:58 +02:00
Tim Donohue
8c80b67b04 EPO and PubMed only need to allow for DOCTYPEs. All other XML security changes can be used. 2025-07-03 12:49:11 +02:00
Kim Shepherd
f7dcbf1b44 Safe and consistent XML entity handling in parsers 2025-07-03 12:48:47 +02:00
Tim Donohue
a9546055f4 Merge pull request #10998 from DSpace/backport-10997-to-dspace-7_x
[Port dspace-7_x] Point directly to HTTPS address for ArXiv
2025-07-02 13:21:17 -05:00
Yury Bondarenko
8f9a7f1f92 Point directly to HTTPS address for ArXiv
(cherry picked from commit cf0d6635f2)
2025-07-02 16:22:49 +00:00
Tim Donohue
042bf15237 Merge pull request #10994 from tdonohue/port_10986_to_7x
[Port dspace-7_x] Update POM to use Sonatype's Central Portal for Maven Releases
2025-07-01 14:25:05 -05:00
Tim Donohue
76c50ac43e Update POM to use central-publishing-maven-plugin and Sonatype's Central Portal 2025-07-01 12:22:58 -05:00
Tim Donohue
2b9b14501c Merge pull request #9966 from atmire/accessibility-settings-7_x
[Port dspace-7_x] Accessibility settings metadata field
2025-06-30 13:22:15 -05:00
Alan Orth
96ce51ae09 Merge pull request #10914 from DSpace/dependabot/maven/dspace-7_x/fasterxml-4343a5c2e7 2025-06-30 07:00:24 +03:00
dependabot[bot]
66a75f522f Bump the fasterxml group with 3 updates
Bumps the fasterxml group with 3 updates: [com.fasterxml.jackson.core:jackson-annotations](https://github.com/FasterXML/jackson), [com.fasterxml.jackson.core:jackson-core](https://github.com/FasterXML/jackson-core) and [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson).


Updates `com.fasterxml.jackson.core:jackson-annotations` from 2.19.0 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-core` from 2.19.0 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson-core/compare/jackson-core-2.19.0...jackson-core-2.19.1)

Updates `com.fasterxml.jackson.core:jackson-core` from 2.19.0 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson-core/compare/jackson-core-2.19.0...jackson-core-2.19.1)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.19.0 to 2.19.1
- [Commits](https://github.com/FasterXML/jackson/commits)

---
updated-dependencies:
- dependency-name: com.fasterxml.jackson.core:jackson-annotations
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: fasterxml
- dependency-name: com.fasterxml.jackson.core:jackson-core
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: fasterxml
- dependency-name: com.fasterxml.jackson.core:jackson-core
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: fasterxml
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: fasterxml
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-30 02:37:25 +00:00
Tim Donohue
88a1ac08bf Merge pull request #10970 from DSpace/backport-10961-to-dspace-7_x
[Port dspace-7_x] Fix patching metadata on unknown field clears all DSO metadata
2025-06-27 15:03:33 -05:00
Tim Donohue
aac45284d2 Correct metadata value count for dspace-7_x 2025-06-27 14:06:33 -05:00
abhinav
130442746a move the exception to patchUtils
(cherry picked from commit a2dc6fbdf8)
2025-06-27 16:42:45 +00:00
abhinav
934f73f412 Update PatchMetadataIT
(cherry picked from commit 27d59085db)
2025-06-27 16:42:45 +00:00
abhinav
172783691b fix metadata getting cleared on patch request with invalid field
(cherry picked from commit e559af1841)
2025-06-27 16:42:44 +00:00
Tim Donohue
04f443b589 Merge pull request #10896 from mwoodiupui/9733-7
[Port dspace-7_x] filter-media:  make POI record buffer size adjustable.
2025-06-26 16:58:17 -05:00
Tim Donohue
61277b72d9 Merge pull request #10875 from alanorth/malformed-dates-7x
[Port dspace-7_x] dspace-api: improve date parsing for Solr sort indexes
2025-06-26 16:19:22 -05:00
Mark H. Wood
e2e402f0de Merge branch 'dspace-7_x' of github.com:DSpace/DSpace into 9733-7 2025-06-26 13:17:22 -04:00
Mark H. Wood
d0b5911cf6 Make POI record buffer size adjustable. 2025-06-26 13:16:32 -04:00
Alan Orth
27540b93bf Merge pull request #10865 from DSpace/dependabot/maven/dspace-7_x/jersey.version-2.47 2025-06-26 08:38:25 +02:00
Alan Orth
62512bdec8 Merge pull request #10915 from DSpace/dependabot/maven/dspace-7_x/org.postgresql-postgresql-42.7.7 2025-06-26 08:36:07 +02:00
Alan Orth
cd8c277ae5 Merge pull request #10950 from DSpace/dependabot/maven/dspace-7_x/log4j.version-2.25.0 2025-06-26 08:28:03 +02:00
Tim Donohue
9f9d810bea Merge pull request #10952 from max-nuding/backport-10688-to-dspace-7_x
[Port dspace-7_x] Allow collection admins to add new policies for bitstreams
2025-06-25 17:11:11 -05:00
Tim Donohue
57a1de5ecd Update deploy demo.dspace.org branch to 9.x to ensure older branches never trigger a redeploy. 2025-06-25 16:41:48 -05:00
max.nuding
e3b9179482 remove unnecessary code 2025-06-25 10:36:51 +02:00
dependabot[bot]
312416a716 Bump jersey.version from 2.46 to 2.47
Bumps `jersey.version` from 2.46 to 2.47.

Updates `org.glassfish.jersey.core:jersey-client` from 2.46 to 2.47

Updates `org.glassfish.jersey.inject:jersey-hk2` from 2.46 to 2.47

Updates `org.glassfish.jersey.core:jersey-server` from 2.46 to 2.47

Updates `org.glassfish.jersey.containers:jersey-container-servlet` from 2.46 to 2.47

Updates `org.glassfish.jersey.media:jersey-media-json-jackson` from 2.46 to 2.47

Updates `org.glassfish.jersey.media:jersey-media-jaxb` from 2.46 to 2.47

Updates `org.glassfish.jersey.ext:jersey-spring5` from 2.46 to 2.47

---
updated-dependencies:
- dependency-name: org.glassfish.jersey.core:jersey-client
  dependency-version: '2.47'
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.glassfish.jersey.inject:jersey-hk2
  dependency-version: '2.47'
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.glassfish.jersey.core:jersey-server
  dependency-version: '2.47'
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.glassfish.jersey.containers:jersey-container-servlet
  dependency-version: '2.47'
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.glassfish.jersey.media:jersey-media-json-jackson
  dependency-version: '2.47'
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.glassfish.jersey.media:jersey-media-jaxb
  dependency-version: '2.47'
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.glassfish.jersey.ext:jersey-spring5
  dependency-version: '2.47'
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-24 20:24:13 +00:00
dependabot[bot]
8839eefbe7 Bump org.postgresql:postgresql from 42.7.6 to 42.7.7
Bumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.7.6 to 42.7.7.
- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)
- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.7.6...REL42.7.7)

---
updated-dependencies:
- dependency-name: org.postgresql:postgresql
  dependency-version: 42.7.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-24 20:09:59 +00:00
Alan Orth
b594ebbf9e dspace-api: improve date parsing for Solr sort
Re-use DSpace date parsing from o.d.util.MultiFormatDateParser for
more robust date support when creating of Solr browse/sort indexes.
2025-06-24 22:08:07 +02:00
dependabot[bot]
230bf80b5f Bump log4j.version from 2.24.3 to 2.25.0
Bumps `log4j.version` from 2.24.3 to 2.25.0.

Updates `org.apache.logging.log4j:log4j-api` from 2.24.3 to 2.25.0

Updates `org.apache.logging.log4j:log4j-core` from 2.24.3 to 2.25.0

Updates `org.apache.logging.log4j:log4j-1.2-api` from 2.24.3 to 2.25.0

---
updated-dependencies:
- dependency-name: org.apache.logging.log4j:log4j-api
  dependency-version: 2.25.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.apache.logging.log4j:log4j-core
  dependency-version: 2.25.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.apache.logging.log4j:log4j-1.2-api
  dependency-version: 2.25.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-24 20:04:48 +00:00
max.nuding
b8923c986f fix imports for checkstyle 2025-06-24 07:01:56 +02:00
Alan Orth
c587d70a09 Merge pull request #10955 from tdonohue/fix_handle_ITs 2025-06-23 23:09:55 +02:00
Tim Donohue
8a84cba371 Fix broken ITs by removing unnecessary registrations and managing context permissions better 2025-06-23 15:33:50 -05:00
Tim Donohue
973c5f9daa Merge pull request #10918 from tuub/backport-10580-to-dspace-7_x
Backport 10580 to dspace 7 x
2025-06-23 11:54:43 -05:00
max.nuding
61c6e59a06 remove jakarta import 2025-06-23 11:44:22 +02:00
max.nuding
e90f792869 add missing imports 2025-06-23 11:36:52 +02:00
max.nuding
1732285d59 add import for Intstant 2025-06-23 10:12:56 +02:00
Mykhaylo Boychuk
03992be08d [DURACOM-318] remove unused import
(cherry picked from commit ed91462ccd7f99f5cf0dc326ed06ab42c13b80e0)
(cherry picked from commit 8df4e35e76)
2025-06-23 10:06:27 +02:00
Mykhaylo Boychuk
2104d605bd [DURACOM-318] improve code
(cherry picked from commit 8e0ca2e6f88b0251edf8a840f65135590c65f088)
(cherry picked from commit 4270170d40)
2025-06-23 10:06:25 +02:00
Adamo
a24340a197 [DURACOM-318] IT fix
(cherry picked from commit accba0738f)
2025-06-23 10:05:48 +02:00
Mykhaylo Boychuk
de5908725a [DURACOM-318] improve sucurity plugin
(cherry picked from commit b1ce88925ea36e84a77e667a94ae5577b5ee05b6)
(cherry picked from commit e9be8435ec)
2025-06-23 10:05:47 +02:00
Mykhaylo Boychuk
f92e376896 [DURACOM-318] update security annotations on ResourcePolicyRepository
(cherry picked from commit fabcc692db68e5232986ff062e849e4ec5c68c8b)
(cherry picked from commit 95836c271c)
2025-06-23 10:04:04 +02:00
Mykhaylo Boychuk
39def52592 [DURACOM-318] add new ITs for ResourcePolicy
(cherry picked from commit d78d4f00d94ef0d4b147031b075b8df1e8896fe4)
(cherry picked from commit 98c2b99421)
2025-06-23 10:04:01 +02:00
Alan Orth
6337f2fa67 Merge pull request #10838 from DSpace/dependabot/maven/dspace-7_x/bouncycastle.version-1.81 2025-06-17 14:38:05 +03:00
Sascha Szott
07e840b675 removal of configuration file sword-client.cfg 2025-06-16 13:38:06 +02:00
Sascha Szott
34134b3c3b remove inclusion of sword-client.cfg 2025-06-16 13:37:49 +02:00
Alan Orth
309e25e8c8 Merge pull request #10591 from alanorth/port-dspace7-10537
[Port dspace-7_x] Optimize count-only Solr queries
2025-06-13 07:13:37 +03:00
Tim Donohue
bc7a681428 Merge pull request #10883 from DSpace/backport-10583-to-dspace-7_x
[Port dspace-7_x] Introduce custom contributor for PubMed's abstract format on metadata import
2025-06-11 10:00:06 -05:00
Alan Orth
9eef166b7e dspace-api: set search fields in Solr query only if we are interested in the actual search results 2025-06-11 17:18:35 +03:00
Alan Orth
bd753005e6 dspace-api: do not request actual search hits in count-only query 2025-06-11 17:18:35 +03:00
Alan Orth
d9cc564ace dspace-api: use static variable RESOURCE_TYPE_FIELD 2025-06-11 17:18:35 +03:00
DSpace Bot
2abbe67ea6 [Port dspace-7_x] improve robustness of search in index field submit (use filter query) (#10890)
* improve robustness of search in index field submit (use filter query)

(cherry picked from commit a65ef008b7)

* fix checkstyle warnings

(cherry picked from commit 183d5ca671)

* fix checkstyle warning

(cherry picked from commit fe251f39e3)

---------

Co-authored-by: Sascha Szott <szott@gmx.de>
2025-06-11 15:26:49 +03:00
DSpace Bot
2c400bf2da [Port dspace-7_x] Optimization of Solr Queries: Transition to Filter Queries (#10887)
* use filter query instead of generic query

(cherry picked from commit f2417feeca)

* use filter query instead of generic query

(cherry picked from commit d83a2525ad)

* use filter query instead of generic query

(cherry picked from commit f3a976107e)

* remove obsolete comment

(cherry picked from commit 3ee2dbcc56)

* use filter query instead of generic query

(cherry picked from commit 318afc769a)

* add static imports

(cherry picked from commit 8ad19c42df)

* move static import to the top of the import block

(cherry picked from commit b85585c34e)

* move static imports to the top of the import block

(cherry picked from commit 4b446e24a0)

---------

Co-authored-by: Sascha Szott <szott@gmx.de>
2025-06-11 15:20:59 +03:00
Alan Orth
4afd54cbbb Merge pull request #10872 from tdonohue/remove_commons-fileupload
[dspace-7_x] Remove `commons-fileupload` as it is no longer used.
2025-06-11 08:58:21 +03:00
Jens Vannerum
1f174f4657 129944: Introduce custom abstract xpath contributor for pubmed to respect their labelled structure - modify IT for it
(cherry picked from commit 28bc4970b7)
2025-06-10 22:01:23 +00:00
Tim Donohue
144d9a25d2 Merge pull request #10864 from DSpace/dependabot/maven/dspace-7_x/net.handle-handle-9.3.2
Bump net.handle:handle from 9.3.1 to 9.3.2
2025-06-09 12:37:44 -05:00
Tim Donohue
a5ae3705e7 Remove commons-fileupload as it is no longer used. 2025-06-09 10:15:00 -05:00
Tim Donohue
d740232199 Merge pull request #10862 from DSpace/dependabot/maven/dspace-7_x/build-tools-0af78e14c7
Bump org.codehaus.mojo:build-helper-maven-plugin from 3.6.0 to 3.6.1 in the build-tools group
2025-06-09 09:23:58 -05:00
Tim Donohue
ec27f96d5f Merge pull request #10861 from DSpace/dependabot/maven/dspace-7_x/test-tools-05bec946dc
Bump the test-tools group with 6 updates
2025-06-09 09:22:38 -05:00
dependabot[bot]
358c00c199 Bump net.handle:handle from 9.3.1 to 9.3.2
Bumps net.handle:handle from 9.3.1 to 9.3.2.

---
updated-dependencies:
- dependency-name: net.handle:handle
  dependency-version: 9.3.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-09 03:09:56 +00:00
dependabot[bot]
a458fbd6ce Bump org.codehaus.mojo:build-helper-maven-plugin
Bumps the build-tools group with 1 update: [org.codehaus.mojo:build-helper-maven-plugin](https://github.com/mojohaus/build-helper-maven-plugin).


Updates `org.codehaus.mojo:build-helper-maven-plugin` from 3.6.0 to 3.6.1
- [Release notes](https://github.com/mojohaus/build-helper-maven-plugin/releases)
- [Commits](https://github.com/mojohaus/build-helper-maven-plugin/compare/3.6.0...3.6.1)

---
updated-dependencies:
- dependency-name: org.codehaus.mojo:build-helper-maven-plugin
  dependency-version: 3.6.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build-tools
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-09 03:08:40 +00:00
dependabot[bot]
0bc41bfaaf Bump the test-tools group with 6 updates
Bumps the test-tools group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [io.netty:netty-buffer](https://github.com/netty/netty) | `4.2.1.Final` | `4.2.2.Final` |
| [io.netty:netty-transport](https://github.com/netty/netty) | `4.2.1.Final` | `4.2.2.Final` |
| [io.netty:netty-transport-native-unix-common](https://github.com/netty/netty) | `4.2.1.Final` | `4.2.2.Final` |
| [io.netty:netty-common](https://github.com/netty/netty) | `4.2.1.Final` | `4.2.2.Final` |
| [io.netty:netty-handler](https://github.com/netty/netty) | `4.2.1.Final` | `4.2.2.Final` |
| [io.netty:netty-codec](https://github.com/netty/netty) | `4.2.1.Final` | `4.2.2.Final` |


Updates `io.netty:netty-buffer` from 4.2.1.Final to 4.2.2.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.2.1.Final...netty-4.2.2.Final)

Updates `io.netty:netty-transport` from 4.2.1.Final to 4.2.2.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.2.1.Final...netty-4.2.2.Final)

Updates `io.netty:netty-transport-native-unix-common` from 4.2.1.Final to 4.2.2.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.2.1.Final...netty-4.2.2.Final)

Updates `io.netty:netty-common` from 4.2.1.Final to 4.2.2.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.2.1.Final...netty-4.2.2.Final)

Updates `io.netty:netty-handler` from 4.2.1.Final to 4.2.2.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.2.1.Final...netty-4.2.2.Final)

Updates `io.netty:netty-codec` from 4.2.1.Final to 4.2.2.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.2.1.Final...netty-4.2.2.Final)

---
updated-dependencies:
- dependency-name: io.netty:netty-buffer
  dependency-version: 4.2.2.Final
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-transport
  dependency-version: 4.2.2.Final
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-transport-native-unix-common
  dependency-version: 4.2.2.Final
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-common
  dependency-version: 4.2.2.Final
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-handler
  dependency-version: 4.2.2.Final
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-codec
  dependency-version: 4.2.2.Final
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-09 03:07:54 +00:00
Alan Orth
415be6283a Merge pull request #10842 from DSpace/dependabot/maven/dspace-7_x/com.amazonaws-aws-java-sdk-s3-1.12.785
Bump com.amazonaws:aws-java-sdk-s3 from 1.12.783 to 1.12.785
2025-06-05 12:18:31 +03:00
kshepherd
94fe90f9d8 Merge pull request #10850 from DSpace/backport-10786-to-dspace-7_x
[Port dspace-7_x] Add HTTP timeouts in LiveImportClient to improve robustness
2025-06-04 23:06:19 +02:00
Sascha Szott
87ce9fd136 Add HTTP timeouts to improve robustness
(cherry picked from commit cabf5a7a44)
2025-06-04 19:24:16 +00:00
Tim Donohue
f2cbcca4c5 Merge pull request #10811 from DSpace/dependabot/maven/dspace-7_x/build-tools-137e7ca1b5
Bump org.apache.maven.plugins:maven-clean-plugin from 3.4.1 to 3.5.0 in the build-tools group
2025-06-04 14:08:28 -05:00
dependabot[bot]
a6cc912e62 Bump com.amazonaws:aws-java-sdk-s3 from 1.12.783 to 1.12.785
Bumps [com.amazonaws:aws-java-sdk-s3](https://github.com/aws/aws-sdk-java) from 1.12.783 to 1.12.785.
- [Changelog](https://github.com/aws/aws-sdk-java/blob/master/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-java/compare/1.12.783...1.12.785)

---
updated-dependencies:
- dependency-name: com.amazonaws:aws-java-sdk-s3
  dependency-version: 1.12.785
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-04 14:25:57 +00:00
dependabot[bot]
21c56aeda7 Bump bouncycastle.version from 1.80 to 1.81
Bumps `bouncycastle.version` from 1.80 to 1.81.

Updates `org.bouncycastle:bcpkix-jdk18on` from 1.80 to 1.81
- [Changelog](https://github.com/bcgit/bc-java/blob/main/docs/releasenotes.html)
- [Commits](https://github.com/bcgit/bc-java/commits)

Updates `org.bouncycastle:bcprov-jdk18on` from 1.80 to 1.81
- [Changelog](https://github.com/bcgit/bc-java/blob/main/docs/releasenotes.html)
- [Commits](https://github.com/bcgit/bc-java/commits)

Updates `org.bouncycastle:bcutil-jdk18on` from 1.80 to 1.81
- [Changelog](https://github.com/bcgit/bc-java/blob/main/docs/releasenotes.html)
- [Commits](https://github.com/bcgit/bc-java/commits)

---
updated-dependencies:
- dependency-name: org.bouncycastle:bcpkix-jdk18on
  dependency-version: '1.81'
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.bouncycastle:bcprov-jdk18on
  dependency-version: '1.81'
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.bouncycastle:bcutil-jdk18on
  dependency-version: '1.81'
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-04 14:25:16 +00:00
dependabot[bot]
25ad6039dc Bump org.apache.maven.plugins:maven-clean-plugin
Bumps the build-tools group with 1 update: [org.apache.maven.plugins:maven-clean-plugin](https://github.com/apache/maven-clean-plugin).


Updates `org.apache.maven.plugins:maven-clean-plugin` from 3.4.1 to 3.5.0
- [Release notes](https://github.com/apache/maven-clean-plugin/releases)
- [Commits](https://github.com/apache/maven-clean-plugin/compare/maven-clean-plugin-3.4.1...maven-clean-plugin-3.5.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-clean-plugin
  dependency-version: 3.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build-tools
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-04 14:25:05 +00:00
Alan Orth
de7fd98a34 Merge pull request #10812 from DSpace/dependabot/maven/dspace-7_x/com.opencsv-opencsv-5.11.1
Bump com.opencsv:opencsv from 5.11 to 5.11.1
2025-06-04 12:26:14 +03:00
kshepherd
3396233f2d Merge pull request #10822 from tdonohue/port_10806_to_7x
[Port dspace-7_x] Alphabetize external source importers by service name (on MyDSpace, etc)
2025-06-02 17:16:23 +02:00
Tim Donohue
19e22c10f1 Alphabetize importers by service name 2025-06-02 09:26:24 -05:00
dependabot[bot]
32bd615ba8 Bump com.opencsv:opencsv from 5.11 to 5.11.1
Bumps com.opencsv:opencsv from 5.11 to 5.11.1.

---
updated-dependencies:
- dependency-name: com.opencsv:opencsv
  dependency-version: 5.11.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-02 02:30:57 +00:00
Tim Donohue
91d845563a Merge pull request #10796 from DSpace/dependabot/maven/dspace-7_x/io.grpc-grpc-context-1.73.0
Bump io.grpc:grpc-context from 1.72.0 to 1.73.0
2025-05-28 15:47:03 -05:00
Tim Donohue
0ad9699128 Merge pull request #10797 from DSpace/dependabot/maven/dspace-7_x/org.postgresql-postgresql-42.7.6
Bump org.postgresql:postgresql from 42.7.5 to 42.7.6
2025-05-28 15:44:19 -05:00
Tim Donohue
9b1899de48 Merge pull request #10791 from DSpace/dependabot/maven/dspace-7_x/apache-commons-3e71c7e148
Bump commons-beanutils:commons-beanutils from 1.10.1 to 1.11.0 in the apache-commons group
2025-05-28 15:41:30 -05:00
dependabot[bot]
4367eebef2 Bump org.postgresql:postgresql from 42.7.5 to 42.7.6
Bumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.7.5 to 42.7.6.
- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)
- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.7.5...REL42.7.6)

---
updated-dependencies:
- dependency-name: org.postgresql:postgresql
  dependency-version: 42.7.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-28 16:28:25 +00:00
dependabot[bot]
b7960bd42e Bump io.grpc:grpc-context from 1.72.0 to 1.73.0
Bumps [io.grpc:grpc-context](https://github.com/grpc/grpc-java) from 1.72.0 to 1.73.0.
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.72.0...v1.73.0)

---
updated-dependencies:
- dependency-name: io.grpc:grpc-context
  dependency-version: 1.73.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-28 16:26:54 +00:00
dependabot[bot]
3fef856ef0 Bump commons-beanutils:commons-beanutils in the apache-commons group
Bumps the apache-commons group with 1 update: commons-beanutils:commons-beanutils.


Updates `commons-beanutils:commons-beanutils` from 1.10.1 to 1.11.0

---
updated-dependencies:
- dependency-name: commons-beanutils:commons-beanutils
  dependency-version: 1.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: apache-commons
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-28 16:25:45 +00:00
Tim Donohue
53b819b4b5 Merge pull request #10779 from DSpace/dependabot/maven/dspace-7_x/org.xmlunit-xmlunit-core-2.10.2
Bump org.xmlunit:xmlunit-core from 2.10.0 to 2.10.2
2025-05-28 08:03:47 -05:00
dependabot[bot]
a2a6838390 Bump org.xmlunit:xmlunit-core from 2.10.0 to 2.10.2
Bumps [org.xmlunit:xmlunit-core](https://github.com/xmlunit/xmlunit) from 2.10.0 to 2.10.2.
- [Release notes](https://github.com/xmlunit/xmlunit/releases)
- [Changelog](https://github.com/xmlunit/xmlunit/blob/main/RELEASE_NOTES.md)
- [Commits](https://github.com/xmlunit/xmlunit/compare/v2.10.0...v2.10.2)

---
updated-dependencies:
- dependency-name: org.xmlunit:xmlunit-core
  dependency-version: 2.10.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-26 22:15:28 +00:00
Tim Donohue
c791ac1460 Merge pull request #10486 from atmire/issue-10484_fix-invalid-cast-in-DOIOrganiser
Fix invalid cast in DOIOrganiser exception handling
2025-05-23 09:43:10 -05:00
Tim Donohue
2330ff37b5 Merge pull request #10760 from tdonohue/port_10758_to_7x
[Port dspace-7_x] Bump XOAI to 3.4.1
2025-05-19 14:40:09 -05:00
Tim Donohue
a1582d9477 Bump XOAI to 3.4.1 2025-05-19 14:07:02 -05:00
Tim Donohue
46440dcc2d Merge pull request #10752 from DSpace/backport-10611-to-dspace-7_x
[Port dspace-7_x] Use application/json as mime type for iiif manifests
2025-05-15 12:07:03 -05:00
Kim Shepherd
8b3618f583 [#10611] Remove json mime test from findOneCanvas
(cherry picked from commit e07e051e67)
2025-05-15 15:42:16 +00:00
Kim Shepherd
878ecdc09d [#10611] Add mime type checks in IIIFControllerIT
(cherry picked from commit 87c82f234c)
2025-05-15 15:42:16 +00:00
Pascal-Nicolas Becker
a46e01d6db Use application/json as mime type for iiif manifests
(cherry picked from commit 643e9984c7)
2025-05-15 15:42:16 +00:00
Tim Donohue
e26fd0d9dc Merge pull request #10748 from DSpace/backport-10745-to-dspace-7_x
[Port dspace-7_x] Improve DSpaceObjectService string comparison tests
2025-05-14 15:53:11 -05:00
Kim Shepherd
a2a0649227 [#10744] Update Javadoc in DSpaceObjectService (Item.ANY usage)
(cherry picked from commit 9aa74b8e68)
2025-05-14 19:53:23 +00:00
Kim Shepherd
359dc609a8 [#10744] Improve String comparison in DSpaceObjectServiceImpl
(cherry picked from commit b089fd6442)
2025-05-14 19:53:23 +00:00
Tim Donohue
e6475dc04f Merge pull request #10746 from DSpace/backport-10184-to-dspace-7_x
[Port dspace-7_x] conditional rendering of metadata section in style.xsl
2025-05-14 14:42:04 -05:00
Sascha Szott
fa603b2a58 add conditional check in metadata card rendering
(cherry picked from commit b681145343)
2025-05-14 18:30:19 +00:00
Sascha Szott
bbfc6874a4 conditional rendering for metadata section in style.xsl
(cherry picked from commit addc26ad19)
2025-05-14 18:30:19 +00:00
Tim Donohue
92a92abe9f Merge pull request #10734 from DSpace/dependabot/maven/dspace-7_x/webjars-36a72e2b67
Bump org.webjars.npm:json-editor__json-editor from 2.15.1 to 2.15.2 in the webjars group
2025-05-13 14:41:06 -05:00
Tim Donohue
66b6ed3f4a Must update version in index.html to complete upgrade 2025-05-13 12:12:50 -05:00
Tim Donohue
02ead6997f Merge pull request #10733 from DSpace/dependabot/maven/dspace-7_x/test-tools-3dcec26f7e
Bump the test-tools group with 6 updates
2025-05-13 12:06:25 -05:00
dependabot[bot]
5765bff79c Bump org.webjars.npm:json-editor__json-editor in the webjars group
Bumps the webjars group with 1 update: [org.webjars.npm:json-editor__json-editor](https://github.com/json-editor/json-editor).


Updates `org.webjars.npm:json-editor__json-editor` from 2.15.1 to 2.15.2
- [Changelog](https://github.com/json-editor/json-editor/blob/master/CHANGELOG.md)
- [Commits](https://github.com/json-editor/json-editor/compare/2.15.1...2.15.2)

---
updated-dependencies:
- dependency-name: org.webjars.npm:json-editor__json-editor
  dependency-version: 2.15.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: webjars
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-12 22:49:31 +00:00
dependabot[bot]
42e979a021 Bump the test-tools group with 6 updates
Bumps the test-tools group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [io.netty:netty-buffer](https://github.com/netty/netty) | `4.2.0.Final` | `4.2.1.Final` |
| [io.netty:netty-transport](https://github.com/netty/netty) | `4.2.0.Final` | `4.2.1.Final` |
| [io.netty:netty-transport-native-unix-common](https://github.com/netty/netty) | `4.2.0.Final` | `4.2.1.Final` |
| [io.netty:netty-common](https://github.com/netty/netty) | `4.2.0.Final` | `4.2.1.Final` |
| [io.netty:netty-handler](https://github.com/netty/netty) | `4.2.0.Final` | `4.2.1.Final` |
| [io.netty:netty-codec](https://github.com/netty/netty) | `4.2.0.Final` | `4.2.1.Final` |


Updates `io.netty:netty-buffer` from 4.2.0.Final to 4.2.1.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.2.0.Final...netty-4.2.1.Final)

Updates `io.netty:netty-transport` from 4.2.0.Final to 4.2.1.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.2.0.Final...netty-4.2.1.Final)

Updates `io.netty:netty-transport-native-unix-common` from 4.2.0.Final to 4.2.1.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.2.0.Final...netty-4.2.1.Final)

Updates `io.netty:netty-common` from 4.2.0.Final to 4.2.1.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.2.0.Final...netty-4.2.1.Final)

Updates `io.netty:netty-handler` from 4.2.0.Final to 4.2.1.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.2.0.Final...netty-4.2.1.Final)

Updates `io.netty:netty-codec` from 4.2.0.Final to 4.2.1.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.2.0.Final...netty-4.2.1.Final)

---
updated-dependencies:
- dependency-name: io.netty:netty-buffer
  dependency-version: 4.2.1.Final
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-transport
  dependency-version: 4.2.1.Final
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-transport-native-unix-common
  dependency-version: 4.2.1.Final
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-common
  dependency-version: 4.2.1.Final
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-handler
  dependency-version: 4.2.1.Final
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-codec
  dependency-version: 4.2.1.Final
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-12 22:48:26 +00:00
Tim Donohue
102649b404 Merge pull request #10726 from DSpace/backport-10725-to-dspace-7_x
[Port dspace-7_x] Potential fix for code scanning alert no. 3549: Arbitrary file access during archive extraction ("Zip Slip")
2025-05-09 16:03:49 -05:00
Tim Donohue
086a26d3b4 Potential fix for code scanning alert no. 3549: Arbitrary file access during archive extraction ("Zip Slip")
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
(cherry picked from commit 5fbdfc218f)
2025-05-09 19:15:44 +00:00
Tim Donohue
44d657da1e Merge pull request #10724 from 4Science/task/dspace-7_x/DURACOM-109
[Port dspace-7_x] Proxy Configuration and Connection Leak using HTTP Clients
2025-05-09 12:16:51 -05:00
Stefano Maffei
53e4147910 [DURACOM-109] fix dependency error 2025-05-09 16:12:50 +02:00
Stefano Maffei
2c6f02f74c [DURACOM-109] fix missing dependency 2025-05-09 15:59:50 +02:00
Stefano Maffei
01527712c1 Merge remote-tracking branch 'dspaceCommunity/dspace-7_x' into task/dspace-7_x/DURACOM-109 2025-05-09 15:28:48 +02:00
Tim Donohue
e975ed42b0 Merge pull request #10716 from 4Science/task/dspace-7_x/DURACOM-328
[Port dspace-7_x] FIX Submission patch operation weird recognition check
2025-05-07 09:48:46 -05:00
Elios Buzo
1ade960988 [DURACOM-109] Fixed conflicts 2025-05-07 12:28:43 +02:00
Stefano Maffei
ac20eefe4b [DURACOM-328] fix tests 2025-05-07 10:43:19 +02:00
Stefano Maffei
0ef3b27189 [DURACOM-328] fix test 2025-05-07 09:24:38 +02:00
Stefano Maffei
032252664b [DURACOM-328] fix error in check for Patch request 2025-05-07 09:24:06 +02:00
Tim Donohue
05f96db258 Merge pull request #10706 from DSpace/dependabot/maven/dspace-7_x/com.amazonaws-aws-java-sdk-s3-1.12.783
Bump com.amazonaws:aws-java-sdk-s3 from 1.12.782 to 1.12.783
2025-05-06 12:41:44 -05:00
Tim Donohue
c8fa70073d Merge pull request #10708 from DSpace/dependabot/maven/dspace-7_x/com.opencsv-opencsv-5.11
Bump com.opencsv:opencsv from 5.10 to 5.11
2025-05-06 12:40:26 -05:00
Tim Donohue
5169c48632 Merge pull request #10707 from DSpace/dependabot/maven/dspace-7_x/tika.version-2.9.4
Bump tika.version from 2.9.3 to 2.9.4
2025-05-06 11:58:01 -05:00
Stefano Maffei
409b775d35 [DURACOM-109] fix TruncatedChunkException error 2025-05-06 17:27:21 +02:00
Stefano Maffei
dbcaac4b08 [DURACOM-109] added checkstyle rules to forbid usage of HttpClientBuilder.create() 2025-05-06 17:27:07 +02:00
Stefano Maffei
9d6c482cc4 [DURACOM-109] Orcid connector fix and improvement 2025-05-06 17:26:07 +02:00
Stefano Maffei
0f1679ed72 [DURACOM-109] fix typo and correct logic for ORCID connector 2025-05-06 17:25:34 +02:00
Elios Buzo
7f865ad956 [DURACOM-109] Linter error fix 2025-05-06 17:22:50 +02:00
Elios Buzo
f4390fef52 [DURACOM-109] Continued fixing http connection leaks 2025-05-06 17:22:26 +02:00
Elios Buzo
f9307b617c [DURACOM-109] Minor fix 2025-05-06 17:20:09 +02:00
Elios Buzo
b9352c9149 [DURACOM-109] Fixed http connection leaks 2025-05-06 17:19:29 +02:00
Elios Buzo
32dd1a3dd2 [DURACOM-109] Minor fix 2025-05-06 17:18:38 +02:00
Elios Buzo
a8d33d3ad0 [DURACOM-109] Continued configuring proxy for other classes 2025-05-06 17:17:07 +02:00
Elios Buzo
c2c41e65f8 [DURACOM-109] Configured proxy settings for all clients 2025-05-06 17:10:17 +02:00
Alan Orth
4c7d9223cb Merge pull request #10713 from DSpace/backport-10556-to-dspace-7_x
[Port dspace-7_x] Fix tests failing in TikaTextExtractionFilterTest
2025-05-06 09:56:05 +03:00
abhinav
930565efff 129614: Fixed tests failing in TikaTextExtractionFilterTest when textextractor.use-temp-file is set to true
(cherry picked from commit f9f29f49cb)
2025-05-06 06:20:23 +00:00
dependabot[bot]
8b089be727 Bump com.opencsv:opencsv from 5.10 to 5.11
Bumps com.opencsv:opencsv from 5.10 to 5.11.

---
updated-dependencies:
- dependency-name: com.opencsv:opencsv
  dependency-version: '5.11'
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-05 23:11:48 +00:00
dependabot[bot]
f5e83433c4 Bump tika.version from 2.9.3 to 2.9.4
Bumps `tika.version` from 2.9.3 to 2.9.4.

Updates `org.apache.tika:tika-core` from 2.9.3 to 2.9.4
- [Changelog](https://github.com/apache/tika/blob/2.9.4/CHANGES.txt)
- [Commits](https://github.com/apache/tika/compare/2.9.3...2.9.4)

Updates `org.apache.tika:tika-parsers-standard-package` from 2.9.3 to 2.9.4

---
updated-dependencies:
- dependency-name: org.apache.tika:tika-core
  dependency-version: 2.9.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.apache.tika:tika-parsers-standard-package
  dependency-version: 2.9.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-05 23:02:34 +00:00
dependabot[bot]
a26ef22a46 Bump com.amazonaws:aws-java-sdk-s3 from 1.12.782 to 1.12.783
Bumps [com.amazonaws:aws-java-sdk-s3](https://github.com/aws/aws-sdk-java) from 1.12.782 to 1.12.783.
- [Changelog](https://github.com/aws/aws-sdk-java/blob/master/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-java/compare/1.12.782...1.12.783)

---
updated-dependencies:
- dependency-name: com.amazonaws:aws-java-sdk-s3
  dependency-version: 1.12.783
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-05 22:58:31 +00:00
Tim Donohue
1052e6b787 Merge pull request #10705 from tdonohue/port_10693_to_7x
[Port dspace-7_x] ISSN code not imported when using SHERPA import
2025-05-05 13:50:04 -05:00
Adamo
d7948d5f7b [DURACOM-356] Updated tests to use metadata constants 2025-05-05 12:32:26 -05:00
Adamo
5dd4e4248c [DURACOM-356] Updated Sherpa Journal mapping to use creativeworkseries.issn instead of dc.identifier.issn 2025-05-05 12:29:32 -05:00
Adamo
bacbe06b2c [DURACOM-356] Fixed tests 2025-05-05 12:29:24 -05:00
Adamo
a0c2891226 [DURACOM-356] Updated Sherpa mapping to use creativeworkseries.issn instead of dc.identifier.issn 2025-05-05 12:29:17 -05:00
Tim Donohue
663ffcf2b1 Merge pull request #10698 from DSpace/backport-10697-to-dspace-7_x
[Port dspace-7_x] Bulk access control fails to iterate over each item in a collection, producing duplicate policies for some items
2025-05-02 16:46:58 -05:00
Tim Donohue
3f9f5639f6 Must use older Java syntax in DSpace 7 2025-05-02 15:49:00 -05:00
Adamo
605956b073 [DURACOM-311] Ensure stable pagination in bulk access control by adding explicit sort
(cherry picked from commit ced9e9b9f7)
2025-05-02 19:56:23 +00:00
Tim Donohue
fd33cee025 Merge pull request #10695 from DSpace/backport-10692-to-dspace-7_x
[Port dspace-7_x] Error when using WOS import service
2025-05-02 10:42:35 -05:00
Adamo
eb5f09f3f2 [DURACOM-355] Update to avoid NPE during WOS live import when no api key is found
(cherry picked from commit 70f1c83bf0)
2025-05-02 15:08:39 +00:00
Jens Vannerum
fae4130d41 119612: Fix limit not applying on export
(cherry picked from commit bcf48821d9)
2025-05-02 11:14:58 +02:00
Jens Vannerum
5929fdc926 124504: Move configuration to be included in the bulkedit module and apply the configured limit earlier, never obtaining a larger list than actually required
(cherry picked from commit b63ffd2eb4)
2025-05-02 11:14:49 +02:00
Jens Vannerum
c5c8417848 119612: Remove group configuration and expose property to angular
(cherry picked from commit c73c739deb)
2025-05-02 11:14:19 +02:00
Jens Vannerum
4626b06d7f 119612: property should be commented by default and have a normal limit
(cherry picked from commit a8b98bb7b7)
2025-05-02 11:12:49 +02:00
Jens Vannerum
4ec611bf79 119612: configurable limit on exporting items since it can take up a bunch of resources
(cherry picked from commit b634e1e380)
2025-05-02 11:12:46 +02:00
Tim Donohue
bf917357a6 Merge pull request #10687 from tdonohue/port_10685_to_7x
[Port dspace-7_x] Remove `javax.el` dependency & replace `MethodNotFoundException` with `UnsupportedOperationException`
2025-05-01 13:46:54 -05:00
Tim Donohue
d83779022e Remove javax.el dependency 2025-05-01 12:53:41 -05:00
Tim Donohue
b04eb9d725 Replace MethodNotFoundException with more appropriate UnsupportedOperationException 2025-05-01 12:53:13 -05:00
Tim Donohue
4821e75294 Merge pull request #10353 from atmire/cli-speed-improvements-periodically-uncache-entities-when-processing-many_7-x
[Port dspace-7_x] Index discovery speed improvement - periodically uncache entities when processing many items
2025-04-30 11:55:34 -05:00
kshepherd
f4e02b73f2 Merge pull request #10681 from DSpace/backport-10668-to-dspace-7_x
[Port dspace-7_x] Fix Collection Admin cannot see withdrawn item metadata
2025-04-30 14:16:51 +02:00
Stefano Maffei
4a89a68736 [DURACOM-357] improved javadoc
(cherry picked from commit f1cb3c3ad1)
2025-04-30 11:45:56 +00:00
Stefano Maffei
2429a0ba29 [DURACOM-357] improved admin check
(cherry picked from commit bb3935a047)
2025-04-30 11:45:56 +00:00
Stefano Maffei
8ca8bd4543 [DURACOM-357] improved check for authorization on objects in ItemConverter
(cherry picked from commit a70dede20b)
2025-04-30 11:45:56 +00:00
Stefano Maffei
c6098c0232 [DURACOM-357] fix Collection Admin cannot see withdrawn item metadata
(cherry picked from commit 5e2bb4fb92)
2025-04-30 11:45:56 +00:00
kshepherd
b937fa8799 Merge pull request #10677 from DSpace/backport-10675-to-dspace-7_x
[Port dspace-7_x] Resolving XML external entity in user-controlled data in PubMedImport
2025-04-30 13:24:05 +02:00
Tim Donohue
90ea371e0b Cannot disable DTDs with PubMed, so instead disallow external entities & entity expansion
(cherry picked from commit f9614c41a6)
2025-04-30 10:24:14 +00:00
Tim Donohue
6fe9af84bd Potential fix for code scanning alert no. 30: Resolving XML external entity in user-controlled data
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
(cherry picked from commit a0ce50b2a4)
2025-04-30 10:24:14 +00:00
Tim Donohue
1494732989 Merge pull request #10673 from DSpace/backport-10640-to-dspace-7_x
[Port dspace-7_x] Improve CLI RegistryLoader, InitializeEntities, Curation commands
2025-04-29 15:37:28 -05:00
Kim Shepherd
85a9e4b731 Let Curation CLI accept uuid identifiers
(cherry picked from commit 5020689095)
2025-04-29 19:50:29 +00:00
Kim Shepherd
fbb496e1c6 Improve help and docs for RegistryLoader
And a few other small improvements

(cherry picked from commit f1b4e6ef17)
2025-04-29 19:50:29 +00:00
Kim Shepherd
98921724f4 Add help opt and javadoc to InitializeEntities
(cherry picked from commit 5240a02996)
2025-04-29 19:50:29 +00:00
Tim Donohue
f94a4e4b71 Merge pull request #10671 from DSpace/backport-10669-to-dspace-7_x
[Port dspace-7_x] Make DiscoveryConfigurationService "get all facet configs" return UNIQUE set
2025-04-29 14:00:45 -05:00
Kim Shepherd
e94d934a5c Make getAllFacetConfigs unique
Improve performance and debuggability by
refactoring getAllFacetConfigs to
getAllUniqueFacetConfigs. Used only by
ChoiceAuthorityService to generate hierarchical
vocabulary map for the browse menu, etc.

(cherry picked from commit 159bd18529)
2025-04-29 17:23:57 +00:00
Tim Donohue
160a70ed16 Merge pull request #10663 from DSpace/dependabot/maven/dspace-7_x/google-apis-b1f0883f77
Bump the google-apis group with 3 updates
2025-04-29 06:56:21 -05:00
Tim Donohue
d63a088e70 Merge pull request #10661 from DSpace/dependabot/maven/dspace-7_x/apache-commons-f6cb4980f5
Bump the apache-commons group with 2 updates
2025-04-29 06:55:48 -05:00
Tim Donohue
46880b025e Merge pull request #10658 from DSpace/dependabot/maven/dspace-7_x/fasterxml-111bca66b8
Bump the fasterxml group with 3 updates
2025-04-29 06:54:28 -05:00
Alan Orth
23dfcf0af6 Merge pull request #10665 from DSpace/dependabot/maven/dspace-7_x/pdfbox-version-2.0.34
Bump pdfbox-version from 2.0.33 to 2.0.34
2025-04-29 12:52:24 +03:00
dependabot[bot]
19010353c9 Bump pdfbox-version from 2.0.33 to 2.0.34
Bumps `pdfbox-version` from 2.0.33 to 2.0.34.

Updates `org.apache.pdfbox:pdfbox` from 2.0.33 to 2.0.34

Updates `org.apache.pdfbox:fontbox` from 2.0.33 to 2.0.34

---
updated-dependencies:
- dependency-name: org.apache.pdfbox:pdfbox
  dependency-version: 2.0.34
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.apache.pdfbox:fontbox
  dependency-version: 2.0.34
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-29 00:15:34 +00:00
dependabot[bot]
5400e3f8a8 Bump the google-apis group with 3 updates
Bumps the google-apis group with 3 updates: [com.google.http-client:google-http-client](https://github.com/googleapis/google-http-java-client), [com.google.http-client:google-http-client-jackson2](https://github.com/googleapis/google-http-java-client) and [com.google.http-client:google-http-client-gson](https://github.com/googleapis/google-http-java-client).


Updates `com.google.http-client:google-http-client` from 1.46.3 to 1.47.0
- [Release notes](https://github.com/googleapis/google-http-java-client/releases)
- [Changelog](https://github.com/googleapis/google-http-java-client/blob/main/CHANGELOG.md)
- [Commits](https://github.com/googleapis/google-http-java-client/compare/v1.46.3...v1.47.0)

Updates `com.google.http-client:google-http-client-jackson2` from 1.46.3 to 1.47.0
- [Release notes](https://github.com/googleapis/google-http-java-client/releases)
- [Changelog](https://github.com/googleapis/google-http-java-client/blob/main/CHANGELOG.md)
- [Commits](https://github.com/googleapis/google-http-java-client/compare/v1.46.3...v1.47.0)

Updates `com.google.http-client:google-http-client-gson` from 1.46.3 to 1.47.0
- [Release notes](https://github.com/googleapis/google-http-java-client/releases)
- [Changelog](https://github.com/googleapis/google-http-java-client/blob/main/CHANGELOG.md)
- [Commits](https://github.com/googleapis/google-http-java-client/compare/v1.46.3...v1.47.0)

---
updated-dependencies:
- dependency-name: com.google.http-client:google-http-client
  dependency-version: 1.47.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: google-apis
- dependency-name: com.google.http-client:google-http-client-jackson2
  dependency-version: 1.47.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: google-apis
- dependency-name: com.google.http-client:google-http-client-gson
  dependency-version: 1.47.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: google-apis
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-29 00:02:22 +00:00
dependabot[bot]
ff67241bc9 Bump the apache-commons group with 2 updates
Bumps the apache-commons group with 2 updates: org.apache.commons:commons-collections4 and org.apache.commons:commons-configuration2.


Updates `org.apache.commons:commons-collections4` from 4.4 to 4.5.0

Updates `org.apache.commons:commons-configuration2` from 2.11.0 to 2.12.0

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-collections4
  dependency-version: 4.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: apache-commons
- dependency-name: org.apache.commons:commons-configuration2
  dependency-version: 2.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: apache-commons
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-29 00:01:34 +00:00
dependabot[bot]
b949bdd4c0 Bump the fasterxml group with 3 updates
Bumps the fasterxml group with 3 updates: [com.fasterxml.jackson.core:jackson-annotations](https://github.com/FasterXML/jackson), [com.fasterxml.jackson.core:jackson-core](https://github.com/FasterXML/jackson-core) and [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson).


Updates `com.fasterxml.jackson.core:jackson-annotations` from 2.18.3 to 2.19.0
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-core` from 2.18.3 to 2.19.0
- [Commits](https://github.com/FasterXML/jackson-core/compare/jackson-core-2.18.3...jackson-core-2.19.0)

Updates `com.fasterxml.jackson.core:jackson-core` from 2.18.3 to 2.19.0
- [Commits](https://github.com/FasterXML/jackson-core/compare/jackson-core-2.18.3...jackson-core-2.19.0)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.3 to 2.19.0
- [Commits](https://github.com/FasterXML/jackson/commits)

---
updated-dependencies:
- dependency-name: com.fasterxml.jackson.core:jackson-annotations
  dependency-version: 2.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: fasterxml
- dependency-name: com.fasterxml.jackson.core:jackson-core
  dependency-version: 2.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: fasterxml
- dependency-name: com.fasterxml.jackson.core:jackson-core
  dependency-version: 2.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: fasterxml
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-version: 2.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: fasterxml
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-28 23:58:24 +00:00
Tim Donohue
e4d5d7cbcc Merge pull request #10241 from atmire/w2p-124362_VersionedHandleIdentifierProviderWithCanonicalHandles-and-com-col-handles
Fix issue with VersionedHandleIdentifierProviderWithCanonicalHandles and com/col handles
2025-04-28 16:05:21 -05:00
Tim Donohue
1278068eaa Merge pull request #10647 from DSpace/backport-10636-to-dspace-7_x
[Port dspace-7_x] Fix: import public email from ORCID person
2025-04-25 16:35:47 -05:00
Jesiel Viana
106936967e removing duplicated files
(cherry picked from commit c6d1121cbe)
2025-04-25 20:08:08 +00:00
Jesiel Viana
cf9e5c1cd4 fix: Checkstyle violations
(cherry picked from commit 9a831e5393)
2025-04-25 20:08:08 +00:00
Jesiel Viana
ac7dfc562f fix: import public email from ORCID person
(cherry picked from commit 82ca80cd6b)
2025-04-25 20:08:08 +00:00
Tim Donohue
37338424e3 Merge pull request #10645 from tdonohue/port_10549_to_7x
[Port dspace-7_x] restrict maximum value of URL parameter rpp in OpenSearchController to a reasonable default
2025-04-25 08:50:03 -05:00
Sascha Szott
1a619b2833 restrict maximum value of URL parameter rpp 2025-04-24 16:49:59 -05:00
Sascha Szott
ca3b2de1a8 add configuration key websvc.opensearch.max_num_of_items_per_request 2025-04-24 16:48:54 -05:00
Sascha Szott
869d122eac implement method getMaxNumOfItemsPerRequest 2025-04-24 16:48:48 -05:00
Sascha Szott
045a5c0b0e add method getMaxNumOfItemsPerRequest 2025-04-24 16:48:42 -05:00
Tim Donohue
9d1e2d5f9d Merge pull request #10641 from DSpace/backport-10505-to-dspace-7_x
[Port dspace-7_x] Fix incorrect parsing of access-status metadata
2025-04-24 15:15:51 -05:00
Agustina Martinez
440bb64809 Update dim.xsl
Added template to correctly parse elements under "others" metadata element

(cherry picked from commit ac7da6a477)
2025-04-24 19:44:57 +00:00
Tim Donohue
0695b6756c Merge pull request #10623 from DSpace/backport-10599-to-dspace-7_x
[Port dspace-7_x] Fix login endpoints not automatically closing their Context
2025-04-23 11:12:18 -05:00
Tim Donohue
c8a0c94f78 Merge pull request #10630 from DSpace/dependabot/maven/dspace-7_x/io.grpc-grpc-context-1.72.0
Bump io.grpc:grpc-context from 1.71.0 to 1.72.0
2025-04-22 09:41:48 -05:00
dependabot[bot]
5d880bcf2d Bump io.grpc:grpc-context from 1.71.0 to 1.72.0
Bumps [io.grpc:grpc-context](https://github.com/grpc/grpc-java) from 1.71.0 to 1.72.0.
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.71.0...v1.72.0)

---
updated-dependencies:
- dependency-name: io.grpc:grpc-context
  dependency-version: 1.72.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-21 23:03:07 +00:00
Alexandre Vryghem
133c280883 126885: Removed database connection leak on logout
(cherry picked from commit b299a96076)
2025-04-18 19:01:50 +00:00
Alexandre Vryghem
0a79903f30 126885: Removed database connection leak on login
Also:
- Updated EPersonRestAuthenticationProvider to not open an additional DB connection, and reuse the existing one instead
- Normalized the behaviour of OidcLoginFilter by not calling the redirectAfterSuccess instead of doing a chain.doFilter(req, res). This way we don't need to reopen a new Context

(cherry picked from commit 518fb3b1d8)
2025-04-18 19:01:50 +00:00
kshepherd
4ec40054b1 Merge pull request #10617 from DSpace/backport-10519-to-dspace-7_x
[Port dspace-7_x] Fix metadata browsing in descending order using a json.facet to retrieve index values
2025-04-17 15:56:50 +02:00
Toni Prieto
b2f44f57f9 Add test for browse entries pagination
(cherry picked from commit a7bc82084e)
2025-04-17 13:21:02 +00:00
Toni Prieto
d6ff41d9f5 Refactor browse entries facet query to use JSON facet query
(cherry picked from commit 8e88547932)
2025-04-17 13:21:02 +00:00
Tim Donohue
6817d2aa59 Merge pull request #10614 from DSpace/backport-10613-to-dspace-7_x
[Port dspace-7_x] [DURACOM-346] SubscribeServiceImpl : the method "isSubscribed" returns incorrect result
2025-04-16 12:05:37 -05:00
Piaget Bouaka Donfack
3a894e5f5d [DURACOM-346] SubscribeServiceImpl : the method "isSubscribed" returns incorrect result
(cherry picked from commit 23468d4ee3)
2025-04-16 16:28:22 +00:00
Tim Donohue
d74ae7345e Merge pull request #10604 from DSpace/dependabot/maven/dspace-7_x/apache-commons-9d0a8b4b96
Bump the apache-commons group with 2 updates
2025-04-15 09:45:46 -05:00
Alan Orth
3f653411cf Merge pull request #10605 from DSpace/backport-10109-to-dspace-7_x 2025-04-15 10:23:35 +03:00
Toni Prieto
086e54cb31 Modify Solr query to find collections with submit permissions in searches with spaces
(cherry picked from commit 425dc1556e)
2025-04-15 06:32:12 +00:00
dependabot[bot]
dd62a57564 Bump the apache-commons group with 2 updates
Bumps the apache-commons group with 2 updates: commons-io:commons-io and org.apache.commons:commons-text.


Updates `commons-io:commons-io` from 2.18.0 to 2.19.0

Updates `org.apache.commons:commons-text` from 1.13.0 to 1.13.1

---
updated-dependencies:
- dependency-name: commons-io:commons-io
  dependency-version: 2.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: apache-commons
- dependency-name: org.apache.commons:commons-text
  dependency-version: 1.13.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: apache-commons
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-14 23:11:31 +00:00
Tim Donohue
e8ee694f21 Merge pull request #10588 from atmire/backport-10485-to-dspace-7_x
[Port dspace-7_x] SEOHealthIndicator which verifies all relevant parameters for SEO issues
2025-04-11 09:27:54 -05:00
Jens Vannerum
5b8782509f 127746: Include success result for robots.txt check if other checks fail
(cherry picked from commit 5dc12775fa)
2025-04-11 15:48:48 +02:00
Jens Vannerum
64c5f82209 127746: Add more detailed information messages on how to solve problems
(cherry picked from commit 170dc9a44c)
2025-04-11 15:48:48 +02:00
Jens Vannerum
7a876999f8 127746: Implement different failures for robots file so we can differentiate between a missing file or an invalid file
(cherry picked from commit 32c0484280)
2025-04-11 15:48:48 +02:00
Jens Vannerum
31549bdace Disable new actuator in IT
(cherry picked from commit 20ab43cccc)
2025-04-11 15:48:45 +02:00
Jens Vannerum
e122a90674 Implement a SEOHealthIndicator which verifies all relevant parameters for SEO are ok
(cherry picked from commit 4bd8a24ca7)
2025-04-11 15:46:34 +02:00
Tim Donohue
ac7eee6465 Merge pull request #10472 from DSpace/dependabot/maven/dspace-7_x/fasterxml-560de934c1
Bump the fasterxml group with 3 updates
2025-04-09 10:12:10 -05:00
Tim Donohue
503f78f065 Merge pull request #10571 from DSpace/dependabot/maven/dspace-7_x/build-tools-8be766aa5b
Bump the build-tools group across 1 directory with 5 updates
2025-04-09 10:11:14 -05:00
Tim Donohue
8d79120eec Merge pull request #10469 from DSpace/dependabot/maven/dspace-7_x/google-apis-88ea69a71a
Bump the google-apis group across 1 directory with 4 updates
2025-04-08 13:24:57 -05:00
Tim Donohue
76018e0048 Merge pull request #10482 from DSpace/dependabot/maven/dspace-7_x/io.grpc-grpc-context-1.71.0
Bump io.grpc:grpc-context from 1.70.0 to 1.71.0
2025-04-08 13:24:11 -05:00
Tim Donohue
5fd134d7cf Merge pull request #10544 from DSpace/dependabot/maven/dspace-7_x/joda-time-joda-time-2.14.0
Bump joda-time:joda-time from 2.13.1 to 2.14.0
2025-04-08 13:23:15 -05:00
Tim Donohue
3de7bab453 Merge pull request #10449 from DSpace/dependabot/maven/dspace-7_x/com.amazonaws-aws-java-sdk-s3-1.12.782
Bump com.amazonaws:aws-java-sdk-s3 from 1.12.781 to 1.12.782
2025-04-08 13:21:39 -05:00
dependabot[bot]
16239433f6 Bump io.grpc:grpc-context from 1.70.0 to 1.71.0
Bumps [io.grpc:grpc-context](https://github.com/grpc/grpc-java) from 1.70.0 to 1.71.0.
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.70.0...v1.71.0)

---
updated-dependencies:
- dependency-name: io.grpc:grpc-context
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-08 15:47:34 +00:00
dependabot[bot]
bb2ed04ed3 Bump the build-tools group across 1 directory with 5 updates
Bumps the build-tools group with 5 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [com.github.spotbugs:spotbugs](https://github.com/spotbugs/spotbugs) | `4.9.1` | `4.9.3` |
| [org.apache.maven.plugins:maven-compiler-plugin](https://github.com/apache/maven-compiler-plugin) | `3.13.0` | `3.14.0` |
| [com.github.spotbugs:spotbugs-maven-plugin](https://github.com/spotbugs/spotbugs-maven-plugin) | `4.9.1.0` | `4.9.3.0` |
| [org.apache.maven.plugins:maven-clean-plugin](https://github.com/apache/maven-clean-plugin) | `3.4.0` | `3.4.1` |
| [org.jacoco:jacoco-maven-plugin](https://github.com/jacoco/jacoco) | `0.8.12` | `0.8.13` |



Updates `com.github.spotbugs:spotbugs` from 4.9.1 to 4.9.3
- [Release notes](https://github.com/spotbugs/spotbugs/releases)
- [Changelog](https://github.com/spotbugs/spotbugs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/spotbugs/spotbugs/compare/4.9.1...4.9.3)

Updates `org.apache.maven.plugins:maven-compiler-plugin` from 3.13.0 to 3.14.0
- [Release notes](https://github.com/apache/maven-compiler-plugin/releases)
- [Commits](https://github.com/apache/maven-compiler-plugin/compare/maven-compiler-plugin-3.13.0...maven-compiler-plugin-3.14.0)

Updates `com.github.spotbugs:spotbugs-maven-plugin` from 4.9.1.0 to 4.9.3.0
- [Release notes](https://github.com/spotbugs/spotbugs-maven-plugin/releases)
- [Commits](https://github.com/spotbugs/spotbugs-maven-plugin/compare/spotbugs-maven-plugin-4.9.1.0...spotbugs-maven-plugin-4.9.3.0)

Updates `org.apache.maven.plugins:maven-clean-plugin` from 3.4.0 to 3.4.1
- [Release notes](https://github.com/apache/maven-clean-plugin/releases)
- [Commits](https://github.com/apache/maven-clean-plugin/compare/maven-clean-plugin-3.4.0...maven-clean-plugin-3.4.1)

Updates `org.jacoco:jacoco-maven-plugin` from 0.8.12 to 0.8.13
- [Release notes](https://github.com/jacoco/jacoco/releases)
- [Commits](https://github.com/jacoco/jacoco/compare/v0.8.12...v0.8.13)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs
  dependency-version: 4.9.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build-tools
- dependency-name: org.apache.maven.plugins:maven-compiler-plugin
  dependency-version: 3.14.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build-tools
- dependency-name: com.github.spotbugs:spotbugs-maven-plugin
  dependency-version: 4.9.3.0
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build-tools
- dependency-name: org.apache.maven.plugins:maven-clean-plugin
  dependency-version: 3.4.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build-tools
- dependency-name: org.jacoco:jacoco-maven-plugin
  dependency-version: 0.8.13
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build-tools
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-08 15:36:26 +00:00
dependabot[bot]
a5806fb518 Bump the google-apis group across 1 directory with 4 updates
Bumps the google-apis group with 4 updates in the / directory: [com.google.http-client:google-http-client](https://github.com/googleapis/google-http-java-client), [com.google.http-client:google-http-client-jackson2](https://github.com/googleapis/google-http-java-client), [com.google.oauth-client:google-oauth-client](https://github.com/googleapis/google-oauth-java-client) and [com.google.http-client:google-http-client-gson](https://github.com/googleapis/google-http-java-client).


Updates `com.google.http-client:google-http-client` from 1.46.1 to 1.46.3
- [Release notes](https://github.com/googleapis/google-http-java-client/releases)
- [Changelog](https://github.com/googleapis/google-http-java-client/blob/main/CHANGELOG.md)
- [Commits](https://github.com/googleapis/google-http-java-client/compare/v1.46.1...v1.46.3)

Updates `com.google.http-client:google-http-client-jackson2` from 1.46.1 to 1.46.3
- [Release notes](https://github.com/googleapis/google-http-java-client/releases)
- [Changelog](https://github.com/googleapis/google-http-java-client/blob/main/CHANGELOG.md)
- [Commits](https://github.com/googleapis/google-http-java-client/compare/v1.46.1...v1.46.3)

Updates `com.google.oauth-client:google-oauth-client` from 1.37.0 to 1.38.0
- [Release notes](https://github.com/googleapis/google-oauth-java-client/releases)
- [Changelog](https://github.com/googleapis/google-oauth-java-client/blob/main/CHANGELOG.md)
- [Commits](https://github.com/googleapis/google-oauth-java-client/compare/v1.37.0...v1.38.0)

Updates `com.google.http-client:google-http-client-gson` from 1.46.1 to 1.46.3
- [Release notes](https://github.com/googleapis/google-http-java-client/releases)
- [Changelog](https://github.com/googleapis/google-http-java-client/blob/main/CHANGELOG.md)
- [Commits](https://github.com/googleapis/google-http-java-client/compare/v1.46.1...v1.46.3)

---
updated-dependencies:
- dependency-name: com.google.http-client:google-http-client
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: google-apis
- dependency-name: com.google.http-client:google-http-client-jackson2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: google-apis
- dependency-name: com.google.oauth-client:google-oauth-client
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: google-apis
- dependency-name: com.google.http-client:google-http-client-gson
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: google-apis
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-08 15:35:52 +00:00
dependabot[bot]
b64b79973d Bump the fasterxml group with 3 updates
Bumps the fasterxml group with 3 updates: [com.fasterxml.jackson.core:jackson-annotations](https://github.com/FasterXML/jackson), [com.fasterxml.jackson.core:jackson-core](https://github.com/FasterXML/jackson-core) and [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson).


Updates `com.fasterxml.jackson.core:jackson-annotations` from 2.18.2 to 2.18.3
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-core` from 2.18.2 to 2.18.3
- [Commits](https://github.com/FasterXML/jackson-core/compare/jackson-core-2.18.2...jackson-core-2.18.3)

Updates `com.fasterxml.jackson.core:jackson-core` from 2.18.2 to 2.18.3
- [Commits](https://github.com/FasterXML/jackson-core/compare/jackson-core-2.18.2...jackson-core-2.18.3)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.18.2 to 2.18.3
- [Commits](https://github.com/FasterXML/jackson/commits)

---
updated-dependencies:
- dependency-name: com.fasterxml.jackson.core:jackson-annotations
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: fasterxml
- dependency-name: com.fasterxml.jackson.core:jackson-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: fasterxml
- dependency-name: com.fasterxml.jackson.core:jackson-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: fasterxml
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: fasterxml
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-08 15:35:47 +00:00
Tim Donohue
7d5db89889 Merge pull request #10470 from DSpace/dependabot/maven/dspace-7_x/test-tools-fd1863f7f0
Bump the test-tools group with 6 updates
2025-04-08 09:26:20 -05:00
dependabot[bot]
c8cc425357 Bump com.amazonaws:aws-java-sdk-s3 from 1.12.781 to 1.12.782
Bumps [com.amazonaws:aws-java-sdk-s3](https://github.com/aws/aws-sdk-java) from 1.12.781 to 1.12.782.
- [Changelog](https://github.com/aws/aws-sdk-java/blob/master/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-java/compare/1.12.781...1.12.782)

---
updated-dependencies:
- dependency-name: com.amazonaws:aws-java-sdk-s3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-08 14:23:43 +00:00
Tim Donohue
5fa01ef63e Merge pull request #10570 from tdonohue/remove_unused_sword_client_7x
[Port dspace-7_x] Remove unused, unmaintained SWORD v1 client code
2025-04-08 06:58:52 -05:00
dependabot[bot]
68cffba5fa Bump the test-tools group with 6 updates
Bumps the test-tools group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [io.netty:netty-buffer](https://github.com/netty/netty) | `4.1.118.Final` | `4.1.119.Final` |
| [io.netty:netty-transport](https://github.com/netty/netty) | `4.1.118.Final` | `4.1.119.Final` |
| [io.netty:netty-transport-native-unix-common](https://github.com/netty/netty) | `4.1.118.Final` | `4.1.119.Final` |
| [io.netty:netty-common](https://github.com/netty/netty) | `4.1.118.Final` | `4.1.119.Final` |
| [io.netty:netty-handler](https://github.com/netty/netty) | `4.1.118.Final` | `4.1.119.Final` |
| [io.netty:netty-codec](https://github.com/netty/netty) | `4.1.118.Final` | `4.1.119.Final` |


Updates `io.netty:netty-buffer` from 4.1.118.Final to 4.1.119.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.118.Final...netty-4.1.119.Final)

Updates `io.netty:netty-transport` from 4.1.118.Final to 4.1.119.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.118.Final...netty-4.1.119.Final)

Updates `io.netty:netty-transport-native-unix-common` from 4.1.118.Final to 4.1.119.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.118.Final...netty-4.1.119.Final)

Updates `io.netty:netty-common` from 4.1.118.Final to 4.1.119.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.118.Final...netty-4.1.119.Final)

Updates `io.netty:netty-handler` from 4.1.118.Final to 4.1.119.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.118.Final...netty-4.1.119.Final)

Updates `io.netty:netty-codec` from 4.1.118.Final to 4.1.119.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.118.Final...netty-4.1.119.Final)

---
updated-dependencies:
- dependency-name: io.netty:netty-buffer
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-transport
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-transport-native-unix-common
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-common
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-handler
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-codec
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-07 23:48:45 +00:00
Tim Donohue
bfe7e7871e Remove unused SWORD v1 client code. This is "dead code" which is unmaintained and obsolete 2025-04-07 17:10:43 -05:00
Tim Donohue
a6fcdeab9e Merge pull request #10567 from tdonohue/port_10565_to_7x
[Port dspace-7_x][GitHub Actions] Update Docker scripts to use new Ubuntu ARM64 runner instead of emulation
2025-04-07 12:53:01 -05:00
Tim Donohue
4c73e4b01f Update reusable-docker-build to use Ubuntu ARM64 runner for those images 2025-04-07 11:56:20 -05:00
Tim Donohue
a2a56d416e Merge pull request #10551 from DSpace/backport-9876-to-dspace-7_x
[Port dspace-7_x] Fix DSpace startup failures when ORCID http connections fail
2025-04-02 14:08:35 -05:00
Kim Shepherd
1fe697a19e Fix some ORCID mock / test usage
(cherry picked from commit 038ddeee97)
2025-04-02 18:28:28 +00:00
Kim Shepherd
3fa57d7c0e More robust ORCID accessToken init, REST con. usage
* Ensure that http client / IO exceptions don't cause a
  total DSpace startup failure because of unhandled
  exceptions in Spring service init methods.
* Centralise access token retrieval method in factory utils.
* Check for NULL rest connector since that can now happen
  and handle gracefully, with error logging

(cherry picked from commit b72344ecfb)
2025-04-02 18:28:28 +00:00
dependabot[bot]
d68c5ac8eb Bump joda-time:joda-time from 2.13.1 to 2.14.0
Bumps [joda-time:joda-time](https://github.com/JodaOrg/joda-time) from 2.13.1 to 2.14.0.
- [Release notes](https://github.com/JodaOrg/joda-time/releases)
- [Changelog](https://github.com/JodaOrg/joda-time/blob/main/RELEASE-NOTES.txt)
- [Commits](https://github.com/JodaOrg/joda-time/compare/v2.13.1...v2.14.0)

---
updated-dependencies:
- dependency-name: joda-time:joda-time
  dependency-version: 2.14.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-31 22:52:59 +00:00
Vincenzo Mecca
82d04061c0 [DURACOM-243] Adds Test for JPEGFilter 2025-03-27 12:48:50 +01:00
Vincenzo Mecca
08e330c1c0 [DURACOM-243] Adds rotation handling inside JPEGFilter
Conflicts:
2025-03-27 12:48:00 +01:00
DSpace Bot
c797441b86 [Port dspace-7_x] Add null check in SolrServiceFileInfoPlugin for index-discovery (#10517)
* Add null check in SolrServiceFileInfoPlugin for index-discovery

(cherry picked from commit d07f1e0caa)

* Fix starting curly brace.

(cherry picked from commit e11994c0ee)

* Update SolrServiceFileInfoPlugin.java

(cherry picked from commit 18372ae072)

---------

Co-authored-by: jameswsullivan <81947235+jameswsullivan@users.noreply.github.com>
2025-03-24 14:04:03 -05:00
Tim Donohue
56e8322079 Merge pull request #10515 from DSpace/backport-10511-to-dspace-7_x
[Port dspace-7_x] Add bitstream null check to XOAI.java
2025-03-24 10:59:57 -05:00
Tim Donohue
0a3174551f Merge pull request #10513 from DSpace/backport-10509-to-dspace-7_x
[Port dspace-7_x] DiscoverQueryBuilder: add missing whitespace in exception message
2025-03-24 10:58:45 -05:00
jameswsullivan
bdfe2bfe2e Add bitstream null check to XOAI
(cherry picked from commit 54602f47b1)
2025-03-24 14:58:37 +00:00
Sascha Szott
00da667ba5 add missing whitespace
(cherry picked from commit 4ea4958093)
2025-03-24 14:55:00 +00:00
Sascha Szott
fbec7f2e56 add missing whitespace in exception message
(cherry picked from commit 9a904ab4c9)
2025-03-24 14:55:00 +00:00
Zahraa Chreim
238893ce6d Fix invalid cast in DOIOrganiser exception handling 2025-03-11 16:02:03 +02:00
Tim Donohue
4c0bbeffa3 Merge pull request #10474 from DSpace/backport-10460-to-dspace-7_x
[Port dspace-7_x] Refactoring the function to retrieve the number of browse entries (fix errors using Solr 9.x)
2025-03-04 10:11:01 -06:00
Toni Prieto
15dab1e41e Use NestableJsonFacet to process browse entries count response
(cherry picked from commit 7ba09b7a85)
2025-03-04 15:24:29 +00:00
Tim Donohue
1d4117f4ba Merge pull request #9895 from minurmin/DSpace-9665
[Port dspace-7_x] BitstreamRestController etag/content-length calculation fix when coverpages are enabled
2025-02-27 14:25:31 -06:00
Tim Donohue
4972a5d8f9 Merge pull request #10416 from DSpace/dependabot/maven/dspace-7_x/net.minidev-json-smart-2.5.2
Bump net.minidev:json-smart from 2.5.1 to 2.5.2
2025-02-18 12:09:53 -06:00
Tim Donohue
8fd3429c9a Merge pull request #10417 from DSpace/dependabot/maven/dspace-7_x/com.amazonaws-aws-java-sdk-s3-1.12.781
Bump com.amazonaws:aws-java-sdk-s3 from 1.12.780 to 1.12.781
2025-02-18 12:05:10 -06:00
Tim Donohue
f1ddc78729 Merge pull request #10415 from DSpace/dependabot/maven/dspace-7_x/apache-commons-6a14420bb4
Bump commons-beanutils:commons-beanutils from 1.10.0 to 1.10.1 in the apache-commons group
2025-02-18 12:04:01 -06:00
Tim Donohue
0cb3020442 Merge pull request #10414 from DSpace/dependabot/maven/dspace-7_x/build-tools-4f90ff9816
Bump com.github.spotbugs:spotbugs-maven-plugin from 4.8.6.6 to 4.9.1.0 in the build-tools group
2025-02-18 12:02:57 -06:00
dependabot[bot]
1d85653ed0 Bump com.amazonaws:aws-java-sdk-s3 from 1.12.780 to 1.12.781
Bumps [com.amazonaws:aws-java-sdk-s3](https://github.com/aws/aws-sdk-java) from 1.12.780 to 1.12.781.
- [Changelog](https://github.com/aws/aws-sdk-java/blob/master/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-java/compare/1.12.780...1.12.781)

---
updated-dependencies:
- dependency-name: com.amazonaws:aws-java-sdk-s3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-17 22:27:07 +00:00
dependabot[bot]
51c766caa3 Bump net.minidev:json-smart from 2.5.1 to 2.5.2
Bumps [net.minidev:json-smart](https://github.com/netplex/json-smart-v2) from 2.5.1 to 2.5.2.
- [Release notes](https://github.com/netplex/json-smart-v2/releases)
- [Commits](https://github.com/netplex/json-smart-v2/compare/2.5.1...2.5.2)

---
updated-dependencies:
- dependency-name: net.minidev:json-smart
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-17 22:26:49 +00:00
dependabot[bot]
edbf9ef605 Bump commons-beanutils:commons-beanutils in the apache-commons group
Bumps the apache-commons group with 1 update: commons-beanutils:commons-beanutils.


Updates `commons-beanutils:commons-beanutils` from 1.10.0 to 1.10.1

---
updated-dependencies:
- dependency-name: commons-beanutils:commons-beanutils
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: apache-commons
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-17 22:25:48 +00:00
dependabot[bot]
b63329b45a Bump com.github.spotbugs:spotbugs-maven-plugin in the build-tools group
Bumps the build-tools group with 1 update: [com.github.spotbugs:spotbugs-maven-plugin](https://github.com/spotbugs/spotbugs-maven-plugin).


Updates `com.github.spotbugs:spotbugs-maven-plugin` from 4.8.6.6 to 4.9.1.0
- [Release notes](https://github.com/spotbugs/spotbugs-maven-plugin/releases)
- [Commits](https://github.com/spotbugs/spotbugs-maven-plugin/compare/spotbugs-maven-plugin-4.8.6.6...spotbugs-maven-plugin-4.9.1.0)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build-tools
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-17 22:25:23 +00:00
Tim Donohue
8adbe244bf Merge pull request #10409 from DSpace/backport-10406-to-dspace-7_x
[Port dspace-7_x] Fix #10405 bug in log4j-cli
2025-02-13 12:59:05 -06:00
Martin Walk
268b5fc8b7 Fix #10405 bug in log4j-cli
(cherry picked from commit 4c044adcf3)
2025-02-13 16:40:50 +00:00
Tim Donohue
fedbccae49 Merge pull request #10392 from DSpace/dependabot/maven/dspace-7_x/tika.version-2.9.3
Bump tika.version from 2.9.2 to 2.9.3
2025-02-12 17:11:40 -06:00
Tim Donohue
fcc4dcf5b3 Merge pull request #10174 from atmire/w2p-121973_openaire-compliance-updates-7.x
[Port dspace-7_x] OpenAIRE v4 compliance updates
2025-02-12 12:36:10 -06:00
Paulo Graça
ee762260cf [Port dspace-7_x] Fixing Crossref document type issue with new metadata mapping processor (#9909)
* new metadata mapping processor for crossref document type

* licence and code style fixes

* adjust crossref test to consider mapped dc.type to Article

* correcting english

* remove trailing space
2025-02-12 15:26:27 +03:00
Tim Donohue
63bb639e68 Merge pull request #10346 from DSpace/dependabot/maven/dspace-7_x/io.grpc-grpc-context-1.70.0
Bump io.grpc:grpc-context from 1.69.0 to 1.70.0
2025-02-11 10:52:49 -06:00
Tim Donohue
dfe5628ed9 Merge pull request #10389 from DSpace/dependabot/maven/dspace-7_x/google-apis-4ffec14d6f
Bump the google-apis group across 1 directory with 3 updates
2025-02-11 10:52:11 -06:00
Tim Donohue
fc4a7628ef Merge pull request #10391 from DSpace/dependabot/maven/dspace-7_x/apache-commons-8f079b07b9
Bump commons-logging:commons-logging from 1.3.4 to 1.3.5 in the apache-commons group
2025-02-11 10:42:35 -06:00
Tim Donohue
102c347455 Dependency convergence fix 2025-02-11 10:40:51 -06:00
Tim Donohue
cf7370e2bc Merge pull request #10390 from DSpace/dependabot/maven/dspace-7_x/test-tools-104c99f93b
Bump the test-tools group with 6 updates
2025-02-11 09:51:01 -06:00
Tim Donohue
1c59295693 Merge pull request #10388 from DSpace/dependabot/maven/dspace-7_x/build-tools-2e3c11379d
Bump com.github.spotbugs:spotbugs from 4.9.0 to 4.9.1 in the build-tools group
2025-02-11 09:49:45 -06:00
dependabot[bot]
2c13ee40fe Bump tika.version from 2.9.2 to 2.9.3
Bumps `tika.version` from 2.9.2 to 2.9.3.

Updates `org.apache.tika:tika-core` from 2.9.2 to 2.9.3
- [Changelog](https://github.com/apache/tika/blob/2.9.3/CHANGES.txt)
- [Commits](https://github.com/apache/tika/compare/2.9.2...2.9.3)

Updates `org.apache.tika:tika-parsers-standard-package` from 2.9.2 to 2.9.3

---
updated-dependencies:
- dependency-name: org.apache.tika:tika-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.apache.tika:tika-parsers-standard-package
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-10 22:27:33 +00:00
dependabot[bot]
090001b685 Bump commons-logging:commons-logging in the apache-commons group
Bumps the apache-commons group with 1 update: commons-logging:commons-logging.


Updates `commons-logging:commons-logging` from 1.3.4 to 1.3.5

---
updated-dependencies:
- dependency-name: commons-logging:commons-logging
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: apache-commons
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-10 22:26:31 +00:00
dependabot[bot]
ba318d9710 Bump the test-tools group with 6 updates
Bumps the test-tools group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [io.netty:netty-buffer](https://github.com/netty/netty) | `4.1.117.Final` | `4.1.118.Final` |
| [io.netty:netty-transport](https://github.com/netty/netty) | `4.1.117.Final` | `4.1.118.Final` |
| [io.netty:netty-transport-native-unix-common](https://github.com/netty/netty) | `4.1.117.Final` | `4.1.118.Final` |
| [io.netty:netty-common](https://github.com/netty/netty) | `4.1.117.Final` | `4.1.118.Final` |
| [io.netty:netty-handler](https://github.com/netty/netty) | `4.1.117.Final` | `4.1.118.Final` |
| [io.netty:netty-codec](https://github.com/netty/netty) | `4.1.117.Final` | `4.1.118.Final` |


Updates `io.netty:netty-buffer` from 4.1.117.Final to 4.1.118.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.117.Final...netty-4.1.118.Final)

Updates `io.netty:netty-transport` from 4.1.117.Final to 4.1.118.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.117.Final...netty-4.1.118.Final)

Updates `io.netty:netty-transport-native-unix-common` from 4.1.117.Final to 4.1.118.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.117.Final...netty-4.1.118.Final)

Updates `io.netty:netty-common` from 4.1.117.Final to 4.1.118.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.117.Final...netty-4.1.118.Final)

Updates `io.netty:netty-handler` from 4.1.117.Final to 4.1.118.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.117.Final...netty-4.1.118.Final)

Updates `io.netty:netty-codec` from 4.1.117.Final to 4.1.118.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.117.Final...netty-4.1.118.Final)

---
updated-dependencies:
- dependency-name: io.netty:netty-buffer
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-transport
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-transport-native-unix-common
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-common
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-handler
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-codec
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-10 22:26:17 +00:00
dependabot[bot]
06a5458205 Bump the google-apis group across 1 directory with 3 updates
Bumps the google-apis group with 3 updates in the / directory: [com.google.http-client:google-http-client](https://github.com/googleapis/google-http-java-client), [com.google.http-client:google-http-client-jackson2](https://github.com/googleapis/google-http-java-client) and [com.google.http-client:google-http-client-gson](https://github.com/googleapis/google-http-java-client).


Updates `com.google.http-client:google-http-client` from 1.45.3 to 1.46.1
- [Release notes](https://github.com/googleapis/google-http-java-client/releases)
- [Changelog](https://github.com/googleapis/google-http-java-client/blob/main/CHANGELOG.md)
- [Commits](https://github.com/googleapis/google-http-java-client/compare/v1.45.3...v1.46.1)

Updates `com.google.http-client:google-http-client-jackson2` from 1.45.3 to 1.46.1
- [Release notes](https://github.com/googleapis/google-http-java-client/releases)
- [Changelog](https://github.com/googleapis/google-http-java-client/blob/main/CHANGELOG.md)
- [Commits](https://github.com/googleapis/google-http-java-client/compare/v1.45.3...v1.46.1)

Updates `com.google.http-client:google-http-client-gson` from 1.43.3 to 1.46.1
- [Release notes](https://github.com/googleapis/google-http-java-client/releases)
- [Changelog](https://github.com/googleapis/google-http-java-client/blob/main/CHANGELOG.md)
- [Commits](https://github.com/googleapis/google-http-java-client/compare/v1.43.3...v1.46.1)

---
updated-dependencies:
- dependency-name: com.google.http-client:google-http-client
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: google-apis
- dependency-name: com.google.http-client:google-http-client-jackson2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: google-apis
- dependency-name: com.google.http-client:google-http-client-gson
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: google-apis
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-10 22:25:53 +00:00
dependabot[bot]
8e411ac70c Bump com.github.spotbugs:spotbugs in the build-tools group
Bumps the build-tools group with 1 update: [com.github.spotbugs:spotbugs](https://github.com/spotbugs/spotbugs).


Updates `com.github.spotbugs:spotbugs` from 4.9.0 to 4.9.1
- [Release notes](https://github.com/spotbugs/spotbugs/releases)
- [Changelog](https://github.com/spotbugs/spotbugs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/spotbugs/spotbugs/compare/4.9.0...4.9.1)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build-tools
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-10 22:25:47 +00:00
Tim Donohue
ce1dbb6d2c Merge pull request #10372 from DSpace/dependabot/maven/dspace-7_x/joda-time-joda-time-2.13.1
Bump joda-time:joda-time from 2.13.0 to 2.13.1
2025-02-10 14:15:36 -06:00
Tim Donohue
cb4fb777c5 Merge pull request #10347 from DSpace/dependabot/maven/dspace-7_x/dnsjava-dnsjava-3.6.3
Bump dnsjava:dnsjava from 3.6.2 to 3.6.3
2025-02-10 14:11:56 -06:00
Tim Donohue
72cedb7722 Merge pull request #10344 from DSpace/dependabot/maven/dspace-7_x/apache-commons-f9d9c8ba39
Bump the apache-commons group with 2 updates
2025-02-10 14:10:41 -06:00
Tim Donohue
dd6183b9cb Merge pull request #10383 from tdonohue/port_10381_to_7x
[Port dspace-7_x] Remove unused/unnecessary dependencies : `byte-buddy`
2025-02-10 14:03:48 -06:00
Tim Donohue
a2cb8cc838 Remove unused byte-buddy 2025-02-10 11:37:26 -06:00
Tim Donohue
e0aa56ca82 [maven-release-plugin] prepare for next development iteration 2025-02-07 10:57:05 -06:00
Tim Donohue
6181f2723c [maven-release-plugin] prepare release dspace-7.6.3 2025-02-07 10:57:02 -06:00
Tim Donohue
7e4fc1daaf Update LICENSES_THIRD_PARTY for 7.6.3 2025-02-07 10:22:53 -06:00
Tim Donohue
ae0b9a4bdb Merge pull request #10378 from 4Science/task/dspace-7_x/DURACOM-288
[Port dspace-7_x] Provide a setting to use a different REST url during SSR execution
2025-02-07 09:30:59 -06:00
Giuseppe Digilio
7e7a4c9da0 Merge remote-tracking branch 'upstreamdspace/dspace-7_x' into task/dspace-7_x/DURACOM-288
# Conflicts:
#	dspace-server-webapp/src/test/java/org/dspace/app/rest/AuthorizationRestRepositoryIT.java
2025-02-06 18:08:15 +01:00
Giuseppe Digilio
888edc4597 [DURACOM-288] Fix wrong imports 2025-02-06 18:03:23 +01:00
Giuseppe Digilio
81642ea139 [DURACOM-288] Change logic in order to use dspaceUrl as default fallback 2025-02-06 17:05:56 +01:00
Giuseppe Digilio
e6f565e90f [DURACOM-288] Build endpoint map according to request origin, in order to get internal urls if used 2025-02-06 17:05:38 +01:00
Giuseppe Digilio
648d9f6972 [DURACOM-288] Set dspace.server.ssr.url as dspace.server.url by default 2025-02-06 17:05:18 +01:00
Giuseppe Digilio
c39042095a [DURACOM-288] Code refactoring and test improvements 2025-02-06 17:05:02 +01:00
Giuseppe Digilio
a2e518444c [DURACOM-288] Fix test 2025-02-06 17:04:50 +01:00
Giuseppe Digilio
369bda130a [DURACOM-288] Add dspace.server.ssr.uri in the local.cfg.EXAMPLE 2025-02-06 17:04:39 +01:00
Giuseppe Digilio
ea15a3b965 [DURACOM-288] Add check to allow base object uri containing dspace.server.ssr.uri 2025-02-06 17:04:28 +01:00
Giuseppe Digilio
94ad5744e2 [DURACOM-288] Add DSpace property to specify addition rest url 2025-02-06 17:04:18 +01:00
dependabot[bot]
723ad07ae9 Bump joda-time:joda-time from 2.13.0 to 2.13.1
Bumps [joda-time:joda-time](https://github.com/JodaOrg/joda-time) from 2.13.0 to 2.13.1.
- [Release notes](https://github.com/JodaOrg/joda-time/releases)
- [Changelog](https://github.com/JodaOrg/joda-time/blob/main/RELEASE-NOTES.txt)
- [Commits](https://github.com/JodaOrg/joda-time/compare/v2.13.0...v2.13.1)

---
updated-dependencies:
- dependency-name: joda-time:joda-time
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-03 23:20:40 +00:00
dependabot[bot]
63fbffc963 Bump the apache-commons group with 2 updates
Bumps the apache-commons group with 2 updates: [commons-codec:commons-codec](https://github.com/apache/commons-codec) and org.apache.commons:commons-pool2.


Updates `commons-codec:commons-codec` from 1.17.2 to 1.18.0
- [Changelog](https://github.com/apache/commons-codec/blob/master/RELEASE-NOTES.txt)
- [Commits](https://github.com/apache/commons-codec/compare/rel/commons-codec-1.17.2...rel/commons-codec-1.18.0)

Updates `org.apache.commons:commons-pool2` from 2.12.0 to 2.12.1

---
updated-dependencies:
- dependency-name: commons-codec:commons-codec
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: apache-commons
- dependency-name: org.apache.commons:commons-pool2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: apache-commons
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-03 23:19:27 +00:00
Tim Donohue
ec32897f50 Merge pull request #10358 from DSpace/backport-10293-to-dspace-7_x
[Port dspace-7_x] Fix ClamAV curation task crashing on exceptions instead of ending gracefully
2025-02-03 09:54:43 -06:00
Jens Vannerum
094af861b3 124579: catch any exceptions during process and end task gracefully
(cherry picked from commit 11a1c9ab06)
2025-02-01 09:53:29 +00:00
Jens Vannerum
6b4c7a773d 124579: If no ORIGINAL bundle exists, end the process gracefully instead of throwing NPE
(cherry picked from commit 046c1b5d05)
2025-02-01 09:53:29 +00:00
Marie Verdonck
bf520782d8 Merge branch 'cli-speed-improvements-periodically-uncache-entities-when-processing-many_7.6' into cli-speed-improvements-periodically-uncache-entities-when-processing-many_7-x
# Conflicts:
#	dspace-api/src/main/java/org/dspace/core/Context.java
#	dspace-api/src/main/java/org/dspace/core/DBConnection.java
#	dspace-api/src/main/java/org/dspace/core/HibernateDBConnection.java
2025-01-29 22:11:03 +01:00
Tim Donohue
6bf4d142a4 Merge pull request #10111 from atmire/issue-10110_w2p-109807_arxiv-author-mapping-fix-7_x
[Port dspace-7_x] ArXiv Live Import - Author mapping fix
2025-01-29 12:08:08 -06:00
Marie Verdonck
e8a54e698c cli speed improvement: periodically uncache entities when processing many 2025-01-29 12:42:25 +01:00
dependabot[bot]
3885966b4d Bump dnsjava:dnsjava from 3.6.2 to 3.6.3
Bumps [dnsjava:dnsjava](https://github.com/dnsjava/dnsjava) from 3.6.2 to 3.6.3.
- [Release notes](https://github.com/dnsjava/dnsjava/releases)
- [Changelog](https://github.com/dnsjava/dnsjava/blob/master/Changelog)
- [Commits](https://github.com/dnsjava/dnsjava/compare/v3.6.2...v3.6.3)

---
updated-dependencies:
- dependency-name: dnsjava:dnsjava
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-27 23:07:21 +00:00
dependabot[bot]
859dd4c69d Bump io.grpc:grpc-context from 1.69.0 to 1.70.0
Bumps [io.grpc:grpc-context](https://github.com/grpc/grpc-java) from 1.69.0 to 1.70.0.
- [Release notes](https://github.com/grpc/grpc-java/releases)
- [Commits](https://github.com/grpc/grpc-java/compare/v1.69.0...v1.70.0)

---
updated-dependencies:
- dependency-name: io.grpc:grpc-context
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-27 23:07:18 +00:00
Tim Donohue
c27084724b Merge pull request #10336 from DSpace/backport-10331-to-dspace-7_x
[Port dspace-7_x] Remove unused configuration `csvexport.dir`
2025-01-27 11:15:20 -06:00
Tim Donohue
8cb693ab62 Merge pull request #10334 from DSpace/backport-9835-to-dspace-7_x
[Port dspace-7_x] On error in DOI Organiser bulk operations, continue instead of panic-stopping.
2025-01-27 10:27:19 -06:00
Tim Donohue
338e17d197 Remove unused configuration
(cherry picked from commit 845c706cac)
2025-01-27 16:03:36 +00:00
Mark H. Wood
6d187a08fd Document and handle the actual exceptions returned by register.
(cherry picked from commit 2edea69ca3)
2025-01-27 15:44:58 +00:00
Mark H. Wood
cc3841d212 Reorganize some documentation.
(cherry picked from commit 77425163f2)
2025-01-27 15:44:57 +00:00
Mark H. Wood
f7902bce00 On error in bulk operations, continue instead of panic-stopping.
(cherry picked from commit bfeba1aa7a)
2025-01-27 15:44:57 +00:00
Tim Donohue
a54d61923a Merge pull request #10283 from DSpace/dependabot/maven/dspace-7_x/net.cnri-cnri-servlet-container-3.1.0
Bump net.cnri:cnri-servlet-container from 3.0.0 to 3.1.0
2025-01-24 17:01:08 -06:00
Tim Donohue
125716efeb Merge pull request #10306 from DSpace/dependabot/maven/dspace-7_x/net.minidev-json-smart-2.5.1
Bump net.minidev:json-smart from 2.5.0 to 2.5.1
2025-01-24 16:34:55 -06:00
Tim Donohue
1cc98e6c2d Fix missing dependency errors for javax.el 2025-01-24 16:31:05 -06:00
Tim Donohue
5408f317d7 Merge pull request #10226 from DSpace/dependabot/maven/dspace-7_x/google-apis-05b77a15af
Bump the google-apis group with 4 updates
2025-01-24 15:57:09 -06:00
Tim Donohue
5169a55437 Resolve dependency convergence issue 2025-01-24 15:56:12 -06:00
Tim Donohue
96451f7391 Dependency convergence fixes 2025-01-24 15:06:43 -06:00
Tim Donohue
c7883e0f0a Merge pull request #10302 from DSpace/dependabot/maven/dspace-7_x/org.atteo-evo-inflector-1.3
Bump org.atteo:evo-inflector from 1.2.1 to 1.3
2025-01-24 14:42:36 -06:00
Tim Donohue
6d466ccde9 Merge pull request #10328 from DSpace/dependabot/maven/dspace-7_x/de.digitalcollections.iiif-iiif-apis-0.3.11
Bump de.digitalcollections.iiif:iiif-apis from 0.3.10 to 0.3.11
2025-01-24 11:40:33 -06:00
Tim Donohue
140588de8b Merge pull request #10330 from tdonohue/port_9950_to_7x
[Port dspace-7_x] added expunge request param and enabled workflowitem delete based on it
2025-01-24 10:47:25 -06:00
Oscar Chacón
10b3f06480 added expunge request param and enabled workflowitem delete based on it (#9950)
* added expunge request param and enabled workflowitem delete based on it

* enabled expunge param only in workflowitem delete endpoint and IT

* Remove invalid param from JavaDocs

---------

Co-authored-by: Tim Donohue <tim.donohue@lyrasis.org>
2025-01-24 10:11:23 -06:00
Tim Donohue
6486f61010 Merge pull request #10320 from tdonohue/port_10158_to_7x
[Port dspace-7_x] Processes should only be failed after a Tomcat restart
2025-01-24 08:53:07 -06:00
Tim Donohue
6d9278e6f0 Merge pull request #10325 from DSpace/dependabot/maven/dspace-7_x/com.ibm.icu-icu4j-62.2
Bump com.ibm.icu:icu4j from 62.1 to 62.2
2025-01-24 07:00:45 -06:00
Tim Donohue
f7f2d23399 Merge pull request #10327 from DSpace/dependabot/maven/dspace-7_x/com.opencsv-opencsv-5.10
Bump com.opencsv:opencsv from 5.9 to 5.10
2025-01-24 06:58:52 -06:00
dependabot[bot]
25be075b3c Bump de.digitalcollections.iiif:iiif-apis from 0.3.10 to 0.3.11
Bumps [de.digitalcollections.iiif:iiif-apis](https://github.com/dbmdz/iiif-apis) from 0.3.10 to 0.3.11.
- [Release notes](https://github.com/dbmdz/iiif-apis/releases)
- [Commits](https://github.com/dbmdz/iiif-apis/compare/0.3.10...0.3.11)

---
updated-dependencies:
- dependency-name: de.digitalcollections.iiif:iiif-apis
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-24 00:22:28 +00:00
dependabot[bot]
63081494d8 Bump com.opencsv:opencsv from 5.9 to 5.10
Bumps com.opencsv:opencsv from 5.9 to 5.10.

---
updated-dependencies:
- dependency-name: com.opencsv:opencsv
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-24 00:22:13 +00:00
dependabot[bot]
77efa5ce88 Bump com.ibm.icu:icu4j from 62.1 to 62.2
Bumps [com.ibm.icu:icu4j](https://github.com/unicode-org/icu) from 62.1 to 62.2.
- [Release notes](https://github.com/unicode-org/icu/releases)
- [Commits](https://github.com/unicode-org/icu/commits)

---
updated-dependencies:
- dependency-name: com.ibm.icu:icu4j
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-24 00:21:41 +00:00
dependabot[bot]
62959008f8 Bump the google-apis group with 4 updates
Bumps the google-apis group with 4 updates: [com.google.api-client:google-api-client](https://github.com/googleapis/google-api-java-client), [com.google.http-client:google-http-client](https://github.com/googleapis/google-http-java-client), [com.google.http-client:google-http-client-jackson2](https://github.com/googleapis/google-http-java-client) and [com.google.oauth-client:google-oauth-client](https://github.com/googleapis/google-oauth-java-client).


Updates `com.google.api-client:google-api-client` from 1.23.0 to 1.35.2
- [Release notes](https://github.com/googleapis/google-api-java-client/releases)
- [Changelog](https://github.com/googleapis/google-api-java-client/blob/main/CHANGELOG.md)
- [Commits](https://github.com/googleapis/google-api-java-client/compare/1.23.0...v1.35.2)

Updates `com.google.http-client:google-http-client` from 1.23.0 to 1.45.3
- [Release notes](https://github.com/googleapis/google-http-java-client/releases)
- [Changelog](https://github.com/googleapis/google-http-java-client/blob/main/CHANGELOG.md)
- [Commits](https://github.com/googleapis/google-http-java-client/compare/1.23.0...v1.45.3)

Updates `com.google.http-client:google-http-client-jackson2` from 1.23.0 to 1.45.3
- [Release notes](https://github.com/googleapis/google-http-java-client/releases)
- [Changelog](https://github.com/googleapis/google-http-java-client/blob/main/CHANGELOG.md)
- [Commits](https://github.com/googleapis/google-http-java-client/compare/1.23.0...v1.45.3)

Updates `com.google.oauth-client:google-oauth-client` from 1.33.3 to 1.37.0
- [Release notes](https://github.com/googleapis/google-oauth-java-client/releases)
- [Changelog](https://github.com/googleapis/google-oauth-java-client/blob/main/CHANGELOG.md)
- [Commits](https://github.com/googleapis/google-oauth-java-client/compare/v1.33.3...v1.37.0)

---
updated-dependencies:
- dependency-name: com.google.api-client:google-api-client
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: google-apis
- dependency-name: com.google.http-client:google-http-client
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: google-apis
- dependency-name: com.google.http-client:google-http-client-jackson2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: google-apis
- dependency-name: com.google.oauth-client:google-oauth-client
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: google-apis
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-24 00:21:38 +00:00
Tim Donohue
bcd837fab6 Merge pull request #10301 from DSpace/dependabot/maven/dspace-7_x/com.amazonaws-aws-java-sdk-s3-1.12.780
Bump com.amazonaws:aws-java-sdk-s3 from 1.12.261 to 1.12.780
2025-01-23 17:06:00 -06:00
Tim Donohue
06c02192ea Merge pull request #10310 from DSpace/dependabot/maven/dspace-7_x/org.postgresql-postgresql-42.7.5
Bump org.postgresql:postgresql from 42.7.3 to 42.7.5
2025-01-23 17:01:19 -06:00
Tim Donohue
951637f610 Merge pull request #10311 from DSpace/dependabot/maven/dspace-7_x/org.jboss.logging-jboss-logging-3.6.1.Final
Bump org.jboss.logging:jboss-logging from 3.4.3.Final to 3.6.1.Final
2025-01-23 16:55:01 -06:00
Tim Donohue
a7fb760fee Merge pull request #10314 from DSpace/dependabot/maven/dspace-7_x/org.apache.james-apache-mime4j-core-0.8.12
Bump org.apache.james:apache-mime4j-core from 0.8.10 to 0.8.12
2025-01-23 16:52:12 -06:00
Nona Luypaert
0d069354f7 122350: Move failRunningProcesses during tomcat startup to RestRepository 2025-01-23 16:32:55 -06:00
Tim Donohue
ae3cc23025 Merge pull request #10281 from DSpace/dependabot/maven/dspace-7_x/joda-time-joda-time-2.13.0
Bump joda-time:joda-time from 2.12.5 to 2.13.0
2025-01-23 14:12:42 -06:00
dependabot[bot]
75d747e40a Bump org.apache.james:apache-mime4j-core from 0.8.10 to 0.8.12
Bumps org.apache.james:apache-mime4j-core from 0.8.10 to 0.8.12.

---
updated-dependencies:
- dependency-name: org.apache.james:apache-mime4j-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-23 18:23:46 +00:00
dependabot[bot]
daa29e582a Bump org.jboss.logging:jboss-logging from 3.4.3.Final to 3.6.1.Final
Bumps [org.jboss.logging:jboss-logging](https://github.com/jboss-logging/jboss-logging) from 3.4.3.Final to 3.6.1.Final.
- [Release notes](https://github.com/jboss-logging/jboss-logging/releases)
- [Commits](https://github.com/jboss-logging/jboss-logging/compare/3.4.3.Final...3.6.1.Final)

---
updated-dependencies:
- dependency-name: org.jboss.logging:jboss-logging
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-23 18:23:43 +00:00
dependabot[bot]
0f3fc0eccb Bump org.postgresql:postgresql from 42.7.3 to 42.7.5
Bumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.7.3 to 42.7.5.
- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)
- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.7.3...REL42.7.5)

---
updated-dependencies:
- dependency-name: org.postgresql:postgresql
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-23 18:23:37 +00:00
dependabot[bot]
1b850aaf0b Bump net.minidev:json-smart from 2.5.0 to 2.5.1
Bumps [net.minidev:json-smart](https://github.com/netplex/json-smart-v2) from 2.5.0 to 2.5.1.
- [Release notes](https://github.com/netplex/json-smart-v2/releases)
- [Commits](https://github.com/netplex/json-smart-v2/compare/2.5.0...2.5.1)

---
updated-dependencies:
- dependency-name: net.minidev:json-smart
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-23 18:23:27 +00:00
dependabot[bot]
3767093c15 Bump org.atteo:evo-inflector from 1.2.1 to 1.3
Bumps [org.atteo:evo-inflector](https://github.com/atteo/evo-inflector) from 1.2.1 to 1.3.
- [Commits](https://github.com/atteo/evo-inflector/compare/1.2.1...1.3)

---
updated-dependencies:
- dependency-name: org.atteo:evo-inflector
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-23 18:23:11 +00:00
dependabot[bot]
f451307e6f Bump com.amazonaws:aws-java-sdk-s3 from 1.12.261 to 1.12.780
Bumps [com.amazonaws:aws-java-sdk-s3](https://github.com/aws/aws-sdk-java) from 1.12.261 to 1.12.780.
- [Changelog](https://github.com/aws/aws-sdk-java/blob/master/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-java/compare/1.12.261...1.12.780)

---
updated-dependencies:
- dependency-name: com.amazonaws:aws-java-sdk-s3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-23 18:23:01 +00:00
dependabot[bot]
0a55995b7c Remove unused joad-time dependency
Bumps [joda-time:joda-time](https://github.com/JodaOrg/joda-time) from 2.12.5 to 2.13.0.
- [Release notes](https://github.com/JodaOrg/joda-time/releases)
- [Changelog](https://github.com/JodaOrg/joda-time/blob/main/RELEASE-NOTES.txt)
- [Commits](https://github.com/JodaOrg/joda-time/compare/v2.12.5...v2.13.0)

---
updated-dependencies:
- dependency-name: joda-time:joda-time
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-23 17:08:10 +00:00
Tim Donohue
1a9ae38675 Merge pull request #10284 from DSpace/dependabot/maven/dspace-7_x/org.apache.ant-ant-1.10.15
Bump org.apache.ant:ant from 1.10.14 to 1.10.15
2025-01-22 16:50:29 -06:00
Tim Donohue
6e4365757e Merge pull request #10285 from DSpace/dependabot/maven/dspace-7_x/dnsjava-dnsjava-3.6.2
Bump dnsjava:dnsjava from 3.6.0 to 3.6.2
2025-01-22 16:50:03 -06:00
Tim Donohue
e6dcbb8412 Merge pull request #10282 from DSpace/dependabot/maven/dspace-7_x/org.apache.velocity-velocity-engine-core-2.4.1
Bump org.apache.velocity:velocity-engine-core from 2.3 to 2.4.1
2025-01-22 16:48:28 -06:00
Tim Donohue
1dbd23e247 Merge pull request #10277 from DSpace/dependabot/maven/dspace-7_x/net.bytebuddy-byte-buddy-1.16.1
Bump net.bytebuddy:byte-buddy from 1.11.13 to 1.16.1
2025-01-22 16:47:15 -06:00
Tim Donohue
f14b8bfe6c Merge pull request #10275 from DSpace/dependabot/maven/dspace-7_x/bouncycastle.version-1.80
Bump bouncycastle.version from 1.78.1 to 1.80
2025-01-22 16:46:11 -06:00
Tim Donohue
18cf98be4f Merge pull request #10278 from DSpace/dependabot/maven/dspace-7_x/pdfbox-version-2.0.33
Bump pdfbox-version from 2.0.31 to 2.0.33
2025-01-22 15:09:29 -06:00
Tim Donohue
8bcd3980d8 Merge pull request #9722 from 4Science/task/dspace-7_x/CST-14901
[Port dspace-7_x] Handles versioning for ORCID publications.
2025-01-22 14:51:02 -06:00
Tim Donohue
f94bbfca45 Merge pull request #10295 from DSpace/backport-10209-to-dspace-7_x
[Port dspace-7_x] Avoid IllegalArgumentException thrown during creating a new version in special DSpace settings
2025-01-22 14:22:56 -06:00
Tim Donohue
1f53491140 Merge pull request #10254 from DSpace/dependabot/maven/dspace-7_x/org.scala-lang-scala-library-2.13.16
Bump org.scala-lang:scala-library from 2.13.11 to 2.13.16
2025-01-22 10:38:12 -06:00
Eike Martin Löhden
da3584759b Add check to avoid adding empty array of values to an item.
(cherry picked from commit 6e0124fcbb)
2025-01-22 16:19:54 +00:00
dependabot[bot]
cd2fbbf51b Bump dnsjava:dnsjava from 3.6.0 to 3.6.2
Bumps [dnsjava:dnsjava](https://github.com/dnsjava/dnsjava) from 3.6.0 to 3.6.2.
- [Release notes](https://github.com/dnsjava/dnsjava/releases)
- [Changelog](https://github.com/dnsjava/dnsjava/blob/master/Changelog)
- [Commits](https://github.com/dnsjava/dnsjava/compare/v3.6.0...v3.6.2)

---
updated-dependencies:
- dependency-name: dnsjava:dnsjava
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-21 23:28:54 +00:00
dependabot[bot]
9d46a45191 Bump org.apache.ant:ant from 1.10.14 to 1.10.15
Bumps org.apache.ant:ant from 1.10.14 to 1.10.15.

---
updated-dependencies:
- dependency-name: org.apache.ant:ant
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-21 23:28:48 +00:00
dependabot[bot]
9bca0c928b Bump net.cnri:cnri-servlet-container from 3.0.0 to 3.1.0
Bumps [net.cnri:cnri-servlet-container](https://gitlab.com/cnri/cnri-servlet-container) from 3.0.0 to 3.1.0.
- [Commits](https://gitlab.com/cnri/cnri-servlet-container/compare/v3.0.0...v3.1.0)

---
updated-dependencies:
- dependency-name: net.cnri:cnri-servlet-container
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-21 23:28:37 +00:00
dependabot[bot]
e3abd1c129 Bump org.apache.velocity:velocity-engine-core from 2.3 to 2.4.1
Bumps org.apache.velocity:velocity-engine-core from 2.3 to 2.4.1.

---
updated-dependencies:
- dependency-name: org.apache.velocity:velocity-engine-core
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-21 23:28:34 +00:00
dependabot[bot]
39e2ef2b30 Bump pdfbox-version from 2.0.31 to 2.0.33
Bumps `pdfbox-version` from 2.0.31 to 2.0.33.

Updates `org.apache.pdfbox:pdfbox` from 2.0.31 to 2.0.33

Updates `org.apache.pdfbox:fontbox` from 2.0.31 to 2.0.33

---
updated-dependencies:
- dependency-name: org.apache.pdfbox:pdfbox
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.apache.pdfbox:fontbox
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-21 23:28:19 +00:00
dependabot[bot]
9705c30f8a Bump net.bytebuddy:byte-buddy from 1.11.13 to 1.16.1
Bumps [net.bytebuddy:byte-buddy](https://github.com/raphw/byte-buddy) from 1.11.13 to 1.16.1.
- [Release notes](https://github.com/raphw/byte-buddy/releases)
- [Changelog](https://github.com/raphw/byte-buddy/blob/master/release-notes.md)
- [Commits](https://github.com/raphw/byte-buddy/compare/byte-buddy-1.11.13...byte-buddy-1.16.1)

---
updated-dependencies:
- dependency-name: net.bytebuddy:byte-buddy
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-21 23:28:11 +00:00
dependabot[bot]
7d4a5fc311 Bump bouncycastle.version from 1.78.1 to 1.80
Bumps `bouncycastle.version` from 1.78.1 to 1.80.

Updates `org.bouncycastle:bcpkix-jdk18on` from 1.78.1 to 1.80
- [Changelog](https://github.com/bcgit/bc-java/blob/main/docs/releasenotes.html)
- [Commits](https://github.com/bcgit/bc-java/commits)

Updates `org.bouncycastle:bcprov-jdk18on` from 1.78.1 to 1.80
- [Changelog](https://github.com/bcgit/bc-java/blob/main/docs/releasenotes.html)
- [Commits](https://github.com/bcgit/bc-java/commits)

Updates `org.bouncycastle:bcutil-jdk18on` from 1.78.1 to 1.80
- [Changelog](https://github.com/bcgit/bc-java/blob/main/docs/releasenotes.html)
- [Commits](https://github.com/bcgit/bc-java/commits)

---
updated-dependencies:
- dependency-name: org.bouncycastle:bcpkix-jdk18on
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.bouncycastle:bcprov-jdk18on
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.bouncycastle:bcutil-jdk18on
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-21 23:28:06 +00:00
Tim Donohue
4ca723573b Merge pull request #10256 from DSpace/dependabot/maven/dspace-7_x/log4j.version-2.24.3
Bump log4j.version from 2.23.1 to 2.24.3
2025-01-21 16:48:02 -06:00
Tim Donohue
a40620514a Merge pull request #10255 from DSpace/dependabot/maven/dspace-7_x/org.apache.bcel-bcel-6.10.0
Bump org.apache.bcel:bcel from 6.7.0 to 6.10.0
2025-01-21 16:42:50 -06:00
Tim Donohue
6bd6686e57 Merge pull request #10269 from DSpace/dependabot/maven/dspace-7_x/io.swagger-swagger-core-1.6.15
Remove unused swagger:swagger-core
2025-01-21 15:54:53 -06:00
Tim Donohue
b3e1139006 Remove swagger-core as it is unused 2025-01-21 13:41:10 -06:00
Tim Donohue
1c82598c3f Merge pull request #10268 from DSpace/dependabot/maven/dspace-7_x/solr.client.version-8.11.4
Bump solr.client.version from 8.11.3 to 8.11.4
2025-01-21 13:25:48 -06:00
Tim Donohue
3d0006ee73 Merge pull request #10264 from DSpace/dependabot/maven/dspace-7_x/build-tools-907e20f2d5
Bump com.github.spotbugs:spotbugs from 4.8.6 to 4.9.0 in the build-tools group across 1 directory
2025-01-21 13:10:09 -06:00
Tim Donohue
86dd22acab Merge pull request #10220 from DSpace/dependabot/maven/dspace-7_x/test-tools-6cdf6921de
Bump the test-tools group with 8 updates
2025-01-21 13:09:19 -06:00
Tim Donohue
5ff9702254 Merge pull request #10253 from DSpace/dependabot/maven/dspace-7_x/spring-e4edb82a34
Bump the spring group with 4 updates
2025-01-21 13:06:38 -06:00
dependabot[bot]
8076745a09 Bump io.swagger:swagger-core from 1.6.2 to 1.6.15
Bumps [io.swagger:swagger-core](https://github.com/swagger-api/swagger-core) from 1.6.2 to 1.6.15.
- [Release notes](https://github.com/swagger-api/swagger-core/releases)
- [Commits](https://github.com/swagger-api/swagger-core/compare/v1.6.2...v1.6.15)

---
updated-dependencies:
- dependency-name: io.swagger:swagger-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-20 22:43:53 +00:00
dependabot[bot]
bf1aa3da7a Bump solr.client.version from 8.11.3 to 8.11.4
Bumps `solr.client.version` from 8.11.3 to 8.11.4.

Updates `org.apache.solr:solr-solrj` from 8.11.3 to 8.11.4

Updates `org.apache.lucene:lucene-core` from 8.11.3 to 8.11.4

Updates `org.apache.lucene:lucene-analyzers-icu` from 8.11.3 to 8.11.4

Updates `org.apache.lucene:lucene-analyzers-smartcn` from 8.11.3 to 8.11.4

Updates `org.apache.lucene:lucene-analyzers-stempel` from 8.11.3 to 8.11.4

Updates `org.apache.solr:solr-core` from 8.11.3 to 8.11.4

---
updated-dependencies:
- dependency-name: org.apache.solr:solr-solrj
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.apache.lucene:lucene-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.apache.lucene:lucene-analyzers-icu
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.apache.lucene:lucene-analyzers-smartcn
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.apache.lucene:lucene-analyzers-stempel
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.apache.solr:solr-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-20 22:43:50 +00:00
dependabot[bot]
9dcc4e6f7c Bump the spring group with 4 updates
Bumps the spring group with 4 updates: [org.springframework.security:spring-security-test](https://github.com/spring-projects/spring-security), [org.springframework.security:spring-security-core](https://github.com/spring-projects/spring-security), [org.springframework.security:spring-security-web](https://github.com/spring-projects/spring-security) and [org.springframework.security:spring-security-config](https://github.com/spring-projects/spring-security).


Updates `org.springframework.security:spring-security-test` from 5.7.12 to 5.7.14
- [Release notes](https://github.com/spring-projects/spring-security/releases)
- [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc)
- [Commits](https://github.com/spring-projects/spring-security/compare/5.7.12...5.7.14)

Updates `org.springframework.security:spring-security-core` from 5.7.12 to 5.7.14
- [Release notes](https://github.com/spring-projects/spring-security/releases)
- [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc)
- [Commits](https://github.com/spring-projects/spring-security/compare/5.7.12...5.7.14)

Updates `org.springframework.security:spring-security-web` from 5.7.12 to 5.7.14
- [Release notes](https://github.com/spring-projects/spring-security/releases)
- [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc)
- [Commits](https://github.com/spring-projects/spring-security/compare/5.7.12...5.7.14)

Updates `org.springframework.security:spring-security-config` from 5.7.12 to 5.7.14
- [Release notes](https://github.com/spring-projects/spring-security/releases)
- [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc)
- [Commits](https://github.com/spring-projects/spring-security/compare/5.7.12...5.7.14)

Updates `org.springframework.security:spring-security-core` from 5.7.12 to 5.7.14
- [Release notes](https://github.com/spring-projects/spring-security/releases)
- [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc)
- [Commits](https://github.com/spring-projects/spring-security/compare/5.7.12...5.7.14)

Updates `org.springframework.security:spring-security-web` from 5.7.12 to 5.7.14
- [Release notes](https://github.com/spring-projects/spring-security/releases)
- [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc)
- [Commits](https://github.com/spring-projects/spring-security/compare/5.7.12...5.7.14)

Updates `org.springframework.security:spring-security-config` from 5.7.12 to 5.7.14
- [Release notes](https://github.com/spring-projects/spring-security/releases)
- [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc)
- [Commits](https://github.com/spring-projects/spring-security/compare/5.7.12...5.7.14)

---
updated-dependencies:
- dependency-name: org.springframework.security:spring-security-test
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: spring
- dependency-name: org.springframework.security:spring-security-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: spring
- dependency-name: org.springframework.security:spring-security-web
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: spring
- dependency-name: org.springframework.security:spring-security-config
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: spring
- dependency-name: org.springframework.security:spring-security-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: spring
- dependency-name: org.springframework.security:spring-security-web
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: spring
- dependency-name: org.springframework.security:spring-security-config
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: spring
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-20 22:43:38 +00:00
dependabot[bot]
75e291d867 Bump the test-tools group with 8 updates
Bumps the test-tools group with 8 updates:

| Package | From | To |
| --- | --- | --- |
| [com.h2database:h2](https://github.com/h2database/h2database) | `2.2.224` | `2.3.232` |
| [org.mock-server:mockserver-junit-rule](https://github.com/jamesdbloom/mockservice) | `5.11.2` | `5.15.0` |
| [io.netty:netty-buffer](https://github.com/netty/netty) | `4.1.106.Final` | `4.1.117.Final` |
| [io.netty:netty-transport](https://github.com/netty/netty) | `4.1.106.Final` | `4.1.117.Final` |
| [io.netty:netty-transport-native-unix-common](https://github.com/netty/netty) | `4.1.106.Final` | `4.1.117.Final` |
| [io.netty:netty-common](https://github.com/netty/netty) | `4.1.106.Final` | `4.1.117.Final` |
| [io.netty:netty-handler](https://github.com/netty/netty) | `4.1.106.Final` | `4.1.117.Final` |
| [io.netty:netty-codec](https://github.com/netty/netty) | `4.1.106.Final` | `4.1.117.Final` |


Updates `com.h2database:h2` from 2.2.224 to 2.3.232
- [Release notes](https://github.com/h2database/h2database/releases)
- [Commits](https://github.com/h2database/h2database/compare/version-2.2.224...version-2.3.232)

Updates `org.mock-server:mockserver-junit-rule` from 5.11.2 to 5.15.0
- [Changelog](https://github.com/mock-server/mockserver/blob/master/changelog.md)
- [Commits](https://github.com/jamesdbloom/mockservice/compare/mockserver-5.11.2...mockserver-5.15.0)

Updates `io.netty:netty-buffer` from 4.1.106.Final to 4.1.117.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.106.Final...netty-4.1.117.Final)

Updates `io.netty:netty-transport` from 4.1.106.Final to 4.1.117.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.106.Final...netty-4.1.117.Final)

Updates `io.netty:netty-transport-native-unix-common` from 4.1.106.Final to 4.1.117.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.106.Final...netty-4.1.117.Final)

Updates `io.netty:netty-common` from 4.1.106.Final to 4.1.117.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.106.Final...netty-4.1.117.Final)

Updates `io.netty:netty-handler` from 4.1.106.Final to 4.1.117.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.106.Final...netty-4.1.117.Final)

Updates `io.netty:netty-codec` from 4.1.106.Final to 4.1.117.Final
- [Commits](https://github.com/netty/netty/compare/netty-4.1.106.Final...netty-4.1.117.Final)

---
updated-dependencies:
- dependency-name: com.h2database:h2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: test-tools
- dependency-name: org.mock-server:mockserver-junit-rule
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: test-tools
- dependency-name: io.netty:netty-buffer
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-transport
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-transport-native-unix-common
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-common
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-handler
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
- dependency-name: io.netty:netty-codec
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: test-tools
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-20 22:43:27 +00:00
Vincenzo Mecca
6c99c25d34 [CST-14901][DSC-1357][#8662] Adds IT for isLatestVersion 2025-01-20 13:30:26 +01:00
dependabot[bot]
6b2e4c185e Bump com.github.spotbugs:spotbugs
Bumps the build-tools group with 1 update in the / directory: [com.github.spotbugs:spotbugs](https://github.com/spotbugs/spotbugs).


Updates `com.github.spotbugs:spotbugs` from 4.8.6 to 4.9.0
- [Release notes](https://github.com/spotbugs/spotbugs/releases)
- [Changelog](https://github.com/spotbugs/spotbugs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/spotbugs/spotbugs/compare/4.8.6...4.9.0)

---
updated-dependencies:
- dependency-name: com.github.spotbugs:spotbugs
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build-tools
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-18 01:09:25 +00:00
Tim Donohue
100470d4aa Merge pull request #10218 from DSpace/dependabot/maven/dspace-7_x/build-tools-cee8dec2eb
Bump the build-tools group with 21 updates
2025-01-17 17:01:41 -06:00
Tim Donohue
d3014fde19 Merge pull request #10230 from DSpace/dependabot/maven/dspace-7_x/jersey.version-2.46
Bump jersey.version from 2.39.1 to 2.46
2025-01-17 16:29:15 -06:00
Tim Donohue
82a610c71d Merge pull request #10229 from DSpace/dependabot/maven/dspace-7_x/com.google.guava-guava-32.1.3-jre
Bump com.google.guava:guava from 32.0.0-jre to 32.1.3-jre
2025-01-17 16:05:49 -06:00
dependabot[bot]
80e39f7669 Bump log4j.version from 2.23.1 to 2.24.3
Bumps `log4j.version` from 2.23.1 to 2.24.3.

Updates `org.apache.logging.log4j:log4j-api` from 2.23.1 to 2.24.3

Updates `org.apache.logging.log4j:log4j-core` from 2.23.1 to 2.24.3

Updates `org.apache.logging.log4j:log4j-1.2-api` from 2.23.1 to 2.24.3

---
updated-dependencies:
- dependency-name: org.apache.logging.log4j:log4j-api
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.apache.logging.log4j:log4j-core
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.apache.logging.log4j:log4j-1.2-api
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-17 21:13:06 +00:00
dependabot[bot]
bd16f7a982 Bump org.apache.bcel:bcel from 6.7.0 to 6.10.0
Bumps [org.apache.bcel:bcel](https://github.com/apache/commons-bcel) from 6.7.0 to 6.10.0.
- [Changelog](https://github.com/apache/commons-bcel/blob/master/RELEASE-NOTES.txt)
- [Commits](https://github.com/apache/commons-bcel/compare/rel/commons-bcel-6.7.0...rel/commons-bcel-6.10.0)

---
updated-dependencies:
- dependency-name: org.apache.bcel:bcel
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-17 21:13:00 +00:00
dependabot[bot]
2b5db943b2 Bump org.scala-lang:scala-library from 2.13.11 to 2.13.16
Bumps [org.scala-lang:scala-library](https://github.com/scala/scala) from 2.13.11 to 2.13.16.
- [Release notes](https://github.com/scala/scala/releases)
- [Commits](https://github.com/scala/scala/compare/v2.13.11...v2.13.16)

---
updated-dependencies:
- dependency-name: org.scala-lang:scala-library
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-17 21:12:56 +00:00
Tim Donohue
4c46bc33be Remove unused dependency 2025-01-17 15:07:10 -06:00
Tim Donohue
c657f7770f Sync a few dependency exclusions from dspace-8_x to dspace-7_x to fix convergence issues 2025-01-17 14:12:38 -06:00
Tim Donohue
6b8a17c3e2 Revert to Errorprone 2.31.0, as that's the last version that supports Java 11 2025-01-17 12:45:52 -06:00
Mark H. Wood
95d7a013f9 Fix ErrorProne errors in tests.
Also fix some of the hundreds of warnings.  This uncovered still more
warnings that hadn't been previously reported, probably because there are
simply too many.
2025-01-17 12:26:15 -06:00
Mark H. Wood
b4dce26749 Fix new ErrorProne errors from new EP version, and a few ancient warnings. 2025-01-17 12:26:15 -06:00
Yana De Pauw
507aade92c Merge remote-tracking branch 'upstream/dspace-7_x' into w2p-124362_VersionedHandleIdentifierProviderWithCanonicalHandles-and-com-col-handles 2025-01-17 15:58:07 +01:00
Yana De Pauw
997945d85d 124362: Restore default config and add tests 2025-01-17 13:37:35 +01:00
Tim Donohue
84ea8af092 Merge pull request #10228 from DSpace/dependabot/maven/dspace-7_x/webjars-694cad7f5e
Bump org.webjars.npm:json-editor__json-editor from 2.6.1 to 2.15.1 in the webjars group
2025-01-16 17:10:40 -06:00
Tim Donohue
1581c737e2 Update jsoneditor.js reference in Hal Browser 2025-01-16 16:43:47 -06:00
Tim Donohue
f04e01eacb Merge pull request #10231 from DSpace/dependabot/maven/dspace-7_x/jetty.version-9.4.57.v20241219
Bump jetty.version from 9.4.54.v20240208 to 9.4.57.v20241219
2025-01-16 16:33:50 -06:00
Tim Donohue
709095a91a Merge pull request #10224 from DSpace/dependabot/maven/dspace-7_x/fasterxml-6e3d9a09b6
Bump the fasterxml group with 4 updates
2025-01-16 16:25:13 -06:00
Tim Donohue
69ca399967 Merge pull request #10222 from DSpace/dependabot/maven/dspace-7_x/apache-commons-25c65aad98
Bump the apache-commons group with 11 updates
2025-01-16 16:23:25 -06:00
Yana De Pauw
745e9c468a 124362: Fix issue with the VersionedHandleIdentifierProviderWithCanonicalHandles and creating communities / collections 2025-01-16 12:01:13 +01:00
Tim Donohue
f7ee509423 Fix duplicate code warning from errorprone. This "else if" clause is the same as the "else" and can be removed 2025-01-15 17:01:07 -06:00
Tim Donohue
5d7b42603d Add newly required "should-stop" flag to errorprone config. See https://errorprone.info/docs/installation 2025-01-15 17:00:57 -06:00
Tim Donohue
eee743a72d Minor checkstyle fixes after bump to 8.45.1. All are indentation / spacing fixes which are more strict now. 2025-01-15 17:00:43 -06:00
Tim Donohue
a01983c230 Fix checkstyle.xml syntax for bump to 8.45.1 2025-01-15 16:59:31 -06:00
dependabot[bot]
9d17009cf3 Bump jetty.version from 9.4.54.v20240208 to 9.4.57.v20241219
Bumps `jetty.version` from 9.4.54.v20240208 to 9.4.57.v20241219.

Updates `org.eclipse.jetty:jetty-server` from 9.4.54.v20240208 to 9.4.57.v20241219

Updates `org.eclipse.jetty:jetty-alpn-java-server` from 9.4.54.v20240208 to 9.4.57.v20241219

Updates `org.eclipse.jetty:jetty-deploy` from 9.4.54.v20240208 to 9.4.57.v20241219

Updates `org.eclipse.jetty:jetty-http` from 9.4.54.v20240208 to 9.4.57.v20241219

Updates `org.eclipse.jetty:jetty-io` from 9.4.54.v20240208 to 9.4.57.v20241219

Updates `org.eclipse.jetty:jetty-servlet` from 9.4.54.v20240208 to 9.4.57.v20241219

Updates `org.eclipse.jetty:jetty-servlets` from 9.4.54.v20240208 to 9.4.57.v20241219

Updates `org.eclipse.jetty:jetty-util` from 9.4.54.v20240208 to 9.4.57.v20241219

Updates `org.eclipse.jetty:jetty-webapp` from 9.4.54.v20240208 to 9.4.57.v20241219

Updates `org.eclipse.jetty:jetty-xml` from 9.4.54.v20240208 to 9.4.57.v20241219

Updates `org.eclipse.jetty.http2:http2-common` from 9.4.54.v20240208 to 9.4.57.v20241219

Updates `org.eclipse.jetty.http2:http2-server` from 9.4.54.v20240208 to 9.4.57.v20241219

---
updated-dependencies:
- dependency-name: org.eclipse.jetty:jetty-server
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.eclipse.jetty:jetty-alpn-java-server
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.eclipse.jetty:jetty-deploy
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.eclipse.jetty:jetty-http
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.eclipse.jetty:jetty-io
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.eclipse.jetty:jetty-servlet
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.eclipse.jetty:jetty-servlets
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.eclipse.jetty:jetty-util
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.eclipse.jetty:jetty-webapp
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.eclipse.jetty:jetty-xml
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.eclipse.jetty.http2:http2-common
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.eclipse.jetty.http2:http2-server
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-15 21:04:17 +00:00
dependabot[bot]
d9945b27b9 Bump jersey.version from 2.39.1 to 2.46
Bumps `jersey.version` from 2.39.1 to 2.46.

Updates `org.glassfish.jersey.core:jersey-client` from 2.39.1 to 2.46

Updates `org.glassfish.jersey.inject:jersey-hk2` from 2.39.1 to 2.46

Updates `org.glassfish.jersey.core:jersey-server` from 2.39.1 to 2.46

Updates `org.glassfish.jersey.containers:jersey-container-servlet` from 2.39.1 to 2.46

Updates `org.glassfish.jersey.media:jersey-media-json-jackson` from 2.39.1 to 2.46

Updates `org.glassfish.jersey.media:jersey-media-jaxb` from 2.39.1 to 2.46

Updates `org.glassfish.jersey.ext:jersey-spring5` from 2.39.1 to 2.46

---
updated-dependencies:
- dependency-name: org.glassfish.jersey.core:jersey-client
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.glassfish.jersey.inject:jersey-hk2
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.glassfish.jersey.core:jersey-server
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.glassfish.jersey.containers:jersey-container-servlet
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.glassfish.jersey.media:jersey-media-json-jackson
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.glassfish.jersey.media:jersey-media-jaxb
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: org.glassfish.jersey.ext:jersey-spring5
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-15 21:03:55 +00:00
dependabot[bot]
75d740ec86 Bump com.google.guava:guava from 32.0.0-jre to 32.1.3-jre
Bumps [com.google.guava:guava](https://github.com/google/guava) from 32.0.0-jre to 32.1.3-jre.
- [Release notes](https://github.com/google/guava/releases)
- [Commits](https://github.com/google/guava/commits)

---
updated-dependencies:
- dependency-name: com.google.guava:guava
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-15 21:03:43 +00:00
dependabot[bot]
bec1ee84e5 Bump org.webjars.npm:json-editor__json-editor in the webjars group
Bumps the webjars group with 1 update: [org.webjars.npm:json-editor__json-editor](https://github.com/json-editor/json-editor).


Updates `org.webjars.npm:json-editor__json-editor` from 2.6.1 to 2.15.1
- [Changelog](https://github.com/json-editor/json-editor/blob/master/CHANGELOG.md)
- [Commits](https://github.com/json-editor/json-editor/compare/2.6.1...2.15.1)

---
updated-dependencies:
- dependency-name: org.webjars.npm:json-editor__json-editor
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: webjars
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-15 21:03:40 +00:00
dependabot[bot]
4a20a4c37f Bump the fasterxml group with 4 updates
Bumps the fasterxml group with 4 updates: [com.fasterxml:classmate](https://github.com/FasterXML/java-classmate), [com.fasterxml.jackson.core:jackson-annotations](https://github.com/FasterXML/jackson), [com.fasterxml.jackson.core:jackson-core](https://github.com/FasterXML/jackson-core) and [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson).


Updates `com.fasterxml:classmate` from 1.6.0 to 1.7.0
- [Commits](https://github.com/FasterXML/java-classmate/compare/classmate-1.6.0...classmate-1.7.0)

Updates `com.fasterxml.jackson.core:jackson-annotations` from 2.16.0 to 2.18.2
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `com.fasterxml.jackson.core:jackson-core` from 2.16.0 to 2.18.2
- [Commits](https://github.com/FasterXML/jackson-core/compare/jackson-core-2.16.0...jackson-core-2.18.2)

Updates `com.fasterxml.jackson.core:jackson-core` from 2.16.0 to 2.18.2
- [Commits](https://github.com/FasterXML/jackson-core/compare/jackson-core-2.16.0...jackson-core-2.18.2)

Updates `com.fasterxml.jackson.core:jackson-databind` from 2.16.0 to 2.18.2
- [Commits](https://github.com/FasterXML/jackson/commits)

---
updated-dependencies:
- dependency-name: com.fasterxml:classmate
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: fasterxml
- dependency-name: com.fasterxml.jackson.core:jackson-annotations
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: fasterxml
- dependency-name: com.fasterxml.jackson.core:jackson-core
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: fasterxml
- dependency-name: com.fasterxml.jackson.core:jackson-core
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: fasterxml
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: fasterxml
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-15 21:02:28 +00:00
dependabot[bot]
d7b0e26179 Bump the apache-commons group with 11 updates
Bumps the apache-commons group with 11 updates:

| Package | From | To |
| --- | --- | --- |
| commons-beanutils:commons-beanutils | `1.9.4` | `1.10.0` |
| commons-cli:commons-cli | `1.6.0` | `1.9.0` |
| [commons-codec:commons-codec](https://github.com/apache/commons-codec) | `1.16.0` | `1.17.2` |
| org.apache.commons:commons-configuration2 | `2.10.1` | `2.11.0` |
| org.apache.commons:commons-dbcp2 | `2.11.0` | `2.13.0` |
| commons-io:commons-io | `2.15.1` | `2.18.0` |
| org.apache.commons:commons-lang3 | `3.14.0` | `3.17.0` |
| commons-logging:commons-logging | `1.3.0` | `1.3.4` |
| org.apache.commons:commons-compress | `1.26.0` | `1.27.1` |
| org.apache.commons:commons-text | `1.10.0` | `1.13.0` |
| commons-validator:commons-validator | `1.7` | `1.9.0` |


Updates `commons-beanutils:commons-beanutils` from 1.9.4 to 1.10.0

Updates `commons-cli:commons-cli` from 1.6.0 to 1.9.0

Updates `commons-codec:commons-codec` from 1.16.0 to 1.17.2
- [Changelog](https://github.com/apache/commons-codec/blob/master/RELEASE-NOTES.txt)
- [Commits](https://github.com/apache/commons-codec/compare/rel/commons-codec-1.16.0...rel/commons-codec-1.17.2)

Updates `org.apache.commons:commons-configuration2` from 2.10.1 to 2.11.0

Updates `org.apache.commons:commons-dbcp2` from 2.11.0 to 2.13.0

Updates `commons-io:commons-io` from 2.15.1 to 2.18.0

Updates `org.apache.commons:commons-lang3` from 3.14.0 to 3.17.0

Updates `commons-logging:commons-logging` from 1.3.0 to 1.3.4

Updates `org.apache.commons:commons-compress` from 1.26.0 to 1.27.1

Updates `org.apache.commons:commons-text` from 1.10.0 to 1.13.0

Updates `commons-validator:commons-validator` from 1.7 to 1.9.0

---
updated-dependencies:
- dependency-name: commons-beanutils:commons-beanutils
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: apache-commons
- dependency-name: commons-cli:commons-cli
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: apache-commons
- dependency-name: commons-codec:commons-codec
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: apache-commons
- dependency-name: org.apache.commons:commons-configuration2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: apache-commons
- dependency-name: org.apache.commons:commons-dbcp2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: apache-commons
- dependency-name: commons-io:commons-io
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: apache-commons
- dependency-name: org.apache.commons:commons-lang3
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: apache-commons
- dependency-name: commons-logging:commons-logging
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: apache-commons
- dependency-name: org.apache.commons:commons-compress
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: apache-commons
- dependency-name: org.apache.commons:commons-text
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: apache-commons
- dependency-name: commons-validator:commons-validator
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: apache-commons
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-15 21:02:16 +00:00
dependabot[bot]
1492ed7f61 Bump the build-tools group with 21 updates
Bumps the build-tools group with 21 updates:

| Package | From | To |
| --- | --- | --- |
| [com.google.errorprone:error_prone_core](https://github.com/google/error-prone) | `2.10.0` | `2.36.0` |
| [com.puppycrawl.tools:checkstyle](https://github.com/checkstyle/checkstyle) | `8.38` | `8.45.1` |
| [com.github.spotbugs:spotbugs](https://github.com/spotbugs/spotbugs) | `4.8.2` | `4.8.6` |
| [org.apache.maven.plugins:maven-enforcer-plugin](https://github.com/apache/maven-enforcer) | `3.0.0-M3` | `3.5.0` |
| [org.apache.maven.plugins:maven-compiler-plugin](https://github.com/apache/maven-compiler-plugin) | `3.8.1` | `3.13.0` |
| [org.apache.maven.plugins:maven-jar-plugin](https://github.com/apache/maven-jar-plugin) | `3.2.0` | `3.4.2` |
| [org.apache.maven.plugins:maven-war-plugin](https://github.com/apache/maven-war-plugin) | `3.2.3` | `3.4.0` |
| [org.apache.maven.plugins:maven-checkstyle-plugin](https://github.com/apache/maven-checkstyle-plugin) | `3.3.1` | `3.6.0` |
| [com.github.spotbugs:spotbugs-maven-plugin](https://github.com/spotbugs/spotbugs-maven-plugin) | `4.8.2.0` | `4.8.6.6` |
| [org.apache.maven.plugins:maven-clean-plugin](https://github.com/apache/maven-clean-plugin) | `3.1.0` | `3.4.0` |
| [org.apache.maven.plugins:maven-assembly-plugin](https://github.com/apache/maven-assembly-plugin) | `3.6.0` | `3.7.1` |
| [org.apache.maven.plugins:maven-dependency-plugin](https://github.com/apache/maven-dependency-plugin) | `3.1.2` | `3.8.1` |
| [org.apache.maven.plugins:maven-resources-plugin](https://github.com/apache/maven-resources-plugin) | `3.1.0` | `3.3.1` |
| org.sonatype.plugins:nexus-staging-maven-plugin | `1.6.8` | `1.7.0` |
| [org.apache.maven.plugins:maven-javadoc-plugin](https://github.com/apache/maven-javadoc-plugin) | `3.2.0` | `3.11.2` |
| [org.apache.maven.plugins:maven-source-plugin](https://github.com/apache/maven-source-plugin) | `3.2.1` | `3.3.1` |
| [org.jacoco:jacoco-maven-plugin](https://github.com/jacoco/jacoco) | `0.8.5` | `0.8.12` |
| [org.codehaus.mojo:xml-maven-plugin](https://github.com/mojohaus/xml-maven-plugin) | `1.0.2` | `1.1.0` |
| [org.codehaus.mojo:license-maven-plugin](https://github.com/mojohaus/license-maven-plugin) | `2.0.0` | `2.5.0` |
| [org.codehaus.mojo:build-helper-maven-plugin](https://github.com/mojohaus/build-helper-maven-plugin) | `3.4.0` | `3.6.0` |
| [org.codehaus.mojo:buildnumber-maven-plugin](https://github.com/mojohaus/buildnumber-maven-plugin) | `3.2.0` | `3.2.1` |


Updates `com.google.errorprone:error_prone_core` from 2.10.0 to 2.36.0
- [Release notes](https://github.com/google/error-prone/releases)
- [Commits](https://github.com/google/error-prone/compare/v2.10.0...v2.36.0)

Updates `com.puppycrawl.tools:checkstyle` from 8.38 to 8.45.1
- [Release notes](https://github.com/checkstyle/checkstyle/releases)
- [Commits](https://github.com/checkstyle/checkstyle/compare/checkstyle-8.38...checkstyle-8.45.1)

Updates `com.github.spotbugs:spotbugs` from 4.8.2 to 4.8.6
- [Release notes](https://github.com/spotbugs/spotbugs/releases)
- [Changelog](https://github.com/spotbugs/spotbugs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/spotbugs/spotbugs/compare/4.8.2...4.8.6)

Updates `org.apache.maven.plugins:maven-enforcer-plugin` from 3.0.0-M3 to 3.5.0
- [Release notes](https://github.com/apache/maven-enforcer/releases)
- [Commits](https://github.com/apache/maven-enforcer/compare/enforcer-3.0.0-M3...enforcer-3.5.0)

Updates `org.apache.maven.plugins:maven-compiler-plugin` from 3.8.1 to 3.13.0
- [Release notes](https://github.com/apache/maven-compiler-plugin/releases)
- [Commits](https://github.com/apache/maven-compiler-plugin/compare/maven-compiler-plugin-3.8.1...maven-compiler-plugin-3.13.0)

Updates `org.apache.maven.plugins:maven-jar-plugin` from 3.2.0 to 3.4.2
- [Release notes](https://github.com/apache/maven-jar-plugin/releases)
- [Commits](https://github.com/apache/maven-jar-plugin/compare/maven-jar-plugin-3.2.0...maven-jar-plugin-3.4.2)

Updates `org.apache.maven.plugins:maven-war-plugin` from 3.2.3 to 3.4.0
- [Commits](https://github.com/apache/maven-war-plugin/compare/maven-war-plugin-3.2.3...maven-war-plugin-3.4.0)

Updates `org.apache.maven.plugins:maven-checkstyle-plugin` from 3.3.1 to 3.6.0
- [Commits](https://github.com/apache/maven-checkstyle-plugin/compare/maven-checkstyle-plugin-3.3.1...maven-checkstyle-plugin-3.6.0)

Updates `com.github.spotbugs:spotbugs-maven-plugin` from 4.8.2.0 to 4.8.6.6
- [Release notes](https://github.com/spotbugs/spotbugs-maven-plugin/releases)
- [Commits](https://github.com/spotbugs/spotbugs-maven-plugin/compare/spotbugs-maven-plugin-4.8.2.0...spotbugs-maven-plugin-4.8.6.6)

Updates `org.apache.maven.plugins:maven-clean-plugin` from 3.1.0 to 3.4.0
- [Release notes](https://github.com/apache/maven-clean-plugin/releases)
- [Commits](https://github.com/apache/maven-clean-plugin/compare/maven-clean-plugin-3.1.0...maven-clean-plugin-3.4.0)

Updates `org.apache.maven.plugins:maven-assembly-plugin` from 3.6.0 to 3.7.1
- [Release notes](https://github.com/apache/maven-assembly-plugin/releases)
- [Commits](https://github.com/apache/maven-assembly-plugin/compare/maven-assembly-plugin-3.6.0...maven-assembly-plugin-3.7.1)

Updates `org.apache.maven.plugins:maven-dependency-plugin` from 3.1.2 to 3.8.1
- [Release notes](https://github.com/apache/maven-dependency-plugin/releases)
- [Commits](https://github.com/apache/maven-dependency-plugin/compare/maven-dependency-plugin-3.1.2...maven-dependency-plugin-3.8.1)

Updates `org.apache.maven.plugins:maven-resources-plugin` from 3.1.0 to 3.3.1
- [Release notes](https://github.com/apache/maven-resources-plugin/releases)
- [Commits](https://github.com/apache/maven-resources-plugin/compare/maven-resources-plugin-3.1.0...maven-resources-plugin-3.3.1)

Updates `org.sonatype.plugins:nexus-staging-maven-plugin` from 1.6.8 to 1.7.0

Updates `org.apache.maven.plugins:maven-javadoc-plugin` from 3.2.0 to 3.11.2
- [Release notes](https://github.com/apache/maven-javadoc-plugin/releases)
- [Commits](https://github.com/apache/maven-javadoc-plugin/compare/maven-javadoc-plugin-3.2.0...maven-javadoc-plugin-3.11.2)

Updates `org.apache.maven.plugins:maven-source-plugin` from 3.2.1 to 3.3.1
- [Release notes](https://github.com/apache/maven-source-plugin/releases)
- [Commits](https://github.com/apache/maven-source-plugin/compare/maven-source-plugin-3.2.1...maven-source-plugin-3.3.1)

Updates `org.jacoco:jacoco-maven-plugin` from 0.8.5 to 0.8.12
- [Release notes](https://github.com/jacoco/jacoco/releases)
- [Commits](https://github.com/jacoco/jacoco/compare/v0.8.5...v0.8.12)

Updates `org.codehaus.mojo:xml-maven-plugin` from 1.0.2 to 1.1.0
- [Release notes](https://github.com/mojohaus/xml-maven-plugin/releases)
- [Commits](https://github.com/mojohaus/xml-maven-plugin/compare/xml-maven-plugin-1.0.2...1.1.0)

Updates `org.codehaus.mojo:license-maven-plugin` from 2.0.0 to 2.5.0
- [Release notes](https://github.com/mojohaus/license-maven-plugin/releases)
- [Commits](https://github.com/mojohaus/license-maven-plugin/compare/license-maven-plugin-2.0.0...2.5.0)

Updates `org.codehaus.mojo:build-helper-maven-plugin` from 3.4.0 to 3.6.0
- [Release notes](https://github.com/mojohaus/build-helper-maven-plugin/releases)
- [Commits](https://github.com/mojohaus/build-helper-maven-plugin/compare/3.4.0...3.6.0)

Updates `org.codehaus.mojo:buildnumber-maven-plugin` from 3.2.0 to 3.2.1
- [Release notes](https://github.com/mojohaus/buildnumber-maven-plugin/releases)
- [Commits](https://github.com/mojohaus/buildnumber-maven-plugin/compare/3.2.0...3.2.1)

---
updated-dependencies:
- dependency-name: com.google.errorprone:error_prone_core
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build-tools
- dependency-name: com.puppycrawl.tools:checkstyle
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build-tools
- dependency-name: com.github.spotbugs:spotbugs
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build-tools
- dependency-name: org.apache.maven.plugins:maven-enforcer-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build-tools
- dependency-name: org.apache.maven.plugins:maven-compiler-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build-tools
- dependency-name: org.apache.maven.plugins:maven-jar-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build-tools
- dependency-name: org.apache.maven.plugins:maven-war-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build-tools
- dependency-name: org.apache.maven.plugins:maven-checkstyle-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build-tools
- dependency-name: com.github.spotbugs:spotbugs-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build-tools
- dependency-name: org.apache.maven.plugins:maven-clean-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build-tools
- dependency-name: org.apache.maven.plugins:maven-assembly-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build-tools
- dependency-name: org.apache.maven.plugins:maven-dependency-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build-tools
- dependency-name: org.apache.maven.plugins:maven-resources-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build-tools
- dependency-name: org.sonatype.plugins:nexus-staging-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build-tools
- dependency-name: org.apache.maven.plugins:maven-javadoc-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build-tools
- dependency-name: org.apache.maven.plugins:maven-source-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build-tools
- dependency-name: org.jacoco:jacoco-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build-tools
- dependency-name: org.codehaus.mojo:xml-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build-tools
- dependency-name: org.codehaus.mojo:license-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build-tools
- dependency-name: org.codehaus.mojo:build-helper-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: build-tools
- dependency-name: org.codehaus.mojo:buildnumber-maven-plugin
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: build-tools
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-15 21:01:16 +00:00
Tim Donohue
e46f02550a Merge pull request #10205 from tdonohue/enable_dependabot_on_7x
[Port dspace-7_x] Create `dependabot.yml` to auto-update Maven dependencies
2025-01-14 16:26:16 -06:00
Tim Donohue
a236b8b975 Merge pull request #10206 from DSpace/backport-9832-to-dspace-7_x
[Port dspace-7_x] Separate log file for cli jobs, fixing corruption of main log file
2025-01-14 15:56:57 -06:00
Jens Vannerum
1a6088388f apply fix to windows env and remove duplicate logging for checksum checker
(cherry picked from commit 9f39a3d6a5)
2025-01-14 21:10:10 +00:00
Kevin Van de Velde
04ec6381cb Modifying it so that the cli file content is stored in a file using the date
(cherry picked from commit 529c3a77c1)
2025-01-14 21:10:10 +00:00
Jens Vannerum
0b46a0963c 113811: cli logs should be written to a different file
(cherry picked from commit d30468a09f)
2025-01-14 21:10:10 +00:00
Tim Donohue
fe28962e96 Exclude spring from build-tools group in dependabot.yml 2025-01-14 15:02:18 -06:00
Tim Donohue
e840ca2731 Create dependabot.yml 2025-01-14 15:02:15 -06:00
Tim Donohue
5201d90b19 Merge pull request #10200 from tdonohue/port_9690_to_7x
[Port dspace-7_x] option to exclude the submitter being indexed to solr in archived items
2025-01-13 16:07:08 -06:00
Gantner, Florian Klaus
62596ad863 option to exclude the submitter being indexed to solr in archived items
https://github.com/DSpace/DSpace/issues/9660
2025-01-13 15:01:20 -06:00
Tim Donohue
024f88b1e0 Merge pull request #10196 from DSpace/backport-9687-to-dspace-7_x
[Port dspace-7_x] Scopus metadata import: put DOIs in dc.relation.hasversion
2025-01-10 15:13:39 -06:00
Sascha Szott
d109eac2a0 use dc.relation.hasversion instead of dc.identifier.doi
(cherry picked from commit d61dc8d911)
2025-01-10 19:54:42 +00:00
Sascha Szott
09a722a029 use dc.relation.hasversion for externally generated DOIs
(cherry picked from commit 29067b6572)
2025-01-10 19:54:42 +00:00
Sascha Szott
5d0e9871e9 fix broken test
(cherry picked from commit 2eff833fab)
2025-01-10 19:54:42 +00:00
Sascha Szott
5973c67eff put DOIs in dc.identifier.doi
(cherry picked from commit 3d1bef9d0e)
2025-01-10 19:54:42 +00:00
Tim Donohue
d11bbc9c15 Merge pull request #10194 from DSpace/backport-10193-to-dspace-7_x
[Port dspace-7_x] Refactor AbstractIntegrationTestWithDatabase to use EPersonBuilder for test users
2025-01-10 13:32:00 -06:00
Tim Donohue
49b3deef77 Refactor AbstractIntegrationTestWithDatabase to use Builders to create test EPersons.
(cherry picked from commit 0b8b7be22b)
2025-01-10 17:40:32 +00:00
Tim Donohue
a2a9494859 Merge pull request #9724 from 4Science/task/dspace-7_x/CST-14905
[Port dspace-7_x] Orcid revoke token feature
2025-01-10 11:29:24 -06:00
Tim Donohue
a0fd518cb4 Merge pull request #10191 from DSpace/backport-10189-to-dspace-7_x
[Port dspace-7_x] switch IT search core to MockSolrSearchCore
2025-01-09 10:17:11 -06:00
Gantner, Florian Klaus
97a5439e3a switch IT search core to MockSolrSearchCore
https://github.com/DSpace/DSpace/issues/10188
(cherry picked from commit 6d781e8f83)
2025-01-09 14:24:20 +00:00
Tim Donohue
0a9ecee819 Merge pull request #10186 from DSpace/backport-10185-to-dspace-7_x
[Port dspace-7_x] Fix for flakey IdentifierProvider Integration Tests
2025-01-08 11:28:07 -06:00
Tim Donohue
41207d5dee Update CreateMissingIdentifiers to better identify when CanonicalHandles provider is enabled. Update CreateMissingIdentifiersIT to verify that we are accurately resetting to our default IdentifierProvider
(cherry picked from commit 2385c13f2d)
2025-01-08 15:59:55 +00:00
Tim Donohue
22511a17b6 Refactor identifier ITs to ensure they unregister all utilized IdentifierProviders which are non-default. Cannot use "getApplicationContext().refresh()" as that seems to result in empty test database in Hibernate 6.6.
(cherry picked from commit cfca2adbb1)
2025-01-08 15:59:54 +00:00
Tim Donohue
da4535ddfd Merge pull request #10183 from tdonohue/port_9340_to_7x
[Port dspace-7_x] Bugfix: Enforce unique item id in workspace table (#9340)
2025-01-07 10:45:37 -06:00
Koen Pauwels
6c82e2dba4 Bugfix: Enforce unique item id in workspace table (#9340)
* 106798 Enforce values in item_id column of workspaceitem table to be unique, both at database level and at WorkspaceItemService level

* 106798 Removed Oracle SQL migration

* 106798 workspaceitem table migration: delete duplicate rows before introducing uniqueness constraint

* 106798: update migration for H2

---------

Co-authored-by: Koen Pauwels <koen.pauwels@atmire.com>
Co-authored-by: wout <wout.atmire@gmail.com>
2025-01-07 08:59:13 -06:00
Tim Donohue
09fad6dc7e Merge pull request #10179 from DSpace/backport-10104-to-dspace-7_x
[Port dspace-7_x] style.xsl: fix missing +1 offset in result-count template
2025-01-06 12:12:12 -06:00
Tim Donohue
2780ebab74 Merge pull request #10177 from DSpace/backport-10157-to-dspace-7_x
[Port dspace-7_x] remove deprecated constructor call in org.dspace.curate.Curation
2025-01-06 11:52:16 -06:00
Sascha Szott
214c669e80 fix missing +1 offset
(cherry picked from commit ab00de05b4)
2025-01-06 17:07:29 +00:00
Sascha Szott
964e4bf476 remove usage of deprecated constructor call
(cherry picked from commit 45cdb4d9d4)
2025-01-06 16:46:17 +00:00
Nona Luypaert
82b0944137 Merge remote-tracking branch 'origin/dspace-7_x' into w2p-121973_openaire-compliance-updates-7.x 2024-12-31 16:53:08 +01:00
Alan Orth
78194071b8 Merge pull request #10166 from DSpace/backport-10089-to-dspace-7_x 2024-12-24 12:31:57 +03:00
Toni Prieto
e856ae3291 Uncache all entities during OAI indexing to reduce memory usage
(cherry picked from commit 9af2e2e17c)
2024-12-24 06:59:53 +00:00
Tim Donohue
a36f0e606c Merge pull request #10154 from DSpace/backport-3253-to-dspace-7_x
[Port dspace-7_x] Add Context method to uncache all entities
2024-12-19 14:29:35 -06:00
Chris Wilper
8849212895 Add Context method to uncache all entities
(cherry picked from commit 8ea664adb2)
2024-12-19 18:57:47 +00:00
Tim Donohue
9b651b7ab3 Merge pull request #9893 from bkeese/patch-1
Fix full-text indexing for files over the character limit
2024-12-19 12:28:37 -06:00
Tim Donohue
66281d3a6d Merge pull request #10149 from DSpace/backport-10059-to-dspace-7_x
[Port dspace-7_x] Statistics scope fix
2024-12-19 08:56:17 -06:00
Tim Donohue
3fa86d43f6 Merge pull request #10147 from DSpace/backport-9815-to-dspace-7_x
[Port dspace-7_x] fix for #9311: set default configFile
2024-12-19 08:56:07 -06:00
Kristof De Langhe
51df5c1fe6 119664: Search event scope fix
(cherry picked from commit 48956d90b7)
2024-12-18 22:50:42 +00:00
DSpace Bot
1ce4e08333 [Port dspace-7_x] Fix issue with submission sections visibility (#10140)
* README.md: v8 is the current release, not v7

(cherry picked from commit 2b698eff60)
(cherry picked from commit 83460afb37)

* Update README.md

(cherry picked from commit 671234b08f)
(cherry picked from commit 7a6785b1c3)

* [DURACOM-291] Expose section scope attribute

(cherry picked from commit 4107f937fd)

* README.md: v8 is the current release, not v7

(cherry picked from commit 2b698eff60)
(cherry picked from commit d98499a394)

* Update README.md

(cherry picked from commit 671234b08f)
(cherry picked from commit 6a707548ff)

---------

Co-authored-by: Christian Clauss <cclauss@me.com>
Co-authored-by: Giuseppe Digilio <giuseppe.digilio@4science.com>
2024-12-18 16:45:16 -06:00
Tim Donohue
0d8c5f12a3 Merge pull request #10145 from DSpace/backport-9817-to-dspace-7_x
[Port dspace-7_x] fix for #9312: properly type in field id, adjust use of getProperty and add error handling
2024-12-18 16:05:38 -06:00
Tim Donohue
ad033ef1ba Merge pull request #10143 from DSpace/backport-9913-to-dspace-7_x
[Port dspace-7_x] Submission scope naming for input field validation fixed
2024-12-18 15:56:13 -06:00
igorbaptist4
c86d082d5f fix: set default configFile
(cherry picked from commit a5e8d7aa15)
2024-12-18 21:02:37 +00:00
igorbaptist4
3a223e3fef fix line length checkstyle
(cherry picked from commit 338f3b1d3e)
2024-12-18 20:57:22 +00:00
igorbaptist4
973beee2ce fix: properly type in field id, adjust use of getProperty and add error handling when dbPath is null (when property usage-statistics.dbfile is commented
(cherry picked from commit 412d5751f2)
2024-12-18 20:57:22 +00:00
Jukka Lipka
31faf809d1 fix(submission): Submission scope naming fixed
Corrected wording in related code comment

(cherry picked from commit ec2187ea65)
2024-12-18 20:47:49 +00:00
Jukka Lipka
95742fe4f3 fix(submission): Submission scope naming fixed
According to the documentation, the value for the <visibility> property is 'submission' in the 'submission-forms.xml'. Without this change, an empty input field will never be marked as an error, even if the field is marked as 'required'.

(cherry picked from commit 02f52c7d5c)
2024-12-18 20:47:49 +00:00
Tim Donohue
026a0aa9ab Merge pull request #10138 from DSpace/backport-10057-to-dspace-7_x
[Port dspace-7_x] Add limit, offset, and total facet count to Solr query for the metadata browse index
2024-12-18 12:57:36 -06:00
Toni Prieto
fcc650e1a6 Add limit, offset, and a new parameter to calculate the total entry count in the Solr query used for the metadata navigation index
(cherry picked from commit e71de8a4d0)
2024-12-18 18:05:26 +00:00
Tim Donohue
b4d4588d34 Merge pull request #10136 from DSpace/backport-9834-to-dspace-7_x
[Port dspace-7_x] More information about failed DOI registrations.
2024-12-17 16:01:36 -06:00
Tim Donohue
89b8e92512 Merge pull request #10134 from DSpace/backport-10132-to-dspace-7_x
[Port dspace-7_x] [Docker] Minor Dockerfile enhancements to stabilize & speed up automated builds
2024-12-17 16:01:01 -06:00
Mark H. Wood
e5568157c8 More information about failed DOI registrations.
(cherry picked from commit b8f4ab0eb3)
2024-12-17 21:11:32 +00:00
Tim Donohue
58af9fd224 Significantly speed up build of dspace-dependencies by only copying over POM files
(cherry picked from commit 6d7a3fcb72)
2024-12-17 20:52:35 +00:00
Tim Donohue
aa027aefae Improve Apache Ant download process. Switch to using curl so that we can retry the request if it initially fails.
(cherry picked from commit e236634a4c)
2024-12-17 20:52:35 +00:00
Tim Donohue
4e59693da5 Merge pull request #10131 from tdonohue/port_9760_to_7x
[Port dspace-7_x] Improve Group2GroupCache computation
2024-12-17 12:12:35 -06:00
autavares-dev
05bac14716 Refactor 'var' variables to explicit types 2024-12-17 11:11:37 -06:00
autavares-dev
64cb3bda00 Changes Group2GroupCache computation 2024-12-17 11:11:20 -06:00
Nona Luypaert
ecbb8682a7 Merge remote-tracking branch 'contributions/w2p-121971_openaire-compliance-updates-7.6' into w2p-121973_openaire-compliance-updates-7.x 2024-12-17 11:43:38 +01:00
Tim Donohue
8e6371c9b5 Merge pull request #10122 from DSpace/backport-10120-to-dspace-7_x
[Port dspace-7_x] [GitHub Actions] Refactor Docker build process to use ghcr.io for build, and then copy to docker.io once build completes
2024-12-16 15:14:37 -06:00
Tim Donohue
a27f1ed175 Ensure "docker-deploy" job also uses ghcr.io by default. 2024-12-16 13:57:18 -06:00
Tim Donohue
296c9a12f4 PRs must also login to ghcr.io in order to read private images for the build process 2024-12-16 13:57:11 -06:00
Tim Donohue
2a6c60e139 Refactor Docker build process to use ghcr.io for build, and then copy to docker.io once build completes 2024-12-16 13:56:53 -06:00
Tim Donohue
5869f03b51 Merge pull request #10115 from tdonohue/port_10800_to_7x
[Port dspace-7_x] [Docker] Use fully qualified image names & allow for other registries to be used
2024-12-12 16:49:44 -06:00
Tim Donohue
2ee328ff18 Minor Dockerfile cleanup. Use new syntax for ENV variables 2024-12-12 16:15:10 -06:00
Tim Donohue
a6d2c4897b Add Docker registry to all scripts. Allow it to be configurable for DSpace images (only). Other minor Dockerfile cleanup 2024-12-12 16:15:10 -06:00
Nona Luypaert
e540168594 121971: #9867 - Remove objectType attribute from openaire crosswalk 2024-12-12 09:18:40 +01:00
Nona Luypaert
52e5b35c06 121971: #9664 - Make cclicense step required in openaire submission form 2024-12-12 09:16:21 +01:00
Marie Verdonck
93aaece18f Merge branch 'w2p-109807_external-sources-fixes-7.6' into issue-10110_w2p-109807_arxiv-author-mapping-fix-7_x 2024-12-12 01:28:52 +01:00
Marie Verdonck
e0d67c2bd4 Merge remote-tracking branch 'atmire-gitlab/w2p-109807_external-sources-fixes' into w2p-109807_external-sources-fixes-7.6 2024-12-12 01:27:05 +01:00
Nona Luypaert
31c79500ce 121971: #9716 - Only dc.date.embargo should have date type Available 2024-12-11 21:49:37 +01:00
Nona Luypaert
04953b94d9 121971: #9715 - Only dc.date.issued should have date types Accepted and Issued 2024-12-11 21:46:17 +01:00
Nona Luypaert
c017a662e0 121971: #9669 - Remove unsupported OpenAIRE date types 2024-12-11 21:26:42 +01:00
Tim Donohue
ac9f7c16e6 Merge pull request #10101 from tdonohue/port_10091_to_7x
[Port dspace-7_x] [GitHub Actions] Ensure PRs against main also use "latest" tag when running test Docker deployment
2024-12-10 12:14:12 -06:00
Tim Donohue
b8c88ef284 Ensure PRs against main also use "latest" tag 2024-12-10 11:33:51 -06:00
Tim Donohue
f0bb57a4c2 Merge pull request #10087 from tdonohue/port_github_action_docker_to_7x
[Port dspace-7_x] [GitHub Actions] Port several Docker building improvements
2024-12-09 11:56:32 -06:00
Tim Donohue
78855cdbba Ensure we use the main Docker image, and not the "-test" image. 2024-12-09 10:18:32 -06:00
Tim Donohue
3c0e7158a2 Ensure each image has a separate cache. This allows later builds of that same image to inherit that cache. 2024-12-06 17:16:40 -06:00
Tim Donohue
020fec96d8 Ensure PRs are tagging their images with same tag as the base branch the PR was created against 2024-12-06 17:16:26 -06:00
Tim Donohue
46c169fb79 Refactor to use the same local TAR image build for PRs and non-PRs. These TAR images act as a cache for our current build. 2024-12-06 17:16:19 -06:00
Tim Donohue
0fc0f181fd Enable caching of Docker builds using GitHub Actions cache 2024-12-06 17:16:14 -06:00
Tim Donohue
1f5defe643 Ensure non-PRs run image build twice. First for a DockerHub image, then to export a local tarball. Since these are different image types they cannot be combined 2024-12-06 17:16:06 -06:00
Tim Donohue
8d34f06396 Update Actions to always deploy the locally created image. non-PRs do not need to redownload images from DockerHub. 2024-12-06 17:16:01 -06:00
Tim Donohue
f8bf278f06 Ensure login occurs *before* setup-buildx, as some buildx commands appear to be unauthenticated. 2024-12-06 17:15:54 -06:00
Tim Donohue
f26a732ab8 Merge pull request #10082 from DSpace/backport-9728-to-dspace-7_x
[Port dspace-7_x] Improve observability of running processes + Fail them during startup
2024-12-05 15:43:01 -06:00
Nona Luypaert
8bc100375a 116609: Add try catch to init method in ProcessServiceImpl
(cherry picked from commit 070fe689d7)
2024-12-05 21:00:48 +00:00
Nona Luypaert
3f836ae7a5 116687: Never handle exception with null message
(cherry picked from commit bdf7069cb7)
2024-12-05 21:00:48 +00:00
Nona Luypaert
1ba7ca3bdd 116609: Add tomcat shutdown line to process log
(cherry picked from commit 156ad471b5)
2024-12-05 21:00:48 +00:00
Nona Luypaert
25fb8111f1 116609: Improve running process observability
- keep temp process log files in [dspace]/log/processes/ instead of temp dir
- reformat file names of process logs
- ensure that running and scheduled processes are cleaned up during startup

(cherry picked from commit d80f49e023)
2024-12-05 21:00:48 +00:00
Tim Donohue
a1d2504ab3 Merge pull request #10068 from DSpace/backport-9658-to-dspace-7_x
[Port dspace-7_x] Feature curation link checker customizations
2024-12-03 09:53:43 -06:00
Nathan Buckingham
3ff38ec4b4 115778: Adjust redirect check to only follow a limited amount defined in curate.cfg
(cherry picked from commit ef381aa151)
2024-12-03 15:17:19 +00:00
Marie Verdonck
be905a0887 110719: IT checking redirect links accepted by checklinks curate task
(cherry picked from commit e826660cb0)
2024-12-03 15:17:19 +00:00
Nathan Buckingham
2136dbf690 110719: Port fix to checkLinks that works on redirects
(cherry picked from commit 3dab2a7cea)
2024-12-03 15:17:19 +00:00
Tim Donohue
df4ddc8197 Merge pull request #10061 from DSpace/backport-9941-to-dspace-7_x
[Port dspace-7_x] Fixed dso endpoint returning 500 for unauthorized users
2024-12-02 10:58:09 -06:00
Alexandre Vryghem
38a71cc664 119960: Fixed NPE when retrieving a DSpace object with the api/dso/find endpoint without the required permissions
(cherry picked from commit dd8b1d91cb)
2024-12-02 16:07:46 +00:00
Marie Verdonck
54a1c75cbc 109807: ArXiv mapping fix - author/name to dc.contributor.author
https://info.arxiv.org/help/api/basics.html#using
2024-11-28 13:06:23 +01:00
Tim Donohue
88b5ce81a6 Merge pull request #10041 from DSpace/backport-10040-to-dspace-7_x
[Port dspace-7_x] [GitHub Actions] Ensure all optional modules are enabled in our test Docker deployment
2024-11-22 16:28:05 -06:00
Tim Donohue
cf99694a84 Fix startup errors for SWORDv2. Requires the log4jv1->v2 bridge to be installed. 2024-11-22 16:03:16 -06:00
Tim Donohue
66a9782eee Fix syntax error in #10040. Env variables cannot have dashes or periods 2024-11-22 16:03:16 -06:00
Tim Donohue
f44dba60cb Enable all optional modules/controllers to test their deployment in Spring Boot
(cherry picked from commit 98768d6f4f)
2024-11-22 16:03:15 -06:00
Tim Donohue
bbf9ccf2ab Merge pull request #10034 from tdonohue/port_10032_to_7x
[Port dspace-7_x] Remove unused dependencies from several modules
2024-11-21 11:58:16 -06:00
Tim Donohue
9f8240987b Remove unused dependencies from several modules 2024-11-21 11:24:23 -06:00
Tim Donohue
888332a8d5 Merge pull request #10020 from tdonohue/port_10014_to_7x
[Port dspace-7_x] Dependency cleanup for OAI-PMH and Log4j (removing log4j v1 bridge & settings which used it)
2024-11-18 14:40:16 -06:00
Tim Donohue
f3d15e5c04 Log4j cleanup. Remove last traces of log4j v1 (and remove log4j1 bridge to avoid them coming back). Create log4j2 settings for Handle Plugin. 2024-11-18 14:02:14 -06:00
Tim Donohue
d952fea6a2 Remove parboiled-java and minor cleanup of unused OAI dependencies 2024-11-18 13:39:06 -06:00
Tim Donohue
ca176b77b2 Merge pull request #10017 from DSpace/backport-10016-to-dspace-7_x
[Port dspace-7_x] [GitHub Actions] More fixes to Docker deployment builds
2024-11-15 17:13:00 -06:00
Tim Donohue
f0c92ac96b Ensure only main branch uses "latest". Other branches should use the tag corresponding to the branch name
(cherry picked from commit e0b7241acb)
2024-11-15 22:42:11 +00:00
Tim Donohue
7e18e743ee Merge pull request #10011 from DSpace/backport-10010-to-dspace-7_x
[Port dspace-7_x] [GitHub Actions] Minor bug fix to Docker deployment builds
2024-11-15 10:26:42 -06:00
Tim Donohue
7fa31e2131 Ensure we use "pr-testing" images for PRs, but use "latest" images for other builds (e.g. after PR is merged to a branch).
(cherry picked from commit aa537c4490)
2024-11-15 15:34:38 +00:00
Tim Donohue
90b58833ec Merge pull request #9995 from DSpace/backport-9746-to-dspace-7_x
[Port dspace-7_x] Fix 9734: Check configured workflow.reviewer.file-edit to show item e…
2024-11-14 14:54:50 -06:00
Agustina Martinez
aa71e4840b Fix 9734: Check configured workflow.reviewer.file-edit to show item edit functionality in workflow UI
(cherry picked from commit e8ec0c1b1d)
2024-11-14 20:11:05 +00:00
Tim Donohue
3f1f4cb217 Merge pull request #9993 from tdonohue/port_9973_to_7x
[Port dspace-7_x] [GitHub Actions] Add a job to test Docker deployment with newly built images & test Handle Server
2024-11-13 16:45:25 -06:00
Tim Donohue
5bb65c6b56 Fix error in Handle Server startup caused by having multiple versions of BouncyCastle in our classpath. Exclude the old version brought in by cnri-servlet-container 2024-11-13 15:11:36 -06:00
Tim Donohue
d6d78298b3 Add check for Handle Server error.log 2024-11-13 15:11:30 -06:00
Tim Donohue
a0ed4a40ea Bug fixes. Ensure all steps of docker-deploy use the same environment variables. Ensure Handle Server HTTP port is open 2024-11-13 15:11:12 -06:00
Tim Donohue
faca14ad40 Ensure "host" command is installed in images, so "bin/make-handle-config" will work. 2024-11-13 15:09:47 -06:00
Tim Donohue
9853aa5bb4 Fix error in running Handle Server in GitHub Actions. Must exclude "spring-jcl" from dependencies as it conflicts with "commons-logging" (used by more of our dependencies) 2024-11-13 15:06:41 -06:00
Tim Donohue
c1f168245b Ensure Docker images built from PRs are stored as artifacts. This allows us to use those new images when testing deployment (in docker-deploy) 2024-11-13 15:06:32 -06:00
Tim Donohue
3ce85a2df3 Add a check that the Handle Server can be started & works properly 2024-11-13 15:06:25 -06:00
Tim Donohue
c66dde2aa8 Add a job to test Docker deployment with the built images 2024-11-13 15:06:18 -06:00
Tim Donohue
7017f5ecb1 Merge pull request #9976 from DSpace/backport-9861-to-dspace-7_x
[Port dspace-7_x] performance of claiming workflow task fix
2024-11-11 16:00:36 -06:00
Andrew
fde825265d fix: performance of claiming workflow task
(cherry picked from commit 27dd5a2ec5)
2024-11-11 21:15:41 +00:00
Tim Donohue
426d3abde0 Merge pull request #9974 from DSpace/backport-9890-to-dspace-7_x
[Port dspace-7_x] Status of DOI object should be set to TO_BE_DELETED when the related item is removed
2024-11-11 12:20:45 -06:00
Jens Vannerum
831db33018 118774: status of doi should be set to TO_BE_DELETED when related item is removed permanently
(cherry picked from commit 352f4c2152)
2024-11-11 16:40:56 +00:00
Tim Donohue
a452f035c3 Merge pull request #9969 from DSpace/backport-9968-to-dspace-7_x
[Port dspace-7_x] Improve logging of Unit & Integration Tests.  Ensure all tests log which method they are running.
2024-11-06 15:53:10 -06:00
Tim Donohue
68266cd3c1 Move logging of test methods to Abstract*Test classes in dspace-api. That way they work for **both** dspace-server-webapp and dspace-api tests.
(cherry picked from commit bd20c9262b)
2024-11-06 21:12:01 +00:00
Andreas Awouters
30cd44c196 Merge branch 'accessibility-settings-7.6' into accessibility-settings-7_x 2024-11-06 09:41:36 +01:00
Andreas Awouters
10a95ae92a 119602: Add accessibility settings metadata field 2024-11-06 09:39:33 +01:00
Tim Donohue
68b800f070 Merge pull request #9897 from DSpace/backport-9894-to-dspace-7_x
[Port dspace-7_x] Add Eclipse JDT .factorypath to .gitignore
2024-10-16 10:31:32 -05:00
Kim Shepherd
6018f926d7 Add Eclipse JDT .factorypath to .gitignore
(cherry picked from commit 9ce645e08b)
2024-10-16 15:28:30 +00:00
Miika Nurminen
31d36e7abf Bugfix: BitstreamRestController etag/content-length calculation does not consider cover page
Ported Alphonse Bendt's PR #9666 to DSpace 7 branch (squashed 5 commits).
This PR fixes a bug where the etag/content-length calculation did not respect the potential existence of a coverpage.
The controller now will use the post processed pdf if coverpages are enabled.
2024-10-16 11:48:10 +03:00
Brian Keese
4a4a8bcb22 Fix full-text indexing for files over the character limit
The error handler for files over the limit logged the correct message, but never actually added the full text to the index doc.
2024-10-15 11:38:54 -05:00
Tim Donohue
e9290f4bdc Merge pull request #9888 from tdonohue/update_latest_spring5
Bump `dspace-7_x` to Spring 5.3.39 and Spring Security 5.7.12
2024-10-14 08:42:57 -05:00
Tim Donohue
70dd847759 Revert to Spring Security 5.7.12. Spring Security 5.8.x changes behavior of CSRF tokens 2024-10-11 16:41:40 -05:00
Tim Donohue
1e47fa61d9 Bump to Spring 5.3.39 and Spring Security 5.8.14 2024-10-11 14:38:47 -05:00
Tim Donohue
ce1edc3bd3 Merge pull request #9877 from DSpace/backport-9777-to-dspace-7_x
[Port dspace-7_x] several optimizations in HAL browser login page
2024-10-08 14:11:57 -05:00
Sascha Szott
4669d8f760 applied change suggested by reviewer: use String.prototype.includes
(cherry picked from commit 546afb189e)
2024-10-08 19:11:02 +00:00
Sascha Szott
a721f8c41e fix failed first login attempt in HAL browser
(cherry picked from commit 002e637d4f)
2024-10-08 19:11:02 +00:00
Tim Donohue
5ad4adbddc Merge pull request #9862 from DSpace/backport-9859-to-dspace-7_x
[Port dspace-7_x] minor fix in parameter description in subscriptions_content
2024-09-27 10:47:18 -05:00
Sascha Szott
702ff9cf4c minor fix in parameter description
(cherry picked from commit 5758d9e903)
2024-09-27 15:44:49 +00:00
Tim Donohue
7b98632152 Merge pull request #9857 from DSpace/backport-9678-to-dspace-7_x
[Port dspace-7_x] LDAPAuthentication considers update of eperson's attributes
2024-09-26 16:12:58 -05:00
Sascha Szott
31af49ea72 fix Checkstyle violations
(cherry picked from commit aaa74b88c9)
2024-09-26 18:27:55 +00:00
Sascha Szott
b0370a064b add missing import
(cherry picked from commit c5ad32a9b3)
2024-09-26 18:27:55 +00:00
Sascha Szott
405397b8b0 update eperson's attributes right after successful login
(cherry picked from commit 428489ca52)
2024-09-26 18:27:55 +00:00
kshepherd
43c25c9972 Merge pull request #9838 from DSpace/backport-9581-to-dspace-7_x
[Port dspace-7_x] Add missing wosPublisherContrib key-ref in wos-integration.xml (#9579)
2024-09-19 15:49:16 +02:00
Mikhail Schastlivtsev
a49ee62450 add missing publisher metadatum in test (#9579)
(cherry picked from commit cde892c8c7)
2024-09-19 12:05:06 +00:00
Mikhail Schastlivtsev
9031322e7d add missing wosPublisherContrib key-ref in wos-integration.xml (#9579)
(cherry picked from commit 6a8c76bbe1)
2024-09-19 12:05:06 +00:00
Tim Donohue
b6209e0a95 Merge pull request #9801 from tdonohue/port_9668_to_7x
[Port dspace-7_x] Fix for DSpace#9667: Request-a-copy link generation for base URLs that have sub-paths
2024-09-06 16:40:59 -05:00
Tim Donohue
4ac4c911cf Singular name needed in 7.x 2024-09-06 16:08:49 -05:00
Kim Shepherd
7ec746d005 lint fixes (RequestItemRepository) 2024-09-06 13:54:01 -05:00
Kim Shepherd
ab43b86066 Tidy implementation of link token generation 2024-09-06 13:54:01 -05:00
Kim Shepherd
1914aac18b Improved URI build method as per review 2024-09-06 13:54:01 -05:00
Kim Shepherd
64255ffb05 #9668: Ensure proper handling of non-subpath URLs in link tokens 2024-09-06 13:54:01 -05:00
Kim Shepherd
cdb255feca Make RequestItemRepository#getLinkTokenEmail public, write test 2024-09-06 13:54:01 -05:00
Kim Shepherd
724f821bee Fix request a copy link token generation
Ensure DSpace URLs with extra segments are included
fully in the generated link
2024-09-06 13:54:00 -05:00
Tim Donohue
65232f64d3 Merge pull request #9812 from DSpace/backport-9807-to-dspace-7_x
[Port dspace-7_x] Rewrite DSpace integration tests to consistently use AbstractBuilder<T> builders
2024-09-06 12:21:42 -05:00
Kim Shepherd
123aedde04 #9806: Move cleanup of handle provider to destroy in VersionedHandleIdentifierProviderIT
(cherry picked from commit f6cabe648d)
2024-09-06 16:49:19 +00:00
Kim Shepherd
89796ece6b #9806: Set explicit id provider before VersioningWithRelationshipsIT
(cherry picked from commit 4af6900650)
2024-09-06 16:49:19 +00:00
Kim Shepherd
48c8848fc2 #9806: Use builders for creation in VersioningWithRelationshipsIT
I am a bit uncertain about the createBean() calls here, why do
we not simply *get* the configured beans using the service manager
instead, but will look at that in a separate change

(cherry picked from commit 3521ab6d35)
2024-09-06 16:49:19 +00:00
Kim Shepherd
282d4db36b #9806: Align provider reg in CreateMissingIdentifiersIT with other tests
VersionedHandlerIdentifierProviderIT uses this registerProvider method
which looks more reliable and doesn't do a refresh/reload of
applicationContext after (which I suspected might have an odd interaction
with VersioningWithRelationshipsIT and its createBean() calls?)

(cherry picked from commit 90536e443b)
2024-09-06 16:49:19 +00:00
Kim Shepherd
5fd99d8b14 #9806: Update object cleanup in GroupRestRepositoryIT
(cherry picked from commit 8cfb433c40)
2024-09-06 16:49:19 +00:00
Kim Shepherd
e6a0bb8943 #9806: Builders for comm, coll, group in CommunityAdminGroupRestControllerIT
(cherry picked from commit 2d9988f77c)
2024-09-06 16:49:19 +00:00
Kim Shepherd
968559bbaf #9806: Use builders for comm, coll, group creation in CollectionGroupRestControllerIT
(cherry picked from commit f4629d8351)
2024-09-06 16:49:19 +00:00
Kim Shepherd
b9278cbf33 #9806: Use builders for comm, coll, group creation in SupervisionOrderServiceIT
(cherry picked from commit 6e9181e3f7)
2024-09-06 16:49:19 +00:00
Kim Shepherd
ffc807205f #9806: Refactor WorkspaceItemBuilder to support specific item uuid
(cherry picked from commit b99b1eec29)
2024-09-06 16:49:19 +00:00
Kim Shepherd
8d576f8300 #9806: Use builders for group, comm, coll creation in StructBuilderIT
(cherry picked from commit 2ef69045d1)
2024-09-06 16:49:18 +00:00
Kim Shepherd
67fa262b83 #9806: Use builders for group, comm, coll creation in PackagerIT
(cherry picked from commit 1f475aa731)
2024-09-06 16:49:18 +00:00
Kim Shepherd
690dfa0809 #9806: Tidy imports for GroupRestRepositoryIT
(cherry picked from commit 80328eaca5)
2024-09-06 16:49:18 +00:00
Kim Shepherd
b9b135163f #9806: Use builders for coll, comm, group creation in GroupRestRepositoryIT
(cherry picked from commit 9205773802)
2024-09-06 16:49:18 +00:00
Kim Shepherd
2ff2297b1f #9806: Use builders for coll, comm, group creation in BitstreamRestRepositoryIT
(cherry picked from commit b13abac753)
2024-09-06 16:49:18 +00:00
Kim Shepherd
404039ade6 #9806: Add new create methods to group builder
Now supports admin groups, default read, workflow role

(cherry picked from commit cdb167e55a)
2024-09-06 16:49:18 +00:00
Tim Donohue
730e87536d Merge pull request #9798 from DSpace/backport-9796-to-dspace-7_x
[Port dspace-7_x] Translate underscores to dashes in xml:lang attr for DIM2DataCite.xsl
2024-09-03 13:33:06 -05:00
Kim Shepherd
e15f60abd3 Translate underscores to dashes in xml:lang attr for DIM2DataCite.xsl
Modified the DataCite crosswalk to ensure that the xml:lang attribute translates any underscores in the value of @lang to dashes. This change aligns the attribute formatting with standard language code conventions.

(cherry picked from commit a898afd5ac)
2024-09-03 17:19:12 +00:00
Tim Donohue
2ad5172120 Merge pull request #9790 from DSpace/backport-9775-to-dspace-7_x
[Port dspace-7_x] Make statistics autocommit much more frequently
2024-08-29 16:50:41 -05:00
Mark H. Wood
41312eec6e Make statistics autocommit much more frequent.
(cherry picked from commit 5c9af9764e)
2024-08-29 21:22:50 +00:00
kshepherd
8b3bf176fb Merge pull request #9784 from DSpace/backport-9684-to-dspace-7_x
[Port dspace-7_x] Crossref metadata import: change order of person name parts
2024-08-29 20:40:17 +02:00
Tim Donohue
94fca6fe35 Merge pull request #9789 from tdonohue/port_9497_to_7x
[Port dspace-7_x] In workflow-attached curation, separate task-list building from execution.
2024-08-29 12:11:20 -05:00
Tim Donohue
e570135689 Merge pull request #9786 from DSpace/backport-9765-to-dspace-7_x
[Port dspace-7_x] Fix index-discovery process when using handle
2024-08-29 10:41:47 -05:00
Mark H. Wood
0d74bd9f18 Separate task-list building from execution.
The old code would curate the object once for each task, meaning that all
but one task would be executed N times up to the length of the list.
2024-08-29 10:32:56 -05:00
autavares-dev
ffc99d06a1 Fix index-discovery process when using handle
(cherry picked from commit 077aed38dc)
2024-08-29 15:10:11 +00:00
Sascha Szott
7e87d57672 fix broken unit tests
(cherry picked from commit 1712b9f078)
2024-08-29 15:03:01 +00:00
Sascha Szott
f61c45bdc6 change order of name parts: familyName, givenName
(cherry picked from commit 076f1f233e)
2024-08-29 15:03:01 +00:00
Bram Luyten
8a997abf6a Merge pull request #9771 from DSpace/backport-9671-to-dspace-7_x
[Port dspace-7_x] DataCite DOI error fixes
2024-08-23 14:16:27 +02:00
Kristof De Langhe
c1be5f8e4e 115693: Pass doi metadatafield with xsl parameters
(cherry picked from commit 9e11e1f9ae)
2024-08-23 11:24:58 +00:00
Kristof De Langhe
d240a16b05 115693: DataCiteConnector fallback for blank metadata doi
(cherry picked from commit 021e424347)
2024-08-23 11:24:58 +00:00
Kristof De Langhe
f1dc25195f 115693: data-cite xsl targetting dc.identifier.uri fixes doi registration error
(cherry picked from commit c5d08f037c)
2024-08-23 11:24:58 +00:00
Tim Donohue
d23bf4c3cd Merge pull request #9743 from DSpace/backport-9742-to-dspace-7_x
[Port dspace-7_x] Fix potentially invalid usages of == operator
2024-08-02 11:57:54 -05:00
Sascha Szott
36ff5ca6cb use equals instead of ==
(cherry picked from commit a13cc82d40)
2024-08-02 16:24:13 +00:00
Sascha Szott
6a5236f2f9 use equals instead of ==
(cherry picked from commit d2ef7b01ef)
2024-08-02 16:24:13 +00:00
Sascha Szott
dc09d06ed6 use equals instead of ==
(cherry picked from commit 5e3552ee38)
2024-08-02 16:24:13 +00:00
Sascha Szott
b8f638b3b6 use equals instead of ==
(cherry picked from commit 80de8f6fb5)
2024-08-02 16:24:13 +00:00
Tim Donohue
275b0f89b7 Merge pull request #9740 from DSpace/backport-9737-to-dspace-7_x
[Port dspace-7_x] fix invalid usage of == operator
2024-08-02 11:08:28 -05:00
Sascha Szott
24318e01b8 fix invalid usage of == operator
(cherry picked from commit fa0fb14a18)
2024-08-02 14:49:40 +00:00
Tim Donohue
54bd5dd189 Merge pull request #9710 from atmire/w2p-116319_fix-metadata-import-setting-language-as-any-instead-of-null-upstream-7-x
[Port dspace-7_x] Fix issue where CSV Import / Export can clear metadata if there are metadata values with language "*" (Item.ANY)
2024-07-25 10:22:55 -05:00
Vincenzo Mecca
26905b7d45 [CST-14901][DSC-1357][#8662] Handles versioning for ORCID publications.
feat:
 - ORCID publications waiting to be published are removed whenever a new version is created
 - ORCID publications already published will be updated with the ref to the last item version
 - ORCID consumer will process only latest item versions, ignoring all the other ones
2024-07-25 11:44:37 +02:00
Vincenzo Mecca
affa4b00ff [CST-14905] Orcid revoke token feature 2024-07-24 19:39:21 +02:00
Tim Donohue
f6208bc1ce Merge pull request #9719 from DSpace/backport-9717-to-dspace-7_x
[Port dspace-7_x] Update spider list URLs to satisfy Cloudflare redirects
2024-07-23 14:28:03 -05:00
Kim Shepherd
30b6eddeb6 Update spider list URLs to satisfy cloudflare redirects
Update spider list URLs to satisfy cloudflare redirects

Update spider list URLs to satisfy cloudflare redirects

(cherry picked from commit d22ea117ca)
2024-07-23 18:53:56 +00:00
Tim Donohue
a3b27bdfb6 Merge pull request #9712 from DSpace/backport-9711-to-dspace-7_x
[Port dspace-7_x] Bump dnsjava:dnsjava from 2.1.9 to 3.6.0 in /dspace-api
2024-07-22 14:00:51 -05:00
dependabot[bot]
fff8cc3cb4 Bump dnsjava:dnsjava from 2.1.9 to 3.6.0 in /dspace-api
Bumps [dnsjava:dnsjava](https://github.com/dnsjava/dnsjava) from 2.1.9 to 3.6.0.
- [Release notes](https://github.com/dnsjava/dnsjava/releases)
- [Changelog](https://github.com/dnsjava/dnsjava/blob/master/Changelog)
- [Commits](https://github.com/dnsjava/dnsjava/compare/v2.1.9...v3.6.0)

---
updated-dependencies:
- dependency-name: dnsjava:dnsjava
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
(cherry picked from commit 1775c88919)
2024-07-22 18:19:36 +00:00
Jens Vannerum
7082e32595 116542: resolve issues after merge with latest 7-x branch 2024-07-22 15:18:44 +02:00
Jens Vannerum
8f049579dc Merge branch 'w2p-116319_fix-metadata-import-setting-language-as-any-instead-of-null' into w2p-116319_fix-metadata-import-setting-language-as-any-instead-of-null-upstream-7-x 2024-07-22 15:14:12 +02:00
Jens Vannerum
03cff072c3 116542: fix issues with CSV importing and the Any language being set on metadata values 2024-07-22 15:08:59 +02:00
Tim Donohue
086655712d Merge pull request #9707 from tdonohue/port_9704_to_7x
[Port dspace-7_x] Docker build: fix FromAsCasing warnings
2024-07-17 12:00:06 -05:00
Sascha Szott
e4209d5d0b fix FromAsCasing warning 2024-07-17 11:26:47 -05:00
Sascha Szott
9b6b7ded97 fix FromAsCasing warning 2024-07-17 11:26:36 -05:00
Sascha Szott
f340dfadbe fix FromAsCasing warning 2024-07-17 11:25:33 -05:00
Sascha Szott
83f3ea4d05 fix FromAsCasing warning 2024-07-17 11:24:15 -05:00
Tim Donohue
9e1ea61a0b Merge pull request #9693 from tdonohue/port_9691_to_7x
[Port dspace-7_x] Fix random test failures in LinksetRestControllerIT and ManageGroupsFeatureIT
2024-07-10 15:49:27 -05:00
Tim Donohue
3bb93be793 Fix random pagination failures in ManageGroupsFeatureIT by using the "feature" param to filter for the feature we are looking for. If this feature appeared on page 2, then the tests would fail. 2024-07-10 15:17:56 -05:00
Tim Donohue
17a46a2fb6 Remove unused services & unnecessary cache cleanup. This can result in random failures if these services are not yet loaded by another test. 2024-07-10 15:15:47 -05:00
Tim Donohue
e4874c9f2f Merge pull request #9683 from TexasDigitalLibrary/port_9682_to_7x
updated creative commons licenses version from 3.0 to 4.0
2024-07-09 15:43:21 -05:00
Tim Donohue
86b28bf927 [maven-release-plugin] prepare for next development iteration 2024-07-09 14:10:05 -05:00
Tim Donohue
08947bc34e [maven-release-plugin] prepare release dspace-7.6.2 2024-07-09 14:10:01 -05:00
Tim Donohue
98c661d8d0 Update redeployment of demo.dspace.org to use dspace-8_x branch. 2024-07-09 13:43:15 -05:00
Tim Donohue
12c3cc5b3e Update LICENSES_THIRD_PARTY (and related configs) for 7.6.2 release 2024-07-09 13:35:16 -05:00
nwoodward
2cb8204d3c updated creative commons licenses version from 3.0 to 4.0 2024-07-08 12:33:07 -05:00
kshepherd
d47c00a24b Merge pull request #9599 from tdonohue/port_new_csrf_endpoint_to_7x
[Port dspace-7_x] Add a GET `/csrf` endpoint to allow for forcing refresh of CSRF token
2024-06-29 14:57:45 +02:00
Tim Donohue
324020ac81 Merge pull request #9651 from DSpace/backport-9638-to-dspace-7_x
[Port dspace-7_x] Update configuration to always download HTML/JS/XML Bitstreams (no inline display)
2024-06-17 09:23:22 -05:00
Tim Donohue
3bcd33d92a To avoid misconfiguration, hardcode HTML, XML, RDF, JS to download only. Add a new wildcard setting to allow sites to force all files to download only.
(cherry picked from commit a091d343b9)
2024-06-17 07:23:16 +00:00
Tim Donohue
c30ff35448 For additional security, ensure "unknown" formats are always downloaded. Update test to prove behavior.
(cherry picked from commit 6da072de9e)
2024-06-17 07:23:16 +00:00
Tim Donohue
7951c8e428 Add a test to prove the default settings are to always download these formats
(cherry picked from commit e6bfb833ee)
2024-06-17 07:23:16 +00:00
Tim Donohue
7ba150f4fc Add XML to the list of formats to always download
(cherry picked from commit 39975e45cf)
2024-06-17 07:23:16 +00:00
Tim Donohue
7143c97248 Fix failing IT by increasing number of formats by one
(cherry picked from commit c61b7033f2)
2024-06-17 07:23:16 +00:00
Tim Donohue
0f74cb22bf Avoid inline display of HTML/JS bitstreams. Add JS to list of known formats so that it can be recognized by DSpace.
(cherry picked from commit 356a028186)
2024-06-17 07:23:16 +00:00
Tim Donohue
0b67aa3070 Merge pull request #9649 from DSpace/backport-9509-to-dspace-7_x
[Port dspace-7_x] Fix bug where empty metadata List can result in "Index 0 out of bounds for length 0" exceptions in several scenarios
2024-06-14 11:53:31 -05:00
Tim Donohue
c890199cfe Add tests to verify behavior of addMetadata() when encountering virtual metadata
(cherry picked from commit 2eb7dbca6b)
2024-06-14 14:58:15 +00:00
Tim Donohue
872af33155 Fix bug in MetadataImport where it could call addMetadata() with empty values. Minor refactors to MetadataImportIT to make findItemByName more efficient.
(cherry picked from commit f8ac8edc49)
2024-06-14 14:58:15 +00:00
Tim Donohue
30dafa09d0 Fix testAddMetadata_5args_2 to no longer be *identical* to testAddMetadata_5args_1. It appears this second test was meant to test a different addMetadata() method which accepts a single Value instead of a List
(cherry picked from commit 25f722ed98)
2024-06-14 14:58:15 +00:00
Tim Donohue
8407c571db Throw IllegalArgumentException if addMetadata() called without values. Add unit tests to prove it works
(cherry picked from commit ed918a8d0c)
2024-06-14 14:58:15 +00:00
Tim Donohue
928dad1c5c Ensure List is not empty before returning first value
(cherry picked from commit 068bcdf3af)
2024-06-14 14:58:15 +00:00
Tim Donohue
370550c06b Merge pull request #9643 from DSpace/backport-9621-to-dspace-7_x
[Port dspace-7_x] Fixed item edit relationships with same type name but different entities all being shown under same label
2024-06-10 09:37:09 -05:00
Tim Donohue
2bf663e5a1 Merge pull request #9642 from DSpace/backport-9594-to-dspace-7_x
[Port dspace-7_x] Metadata Import via Scopus API: improved handling of empty search results
2024-06-07 15:52:26 -05:00
Alexandre Vryghem
7789304ebe 115434: Added test proving that different values for relatedEntityType return different results
(cherry picked from commit bbae1fb0d1)
2024-06-07 20:09:19 +00:00
Alexandre Vryghem
8d82457eb7 115434: Added relatedEntityType parameter to byLabel endpoint to differentiate relationships with same label and different entity types
(cherry picked from commit 8512fab392)
2024-06-07 20:09:19 +00:00
Sascha Szott
8e56fdd95b fixed failed test
(cherry picked from commit 6989cb6f15)
2024-06-07 19:59:21 +00:00
Sascha Szott
2b1270197e improve handling of 0 hits responses of Scopus API
(cherry picked from commit b12bd6ce56)
2024-06-07 19:59:21 +00:00
Sascha Szott
6e5c5089ab Update scopus-empty-resp.xml
(cherry picked from commit 4b2ea66f19)
2024-06-07 19:59:21 +00:00
Sascha Szott
26658b6665 evaluate surname and given-name if authname is not present
(cherry picked from commit 8b5f044537)
2024-06-07 19:59:21 +00:00
Tim Donohue
e8991992fc Merge pull request #9637 from DSpace/backport-9629-to-dspace-7_x
[Port dspace-7_x] Ensure work directory is cleaned up even when Zip export fails
2024-06-06 10:44:27 -05:00
Tim Donohue
95fc68b3ee Ensure work directory is cleaned up whether zip file is created successfully or an error occurs.
(cherry picked from commit b7f764746c)
2024-06-06 14:53:00 +00:00
Tim Donohue
1769f16d7a Merge pull request #9635 from DSpace/backport-9539-to-dspace-7_x
[Port dspace-7_x] Fixed too long classpath bug in test_databaseFixed classpath issue in test_database target
2024-06-05 15:27:53 -05:00
Jean-François Morin
4cd3b75e67 Fixed classpath issue in test_database target
(cherry picked from commit 6937c19973)
2024-06-05 19:14:17 +00:00
Tim Donohue
3ad22bf977 Merge pull request #9634 from tdonohue/port_9625_to_7x
[Port dspace-7_x] updates creativecommons.org links to https
2024-06-05 12:01:26 -05:00
nwoodward
c5d139c9e1 updates creativecommons.org links to https 2024-06-05 11:24:30 -05:00
Tim Donohue
a95ed84b75 Merge pull request #9632 from DSpace/backport-9605-to-dspace-7_x
[Port dspace-7_x] Fix for Bump org.apache.commons:commons-configuration2 from 2.9.0 to 2.10.1
2024-06-05 10:35:53 -05:00
Andrea Bollini
7fc74bdc56 DURACOM-267 assure that our custom DSpaceConfigurationPropertySource is used also for the spring context created by the DSpace kernel
(cherry picked from commit 4fcf995b69)
2024-06-05 14:38:44 +00:00
Andrea Bollini
b9e6af6758 DURACOM-267 improve handling of empty configuration property
(cherry picked from commit 0422b8786f)
2024-06-05 14:38:44 +00:00
Andrea Bollini
4b5248fe15 DURACOM-267 update commons-configuration2 fix according to the community feedback
(cherry picked from commit f2d4ffc49c)
2024-06-05 14:38:44 +00:00
Andrea Bollini
0d4d065d45 Create a temporary version of the ConfigurationPlaceholderConfigurer to overcome bu in 2.10
(cherry picked from commit d44d76ea03)
2024-06-05 14:38:44 +00:00
dependabot[bot]
fe76579d04 Bump org.apache.commons:commons-configuration2 from 2.9.0 to 2.10.1
Bumps org.apache.commons:commons-configuration2 from 2.9.0 to 2.10.1.

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-configuration2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
(cherry picked from commit df7220bd98)
2024-06-05 14:38:44 +00:00
Tim Donohue
6b23e6fac0 Merge pull request #9628 from DSpace/backport-9627-to-dspace-7_x
[Port dspace-7_x] Cleanup doi filters
2024-06-04 11:55:20 -05:00
Pascal-Nicolas Becker
2d150cb86c Cleanup doi filters
We can set filters in identifier-service.xml. Setting them in
modules/identifiers.cfg is just overidding the other one. To keep things
simple, we should avoid having two different filters for the same issue.
The filter configured in spring is working for any new DOI, while the
one we take out here, is just working for items being run through the
install item service.

(cherry picked from commit 59aaf3e57c)
2024-06-04 16:25:51 +00:00
Tim Donohue
1827b89937 Merge pull request #9626 from DSpace/backport-9619-to-dspace-7_x
[Port dspace-7_x] Remove the is-archived_condition from the doi-filter
2024-06-03 17:02:42 -05:00
Pascal-Nicolas Becker
b8a6711140 Remove the is_archived_condition from the doi-filter
In the conversation of #9271 kshepherd states that he had issues to
register DOIs when the doi-filter is usint the is_archived_condition. I
was able to reproduce these issues. This removes the reference to that
condition from the filter. The item is not archived when the
InstallItemService is trying to apply a DOI to it.

(cherry picked from commit 24da6fe769)
2024-06-03 21:24:15 +00:00
Tim Donohue
77827cdfaa Merge pull request #9624 from DSpace/backport-9618-to-dspace-7_x
[Port dspace-7_x] Update comments in identifier-service.xml
2024-06-03 12:04:20 -05:00
Pascal-Nicolas Becker
ac07f08497 Update comments in identifier-service.xml
The DOIIdentifierProvider using a filter was commented out twice. We
should show that it works with and without a filter. Furthermore one
comments looked cut off.

(cherry picked from commit 3dd49f4ac3)
2024-06-03 16:33:25 +00:00
Tim Donohue
0d014e5e9e Merge pull request #9617 from tdonohue/port_9273_to_7x
[Port dspace-7_x] MediaFilter over large repository result in downtime
2024-05-31 16:00:03 -05:00
Andrea Bollini
a09d46d8e4 DURACOM-225 fix lazy initialization traversing comms/colls 2024-05-31 14:30:11 -05:00
Andrea Bollini
88b44e9281 DURACOM-225 porting of the uuid iterator implementation from dspace-cris to retrie just the uuid from the database in the initial query 2024-05-31 14:30:04 -05:00
Andrea Bollini
86286474cc DURACOM-225 commit after each item to release DB resources 2024-05-31 14:29:59 -05:00
Andrea Bollini
96f490a3a0 DURACOM-225 add IT for the media filter script 2024-05-31 14:29:52 -05:00
Tim Donohue
4651ba8797 Merge pull request #9614 from DSpace/backport-9576-to-dspace-7_x
[Port dspace-7_x] Remove old UI references from OpenSearch / RSS feeds
2024-05-29 16:54:10 -05:00
Tim Donohue
fcbf8b80e3 Merge pull request #9609 from tdonohue/port_9583_to_7x
[dspace-7_x] Fix Item Counts (webui.strengths) by refactoring ItemCounter and ItemCountDAO to act like other Spring beans
2024-05-29 16:42:12 -05:00
Tim Donohue
3e831123b7 Add a basic test that refactoring of code results in correct logo URLs. Also enable/fix a test for special characters.
(cherry picked from commit 8c22915adf)
2024-05-29 20:56:51 +00:00
Tim Donohue
3b1cf3e35e Remove references to UI type from OpenSearch / RSS feeds
(cherry picked from commit 47b79bb2cb)
2024-05-29 20:56:51 +00:00
damian
ab0b80e57a Merge remote-tracking branch 'origin/refactor_item_counter' into refactor_item_counter 2024-05-24 16:50:51 -05:00
damian
a5901af564 Level up counting items methods - both now use the same flags from Item model (discoverable, archived, withdrawn) 2024-05-24 16:48:56 -05:00
damian
8ae9f9f251 Check withdrawn flag at item count method 2024-05-24 16:44:05 -05:00
Tim Donohue
be4dfeb140 Refactor ItemCounter and ItemCountDAO to act like other DSpace beans. Also ensure they do not cache a Context object. 2024-05-24 16:43:49 -05:00
Tim Donohue
eb9f63ab95 DSpace 7 requires using jvax not jakarta 2024-05-17 09:17:33 -05:00
Tim Donohue
fabd60db43 Update test to prove CSRF token changes for every GET request to endpoint 2024-05-16 16:46:44 -05:00
Tim Donohue
a6c369686d Add a GET /csrf endpoint to allow for forcing refresh of CSRF token 2024-05-16 16:39:17 -05:00
Tim Donohue
b3a4571d4c Merge pull request #9596 from paulo-graca/bugfixes/issue-7464
Fixing issue #7464 for DSpace 7
2024-05-16 13:13:23 -05:00
Paulo Graça
11062ae869 Fixing issue #7464 for DSpace 7 2024-05-16 17:03:25 +01:00
Tim Donohue
598fb1831f Merge pull request #9484 from 4Science/s3lazy_7x
Porting of Improve S3 Bitstream Storage to Lazy download object from S3 to 7_x
2024-05-16 10:59:23 -05:00
Tim Donohue
94965116ee Merge pull request #9590 from DSpace/backport-9588-to-dspace-7_x
[Port dspace-7_x] I18nUtil: reduce log level error to info or warn
2024-05-16 08:37:13 -05:00
Tim Donohue
c875f1c8e1 Merge pull request #9591 from DSpace/backport-9580-to-dspace-7_x
[Port dspace-7_x] improve interoperability: replace hard-coded slash by File.separator
2024-05-16 08:36:48 -05:00
Sascha Szott
f7a5c7375a replaced slash by File.separator
(cherry picked from commit 3e23fea0b8)
2024-05-15 21:59:43 +00:00
Sascha Szott
caf0671ce2 reduce log level error to info or warn
(cherry picked from commit bc4c6742d3)
2024-05-15 21:51:40 +00:00
Tim Donohue
5f29b52e4e Merge pull request #9586 from DSpace/backport-9582-to-dspace-7_x
[Port dspace-7_x] Add additional DOI prefixes
2024-05-15 13:36:06 -05:00
max.nuding
1d6ab238c0 Add additional DOI prefixes
(cherry picked from commit ba4edeed15)
2024-05-15 17:58:05 +00:00
Tim Donohue
33b6b4ba09 Merge pull request #9578 from DSpace/backport-9577-to-dspace-7_x
[Port dspace-7_x] Fix broken ITs after merger of #9485
2024-05-13 17:27:48 -05:00
Tim Donohue
fd755bf810 Merge pull request #9575 from DSpace/backport-9485-to-dspace-7_x
[Port dspace-7_x] Fix person lookup on project submission #2959
2024-05-13 17:27:18 -05:00
Tim Donohue
ed9ff262d6 Fix broken ITs after merger of #9485
(cherry picked from commit 16343d68bf)
2024-05-13 22:23:38 +00:00
Eike Martin Löhden
b0995cdf6c Set correct metadata field for virtual metadata of persons in projects.
(cherry picked from commit ff7d96b82c)
2024-05-13 19:27:54 +00:00
Eike Martin Löhden
2309496f67 Correct relationship direction for persons in the project submission step.
(cherry picked from commit ee2abfaf88)
2024-05-13 19:27:54 +00:00
Tim Donohue
d99ad4736e Merge pull request #9574 from tdonohue/port_9573_to_7x
[Port dspace-7_x] remove outdated comment as RSS feeds are supported in DS 7.3+
2024-05-13 10:03:35 -05:00
Sascha Szott
1128b0eb10 remove outdated comment as RSS feeds are supported in DS 7.3+ 2024-05-13 10:01:59 -05:00
Tim Donohue
71b8f1d3b2 Merge pull request #9571 from DSpace/backport-9400-to-dspace-7_x
[Port dspace-7_x] fix datacite import recordscount and pagination options
2024-05-10 16:57:09 -05:00
Gantner, Florian Klaus
17c68323db avoid empty data to create phantom records for datacite import
(cherry picked from commit 9667a3374d)
2024-05-10 21:29:16 +00:00
Gantner, Florian Klaus
e35f859e06 datacite api test for no results count
(cherry picked from commit 9cd1a1093d)
2024-05-10 21:29:16 +00:00
Gantner, Florian Klaus
d14f113024 use datacite api response for recordscount and paginated calls. update test file for response as expected from the api.
(cherry picked from commit 65ac01a4a6)
2024-05-10 21:29:16 +00:00
Tim Donohue
132bf49397 Merge pull request #9570 from DSpace/backport-9569-to-dspace-7_x
[Port dspace-7_x] potential array index out of bounds access in SubscriptionDsoMetadataForEmailCompose
2024-05-10 11:53:05 -05:00
Sascha Szott
2976ae3971 bugfix: array index can be out of bound
(cherry picked from commit 4fc6b07466)
2024-05-10 16:21:44 +00:00
Tim Donohue
2481a6f700 Merge pull request #9567 from DSpace/backport-9566-to-dspace-7_x
[Port dspace-7_x] Remove not unique id from inner beans to avoid xml validation issues
2024-05-09 13:02:39 -05:00
Andrea Bollini
ca27ea5fc2 Remove not unique id from inner beans to avoid xml validation issues
(cherry picked from commit 844b73ff49)
2024-05-09 16:31:04 +00:00
Tim Donohue
d71350da4e Merge pull request #9565 from DSpace/backport-9433-to-dspace-7_x
[Port dspace-7_x] Restore batch templates mail
2024-05-09 11:28:21 -05:00
Roy Bruschini
d90cf24a21 Fix typo
(cherry picked from commit 74c15e8d55)
2024-05-09 15:42:55 +00:00
Roy Bruschini
31020d1d4f Create templates mail and renamed name in getEmailFileName
(cherry picked from commit 7a637e6871)
2024-05-09 15:42:55 +00:00
Tim Donohue
ead90b6bbf Merge pull request #9455 from paulo-graca/organisation2organization
Replace organisation->organization
2024-05-09 10:12:15 -05:00
Paulo Graça
2fdc422b24 change IT from organisation to organization 2024-05-09 14:39:51 +01:00
Tim Donohue
2219ca80f0 Merge pull request #9557 from DSpace/backport-9555-to-dspace-7_x
[Port dspace-7_x] Updated CheckStyle to support newer Java features while not changing anything else
2024-05-08 16:49:58 -05:00
Tim Donohue
ebff350216 Merge pull request #9432 from DSpace/bugfix-9425
adding Unicode filtering for sorts
2024-05-08 16:22:21 -05:00
Jean-François Morin
532e21ffb9 Updated CheckStyle so that new Java features such as string blocks are supported, but without requiring to change anything else
(cherry picked from commit ef8c621a0f)
2024-05-08 21:01:06 +00:00
Tim Donohue
44090605b0 Merge pull request #9556 from DSpace/backport-9410-to-dspace-7_x
[Port dspace-7_x] Fix OAIHarvester#extractHandle not handling config properly
2024-05-08 15:17:52 -05:00
Tim Donohue
a4a09209f8 Merge pull request #9554 from DSpace/backport-9551-to-dspace-7_x
[Port dspace-7_x] Ensure Process `user_id` is nullified when referenced EPerson is deleted
2024-05-08 14:45:16 -05:00
Nona Luypaert
1b091a033e Fix OAIHarvester#extractHandle not handling config properly
- defaults for oai.harvester.acceptedHandleServer and oai.harvester.rejectedHandlePrefix are now set
- rejected handles no longer pass if multiple prefixes were configured for oai.harvester.rejectedHandlePrefix

(cherry picked from commit 862a6c5be6)
2024-05-08 19:44:05 +00:00
Tim Donohue
448a69483b Fix NullPointerException. Only return userid if EPerson not null
(cherry picked from commit f34c592352)
2024-05-08 19:07:01 +00:00
Tim Donohue
606b10ccb7 Add migration to set user_id to null if EPerson no longer exists & enforce it for future
(cherry picked from commit ef24645cbf)
2024-05-08 19:07:01 +00:00
Tim Donohue
c0b36a9e9c Merge pull request #9549 from DSpace/backport-9548-to-dspace-7_x
[Port dspace-7_x] Ensure potentially large Solr query uses POST, not GET
2024-05-07 09:36:19 -05:00
Tim Donohue
dbf063dfb9 Ensure potentially large Solr query uses POST, not GET
(cherry picked from commit 0a21a11c9a)
2024-05-07 14:09:09 +00:00
Tim Donohue
28bb6c7e95 Merge pull request #9547 from tdonohue/port_9542_to_7x
Upgrade Tika and bcprov-jdk18on to latest versions
2024-05-06 11:16:04 -05:00
Tim Donohue
03f8a0c56d Merge pull request #9507 from atmire/w2p-105866_Submission-performance-7_x
7.x - Submission performance
2024-05-06 11:11:21 -05:00
Tim Donohue
e22f9a211f Upgrade Tika and bcprov-jdk18on to latest versions. Synced other dependencies with versions used on main (where possible to do so) 2024-05-06 10:09:23 -05:00
Tim Donohue
7a9c8c1ea3 Merge pull request #9538 from DSpace/backport-9453-to-dspace-7_x
[Port dspace-7_x] DS-9452: Updates query to get collections referenced in the subscribers table
2024-05-03 16:12:42 -05:00
Tim Donohue
a2b9bf256f Merge pull request #9482 from dsteelma-umd/opensearch_npe_fix_for_valid_unknown_uuids
Fix OpenSearch NullPointerException for "scope" UUID that is not a community or collection
2024-05-03 15:46:09 -05:00
Tim Donohue
2754549156 Merge pull request #9541 from DSpace/backport-9386-to-dspace-7_x
[Port dspace-7_x] CrossRef metadata import: improve handling of JATS markup in CrossRef JSON response
2024-05-03 15:23:55 -05:00
Tim Donohue
6b3e3cf044 Merge pull request #9540 from DSpace/backport-9385-to-dspace-7_x
[Port dspace-7_x] CrossRef metadata import: trim trailing whitespaces in search query
2024-05-03 14:47:42 -05:00
Sascha Szott
263b45046c sort imports lexicographically
(cherry picked from commit 2867b36ebb)
2024-05-03 19:47:30 +00:00
Sascha Szott
71798f0f74 fix code style violations
(cherry picked from commit 23b8b696a0)
2024-05-03 19:47:30 +00:00
Sascha Szott
6b57079569 add header in class file
(cherry picked from commit b772004397)
2024-05-03 19:47:30 +00:00
Sascha Szott
a000f1430a add CrossRefAbstractProcessor
(cherry picked from commit fa3f10e0b6)
2024-05-03 19:47:29 +00:00
Sascha Szott
1606862aa3 add processor to handle CrossRef abstracts
(cherry picked from commit 498d137970)
2024-05-03 19:47:29 +00:00
Sascha Szott
cef170ad12 extend trimming
(cherry picked from commit 2c6f43d48f)
2024-05-03 19:21:05 +00:00
Sascha Szott
4d54f74ae1 trim trailing whitespaces in search query
(cherry picked from commit 43e2a1d402)
2024-05-03 19:21:05 +00:00
nwoodward
1da7c6b933 make sure collections list is unique
(cherry picked from commit d27331a0b3)
2024-05-03 17:31:19 +00:00
nwoodward
d6f6444f58 updated query to get collections referenced in the subscribers table
(cherry picked from commit c5989c65bb)
2024-05-03 17:31:19 +00:00
Tim Donohue
8205c07586 Merge pull request #9537 from DSpace/backport-9436-to-dspace-7_x
[Port dspace-7_x] Issue-9435
2024-05-03 11:30:30 -05:00
Xiqinger
1920101273 avoid outputStream write after close
(cherry picked from commit 214568d480)
2024-05-03 16:00:42 +00:00
Xiqinger
cbfe0beede Add empty check before call iterator().next()
(cherry picked from commit b2663c810c)
2024-05-03 16:00:42 +00:00
Xiqinger
24f2bca4b3 check path before mkdirs
(cherry picked from commit fda62bc101)
2024-05-03 16:00:41 +00:00
Tim Donohue
5b89effeb9 Merge pull request #9191 from atmire/w2p-106812_enforce-resource-policies-to-have-group-or-eperson
[Port to dspace-7_x] Enforce resource policies to have group or eperson
2024-05-03 10:16:02 -05:00
Kristof De Langhe
ce9129c961 105866: Remove commented code 2024-05-03 14:20:58 +02:00
Yana De Pauw
ce869e55d0 Merge remote-tracking branch 'upstream/dspace-7_x' into w2p-106812_enforce-resource-policies-to-have-group-or-eperson 2024-05-03 14:07:25 +02:00
Tim Donohue
d935ab26d7 Merge pull request #9487 from toniprieto/form-by-entity-type-with-map-v7
[Port dspace-7_x] Refactor SubmissionConfigReader to use a map for the item process configurations based on entityType
2024-05-02 11:01:20 -05:00
Tim Donohue
15fa850bcb Merge pull request #9531 from DSpace/backport-9358-to-dspace-7_x
[Port dspace-7_x] PreloadLevel config vocabulary issue
2024-05-02 08:33:46 -05:00
Tim Donohue
930e63f01a Merge pull request #9532 from DSpace/backport-9429-to-dspace-7_x
[Port dspace-7_x] Fix packager NPE if using the passwords=true option
2024-05-02 08:33:33 -05:00
Agustina Martinez
62b42ff2d1 Update RoleDisseminator.java
Fix NPE if empty password hash string

(cherry picked from commit 04824a2e98)
2024-05-01 21:49:13 +00:00
Marie Verdonck
097d253063 Make sure vocab init is run for vocabulary returned in /api/submission/vocabularies
(cherry picked from commit 42437dd65b)
2024-05-01 21:28:25 +00:00
Tim Donohue
5626fa1adc Merge pull request #9528 from DSpace/backport-9523-to-dspace-7_x
[Port dspace-7_x] Bump org.xmlunit:xmlunit-core from 2.9.1 to 2.10.0 in /dspace-api
2024-05-01 15:08:00 -05:00
dependabot[bot]
08c46bd0a1 Bump org.xmlunit:xmlunit-core from 2.9.1 to 2.10.0 in /dspace-api
Bumps [org.xmlunit:xmlunit-core](https://github.com/xmlunit/xmlunit) from 2.9.1 to 2.10.0.
- [Release notes](https://github.com/xmlunit/xmlunit/releases)
- [Changelog](https://github.com/xmlunit/xmlunit/blob/main/RELEASE_NOTES.md)
- [Commits](https://github.com/xmlunit/xmlunit/compare/v2.9.1...v2.10.0)

---
updated-dependencies:
- dependency-name: org.xmlunit:xmlunit-core
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
(cherry picked from commit 1fdc3ce220)
2024-05-01 19:37:54 +00:00
Tim Donohue
25108cb9a1 Merge pull request #9387 from MW3000/fix-9383-email-subject-for-request-a-copy
Fix #9383: Set email subject for request copy form
2024-05-01 14:27:35 -05:00
Tim Donohue
d96916c19b Merge pull request #9526 from DSpace/backport-9522-to-dspace-7_x
[Port dspace-7_x] Remove obsolete "version" tag from Docker Compose files
2024-05-01 14:14:06 -05:00
Tim Donohue
0c7a41e47c Merge pull request #9524 from tdonohue/update_spring
[dspace-7_x] Minor update to latest Spring version
2024-05-01 13:20:24 -05:00
Tim Donohue
c030bcfa5a Merge pull request #9525 from DSpace/backport-9521-to-dspace-7_x
[Port dspace-7_x] Install unzip util in built dspace-cli image
2024-05-01 13:11:03 -05:00
Tim Donohue
e1dc695102 Remove obsolete "version" tag from compose files
(cherry picked from commit 9ca0ad5579)
2024-05-01 17:18:01 +00:00
John Abrahams
735906c429 Install unzip util in final built image
(cherry picked from commit 3eae430bec)
2024-05-01 16:56:22 +00:00
Tim Donohue
a97d72f993 Minor update to latest Spring version 2024-05-01 11:50:22 -05:00
Tim Donohue
6024a42448 Merge pull request #9520 from DSpace/backport-9296-to-dspace-7_x
[Port dspace-7_x] Fix resource policy type not set for bitstreams when importing items
2024-05-01 11:38:21 -05:00
Agustina Martinez
30e3cde30d Update ItemImportServiceImpl.java
expand setPermission to take the rpType string

(cherry picked from commit 679df52bbd)
2024-05-01 14:54:23 +00:00
Tim Donohue
aafc111c98 Merge pull request #9518 from DSpace/backport-9289-to-dspace-7_x
[Port dspace-7_x] Validation of page url in FeedbackRestRepository
2024-04-30 13:42:32 -05:00
Sascha Szott
0cfe4aec73 allow empty feedback page url
(cherry picked from commit c4cc56a429)
2024-04-30 17:40:22 +00:00
Sascha Szott
f9d3efd1e7 added validation of page url
(cherry picked from commit 771f37a1fa)
2024-04-30 17:40:22 +00:00
Tim Donohue
4636410894 Merge pull request #9516 from DSpace/backport-9515-to-dspace-7_x
[Port dspace-7_x] Fix SWORDv2 Deletion for Workflow / Archived Items
2024-04-30 11:27:28 -05:00
Tim Donohue
67d7c0bf3b Fix deletion by only cleaning up wrapper for Workspace/workflow items
(cherry picked from commit 5c13569d0f)
2024-04-30 16:00:25 +00:00
Tim Donohue
07377d12c8 Add ITs which test SWORD deletion for workspace vs workflow items (we already have a test for archived items)
(cherry picked from commit 70b0a28749)
2024-04-30 16:00:25 +00:00
Tim Donohue
0434cd9c92 Merge pull request #9513 from DSpace/backport-9285-to-dspace-7_x
[Port dspace-7_x] Fix deleting workspace items via SWORDv2 endpoint
2024-04-30 10:59:12 -05:00
Yana De Pauw
435988ca00 Swap the delete and constraint db lines 2024-04-30 16:40:47 +02:00
Tim Donohue
74c43d4027 Merge pull request #9512 from DSpace/backport-9229-to-dspace-7_x
[Port dspace-7_x] [DS-3439] Copy collection template item specified metadata during …
2024-04-29 17:09:36 -05:00
Agustina Martinez
849a252fa8 Update ContainerManagerDSpace.java
Remove duplicate item.delete call that causes hibernate errors as item is already deleted

(cherry picked from commit 57032050b9)
2024-04-29 22:02:08 +00:00
haoueclf
2f99646417 [DS-3439] Copy collection template item specified metadata during Sword v2 METS deposit ingestion.
(cherry picked from commit 7ead4ae7f0)
2024-04-29 21:42:21 +00:00
DSpace Bot
75c688daef [Port dspace-7_x] Drop not null for EPerson in Process table (#9510)
* Set EPerson nullable in ProcessTable

(cherry picked from commit 9ed997d2dd)

* chore: Remove nullable = false in EPerson Entity

(cherry picked from commit f1a38c2485)

* chore: Avoid NPE when getEPerson is called

(cherry picked from commit 2f9ad72298)

* test: Add test for insert nullable EPerson in Process' table

(cherry picked from commit 8fe264ee69)

* Revert "Set EPerson nullable in ProcessTable"

This reverts commit aea7b9385b6c6972b0ac27e061d082bb92eaf4a6.

(cherry picked from commit 7de931c7be)

* feat: Drop NOT NULL for user_id in Process table

(cherry picked from commit 3b73786c55)

* chore: add endline

(cherry picked from commit 27ed14c38c)

* fix: add headers file

(cherry picked from commit a3ea7cbaaa)

* Rename file sql

(cherry picked from commit eb22285924)

* Rename sql script to 7.6.x

(cherry picked from commit d2ef87eab6)

* fix: Set fetch lazy in EPerson Process

(cherry picked from commit d6340403ff)

* fix: set the user attached to a process to null if none is found in the DB

(cherry picked from commit afb734df5f)

---------

Co-authored-by: Roy Bruschini <r.bruschini@key2.it>
Co-authored-by: Jens Vannerum <jens.vannerum@atmire.com>
2024-04-29 14:31:20 -05:00
Kristof De Langhe
d139d06c58 105866: test fixes 2024-04-29 12:58:20 +02:00
Yana De Pauw
9d12600d13 [Ticket 2124] Slow response times 2024-04-26 17:09:00 +02:00
Toni Prieto
10aa318919 Add comment to clarify in which use case the consumer submissionconfig is useful 2024-04-26 14:50:30 +02:00
Toni Prieto
1cfa041a31 Remove unused function findAllCollectionsByEntityType of CollectionService 2024-04-26 14:50:17 +02:00
Tim Donohue
9c0281018c Merge pull request #9500 from DSpace/backport-9406-to-dspace-7_x
[Port dspace-7_x] Change from openjdk to eclipse-temurin base images
2024-04-24 14:00:05 -05:00
Thomas Misilo
362c80136b Change from openjdk to eclipse-temurin base images
Since the opendjk image has been deprecated, it was suggested to change to eclipse-temurin

Fixes #9277

(cherry picked from commit 86ca5aabf9)
2024-04-24 18:23:29 +00:00
Yana De Pauw
80a7e48536 Merge remote-tracking branch 'upstream/dspace-7_x' into w2p-106812_enforce-resource-policies-to-have-group-or-eperson 2024-04-24 17:06:14 +02:00
Tim Donohue
13d2a96443 Merge pull request #9494 from DSpace/backport-9492-to-dspace-7_x
[Port dspace-7_x] Remove unnecessary "exit" statements which stop running Postgres container
2024-04-22 15:53:23 -05:00
Tim Donohue
b1fb884aec Remove unnecessary "exit" statements which stop running container
(cherry picked from commit 11158ae525)
2024-04-22 20:03:02 +00:00
Tim Donohue
6755b0e77f Merge pull request #9491 from tdonohue/docker_fixes_7x
Fixes to Docker scripts for DSpace 7.x
2024-04-22 11:24:43 -05:00
Tim Donohue
69f7f85def Minor fixes to DB scripts. Use Postgres 15. Don't error out if pgcrypto already installed. 2024-04-22 10:50:21 -05:00
Tim Donohue
d5e2c71da4 Minor fixes to Entities import. MUST run "ignored" migrations. Also modifying submission configs no longer needed 2024-04-22 10:50:15 -05:00
Toni Prieto
770b38c793 Add test for item process submission forms mapped by entityType 2024-04-19 22:35:55 +02:00
Toni Prieto
1a65dfb15b Remove the consumer submissionconfig from default configuration because it is not needed to reload forms if a collection entitytype is changed 2024-04-19 21:39:19 +02:00
Toni Prieto
cf6008271a Refactor SubmissionConfigReader to use a map for the collections configured through the entityType value 2024-04-19 21:38:31 +02:00
Toni Prieto
15d9d1c042 Port from #9259 the changes to use a collection object to return the item process submission configured 2024-04-19 21:03:45 +02:00
Andrea Bollini
23ee2fd6cd DURACOM-249 fix checkstyle issues, add javadoc 2024-04-19 07:58:01 +02:00
Andrea Bollini
e82b94fa43 Add support for LazyDownload of files from S3 2024-04-19 07:58:01 +02:00
David P. Steelman
9b47b2215c Fix OpenSearch NullPointerException for unknown valid UUIDs in scope
Fixes a NullPointerException when the "scope" parameter provided to
the OpenSearch endpoint is a valid UUID, but is not a UUID associated
with a Community or Collection.

Instead of throwing a NullPointerException, this change modifies the
code to return a null scope (resulting in an "unscoped" OpenSearch
request), which is the same behavior that occurs when the UUID
is invalid, or otherwise not usable.
2024-04-17 13:55:34 -04:00
Tim Donohue
15e246ae88 Merge pull request #9474 from DSpace/backport-9473-to-dspace-7_x
[Port dspace-7_x] Add Space in ePerson's Name in Rejection Emails and Metadata
2024-04-12 16:11:48 -05:00
Tom Misilo
8d45c1f94d Add Space in ePerson's Name for rejection metadata and email
(cherry picked from commit ec3089dc4d)
2024-04-12 21:04:37 +00:00
Tim Donohue
3160e42ff9 Merge pull request #9465 from DSpace/backport-9344-to-dspace-7_x
[Port dspace-7_x] httpd-shibd-foreground.sh needs to be executable
2024-04-10 15:13:44 -05:00
Thomas Misilo
2f7ee4bc76 httpd-shibd-foreground.sh needs to be executable
In order for the shib container to start, the file that is running needs to be executable

(cherry picked from commit 3f9274f23f)
2024-04-10 19:46:21 +00:00
Tim Donohue
68bb3c5583 Merge pull request #9269 from atmire/w2p-90830-104654_issue-8125_pr-8267_Issue-stale-record-cleanup-7.x
7.x - Issue predb status cleanup
2024-04-10 12:57:07 -05:00
Tim Donohue
2afc9b158e Docker build IDs must all be unique to avoid image conflicts. Avoid conflict with "-loadsql" build by appending "-prod" on main build id. 2024-04-10 09:27:46 -05:00
Tim Donohue
7c505e113e Docker build IDs must all be unique to avoid image conflicts. Ensure no builds use a generic name like "dspace". 2024-04-09 15:04:46 -05:00
Tim Donohue
92c71df5a4 Merge pull request #9463 from DSpace/backport-9462-to-dspace-7_x
[Port dspace-7_x] Refactor SubmissionConfigConsumer to avoid reload the submission config multiple times
2024-04-09 14:26:27 -05:00
Toni Prieto
e22bf93a97 Refactor SubmissionConfigConsumer to avoid reload the submission config multiple times during the creation of a collection
(cherry picked from commit 00d0a01e1f)
2024-04-09 19:21:52 +00:00
Tim Donohue
49e54eb34f Ensure build digest name does NOT have slashes by changing arch to use dashes 2024-04-09 12:37:50 -05:00
Tim Donohue
cae7eeaee9 Merge pull request #9461 from DSpace/backport-9460-to-dspace-7_x
[Port dspace-7_x] Fix bug in Docker `amd64` build in GitHub Actions
2024-04-09 11:55:49 -05:00
Tim Donohue
a1d7c47f1e Fix Docker build by ensuring all artifacts are named with architecture (amd64 vs arm64)
(cherry picked from commit f4edf92860)
2024-04-09 16:53:46 +00:00
Tim Donohue
51c43602ef Merge pull request #9459 from tdonohue/port_9454_to_7x
[Port dspace-7_x] Update all GitHub Actions & add token for Codecov.io
2024-04-09 09:54:55 -05:00
Tim Donohue
5aa32dfd5a Update all GitHub Actions. Add newly required CODECOV_TOKEN to codecov action 2024-04-08 17:06:08 -05:00
Paulo Graça
9779c175db Replace organisation->organization 2024-04-08 16:44:43 +01:00
Tim Donohue
a6dd759ee6 Merge pull request #9448 from DSpace/backport-9271-to-dspace-7_x
[Port dspace-7_x] Fix generating versioned identifiers if pre-registration is enabled
2024-04-04 14:42:36 -05:00
Agustina Martinez
acfe272fbc Fix generating versioned identifiers if pre-registration is enabled
(cherry picked from commit 1844fd28a0)
2024-04-04 19:02:43 +00:00
Paulo Graça
48079d70a9 adding Unicode filtering for sorts 2024-03-22 12:19:43 +00:00
Alan Orth
a75717fc08 Merge pull request #9423 from DSpace/backport-9409-to-dspace-7_x
[Port dspace-7_x] Bump org.apache.solr:solr-solrj from 8.11.2 to 8.11.3
2024-03-20 10:27:59 +03:00
dependabot[bot]
3817f3ff9d Bump org.apache.solr:solr-solrj from 8.11.2 to 8.11.3
Bumps org.apache.solr:solr-solrj from 8.11.2 to 8.11.3.

---
updated-dependencies:
- dependency-name: org.apache.solr:solr-solrj
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
(cherry picked from commit e934557966)
2024-03-20 06:59:09 +00:00
Alan Orth
889f3997bd Merge pull request #9422 from saschaszott/patch-30
dependency update: Spring Framework v5.3.32 → v5.3.33
2024-03-20 08:15:33 +03:00
Sascha Szott
78d8e86369 upgrade to Spring Framework v5.3.33 2024-03-19 15:18:28 +01:00
Martin Walk
b36613951b Fix #9383: Set email subject for request copy form 2024-02-29 15:21:15 +01:00
Tim Donohue
f46f49a3cc Merge pull request #9380 from DSpace/backport-9363-to-dspace-7_x
[Port dspace-7_x] Bump org.eclipse.jetty.http2:http2-common from 9.4.53.v20231009 to 9.4.54.v20240208
2024-02-28 13:48:27 -06:00
Tim Donohue
10eb906099 Merge pull request #9379 from DSpace/backport-9350-to-dspace-7_x
[Port dspace-7_x] Bump org.postgresql:postgresql from 42.6.0 to 42.7.2
2024-02-28 13:20:21 -06:00
dependabot[bot]
678aa9bad5 Bump org.eclipse.jetty.http2:http2-common
Bumps org.eclipse.jetty.http2:http2-common from 9.4.53.v20231009 to 9.4.54.v20240208.

---
updated-dependencies:
- dependency-name: org.eclipse.jetty.http2:http2-common
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
(cherry picked from commit a6e3d7a55a)
2024-02-28 18:48:28 +00:00
Tim Donohue
6dc3936acb Merge pull request #9377 from DSpace/backport-9370-to-dspace-7_x
[Port dspace-7_x] Bump org.apache.james:apache-mime4j-core from 0.8.9 to 0.8.10
2024-02-28 12:35:00 -06:00
dependabot[bot]
ae2ee43df8 Bump org.postgresql:postgresql from 42.6.0 to 42.7.2
Bumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.6.0 to 42.7.2.
- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)
- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/pgjdbc/pgjdbc/commits)

---
updated-dependencies:
- dependency-name: org.postgresql:postgresql
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
(cherry picked from commit 0b2b81682a)
2024-02-28 18:34:00 +00:00
Tim Donohue
b17596c7b3 Merge pull request #9376 from DSpace/backport-9371-to-dspace-7_x
[Port dspace-7_x] Update to latest Spring 5
2024-02-28 12:15:08 -06:00
dependabot[bot]
e28a083ef7 Bump org.apache.james:apache-mime4j-core from 0.8.9 to 0.8.10
Bumps org.apache.james:apache-mime4j-core from 0.8.9 to 0.8.10.

---
updated-dependencies:
- dependency-name: org.apache.james:apache-mime4j-core
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
(cherry picked from commit 7f91661f84)
2024-02-28 17:57:52 +00:00
Tim Donohue
26a683f4d5 Update to latest Spring 5
(cherry picked from commit 8252d05ee2)
2024-02-28 17:39:01 +00:00
kshepherd
0ef8094b07 Merge pull request #9367 from DSpace/backport-9266-to-dspace-7_x
[Port dspace-7_x] S3store is always enabled
2024-02-27 17:15:08 +13:00
frabacche
54f816e08c DURACOM-211 s3bitstoreService IT class fix
(cherry picked from commit 2beb604255)
2024-02-27 03:40:14 +00:00
frabacche
44bf7bfdb3 DURACOM-211 S3store enabling checkstyle
(cherry picked from commit 584d178a95)
2024-02-27 03:40:14 +00:00
frabacche
df66f8401d DURACOM-211 S3store enabling according to assetstore.s3.enabled config
(cherry picked from commit 772eaa7666)
2024-02-27 03:40:14 +00:00
kshepherd
e0974b9469 Merge pull request #9366 from DSpace/backport-8986-to-dspace-7_x
[Port dspace-7_x] fix: add default HandleIdentifierProvider for disabled versioning
2024-02-27 16:04:31 +13:00
Mirko Scherf
4e721bfbb0 fix: add default HandleIdentifierProvider for disabled versioning
Setting versioning.enabled = false in versioning.cfg is not enough to
disable versioning. It is also required to replace the bean class
VersionedHandleIdentifierProvider with a HandleIdentifierProvider
in identifier-service.xml. I've added one that is commented out as by
default versioning is enabled.

(cherry picked from commit 92c38de99e)
2024-02-27 02:33:26 +00:00
kshepherd
fb76988909 Merge pull request #9334 from atmire/sword-configuration-old-style-fixes-7.x
Sword configuration old style fixes 7.x
2024-02-27 14:59:37 +13:00
Tim Donohue
b1f2d5f487 Merge pull request #9364 from DSpace/backport-9336-to-dspace-7_x
[Port dspace-7_x] Add more SWORDv2 Integration Tests
2024-02-26 17:15:41 -06:00
Tim Donohue
2c57c68a81 Add more ITs to SWORDv2 to verify basic upload, edit, delete functionality. These all pass prior to any SWORDv2 refactoring
(cherry picked from commit eeee029510)
2024-02-26 22:43:34 +00:00
Tim Donohue
99aec7fffa Merge pull request #9356 from DSpace/backport-9339-to-dspace-7_x
[Port dspace-7_x] Update of DataCite crosswalk to metadata schema 4.5
2024-02-22 11:32:10 -06:00
Pascal-Nicolas Becker
ab56ad09ab Changing a comment on DIM2DataCite.xsl
(cherry picked from commit 1a567827df)
2024-02-22 16:05:55 +00:00
Yannick Paulsen
61053cab8d Update of DataCite crosswalk to metadata schema 4.5
(cherry picked from commit 5db110a19f)
2024-02-22 16:05:55 +00:00
Alan Orth
1716d5a15b Merge pull request #9353 from DSpace/backport-9320-to-dspace-7_x
[Port dspace-7_x] Community/Collection admins can't edit logo for communities/collections
2024-02-22 16:26:19 +03:00
eskander
d172865f52 [DURACOM-232] solved Community/Collection admins can't edit logo for communities/collections
(cherry picked from commit d1812866a6)
2024-02-22 12:57:22 +00:00
Yana De Pauw
dddd500bd1 106812: Add flyway migration to remove faulty rp entries 2024-02-19 10:06:33 +01:00
Tim Donohue
80368e1467 Merge pull request #9347 from DSpace/backport-9346-to-dspace-7_x
[Port dspace-7_x] [DS-9345] Correct the package name of the IIIF search plugin
2024-02-16 11:09:41 -06:00
haoueclf
adec8e2e60 [DS-9345] Correct the package name of the IIIF search plugin
(cherry picked from commit 03fe586681)
2024-02-16 17:08:38 +00:00
Tim Donohue
9d2daafd79 Merge pull request #9337 from DSpace/backport-9263-to-dspace-7_x
[Port dspace-7_x] Repository indexing fails when item tika fulltext processing fails with error
2024-02-15 16:59:57 -06:00
mohamed eskander
14f593e097 [DURACOM-143] Fix license
(cherry picked from commit 324d2e3184)
2024-02-15 22:32:50 +00:00
mohamed eskander
b97b093d6c [DURACOM-143] Fix indexing errors & further improvements
(cherry picked from commit d645939baf)
2024-02-15 22:32:50 +00:00
Marie Verdonck
16d44370f1 Merge remote-tracking branch 'origin/dspace-7_x' into sword-configuration-old-style-fixes-7.x 2024-02-15 18:37:58 +01:00
Marie Verdonck
2cbcf9006d SWORD config fixes: Instances where old style module/fileName, configName params are used from long-deprecated ConfigurationManager instead of configName, defaultValue 2024-02-15 18:36:45 +01:00
Marie Verdonck
124a05b16f Merge remote-tracking branch 'atmire/w2p-111719_sword-embargo-bugfix' into sword-configuration-old-style-fixes-7.6 2024-02-15 18:32:11 +01:00
Yana De Pauw
4942fd272c 106812: Fix compile issue due to new test 2024-02-15 10:31:04 +01:00
Yana De Pauw
24cd78469c Merge remote-tracking branch 'upstream/dspace-7_x' into w2p-106812_enforce-resource-policies-to-have-group-or-eperson 2024-02-15 10:08:39 +01:00
Tim Donohue
b60d66d508 Merge pull request #9325 from DSpace/backport-8896-to-dspace-7_x
[Port dspace-7_x] Fast fail error when creating administrator, if there is no database connection
2024-02-13 09:27:07 -06:00
MajoBerger
09357b133e added failsafe while creating admin when db is not connected
(cherry picked from commit efcf9dba20)
2024-02-12 22:51:11 +00:00
Tim Donohue
6f380ec011 Merge pull request #9310 from DSpace/backport-9309-to-dspace-7_x
[Port dspace-7_x] Improve default identifiers.cfg properties
2024-02-07 11:48:36 -06:00
Kim Shepherd
6624248c7a Improve default identifiers.cfg properties
(Related to dspace-angular#2765)

(cherry picked from commit 40b7427d88)
2024-02-07 16:59:22 +00:00
Tim Donohue
c1f9206c0a Merge pull request #9308 from DSpace/backport-9278-to-dspace-7_x
[Port dspace-7_x] Bump com.jayway.jsonpath:json-path from 2.6.0 to 2.9.0
2024-02-07 08:47:23 -06:00
Koen Pauwels
1dada28c89 111719 Fix bug where old style of retrieving config value was being used 2024-02-07 14:35:46 +01:00
dependabot[bot]
6d5949729d Bump com.jayway.jsonpath:json-path from 2.6.0 to 2.9.0
Bumps [com.jayway.jsonpath:json-path](https://github.com/jayway/JsonPath) from 2.6.0 to 2.9.0.
- [Release notes](https://github.com/jayway/JsonPath/releases)
- [Changelog](https://github.com/json-path/JsonPath/blob/master/changelog.md)
- [Commits](https://github.com/jayway/JsonPath/compare/json-path-2.6.0...json-path-2.9.0)

---
updated-dependencies:
- dependency-name: com.jayway.jsonpath:json-path
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
(cherry picked from commit db56de3887)
2024-02-06 22:49:57 +00:00
Tim Donohue
a9e3a354df Merge pull request #9307 from DSpace/backport-9225-to-dspace-7_x
[Port dspace-7_x] Bump dependencies
2024-02-06 12:23:14 -06:00
Alan Orth
9274a11759 dspace-server-webapp/pom.xml: upgrade zjsonpatch
Upgrade zjsonpatch from v0.4.6 to v0.4.16.

(cherry picked from commit 20fc8e4fb7)
2024-02-06 16:30:00 +00:00
Alan Orth
762c0397fe pom.xml: update commons-dbcp2 and commons-pool2
Update commons-dbcp2 and commons-pool2 to latest stable versions.

(cherry picked from commit bafb1b5657)
2024-02-06 16:30:00 +00:00
Alan Orth
c5398670f9 pom.xml: bump jackson version
Bump jackson-core and jackson-databind to v2.16.0.

(cherry picked from commit b90f043744)
2024-02-06 16:30:00 +00:00
renovate[bot]
bdb19787bb Update dependency org.apache.commons:commons-collections4 to v4.4
(cherry picked from commit 6de85adeb7)
2024-02-06 16:30:00 +00:00
renovate[bot]
1f67a2bffe Update dependency org.apache.commons:commons-configuration2 to v2.9.0
(cherry picked from commit b583029a7d)
2024-02-06 16:30:00 +00:00
renovate[bot]
186453eb3f Update dependency commons-logging:commons-logging to v1.3.0
(cherry picked from commit e76132b4d8)
2024-02-06 16:30:00 +00:00
renovate[bot]
4682db506e Update dependency org.apache.commons:commons-lang3 to v3.14.0
(cherry picked from commit 3f675d9cd5)
2024-02-06 16:30:00 +00:00
renovate[bot]
4dcbe16e24 Update dependency org.webjars.bowergithub.jquery:jquery-dist to v3.7.1
(cherry picked from commit 6d0b5deb8e)
2024-02-06 16:30:00 +00:00
renovate[bot]
9cb4eac802 Update dependency org.webjars.bowergithub.twbs:bootstrap to v4.6.2
(cherry picked from commit 2c1a45bc88)
2024-02-06 16:30:00 +00:00
renovate[bot]
88edfbbfdf Update dependency org.apache.maven.plugins:maven-assembly-plugin to v3.6.0
(cherry picked from commit 275757e6d4)
2024-02-06 16:30:00 +00:00
renovate[bot]
752d94efb4 Update dependency org.apache.maven.plugins:maven-checkstyle-plugin to v3.3.1
(cherry picked from commit ae12f1865f)
2024-02-06 16:30:00 +00:00
Alan Orth
c7c8062f01 Update hamcrest to v2.2
Due to changes in hamcrest packaging we only need the main artifact
now, but we add hamcrest-core (which is an empty pom) so it doesn't
get pulled in by other deps. Last, the hamcrest docs recommend that
we put hamcrest first so that we don't have dependency convergence
issues from junit.

See: https://hamcrest.org/JavaHamcrest/distributables
(cherry picked from commit 710feb798d)
2024-02-06 16:30:00 +00:00
renovate[bot]
b2494c6be2 Update json-path.version to v2.8.0
(cherry picked from commit 8809e98a18)
2024-02-06 16:30:00 +00:00
renovate[bot]
5342d54075 Update dependency org.apache.ant:ant to v1.10.14
(cherry picked from commit 4e071b2428)
2024-02-06 16:30:00 +00:00
Alan Orth
487202e246 pom.xml: update spotbugs and spotbugs-maven-plugin
Update to latest versions:

- spotbugs v4.1.2→v4.8.2
- spotbugs-maven-plugin v4.0.4→v4.8.2.0

These are not run in CI and seem to only run manually when asked,
ie via maven:

    $ mvn spotbugs:spotbugs

(cherry picked from commit fc6a9ca5cb)
2024-02-06 16:30:00 +00:00
Alan Orth
b603776a08 pom.xml: update Spring
We need to keep Spring Framework, Spring Boot, and Spring Security
versions updated together:

- Spring Framework: 5.3.28→5.3.31
- Spring Boot: 2.7.13→2.7.18
- Spring Security: 5.7.9→5.7.11

(cherry picked from commit f42a981d1b)
2024-02-06 16:30:00 +00:00
renovate[bot]
4840b1de83 Update netty monorepo to v4.1.106.Final
(cherry picked from commit 71ea2a7526)
2024-02-06 16:29:59 +00:00
renovate[bot]
a77628bd1e Update dependency com.maxmind.geoip2:geoip2 to v2.17.0
(cherry picked from commit 68caa1dcf8)
2024-02-06 16:29:59 +00:00
renovate[bot]
28d051e88d Update dependency org.xmlunit:xmlunit-core to v2.9.1
(cherry picked from commit 0958a98b1f)
2024-02-06 16:29:59 +00:00
renovate[bot]
8edd8bc09b Update dependency com.fasterxml:classmate to v1.6.0
(cherry picked from commit 07ec54832a)
2024-02-06 16:29:59 +00:00
renovate[bot]
279a315301 Update log4j.version to v2.22.1
(cherry picked from commit a697813720)
2024-02-06 16:29:59 +00:00
renovate[bot]
ed74d3198c Update dependency commons-io:commons-io to v2.15.1
(cherry picked from commit 70646a30de)
2024-02-06 16:29:59 +00:00
renovate[bot]
f7c7abc362 Update dependency com.opencsv:opencsv to v5.9
(cherry picked from commit ab9279cbb8)
2024-02-06 16:29:59 +00:00
renovate[bot]
602e9e854f Update dependency commons-cli:commons-cli to v1.6.0
(cherry picked from commit f67e0f6509)
2024-02-06 16:29:59 +00:00
renovate[bot]
a50534d617 Update pdfbox-version to v2.0.30
(cherry picked from commit fe7800ab5a)
2024-02-06 16:29:59 +00:00
renovate[bot]
7a38f0097d Update dependency org.glassfish.jaxb:jaxb-runtime to v2.3.9
(cherry picked from commit 8d6f6e37b3)
2024-02-06 16:29:59 +00:00
renovate[bot]
0d1dd13c84 Update dependency com.h2database:h2 to v2.2.224
(cherry picked from commit 0d4c1ea63a)
2024-02-06 16:29:59 +00:00
Tim Donohue
d928d8c672 Merge pull request #9305 from tdonohue/port_8884_to_7x
[Port dspace-7_x] Bump dependencies
2024-02-06 09:09:35 -06:00
renovate[bot]
79178e3b62 Update pdfbox-version to v2.0.29 2024-02-05 17:10:57 -06:00
Alan Orth
16b1104b01 pom.xml: bump spring core version to v5.3.28
Minor version bump with some bug fixes.

See: https://github.com/spring-projects/spring-framework/releases/tag/v5.3.28
2024-02-05 17:10:57 -06:00
Alan Orth
ad061c962b pom.xml: update spring boot to v2.7.13
Minor update. Also bump the spring security version to 5.7.9 as is
used by spring boot.

See: https://github.com/spring-projects/spring-boot/releases/tag/v2.7.13
2024-02-05 17:10:57 -06:00
renovate[bot]
972c2d69c8 Update dependency commons-codec:commons-codec to v1.16.0 2024-02-05 17:10:57 -06:00
renovate[bot]
5152e99bda Update dependency org.exparity:hamcrest-date to v2.0.8 2024-02-05 17:10:57 -06:00
renovate[bot]
af29486965 Update dependency commons-io:commons-io to v2.13.0 2024-02-05 17:10:57 -06:00
renovate[bot]
e92e5ee6d8 Update dependency org.scala-lang:scala-library to v2.13.11 2024-02-05 17:10:57 -06:00
renovate[bot]
6b4e5ed9c8 Update dependency org.apache.bcel:bcel to v6.7.0 2024-02-05 17:10:57 -06:00
Alan Orth
096fb3fb74 Bump jaxen:jaxen dependency to 2.0.0
Should be mostly drop-in API compatible with Jaxen 1.1.x, but more
importantly it makes the xom dependency optional so we can remove
the exclusions in our various pom.xml files.

See: http://cafeconleche.org/jaxen/releases.html
2024-02-05 17:10:57 -06:00
Alan Orth
69e1ff98a0 Bump xom:xom dependency
No breaking changes, but some bug fixes, performance improvements,
and compatibility fixes with Java 17+.

See: https://xom.nu/history.html
2024-02-05 17:10:57 -06:00
renovate[bot]
7b0b21f84d Update dependency org.webjars.bowergithub.jquery:jquery-dist to v3.7.0 2024-02-05 17:10:57 -06:00
renovate[bot]
fe8c3ef388 Update dependency com.fasterxml:classmate to v1.5.1 2024-02-05 17:10:57 -06:00
renovate[bot]
36c042bc98 Update dependency org.webjars.bowergithub.medialize:uri.js to v1.19.11 2024-02-05 17:10:57 -06:00
Alan Orth
f9469c9b6f dspace-api/pom.xml: add exclusion for javassist
Add an exclusion for org.javassist:javassist due to a dependency
convergence error caused by eu.openaire:funders-model pulling in a
version conflicting with Jersey's transitive dependency.
2024-02-05 17:10:57 -06:00
Alan Orth
8e66812dbb pom.xml: bump Jersey
Bump jersey due to jersey-media-json-jackson pulling in a conflicting
jakarta.xml.bind-api via transitive dependency in dspace-rest, which
is the legacy DSpace 6 REST API.
2024-02-05 17:10:57 -06:00
renovate[bot]
b5a59c76e8 Update dependency joda-time:joda-time to v2.12.5 2024-02-05 17:10:57 -06:00
renovate[bot]
a9a8021cf6 Update dependency commons-cli:commons-cli to v1.5.0 2024-02-05 17:10:57 -06:00
renovate[bot]
167033d830 Update dependency commons-codec:commons-codec to v1.15 2024-02-05 17:10:57 -06:00
renovate[bot]
8895aca3eb Update dependency commons-validator:commons-validator to v1.7 2024-02-05 17:10:56 -06:00
renovate[bot]
53c4e18159 Update dependency commons-io:commons-io to v2.12.0 2024-02-05 17:10:56 -06:00
renovate[bot]
e14f267229 Update dependency org.apache.james:apache-mime4j-core to v0.8.9 2024-02-05 17:10:56 -06:00
renovate[bot]
ba95c1852f Update dependency org.glassfish.jaxb:jaxb-runtime to v2.3.8 2024-02-05 17:10:56 -06:00
renovate[bot]
91f9d8c4dd Update dependency com.opencsv:opencsv to v5.7.1 2024-02-05 17:10:56 -06:00
renovate[bot]
e2d809ffb4 Update dependency org.flywaydb:flyway-core to v8.5.13 2024-02-05 17:10:56 -06:00
renovate[bot]
bbe05833a9 Update dependency org.ehcache:ehcache to v3.10.8 2024-02-05 17:10:56 -06:00
Alan Orth
95ac7dea42 pom.xml: bump org.apache.httpcomponents
Closes: https://github.com/alanorth/DSpace/pull/21
Closes: https://github.com/alanorth/DSpace/pull/22
Closes: https://github.com/alanorth/DSpace/pull/23
2024-02-05 17:10:56 -06:00
renovate[bot]
969bee4871 Update dependency junit:junit to v4.13.2 2024-02-05 17:10:56 -06:00
renovate[bot]
be7bdcf398 Update dependency org.apache.ant:ant to v1.10.13 2024-02-05 17:10:56 -06:00
renovate[bot]
84452a97d8 Update dependency net.handle:handle to v9.3.1 2024-02-05 17:10:56 -06:00
renovate[bot]
aeb5300c6f Update dependency javax.cache:cache-api to v1.1.1 2024-02-05 17:10:56 -06:00
Alan Orth
bd7214ad1f pom.xml: bump com.google.code.findbugs:jsr305
Closes: https://github.com/alanorth/DSpace/pull/12
2024-02-05 17:10:56 -06:00
renovate[bot]
5893c7768e Update dependency dnsjava:dnsjava to v2.1.9 2024-02-05 17:10:56 -06:00
renovate[bot]
774f3bbcd5 Update dependency de.digitalcollections.iiif:iiif-apis to v0.3.10 2024-02-05 17:09:59 -06:00
renovate[bot]
3bfcf82977 Update dependency com.flipkart.zjsonpatch:zjsonpatch to v0.4.14 2024-02-05 17:09:44 -06:00
Tim Donohue
66a4a036e0 Merge pull request #9304 from tdonohue/port_9303_to_7x
[Port dspace-7_x] Fix Docker image build issues for new versions of Docker (25.0.2) and Docker Compose (2.24.3)
2024-02-02 15:53:17 -06:00
Tim Donohue
414837a12a Fix 'dspacesolr' build issues in GitHub actions by adding 'solrconfig' as an additional_context 2024-02-02 14:47:15 -06:00
Tim Donohue
250e82af9d Fix build issues with dockersolr by using "additional_contexts" to pass solr config path to Dockerfile. 2024-02-02 14:45:55 -06:00
Tim Donohue
a0ba470197 Fix "cannot override networks.dspacenet" by updating all compose files to reference 'dspacenet' network 2024-02-02 14:43:09 -06:00
Tim Donohue
f46742510b Merge pull request #9297 from DSpace/backport-9293-to-dspace-7_x
[Port dspace-7_x] Call cas.init() method in the VocabularyRestRepositoryIT#setup method
2024-01-29 12:19:04 -06:00
milanmajchrak
2549663081 The cas.init() method is called in the VocabularyRestRepositoryIT#setup() method
(cherry picked from commit 85b5e06fb0)
2024-01-29 17:52:28 +00:00
Alan Orth
5f7af6b3fc Merge pull request #9280 from DSpace/backport-9276-to-dspace-7_x
[Port dspace-7_x] Search on the label of an authority, not the value in a submission context
2024-01-23 11:48:44 +03:00
Jens Vannerum
a22a01aa5c search on labels, not values on DCInputs
(cherry picked from commit 5ebe1a9402)
2024-01-23 08:05:25 +00:00
Tim Donohue
c509d495b1 Merge pull request #9270 from DSpace/backport-9261-to-dspace-7_x
[Port dspace-7_x] DS-9142: prevent UUID exception by adding check for -1 value for the id field
2024-01-19 09:43:45 -06:00
nwoodward
dc57aceeaf catch exceptions stemming from invalid id's
(cherry picked from commit 848df25984)
2024-01-19 15:15:26 +00:00
Marie Verdonck
4fc19da34a Merge remote-tracking branch 'origin/dspace-7_x' into w2p-90830-104654_issue-8125_pr-8267_Issue-stale-record-cleanup-7.x 2024-01-18 19:36:57 +01:00
Alan Orth
8a59c12b35 Merge pull request #9264 from DSpace/backport-9252-to-dspace-7_x
[Port dspace-7_x] Skip recording usage events if user is administrator
2024-01-18 10:13:03 +03:00
Agustina Martinez
9a0db2a642 Skip recording usage event if administrator
(cherry picked from commit 73e5c43f7c)
2024-01-18 06:46:35 +00:00
Alan Orth
c86a0cf04e Merge pull request #9256 from DSpace/backport-9248-to-dspace-7_x
[Port dspace-7_x] Return headers for HEAD request
2024-01-11 18:43:12 +03:00
William Welling
ebbae391d7 Add content-length to bitstream
(cherry picked from commit 6be7e4e370)
2024-01-11 15:15:35 +00:00
William Welling
b8d00afd12 Return headers for HEAD request
(cherry picked from commit 64ae49a29f)
2024-01-11 15:15:35 +00:00
Tim Donohue
8b29c04790 Merge pull request #9251 from DSpace/backport-9250-to-dspace-7_x
[Port dspace-7_x] dspace-api: fix typo in AuthorizeServiceImpl log
2024-01-09 14:23:17 -06:00
Alan Orth
37ed65850f dspace-api: fix typo in AuthorizeServiceImpl log
(cherry picked from commit 127b1ae868)
2024-01-09 20:13:56 +00:00
Alan Orth
426a2f9c47 Merge pull request #9246 from DSpace/backport-9239-to-dspace-7_x
[Port dspace-7_x] Correct response of get controlled vocabulary by metadata and collection when NO controlled vocabulary is available for the specified metadata and collection
2024-01-04 10:59:16 +03:00
Toni Prieto
14c6ccce21 Add missing test for byMetadataAndCollection operation of Controlled Vocabularies endpoint
(cherry picked from commit a294f996cf)
2024-01-04 07:32:53 +00:00
Toni Prieto
c7113e5d24 Correct response of byMetadataAndCollection operation of Controlled Vocabularies Endpoint when no controlled vocabulary is available for the specified metadata and collection
(cherry picked from commit eb2e4f1155)
2024-01-04 07:32:53 +00:00
Marie Verdonck
91f53c2287 90830/104654: issue PR#8267 - Only first 10 predb records resynced (default size) - Fix:
- Query with 0 rows to get total number of records to process
- Process them in batches of 100
2023-12-29 05:58:25 +01:00
Marie Verdonck
7536537206 90830/104654: issue PR#8267 - Only first 10 predb records resynced (default size) - IT proving issue 2023-12-29 05:55:48 +01:00
Alan Orth
5606c8b97f Merge pull request #9224 from DSpace/backport-9220-to-dspace-7_x
[Port dspace-7_x] fix: Failure of org.dspace.app.rest.SitemapRestControllerIT when running locally
2023-12-08 11:37:43 +03:00
Shankeerthan Kasilingam
16112a44d8 fix: Failure of org.dspace.app.rest.SitemapRestControllerIT when running locally
(cherry picked from commit 44fc15f74b)
2023-12-08 07:38:07 +00:00
Tim Donohue
7524d169f5 Remove unused env variables from docker.yml build script 2023-11-28 17:01:04 -06:00
Tim Donohue
61d9e75ccd Merge pull request #9214 from DSpace/backport-9213-to-dspace-7_x
[Port dspace-7_x] Add parallel builds for Docker Images in GitHub Actions
2023-11-28 15:59:53 -06:00
Tim Donohue
af1550d415 Ensure dspace-solr redeploys the Solr instances for Demo/Sandbox 2023-11-28 15:13:17 -06:00
Tim Donohue
93fc3ce8d0 Refactor docker.yml to use a separate reusable-docker-build.yml script for each image build.
(cherry picked from commit 0e88bfdae7)
2023-11-28 19:48:25 +00:00
Tim Donohue
68f29c45b6 Minor fixes to Dockerfiles. No longer need 'git'. Use Maven flags to slightly speed up build/install steps.
(cherry picked from commit 538833f8a8)
2023-11-28 19:48:25 +00:00
Tim Donohue
c9c57faa21 Update GitHub action plugin versions. Minor fixes including using built-in Maven caching & fix to CodeCov action
(cherry picked from commit 2aae4cd78d)
2023-11-28 19:48:25 +00:00
Alan Orth
501e657348 Merge pull request #9207 from alanorth/port-9203-dspace-7_x
[Port dspace-7-x] CrossRefImport: ignore empty responses rather than generating empty phantom ImportRecords
2023-11-23 09:13:58 +03:00
Philipp Rumpf
21a7f25118 CrossRefImportMetadataSourceServiceIT: Test empty responses don't result in ... results. 2023-11-23 08:44:34 +03:00
Philipp Rumpf
722ad02757 CrossRefImport: ignore empty responses rather than generating empty phantom ImportRecords
Fixes https://github.com/DSpace/DSpace/issues/9202 .
2023-11-23 08:44:21 +03:00
Tim Donohue
76658e7c96 [maven-release-plugin] prepare for next development iteration 2023-11-15 14:16:40 -06:00
Tim Donohue
8ad5bc1262 [maven-release-plugin] prepare release dspace-7.6.1 2023-11-15 14:16:37 -06:00
DSpace Bot
64d30e6fdf [Port dspace-7_x] subscription email: do not send email if nothing has changed (#9204)
* improved subscriptions email template

(cherry picked from commit 6e7b327959)

* do not send emails without content

(cherry picked from commit 926b242130)

* fixed coding style violations

(cherry picked from commit fdacec08df)

* removed unnecessary isEmpty check as suggested by reviewer

(cherry picked from commit 30a837f854)

* moved null check on indexableObjects in generateBodyMail

(cherry picked from commit b43c340b18)

* fixed unhandled IOException

(cherry picked from commit 9b3f7b698c)

* fixed typo in bodyCommunities

(cherry picked from commit ac3d02eb1c)

* do not use != to compare strings

(cherry picked from commit e460183335)

* fixed improper handling of empty list

(cherry picked from commit ac72aae44b)

---------

Co-authored-by: Sascha Szott <szott@gmx.de>
2023-11-14 14:19:50 -06:00
Tim Donohue
a3501c64af Merge pull request #9200 from DSpace/backport-9162-to-dspace-7_x
[Port dspace-7_x] Fix match theme by handle with cannonical prefix https://hdl.handle.net/ not working
2023-11-13 16:00:10 -06:00
Alexandre Vryghem
a7f106da92 Remove line breaks from default.license because they are being rendered in the frontend
(cherry picked from commit 56aae347c2)
2023-11-13 20:20:23 +00:00
Alexandre Vryghem
e7786f49af 107671: Expose the handle.canonical.prefix to the frontend
(cherry picked from commit 6d86e65b72)
2023-11-13 20:20:23 +00:00
Tim Donohue
a25710a23d Merge pull request #9199 from DSpace/backport-9163-to-dspace-7_x
[Port dspace-7_x] Simplify process of fixing the tests after adding sidebar facets
2023-11-13 13:18:10 -06:00
Tim Donohue
dccd7a04b6 Merge pull request #9198 from DSpace/backport-9184-to-dspace-7_x
[Port dspace-7_x] Updated IIIF Controller IT to text bitstream and bundle exclusions
2023-11-13 11:47:17 -06:00
Alexandre Vryghem
74733ab4b4 Simplified the process of fixing the tests after adding new sidebar facets/search filters and sort options to discover.xml
(cherry picked from commit b40ad0dfc2)
2023-11-13 17:40:51 +00:00
Michael Spalti
6b99584e96 Updated IIIF Controller IT to text bitstream and bundle exclusions
(cherry picked from commit e92b4b7bfd)
2023-11-13 17:09:55 +00:00
Tim Donohue
6edf793023 Merge pull request #9197 from DSpace/backport-9125-to-dspace-7_x
[Port dspace-7_x] Add `isNotMemberOf` searches for Groups and EPersons (for improved performance on Edit Group pages)
2023-11-10 15:14:34 -06:00
Tim Donohue
c2fd617921 Bug fix to EPersonDAOImpl. Correctly determine if excluded group needs to be preceded by AND or WHERE
(cherry picked from commit e5e0eaa999)
2023-11-10 19:02:14 +00:00
Tim Donohue
b65ddc3638 Add /epersons/search/isNotMemberOf endpoint to REST API along with integration tests
(cherry picked from commit 5208a355d6)
2023-11-10 19:02:14 +00:00
Tim Donohue
887c7c486a Implement searchNonMembers for EPersonService. Add tests to prove it works (and tests for search()). Requires minor bug fix to AbstractHibernateDSODAO to allow for additional OR/AND clauses to be appended.
(cherry picked from commit f186dcf4ca)
2023-11-10 19:02:14 +00:00
Tim Donohue
7df4a2b1c6 Add isNotMemberOf for groups, including unit and integration tests
(cherry picked from commit 9d271b24b9)
2023-11-10 19:02:14 +00:00
DSpace Bot
417a270cf3 [Port dspace-7_x] Event consumer for submission config reloading when a collection changes (#9196)
* initialization with refactoring

(cherry picked from commit e93dc1cf45)

* also consider SubmissionConfigReaderException

(cherry picked from commit 8a04b87750)

* rename consumer file

(cherry picked from commit f6c92a4c8b)

* init submission service factory

(cherry picked from commit fcc52390b9)

* set submissionconfig config settings by default

(cherry picked from commit e343d51519)

* renaming SubmissionConfigReaderService

(cherry picked from commit 9ea7c321c3)

* support for SubmissionConfigService

(cherry picked from commit 61389fb787)

* fixing style errors and renaming submissionConfigService

(cherry picked from commit 5f49491b53)

* fixing style errors and unused imports

(cherry picked from commit 31d9251950)

* set default submission event configs

(cherry picked from commit 578198c588)

* adding force indexing action to Consumer

(cherry picked from commit b91236434f)

* stylecheck fixes

(cherry picked from commit 89e89c3d8a)

* undo event.dispatcher.noindex.consumers

(cherry picked from commit ae9dc5f005)

---------

Co-authored-by: Paulo Graça <paulo1978@gmail.com>
2023-11-10 12:58:18 -06:00
Tim Donohue
be52c85e62 Merge pull request #9193 from DSpace/backport-9175-to-dspace-7_x
[Port dspace-7_x] Improve sitemap performance and exclude restricted and undiscoverable content
2023-11-10 09:55:21 -06:00
Andrea Bollini
154d488138 DURACOM-199 fix sitemap generator for restricted content and improve performance
(cherry picked from commit 6d9ca388da)
2023-11-10 15:04:59 +00:00
Andrea Bollini
c9abeac208 DURACOM-199 improved test to show bug related to restricted content
(cherry picked from commit dac4df9c1a)
2023-11-10 15:04:59 +00:00
Yana De Pauw
9b1234fc85 106812: Remove stray settting of group for an rp 2023-11-10 14:05:38 +01:00
Tim Donohue
adde7b7efd Merge pull request #9189 from DSpace/backport-9161-to-dspace-7_x
[Port dspace-7_x] Cache 'Administrator' group to improve performance of Workflow Tasks Page.
2023-11-09 17:18:31 -06:00
Tim Donohue
d301eade48 Merge pull request #9188 from DSpace/backport-9130-to-dspace-7_x
[Port dspace-7_x] Authentication Method related special groups are put in claim set even if a different authentication method is used
2023-11-09 17:18:12 -06:00
Jens Vannerum
fd13ee7cfd 107891: Cache administrator group
(cherry picked from commit 1e82ca7998)
2023-11-09 22:49:20 +00:00
Luca Giamminonni
911a7a394f [DURACOM-192] Added test
(cherry picked from commit fa39251071)
2023-11-09 22:38:12 +00:00
Luca Giamminonni
ec972ea2de [DURACOM-192] Authentication Method related special groups are put in claim set even if a different authentication method is used
(cherry picked from commit 6504d749b9)
2023-11-09 22:38:11 +00:00
Alan Orth
68ab431294 Merge pull request #9187 from DSpace/backport-9181-to-dspace-7_x
[Port dspace-7_x] Fix an issue where the `closed` attribute of vocabularies in the submission forms would be neglected
2023-11-09 22:32:09 +03:00
Alan Orth
a6046e0168 Merge pull request #9186 from DSpace/backport-9179-to-dspace-7_x
[Port dspace-7_x] [DURACOM-200] improvement of checker script
2023-11-09 22:30:11 +03:00
Jens Vannerum
adf644535c 108055: isClosed method should use xml configuration
(cherry picked from commit d800d800d5)
2023-11-09 18:57:23 +00:00
mohamed eskander
4b2957358f [DURACOM-200] improvement of checker script
(cherry picked from commit 5a7c7956cd)
2023-11-09 17:40:27 +00:00
Tim Donohue
5601392e84 Merge pull request #9183 from DSpace/backport-9148-to-dspace-7_x
[Port dspace-7_x] Return both user and operational LDAP attributes
2023-11-08 17:07:32 -06:00
wwuck
0172cf6508 Return both user and operational LDAP attributes
Explicitly request both user and operation attributes
for LDAP group search as the default searching does not
include operational attributes.

This is required to fetch the memberOf attribute when checking
LDAP group membership.

Fixes #9151

(cherry picked from commit 56b7cbf4db)
2023-11-08 22:40:46 +00:00
Tim Donohue
843828dcdf Merge pull request #9182 from tdonohue/port_9076_to_dspace-7_x
[Port dspace-7_x] Fix to prevent workflow tasks configured to be queued from running automatically
2023-11-08 15:52:03 -06:00
Agustina Martinez
c1a48e5512 XmlWorkflowCuratorServiceImpl: add check to queue task if configured; Curation: remove obsolete code preventing curation running on workflow tasks as #3157 is now implemented 2023-11-08 14:58:39 -06:00
Alan Orth
101b3a2f57 Merge pull request #9173 from DSpace/backport-9165-to-dspace-7_x
[Port dspace-7_x] DS-9059: removes options to ping search engines when generating sitemaps
2023-11-06 23:13:19 +03:00
nwoodward
ca624e7ab5 removed options to ping search engines when generating sitemaps
(cherry picked from commit f8f8806040)
2023-11-06 19:36:36 +00:00
Tim Donohue
a5e4233f1d Merge pull request #9170 from DSpace/backport-9157-to-dspace-7_x
[Port dspace-7_x] dspace/config: update spider agent list
2023-11-06 09:54:38 -06:00
Alan Orth
38c81b9f0d dspace/config: update spider agent list
Update list of spider user agents from the COUNTER-Robots project.

See: https://github.com/atmire/COUNTER-Robots
(cherry picked from commit 7566a79d90)
2023-11-03 21:32:53 +00:00
Tim Donohue
194a3e57a3 Merge pull request #9169 from DSpace/backport-8980-to-dspace-7_x
[Port dspace-7_x] Improve performance of discovery consumer when there are many items to index
2023-11-03 12:22:32 -05:00
Toni Prieto
6c211ac19c Change class name to ContextIT and correct a test
(cherry picked from commit a5567992bb)
2023-11-03 15:55:45 +00:00
Toni Prieto
ddbba2d125 Add test to check retrieving of policies after changing mode to READ_ONLY
(cherry picked from commit d19a9599b5)
2023-11-03 15:55:45 +00:00
Toni Prieto
1b0e826bba Flush database changes after switching to READONLY mode
(cherry picked from commit 00a65312cc)
2023-11-03 15:55:45 +00:00
Toni Prieto
b194e9c4dd Add functions to do a manual flush of the db session and call flush before change to READ_ONLY mode to be sure we index the current object
(cherry picked from commit c33d3fa87d)
2023-11-03 15:55:45 +00:00
Toni Prieto
e6fa537512 Change the database mode to READ_ONLY during the indexing by discovery consumer (IndexEventConsumer)
(cherry picked from commit 94822b50af)
2023-11-03 15:55:45 +00:00
Tim Donohue
9624347201 Merge pull request #9168 from DSpace/backport-9136-to-dspace-7_x
[Port dspace-7_x] Verify optional request-a-copy message is not missing or a literal "null" value
2023-11-02 17:20:00 -05:00
Tim Donohue
3ded3acd8f Merge pull request #9084 from TexasDigitalLibrary/DS-4414-7_x
[Port dspace-7_x] DS-4414: adds authorization check for license bitstream in OAI import
2023-11-02 16:55:18 -05:00
Tim Donohue
52e965b06a Merge pull request #9167 from DSpace/backport-9126-to-dspace-7_x
[Port dspace-7_x] Allow users with write permission to see hidden metadata
2023-11-02 16:23:08 -05:00
Tim Donohue
551c84dede Verify optional message is not missing or a literal "null" value
(cherry picked from commit 534ee3a699)
2023-11-02 21:21:10 +00:00
Toni Prieto
42959d5db8 Add test to check that user with read rights can see hidden metadata
(cherry picked from commit 03496c36d4)
2023-11-02 19:58:18 +00:00
Toni Prieto
40bb9491a5 Test modification: allow users with write rights to see hidden metadata
(cherry picked from commit df7f6e9f40)
2023-11-02 19:58:18 +00:00
Toni Prieto
686747bbf8 Allow users with write permission to view hidden metadata
(cherry picked from commit 65a17d4390)
2023-11-02 19:58:18 +00:00
Tim Donohue
f8f54719c9 Merge pull request #9166 from DSpace/backport-9078-to-dspace-7_x
[Port dspace-7_x] Improve performance for Groups with many EPerson members. Fix pagination on endpoints
2023-11-02 14:47:13 -05:00
Tim Donohue
6e63e63039 Address feedback. Initialize HashSet sizes to avoid resizing. Correct comment about indeterminante ordering.
(cherry picked from commit f011a5a5db)
2023-11-02 19:09:16 +00:00
Tim Donohue
f6003164c8 Use join instead of subquery as join seems slightly faster.
(cherry picked from commit 9c0bf08cf4)
2023-11-02 19:09:16 +00:00
Tim Donohue
3caa8b26dc Fix bug in logic for determining whether a workflow group will be left empty. Need to check *both* EPerson and subgroup counts.
(cherry picked from commit 9832259aa0)
2023-11-02 19:09:16 +00:00
Tim Donohue
a723018e9a Replace several usages of allMembers() with count methods to avoid performance issues
(cherry picked from commit 2c9165afb0)
2023-11-02 19:09:16 +00:00
Tim Donohue
8b1a0c1dae Add countAllMembers() with tests. Update tests to use try/catch
(cherry picked from commit 58a15b7297)
2023-11-02 19:09:16 +00:00
Tim Donohue
7aca4df6ef Minor unit test fix. Use isEqualCollection to compare list with Hibernate results
(cherry picked from commit cdb68a6fdc)
2023-11-02 19:09:16 +00:00
Tim Donohue
e48b21637a Add basic unit test for new EpersonService methods
(cherry picked from commit c000e54116)
2023-11-02 19:09:16 +00:00
Tim Donohue
22fb4508ee Add pagination to /groups/[uuid]/subgroups endpoint, along with tests
(cherry picked from commit e7c4b9eba2)
2023-11-02 19:09:16 +00:00
Tim Donohue
a4db6d39d7 Add missing pagination test for /groups/[uuid]/epersons
(cherry picked from commit 457dd9ae44)
2023-11-02 19:09:16 +00:00
Tim Donohue
8b748af944 Bug fix. Only use pageSize and offset if >0
(cherry picked from commit 15de2d0074)
2023-11-02 19:09:16 +00:00
Tim Donohue
8aad365496 Add basic pagination to /groups/[uuid]/epersons endpoint
(cherry picked from commit 74c72354b4)
2023-11-02 19:09:16 +00:00
Alan Orth
1ad9a097ee Merge pull request #9160 from DSpace/backport-9106-to-dspace-7_x
[Port dspace-7_x] Clear primary bistream when it's deleted- Fix issue #9099
2023-10-31 10:37:16 +03:00
Paulo Graça
c601ac3475 typo
(cherry picked from commit 74cce86afc)
2023-10-31 06:55:06 +00:00
Paulo Graça
412d62aa43 make comments more clear to understand
(cherry picked from commit c0bbd9d91f)
2023-10-31 06:55:06 +00:00
Paulo Graça
68e8894169 new testDeleteBitstreamAndUnsetPrimaryBitstreamID remove unnecessary stubs
(cherry picked from commit a3e506c7f4)
2023-10-31 06:55:06 +00:00
Paulo Graça
41640bbb65 new testDeleteBitstreamAndUnsetPrimaryBitstreamID test for primary bitstream verification
(cherry picked from commit ad0d22a13a)
2023-10-31 06:55:06 +00:00
Paulo Graça
024c47559e new testDeleteBitstreamAndUnsetPrimaryBitstreamID test for primary bitstream verification
(cherry picked from commit e6d108a94e)
2023-10-31 06:55:06 +00:00
Paulo Graça
09d5f6fcc9 fix style errors
(cherry picked from commit 74605f159a)
2023-10-31 06:55:06 +00:00
Paulo Graça
55eba18a47 add missing head style check
(cherry picked from commit caba4bbb96)
2023-10-31 06:55:06 +00:00
Paulo Graça
6b35f9e449 adding missing bundle REMOVE authorization
(cherry picked from commit 4a05600194)
2023-10-31 06:55:06 +00:00
Paulo Graça
7ab1d39671 add bundle remove authorization
(cherry picked from commit 3255e073fa)
2023-10-31 06:55:06 +00:00
Paulo Graça
7ec5f7ec8a adding sql expression to fix deleted primary bitstreams from bundle
(cherry picked from commit 8a531ad0c7)
2023-10-31 06:55:06 +00:00
Paulo Graça
c96558986a unset primary bitstream on bitstream service
(cherry picked from commit 47ca74bc42)
2023-10-31 06:55:06 +00:00
Paulo Graça
08f361a9cb add test and fix
(cherry picked from commit 48b0b71c63)
2023-10-31 06:55:06 +00:00
Tim Donohue
c0f4d1e219 Merge pull request #9158 from DSpace/backport-9045-to-dspace-7_x
[Port dspace-7_x] OAI-PMH use Templates for compiled XSLT instead of Transformer (thread-safe)
2023-10-30 17:15:11 -05:00
Tim Donohue
3553467f21 Merge pull request #9124 from mwoodiupui/dspace-7_x
Give `authority` Solr core a `_version_` field so it can be loaded
2023-10-30 16:59:14 -05:00
Tim Donohue
448387ccfd Update to newly released XOAI 3.4.0
(cherry picked from commit 160ebbd791)
2023-10-30 21:02:52 +00:00
Christian Bethge
5596cc686d 9043 use Templates for compiled XSLT instead of Transformer - use Templates are thread-safe and NOT Transformer
(cherry picked from commit 1160341cb2)
2023-10-30 21:02:52 +00:00
Alan Orth
0ddc05bffb Merge pull request #9156 from DSpace/backport-9152-to-dspace-7_x
[Port dspace-7_x] Add a null check when assigning ldap groups
2023-10-29 21:11:35 +03:00
wwuck
e597c2afc1 Add a null check when assigning ldap groups
Prevent NullReferenceException by checking if the group list is null

Fixes #8920

(cherry picked from commit bb6498ed5e)
2023-10-29 16:57:18 +00:00
Tim Donohue
bd986a06c4 Merge pull request #9153 from DSpace/backport-9069-to-dspace-7_x
[Port dspace-7_x] Fix "Site cannot be indexed" error which appears in ITs and sometimes in logs
2023-10-27 10:46:11 -05:00
Tim Donohue
e649966cb7 Merge pull request #8984 from uofmsean/fix-8558-set-solr-timezone
Set Solr timezone to UTC when converting local date/time to the stored value that assumes Zulu (Z)
2023-10-27 10:44:52 -05:00
Tim Donohue
b5a1a3b4bd Merge pull request #9150 from DSpace/backport-9001-to-dspace-7_x
[Port dspace-7_x] Make workflow curation tasks actually work.
2023-10-27 10:05:05 -05:00
Tim Donohue
1bc6e1ff71 Fix "Site cannot be indexed" error by ignoring ADD/REMOVE events on Site object
(cherry picked from commit ef7f02fe81)
2023-10-27 14:54:51 +00:00
Mark H. Wood
06f6a41cbf Handle missing role.
(cherry picked from commit 2e62fa3fd1)
2023-10-26 21:23:34 +00:00
Mark H. Wood
7a2b018843 Correct some documentation.
(cherry picked from commit be22790aad)
2023-10-26 21:23:34 +00:00
Mark H. Wood
4b62c9b605 Community request: fake EPerson from configuration.
(cherry picked from commit bb9e88d1bb)
2023-10-26 21:23:34 +00:00
Mark H. Wood
7cdc710895 Make workflow curation tasks actually work.
When curation runs, there was no "current user" and no claimed task,
so the code broke when trying to find people to notify about curation
failures.

(cherry picked from commit a76af35a0c)
2023-10-26 21:23:34 +00:00
Tim Donohue
52dca308ad Merge pull request #9149 from DSpace/backport-9113-to-dspace-7_x
[Port dspace-7_x] fix not resolved thumbnail due to filename issues
2023-10-26 12:16:28 -05:00
Gantner, Florian Klaus
9d099dcf3f extract bitstream thumbnail name pattern into own function
(cherry picked from commit c5466c2249)
2023-10-26 16:10:19 +00:00
Gantner, Florian Klaus
af5632c2f2 check null value of bitstream name before quoting name for regex
(cherry picked from commit a9bcc0c223)
2023-10-26 16:10:18 +00:00
Gantner, Florian Klaus
1c7e9ea1f1 quote Pattern for thumbnail resolution constructed from bitstream filename
(cherry picked from commit a124807468)
2023-10-26 16:10:18 +00:00
Tim Donohue
7e36062c2e Merge pull request #9039 from atmire/backport-9019-to-dspace-7_x
[Port to dspace-7_x] Fix inherit policies at item move
2023-10-25 16:38:36 -05:00
Tim Donohue
21ce7d7580 Merge pull request #9138 from tdonohue/port_8966_to_dspace7x
[Port to dspace-7_x] Reading localized license file.
2023-10-20 17:18:50 -05:00
Tim Donohue
fa01fde364 Applying commit 6108c98d82 2023-10-20 16:35:14 -05:00
damian
b21b5e0096 Reading localized license file. 2023-10-20 16:33:51 -05:00
damian
093785e5e2 Reading localized license file. 2023-10-20 16:30:50 -05:00
Tim Donohue
68e80b92f0 Merge pull request #9137 from DSpace/backport-9135-to-dspace-7_x
[Port dspace-7_x] Bump org.json:json from 20230227 to 20231013 in /dspace-api
2023-10-20 15:55:16 -05:00
dependabot[bot]
ad7f506b2b Bump org.json:json from 20230227 to 20231013 in /dspace-api
Bumps [org.json:json](https://github.com/douglascrockford/JSON-java) from 20230227 to 20231013.
- [Release notes](https://github.com/douglascrockford/JSON-java/releases)
- [Changelog](https://github.com/stleary/JSON-java/blob/master/docs/RELEASES.md)
- [Commits](https://github.com/douglascrockford/JSON-java/commits)

---
updated-dependencies:
- dependency-name: org.json:json
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
(cherry picked from commit 11a08f1ac0)
2023-10-20 20:16:32 +00:00
Tim Donohue
1e28df7998 Merge pull request #9134 from tdonohue/port_9117
[Port dspace-7_x] Bump org.eclipse.jetty:jetty-http
2023-10-20 09:56:39 -05:00
dependabot[bot]
8028304513 Bump org.eclipse.jetty:jetty-http
Bumps [org.eclipse.jetty:jetty-http](https://github.com/eclipse/jetty.project) from 9.4.52.v20230823 to 9.4.53.v20231009.
- [Release notes](https://github.com/eclipse/jetty.project/releases)
- [Commits](https://github.com/eclipse/jetty.project/compare/jetty-9.4.52.v20230823...jetty-9.4.53.v20231009)

---
updated-dependencies:
- dependency-name: org.eclipse.jetty:jetty-http
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-19 16:48:08 -05:00
Tim Donohue
fb2162b6a0 Merge pull request #9133 from DSpace/backport-9121-to-dspace-7_x
[Port dspace-7_x] oai_openaire.xsl : change resourceTypeGeneral for thesis
2023-10-19 13:51:55 -05:00
Marie-Hélène Vézina
dd976b693a oai_openaire.xsl : change resourceTypeGeneral for thesis
Thesis are "Literature" resource type (resourceTypeGeneral), not "other research product"

ref:
https://github.com/openaire/guidelines-literature-repositories/issues/43#issuecomment-1318262914
and
https://api.openaire.eu/vocabularies/dnet:result_typologies/publication

(cherry picked from commit 669ff34350)
2023-10-19 17:34:06 +00:00
Koen Pauwels
252941046a Merge remote-tracking branch 'dspace/dspace-7_x' into backport-9019-to-dspace-7_x 2023-10-18 15:44:45 +02:00
Alan Orth
807168b77c Merge pull request #9128 from DSpace/backport-9110-to-dspace-7_x
[Port dspace-7_x] #8585 Add submitter information to provenance metadata
2023-10-17 12:52:11 +03:00
Alan Orth
c032f3a041 dspace-api: fix misaligned comment
(cherry picked from commit 4fba787322)
2023-10-17 09:00:26 +00:00
Adán Román Ruiz
0ddebd926f 8585 - added provenance to metadata-import and itemImport
(cherry picked from commit ea6307dcc6)
2023-10-17 09:00:26 +00:00
Adán Román Ruiz
668b5b24df #8585 Add submitter information to provenance metadata
(cherry picked from commit c15ac0eb4a)
2023-10-17 09:00:26 +00:00
Mark H. Wood
c8e4a0fd90 Define _version_ 2023-10-12 16:45:48 -04:00
kshepherd
4a3b9c1e47 Merge pull request #9111 from DSpace/backport-9101-to-dspace-7_x
[Port dspace-7_x] 8968 - request-a-copy email: non ASCII characters are encoded as HTML…
2023-10-10 13:47:06 +13:00
Adán Román Ruiz
d957dc2007 checkstiye
(cherry picked from commit d12fbe2c34)
2023-10-09 23:50:52 +00:00
Adán Román Ruiz
11dc69ac34 8968 - implementated using HtmlUtils scaping
(cherry picked from commit 090beedb6f)
2023-10-09 23:50:52 +00:00
Adán Román Ruiz
36ad3de11f checkstyle
(cherry picked from commit 2c2b3b18dc)
2023-10-09 23:50:52 +00:00
Adán Román Ruiz
8d4fd1ce6c 8968 - added custom StringEscapper
(cherry picked from commit 103c8ee757)
2023-10-09 23:50:52 +00:00
aroman-arvo
e4d54bba27 unused import
(cherry picked from commit bf6e042085)
2023-10-09 23:50:52 +00:00
aroman-arvo
2b25321362 8968 - request-a-copy email: non ASCII characters are encoded as HTML character entity references
(cherry picked from commit db36d5eeae)
2023-10-09 23:50:52 +00:00
Alan Orth
851123b956 Merge pull request #9098 from kshepherd/bugfix/handleprovider_class_cast_7x
Additional Item class cast fixes in handle providers
2023-10-03 13:08:04 +03:00
Tim Donohue
8160f7ccd6 Merge pull request #9102 from DSpace/backport-9100-to-dspace-7_x
[Port dspace-7_x] Remove Oracle script that accidentally made it in via #8800
2023-10-02 12:40:30 -05:00
Tim Donohue
1c1266b855 Remove Oracle script that accidentally made it in via #8800
(cherry picked from commit 5e04edf41e)
2023-10-02 16:56:27 +00:00
Kim Shepherd
33d2ee961d Additional Item class cast fixes in handle providers
DSOs were not properly checked if they were instanceof Item before
attempting the cast in HandleIdentifierProvider and
VersionedHandleIdentifierProviderWithCanonicalHandles
2023-10-02 17:57:08 +13:00
Yana De Pauw
9880e697b6 106812: Add h2 sql file 2023-09-29 15:36:53 +02:00
Yana De Pauw
1cf13e3bfe 106812: Fix old rest resource policy creations 2023-09-29 11:44:29 +02:00
Yana De Pauw
b923e13726 106812: Fix and add new tests 2023-09-29 10:36:43 +02:00
Yana De Pauw
16159f3761 106812: Refactor resource policies to have either group or eperson 2023-09-28 15:07:14 +02:00
Tim Donohue
d6e5074c5b Merge pull request #9090 from DSpace/backport-8926-to-dspace-7_x
[Port dspace-7_x] OAI: add support to extract embargo from bitstreams
2023-09-22 12:37:32 -05:00
Agustina Martinez
572ebb5b27 DefaultAccessStatusHelper: getEmbargoFromItem return null embargo if status than embargo
(cherry picked from commit e05e73a112)
2023-09-22 16:01:17 +00:00
Agustina Martinez
a211edaeb2 Remove currently unused customisation of ItemUtils
(cherry picked from commit 490a982e80)
2023-09-22 16:01:17 +00:00
Agustina Martinez
db733101b6 DefaultAccessStatusHelper: fix logic to take shortest embargo
(cherry picked from commit d17ef09082)
2023-09-22 16:01:17 +00:00
Agustina Martinez
9a51fb8768 uketd_dc.xsl: also expose access-status if embargo or restricted
(cherry picked from commit 4b40872a6d)
2023-09-22 16:01:17 +00:00
Agustina Martinez
08e82ebf28 ItemUtils.java: refactored addEmbargoField
(cherry picked from commit 291afa765d)
2023-09-22 16:01:17 +00:00
Agustina Martinez
d154936a3d Add null check
(cherry picked from commit 0de4c3945e)
2023-09-22 16:01:17 +00:00
Agustina Martinez
31251183f3 Fix style issues
(cherry picked from commit 6e2c8a4ae0)
2023-09-22 16:01:17 +00:00
Agustina Martinez
beaf40dd9b Fix style issues
(cherry picked from commit 724a4ffb0e)
2023-09-22 16:01:17 +00:00
Agustina Martinez
f330e36528 Remove unused imports
(cherry picked from commit 4bd2cfdf0f)
2023-09-22 16:01:17 +00:00
Agustina Martinez
f88207792a Refactored access-status to include embargo date based on the DefaultAccessStatusHelper logic (look at primary or first bitstream)
(cherry picked from commit 895926f021)
2023-09-22 16:01:17 +00:00
Agustina Martinez
3f5bfe4aa4 ItemUtils.java: improved method to account for multiple embargo policies and select the longest embargo
(cherry picked from commit 538be7f09b)
2023-09-22 16:01:17 +00:00
Agustina Martinez
c5ca59f2e5 ItemUtils.java: added method doc
(cherry picked from commit 51e60fbcf9)
2023-09-22 16:01:17 +00:00
Agustina Martinez
c711d2d944 OAI: add support to extract embargo from bitstreams and expose it in OAI metadata
(cherry picked from commit db81d758a9)
2023-09-22 16:01:17 +00:00
Tim Donohue
dd09fd7a7d Merge pull request #9079 from TexasDigitalLibrary/DS-3994-7_x
[Port dspace-7_x] DS-3994: fix logical bug when checking if field is controlled authority
2023-09-21 10:51:38 -05:00
Alan Orth
57fa641105 Merge pull request #9082 from TexasDigitalLibrary/DS-7936-7_x
[Port dspace-7_x] DS-7936: remove optimize option (-o) from oai import
2023-09-20 08:13:15 +03:00
nwoodward
8027d3b305 added authorization check for license bitstream in OAI import 2023-09-19 16:03:22 -05:00
nwoodward
2667b8d187 remove optimize option from oai import 2023-09-19 15:43:29 -05:00
nwoodward
8271c4d07b fix logical bug when checking if field is controlled authority 2023-09-18 15:34:23 -05:00
Tim Donohue
88f4cdafcf Merge pull request #9077 from DSpace/backport-9067-to-dspace-7_x
[Port dspace-7_x] Remove 'cross join' from count query in `update-handle-prefix` script
2023-09-15 09:56:33 -05:00
Tim Donohue
f23fd92928 Merge pull request #9072 from DSpace/backport-9068-to-dspace-7_x
[Port dspace-7_x] Fix ClassCastException (Collection cannot be cast to Item) in some Handle classes which cause random IT failures
2023-09-15 09:55:01 -05:00
Tim Donohue
e757b9d9f4 Remove 'cross join' from count query. Updates "countHandlesByPrefix" to use a query similar to existing "findByPrefix"
(cherry picked from commit 14223bd712)
2023-09-15 14:38:12 +00:00
Hrafn Malmquist
4dedb3cf41 Merge pull request #9073 from DSpace/backport-9041-to-dspace-7_x
[Port dspace-7_x] Avoid double slashes in sitemap paths.
2023-09-15 12:52:59 +01:00
Mark H. Wood
7b2b8db512 Avoid double slashes in sitemap paths.
(cherry picked from commit eae4463eaa)
2023-09-15 09:22:37 +00:00
Tim Donohue
42e2e4b0c8 Fix checkstyle. Correct grammar of comment while doing so.
(cherry picked from commit ffa2683c63)
2023-09-14 18:01:23 +00:00
Tim Donohue
d965057854 Fix ClassCastException (Collection cannot be cast to Item) in Handle identifier classes
(cherry picked from commit 1271374d37)
2023-09-14 18:01:23 +00:00
Tim Donohue
5a91da6f0e Merge pull request #9065 from DSpace/backport-8828-to-dspace-7_x
[Port dspace-7_x] Add a "container friendly" log4j2 cfg and output compose dspace log to console
2023-09-13 09:34:23 -05:00
Mark Cooper
f036467aa3 Add a "container friendly" log4j2 cfg and output compose dspace log to console
(cherry picked from commit 9eefd56cd7)
2023-09-13 01:33:55 +00:00
Alan Orth
36e9a88d9c Merge pull request #9063 from DSpace/backport-9058-to-dspace-7_x
[Port dspace-7_x] Expose OpenSearch configuration properties in the REST API
2023-09-12 12:11:43 +03:00
Hrafn Malmquist
ba197ef611 Add websvc.opensearch.autolink and websvc.opensearch.shortname to exposed REST configuration properties
(cherry picked from commit 80b35c9650)
2023-09-12 08:08:46 +00:00
Tim Donohue
02d347d72f Merge pull request #8948 from toniprieto/disable-hierarchical-browse-indexes
Add a configuration key to disable hierarchical browse indexes
2023-09-08 14:39:05 -05:00
Tim Donohue
ff393fe72d Add note that rebooting Tomcat required 2023-09-08 14:01:25 -05:00
Tim Donohue
6d005e356c Merge pull request #9055 from DSpace/backport-9051-to-dspace-7_x
[Port dspace-7_x] Bump org.eclipse.jetty:jetty-xml from 9.4.51.v20230217 to 9.4.52.v20230823
2023-09-07 13:11:44 -05:00
dependabot[bot]
732314018d Bump org.eclipse.jetty:jetty-xml
Bumps [org.eclipse.jetty:jetty-xml](https://github.com/eclipse/jetty.project) from 9.4.51.v20230217 to 9.4.52.v20230823.
- [Release notes](https://github.com/eclipse/jetty.project/releases)
- [Commits](https://github.com/eclipse/jetty.project/compare/jetty-9.4.51.v20230217...jetty-9.4.52.v20230823)

---
updated-dependencies:
- dependency-name: org.eclipse.jetty:jetty-xml
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
(cherry picked from commit 2bcc0b38a9)
2023-09-07 17:24:22 +00:00
Tim Donohue
4964eee108 Merge pull request #9054 from DSpace/backport-8924-to-dspace-7_x
[Port dspace-7_x] Rename test suites that are really integration testing.
2023-09-07 11:02:16 -05:00
Mark H. Wood
1b769de42a Rename test suites that are really integration testing.
(cherry picked from commit f66ca33b06)
2023-09-07 15:24:13 +00:00
Tim Donohue
f68856b12c Merge pull request #8949 from atmire/w2p-103837_GA4-exclude-non-content-bitstream-views-7.x
Exclude non-content bitstream view events from Google Analytics 4 (dspace-7_x)
2023-09-06 16:53:45 -05:00
Nona Luypaert
066fd53e98 Merge branch 'w2p-103837_GA4-exclude-non-content-bitstream-views-7.4' into w2p-103837_GA4-exclude-non-content-bitstream-views-7.x 2023-09-06 19:50:19 +02:00
Nona Luypaert
997057f8e4 103837: Fix isContentBitstream() in GoogleAsyncEventListener 2023-09-06 19:48:55 +02:00
Koen Pauwels
5fbc988518 Fix failing IT in BulkAccessControlIT 2023-08-24 14:55:43 +02:00
Koen Pauwels
5703dcb033 104878 Adjust ItemServiceTest to expect correct behavior of bundles when item is migrated 2023-08-24 14:55:43 +02:00
Koen Pauwels
54f174da04 104878 Fix error in ItemServiceTest related to inheriting collection policies upon item move 2023-08-24 14:55:43 +02:00
Koen Pauwels
502230b271 103818 Extend ItemServiceTest#testMoveItemToCollectionWithMoreRestrictiveReadPolicy 2023-08-24 14:55:43 +02:00
Koen Pauwels
8f4505207e 103818 Add boolean parameters to ItemServiceImpl methodds to decide whether to override read policies 2023-08-24 14:55:43 +02:00
Koen Pauwels
03961316dd 103818 Add boolean parameter to ItemServiceImpl#inheritCollectionDefaultPolicies to decide whether to override item read policies 2023-08-24 14:55:43 +02:00
Koen Pauwels
5e627b5ac8 103818 ItemServiceImpl#inheritCollectionDefaultPolicies now clears item READ policies if new parent collection has a default READ policy 2023-08-24 14:55:43 +02:00
Alan Orth
d307727b4f Merge pull request #9037 from DSpace/backport-9018-to-dspace-7_x
[Port dspace-7_x] Fix different CLI commands throw an exception on help argument
2023-08-24 11:40:08 +03:00
Alan Orth
1fc8fc637c dspace-api: remove unnecessary trailing whitespace 2023-08-24 10:57:16 +03:00
Tim Donohue
bd1eb00d2d Enable new skip merge commit feature 2023-08-23 17:03:08 -05:00
Christian Bethge
7f1875c945 remove not necessary else
(cherry picked from commit 064e2caa37)
2023-08-23 21:59:17 +00:00
Christian Bethge
8045f6a014 add DSpaceSkipUnknownArgumentsParser as parser to ignore/skip unknown arguments in cli by help, fix not necessary ParseException in help
(cherry picked from commit 86285d78aa)
2023-08-23 21:59:17 +00:00
Christian Bethge
a1f356ab33 ingore unrecognized arguments on help
(cherry picked from commit 82c9b6fc9b)
2023-08-23 21:59:17 +00:00
Christian Bethge
f776cec837 fix stylecheck
(cherry picked from commit b1377ca1ef)
2023-08-23 21:59:17 +00:00
Christian Bethge
ae2c253082 fix MissingOptionException on help
(cherry picked from commit 8ae5ffbf9b)
2023-08-23 21:59:17 +00:00
Alan Orth
c88a25f16c Merge pull request #9034 from DSpace/backport-9025-to-dspace-7_x
[Port dspace-7_x] 3331 - remove the --optimize feature of 'dspace stats-util'
2023-08-23 15:56:02 +03:00
aroman-arvo
79e47837ae 3331 - remove the --optimize feature of 'dspace stats-util'
(cherry picked from commit 08c650921d)
2023-08-23 12:16:35 +00:00
Alan Orth
785d07087a Merge pull request #9008 from MW3000/fix-8963-remove-deletion-constraint-from-groomer-tool
Fix #8963: Remove deletion constraint from Groomer
2023-08-23 12:48:45 +03:00
Tim Donohue
c2402b1a4f Merge pull request #9032 from DSpace/backport-9016-to-dspace-7_x
[Port dspace-7_x] Avoid requiring git as a build dependency
2023-08-22 16:06:41 -05:00
Hrafn Malmquist
c08f762525 Bump up versions of buildnumber-maven-plugin & build-helper-maven-plugin. add configuration for SCM failure
(cherry picked from commit 78ea9e86df)
2023-08-22 20:24:45 +00:00
Tim Donohue
92a1dddecf Merge pull request #9031 from DSpace/backport-9029-to-dspace-7_x
[Port dspace-7_x] README.md: Fix typo
2023-08-22 10:50:02 -05:00
Christian Clauss
e6829c7b42 README.md: Fix typo
(cherry picked from commit ca8abddff1)
2023-08-22 15:42:55 +00:00
Nona Luypaert
681cfeed4d Merge branch 'w2p-103837_GA4-exclude-non-content-bitstream-views-7.4' into w2p-103837_GA4-exclude-non-content-bitstream-views-7.x 2023-08-17 16:59:12 +02:00
Nona Luypaert
22e209322c 103837: Refactor GA config to list bundles 2023-08-17 16:43:21 +02:00
Tim Donohue
4df8b86217 Merge pull request #9023 from DSpace/backport-9021-to-dspace-7_x
[Port dspace-7_x] Remove useless log.info
2023-08-09 14:50:35 -05:00
Tim Donohue
b5f2f67ead Remove useless log.info
(cherry picked from commit 1f3ad993cc)
2023-08-09 15:17:31 +00:00
Tim Donohue
e3186cbbb1 Merge pull request #9020 from DSpace/backport-8991-to-dspace-7_x
[Port dspace-7_x] On media filter failure log the name of the assetstore file and trace causes of exception
2023-08-09 09:24:36 -05:00
Mark H. Wood
65241b7a3e More description on OutOfMemoryError too.
(cherry picked from commit bbe5df3f7d)
2023-08-08 21:41:26 +00:00
Mark H. Wood
8db2f18143 Report Throwable's type too.
(cherry picked from commit d6b612fc5c)
2023-08-08 21:41:26 +00:00
Mark H. Wood
40ced53032 On failure log the name of the assetstore file and trace causes of exception.
(cherry picked from commit 22974e982c)
2023-08-08 21:41:26 +00:00
Tim Donohue
8f65a46736 Merge pull request #8952 from mwoodiupui/8500-7_x
Missing subject in template-based e-mails 7_x
2023-08-04 13:26:12 -05:00
Tim Donohue
0b5e70369a Merge pull request #9013 from tdonohue/port_8940
[Port dspace-7_x] Fix #8933: Only add the base statistic core if it hasn't already been added
2023-08-04 11:23:16 -05:00
Max Nuding
59f14cf67a Remove duplicate code 2023-08-04 10:39:00 -05:00
max.nuding
a3f2bd0bb7 Fix #8933: Only add the base statistic core if it hasn't already been added 2023-08-04 10:38:52 -05:00
Tim Donohue
df04b6ecf6 Merge pull request #9012 from DSpace/backport-9007-to-dspace-7_x
[Port dspace-7_x] 9006 geoip fix referenced configuration
2023-08-04 09:20:24 -05:00
Alan Orth
5fccd6190f Merge pull request #9011 from DSpace/backport-8936-to-dspace-7_x
[Port dspace-7_x] DS-8935. webui.browse.link CrossLinks - Fix for multiple exact matches
2023-08-04 16:54:17 +03:00
Christian Bethge
dd5c810b0c #9006 fix referenced configuration file (Test)
(cherry picked from commit 309b0b355e)
2023-08-03 21:54:31 +00:00
Christian Bethge
066dfbc849 #9006 fix referenced configuration file
(cherry picked from commit 29a88d7e2d)
2023-08-03 21:54:31 +00:00
David P. Steelman
2180b4e535 DS-8935. webui.browse.link CrossLinks - Fix for multiple exact matches
Fixes #8935 when multiple exact match "webui.browse.link" configuration
entries are present that point to different indexes.

Modified the code to return the index associated with the given
metadata (which is used as the key in the hash map), instead of the key
from the keySet (which may not actually be the metadata value being
searched for).

https://github.com/DSpace/DSpace/issues/8935
(cherry picked from commit b846c53baa)
2023-08-03 21:37:19 +00:00
Tim Donohue
409182a067 Merge pull request #9010 from DSpace/backport-8961-to-dspace-7_x
[Port dspace-7_x] 'null' value is passed to sendErrorResponse instead of actual exception
2023-08-03 14:09:39 -05:00
corrado lombardi
81cbb6692c [DURACOM-179] replaced 'null' value with exception actual value in sendErrorResponse method calls having 'null'
(cherry picked from commit aa35a47add)
2023-08-03 17:31:36 +00:00
Tim Donohue
53222a005b Merge pull request #9009 from DSpace/backport-9004-to-dspace-7_x
[Port dspace-7_x] Enable entity type to submission form mapping by default
2023-08-03 12:08:07 -05:00
Tim Donohue
f803a2acf1 Enable entity type to submission form mapping by default
(cherry picked from commit b71eee89c1)
2023-08-03 16:22:28 +00:00
Martin Walk
e07763b021 Fix #8963: Remove deletion constraint from Groomer 2023-08-03 13:39:43 +02:00
Tim Donohue
eb7cdb1d21 Merge pull request #9003 from DSpace/backport-8983-to-dspace-7_x
[Port dspace-7_x] Remove old webui properties from dspace.cfg
2023-08-02 15:55:08 -05:00
Alan Orth
acf27a5d76 dspace.cfg: remove old webui.itemlist.browse.* property
The webui.itemlist.browse.* properties are no longer used in DSpace
7.

(cherry picked from commit 35f72bc9d0)
2023-08-02 20:15:57 +00:00
Alan Orth
6e4490197b dspace.cfg: remove old webui.browse.thumbnail.show property
The webui.browse.thumbnail.show property is no longer used as of
DSpace 7. Also remove subsequent references to adding thumbnails
to item view columns since these are from legacy DSpace.

(cherry picked from commit 213a546486)
2023-08-02 20:15:57 +00:00
Alan Orth
41c992a231 dspace.cfg: remove old webui.itemlist properties
These properties are no longer used in DSpace 7:

    webui.itemlist.widths
    webui.itemlist.*.widths
    webui.itemlist.tablewidth

(cherry picked from commit 16c46c4979)
2023-08-02 20:15:57 +00:00
Tim Donohue
fadfdc6ed2 Merge pull request #8997 from tdonohue/port_8955
[Port dspace-7_x] Prevent NPE during indexing if bitstream is null
2023-07-28 15:09:27 -05:00
Agustina Martinez
e4c639c905 Update ItemUtils.java
Prevent npe if bitstream is null
2023-07-28 13:57:37 -05:00
Agustina Martinez
7b54dde3a6 Update FullTextContentStreams.java
Add additional NPE checks
2023-07-28 13:57:29 -05:00
Agustina Martinez
06b54d5afa Update FullTextContentStreams.java
Fix NPE if bitstream is null
2023-07-28 13:57:22 -05:00
dependabot[bot]
0ad1998ff5 Bump h2 from 2.1.214 to 2.2.220
Bumps [h2](https://github.com/h2database/h2database) from 2.1.214 to 2.2.220.
- [Release notes](https://github.com/h2database/h2database/releases)
- [Commits](https://github.com/h2database/h2database/compare/version-2.1.214...version-2.2.220)

---
updated-dependencies:
- dependency-name: com.h2database:h2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-28 13:35:16 -05:00
Tim Donohue
8b34195f31 Merge pull request #8996 from DSpace/backport-8995-to-dspace-7_x
[Port dspace-7_x] Fix typo. Config must be a valid regex
2023-07-28 12:23:18 -05:00
Tim Donohue
867331e3af Fix typo. Config must be a valid regex
(cherry picked from commit 799528963e)
2023-07-28 16:55:08 +00:00
Tim Donohue
d1539efe9a Minor update to label_merge_conflicts to ignore any errors (seem random at this time) 2023-07-28 11:41:37 -05:00
Tim Donohue
0162853bb5 Run PR Port action as 'dspace-bot' to allow new PRs to trigger CI checks 2023-07-28 11:41:28 -05:00
Tim Donohue
e45e4f9831 Merge pull request #8992 from DSpace/backport-8988-to-dspace-7_x
[Port dspace-7_x] Add GitHub action to automatically create a port PR (based on label)
2023-07-28 10:51:08 -05:00
Tim Donohue
657312c8f0 Add action to automatically create a port PR when specified
(cherry picked from commit f6a898c3d1)
2023-07-28 15:13:25 +00:00
Sascha Szott
6fe61b4a8e remove obsolete code fragments 2023-07-27 11:52:38 -05:00
Sean Kalynuk
4c329b4319 Fixes #8558 - set Solr UTC timezone
Set the timezone of the Solr date formatter to UTC
2023-07-26 11:27:32 -05:00
Tim Donohue
db2a6d98d7 Merge pull request #8959 from tdonohue/port_8941
Port recent GitHub Actions changes to `dspace-7_x` branch
2023-07-14 16:15:21 -05:00
Tim Donohue
f9b7f780fc Merge pull request #8958 from tdonohue/port_8953
[PORT to 7.x] Add flag Pattern.UNICODE_CHARACTER_CLASS to pattern compilation to recognize unicode characters
2023-07-14 16:01:19 -05:00
Tim Donohue
dd8bfffedb Ensure 'main' code is tagged as 'latest' in DockerHub 2023-07-14 15:35:58 -05:00
Tim Donohue
211529f97f Split docker image builds into separate jobs to allow them to run in parallel. 2023-07-14 15:35:50 -05:00
Tim Donohue
4471a2dc23 Ensure codescan and label_merge_conflicts run on maintenance branches 2023-07-14 15:35:35 -05:00
Tim Donohue
2ebe1d69e4 Enable Pull Request Opened action to assign PRs to their creator 2023-07-14 15:35:26 -05:00
Toni Prieto
69f4829edb Add flag Pattern.UNICODE_CHARACTER_CLASS to pattern compilation to recognize unicode characters 2023-07-14 15:26:43 -05:00
Mark H. Wood
03f24a3339 Simplify and modernize the code. Store content directly in the template. 2023-07-12 12:55:41 -04:00
Mark H. Wood
d9f4ae7a89 Don't clear the list of accepted embedded message header properties.
Why was this cleared?
2023-07-12 12:55:41 -04:00
Mark H. Wood
334a02c2be More and better(?) documentation. 2023-07-12 12:55:41 -04:00
Nona Luypaert
b69201f147 Merge branch 'dspace-7_x' into w2p-103837_GA4-exclude-non-content-bitstream-views-7.x
Conflicts:
	dspace/config/dspace.cfg
2023-07-11 11:42:39 +02:00
Toni Prieto
e55bc87c1a Add a configuration key to disable hierarchical browse indexes 2023-07-10 12:11:45 +02:00
Nona Luypaert
1b94aecb26 103837: Only send GA4 events for ORIGINAL bitstreams + ITs 2023-07-06 16:48:10 +02:00
Tim Donohue
ea4565bd60 [maven-release-plugin] prepare branch dspace-7_x 2023-06-30 14:37:06 -05:00
Alan Orth
1e680009cf Merge pull request #8931 from toniprieto/ignore-vocabulary-index-without-facet
Fix for NullPointerException when enumerating browses for vocabularies without Discovery indexes
2023-06-30 20:56:45 +03:00
Toni Prieto
af55090245 Ignore vocabulary indexes without discovery facet to avoid NPE 2023-06-30 20:21:59 +03:00
Tim Donohue
43a4a79045 Merge pull request #8910 from DSpace/dependabot/maven/dspace-api/io.netty-netty-handler-4.1.94.Final
Bump netty-handler from 4.1.68.Final to 4.1.94.Final in /dspace-api
2023-06-30 10:02:39 -05:00
Alan Orth
e46681fc20 Merge pull request #8928 from toniprieto/improve-performance-auto-reindex
Improve performance of automatic discovery re-index after database changes
2023-06-29 20:46:21 +03:00
Toni Prieto
2b5c4a5f4a Improve performance of automatic discovery re-index after database changes 2023-06-29 13:00:59 +02:00
Tim Donohue
a533704a27 [maven-release-plugin] prepare for next development iteration 2023-06-23 12:10:56 -05:00
Tim Donohue
5a43e6bcf1 [maven-release-plugin] prepare release dspace-7.6 2023-06-23 12:10:53 -05:00
Tim Donohue
01c761281c Update LICENSES_THIRD_PARTY for 7.6 2023-06-23 11:50:12 -05:00
Tim Donohue
da657dbc67 Merge pull request #8905 from 4Science/DURACOM-156
[DURACOM-156] Signposting: feedback after initial deployment
2023-06-23 11:17:14 -05:00
Nikita Krivonosov
df4cff7dd1 [DURACOM-156] Singposting: feedback after initial deployment 2023-06-23 17:24:42 +02:00
Nikita Krivonosov
890f2a15e5 [DURACOM-156] Singposting: feedback after initial deployment 2023-06-23 11:45:07 +02:00
NikitaKr1vonosov
1fe90a236d Merge branch 'main' into DURACOM-156 2023-06-23 09:47:20 +02:00
Nikita Krivonosov
12fe87fc37 [DURACOM-156] Singposting: feedback after initial deployment 2023-06-23 09:46:46 +02:00
Nikita Krivonosov
55bfd4b2e5 [DURACOM-156] Singposting: feedback after initial deployment 2023-06-23 00:47:09 +02:00
Nikita Krivonosov
907c45a455 [DURACOM-156] Singposting: feedback after initial deployment 2023-06-21 17:27:20 +02:00
Tim Donohue
b52a4fb50d Update all Netty dependencies to 4.1.94.Final
Also had to add netty-transport-native-unix-common so that Solr doesn't throw dependency convergence issues.
2023-06-20 13:23:49 -05:00
dependabot[bot]
cf1257f20e Bump netty-handler from 4.1.68.Final to 4.1.94.Final in /dspace-api
Bumps [netty-handler](https://github.com/netty/netty) from 4.1.68.Final to 4.1.94.Final.
- [Commits](https://github.com/netty/netty/compare/netty-4.1.68.Final...netty-4.1.94.Final)

---
updated-dependencies:
- dependency-name: io.netty:netty-handler
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-20 16:35:40 +00:00
Tim Donohue
4ea5426d61 Merge pull request #8854 from tdonohue/disable_dtd_parsing_in_sources
Disable DTD parsing in all external source plugins
2023-06-20 09:22:15 -05:00
Tim Donohue
c5ec38551c Merge pull request #8875 from atmire/w2p-102057_refferer-fix-main
The referrer for a statistics view event is almost always wrong
2023-06-20 09:20:35 -05:00
Tim Donohue
4d4899cc3a Merge pull request #8904 from DSpace/dependabot/maven/com.google.guava-guava-32.0.0-jre
Bump guava from 31.0.1-jre to 32.0.0-jre
2023-06-16 15:58:18 -05:00
dependabot[bot]
7dd34ccc50 Bump guava from 31.0.1-jre to 32.0.0-jre
Bumps [guava](https://github.com/google/guava) from 31.0.1-jre to 32.0.0-jre.
- [Release notes](https://github.com/google/guava/releases)
- [Commits](https://github.com/google/guava/commits)

---
updated-dependencies:
- dependency-name: com.google.guava:guava
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-16 20:23:12 +00:00
Tim Donohue
4c0b60418d Merge pull request #8813 from sistedes/feature-imagemagick-video
New ImageMagick-based media filter to generate video thumbnails
2023-06-16 15:19:14 -05:00
Tim Donohue
eda2c8811c Merge pull request #8901 from kshepherd/default_bundle_permissions
Fix to adjusting bundle and bitstream policies (item install, embargo lift)
2023-06-16 15:04:57 -05:00
Tim Donohue
fff633690c Merge pull request #8903 from alexandrevryghem/remove-publicdomain-from-cclicence-section
Hide publicdomain by default since it's now the same as CC0
2023-06-16 15:03:36 -05:00
Tim Donohue
b661056118 Merge pull request #8908 from mwoodiupui/8907
Request a Copy sends same email regardless of accept or reject
2023-06-16 12:07:37 -05:00
Tim Donohue
3ff5eb61c0 Fix to adjusting bundle and bitstream policies (item install, embargo lift)
Apply DEFAULT_ITEM_READ to bundles, not DEFAULT_BITSTREAM_READ so that
files can be listed if the item / default item is readable
Co-authored-by: kshepherd <kim@shepherd.nz>
Co-authored-by: tdonohue <tim.donohue@lyrasis.org>
2023-06-16 11:14:51 -05:00
Tim Donohue
240bfbfdc9 Fix to adjusting bundle and bitstream policies (item install, embargo lift)
Apply DEFAULT_ITEM_READ to bundles, not DEFAULT_BITSTREAM_READ so that
files can be listed if the item / default item is readable
2023-06-16 11:00:03 -05:00
Tim Donohue
aec3298da0 Merge pull request #8844 from 4Science/duracom-136_CST-9634
Bulk Access Control Script REST implementation
2023-06-16 10:48:18 -05:00
Yana De Pauw
013b95ea2a 102888: Implement feedback 2023-06-16 14:37:19 +02:00
NikitaKr1vonosov
3bba9979c3 Merge branch 'main' into DURACOM-156 2023-06-16 02:04:24 +02:00
Nikita Krivonosov
55c07e90cd [DURACOM-156] Singposting: feedback after initial deployment 2023-06-16 01:53:48 +02:00
Mark H. Wood
8adb16f945 Invent a rejection letter 2023-06-15 17:01:00 -04:00
Tim Donohue
f216f4c7fc Merge pull request #8891 from atmire/w2p-102124_bitstream-formats-download-attachment-main
Configuration for opening bitstream formats as attachment
2023-06-15 13:07:31 -05:00
Tim Donohue
176e93eb01 Merge pull request #8848 from alexandrevryghem/issue-1671_fix-relationships-not-updating-view-on-submission-form_contribute-main
Adding/removing relationships in the submission form does not update the view automatically
2023-06-15 11:45:01 -05:00
NikitaKr1vonosov
9137689cdc Merge branch 'main' into DURACOM-156 2023-06-15 09:21:46 +02:00
Nona Luypaert
dd951407a7 Merge branch 'w2p-102124_bitstream-formats-download-attachment-7.2' into w2p-102124_bitstream-formats-download-attachment-main
Conflicts:
	dspace-api/src/test/data/dspaceFolder/config/local.cfg
2023-06-15 00:00:42 +02:00
Alexandre Vryghem
1cb60a9018 Hide publicdomain by default since it's now the same as CC0
More info: https://api.creativecommons.org/docs/readme_15.html#changes-since-1-0
2023-06-14 23:48:27 +02:00
Nona Luypaert
7c7f3e2853 102124: Move content-disposition test config from local.cfg to IT itself 2023-06-14 23:47:36 +02:00
Tim Donohue
bbb75df3a1 Disable DTD parsing in all external source plugins to avoid XXEs 2023-06-14 16:12:45 -05:00
Tim Donohue
43f5eeb9ed Merge pull request #8843 from damian-joz/1787-coll-comm-item-counts
Item counters added to Communities and Collections REST API
2023-06-14 14:07:49 -05:00
Tim Donohue
49882a206c Merge pull request #8833 from mwoodiupui/reqitem-response
Get request-copy response email body from backend templates, as with all other emails
2023-06-14 13:18:21 -05:00
Tim Donohue
252bf8fe41 Merge pull request #8876 from atmire/contract-pr-222-primary-bitstream-on-bundle-support
Primary bitstream support for the REST api - Rework
2023-06-14 11:45:08 -05:00
Mark H. Wood
9caba7044b Remove test for removed content. 2023-06-14 10:53:49 -04:00
Mark H. Wood
411ac4a9a2 Clarify template comments. 2023-06-14 10:21:01 -04:00
Mark H. Wood
4abcfc8bf3 Rework message to make it more useful, more businesslike, not expose author's email by default. 2023-06-14 10:17:20 -04:00
damian
ca7c75987e Items count are now disabled by default. Naming changes. 2023-06-13 19:58:42 +02:00
Nikita Krivonosov
63e1519c6e [DURACOM-156] Singposting: feedback after initial deployment 2023-06-13 15:22:21 +02:00
Tim Donohue
e0631e745b Merge pull request #8889 from atmire/fix-issue-8888
[Issue: #8888] Fixing the hostname parsing for the shibboleth auth
2023-06-12 11:31:28 -05:00
Nona Luypaert
c0239cf174 Merge branch 'w2p-102124_bitstream-formats-download-attachment-7.2' into w2p-102124_bitstream-formats-download-attachment-main 2023-06-12 11:42:49 +02:00
Nona Luypaert
af8cf8671b 102124: Update webui.content_disposition_format comment 2023-06-12 11:41:33 +02:00
Tim Donohue
9c6d2bfaa8 Merge pull request #8831 from 4Science/CST-5728
[CST-5728] LYRASIS [Donated]: DSpace7: Implement signposting pattern …
2023-06-09 16:03:03 -05:00
Nona Luypaert
1d484f4a0b 102052: 403 checks for Admin ITs in PrimaryBitstreamControllerIT 2023-06-09 22:23:00 +02:00
Nona Luypaert
504bc1a61b Merge branch 'main' into w2p-102124_bitstream-formats-download-attachment-main 2023-06-09 20:41:35 +02:00
Tim Donohue
a57bca06a2 Merge pull request #8898 from DSpace/dependabot/maven/dspace-api/org.scala-lang-scala-library-2.13.9
Bump scala-library from 2.13.2 to 2.13.9 in /dspace-api
2023-06-09 11:34:02 -05:00
damian
ff504e35d1 Variable naming change. Javadocs addded. 2023-06-09 16:56:26 +02:00
dependabot[bot]
1ab04518a3 Bump scala-library from 2.13.2 to 2.13.9 in /dspace-api
Bumps [scala-library](https://github.com/scala/scala) from 2.13.2 to 2.13.9.
- [Release notes](https://github.com/scala/scala/releases)
- [Commits](https://github.com/scala/scala/compare/v2.13.2...v2.13.9)

---
updated-dependencies:
- dependency-name: org.scala-lang:scala-library
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-09 14:42:46 +00:00
Tim Donohue
056a910f86 Merge pull request #8500 from 4Science/DURACOM-92
Further S3 large file optimization
2023-06-09 09:42:18 -05:00
Yury Bondarenko
1b1830f037 Remove unnecessary DescribeStep change
As far as I can tell this never did anything
  - `relationship.*` is not a valid MDF, so it's unclear what it was supposed to do
  - everything keeps working if I leave this part out
2023-06-09 15:31:50 +02:00
damian
c6cf19d40c Merge branch 'main' into 1787-coll-comm-item-counts
# Conflicts:
#	dspace-api/src/main/java/org/dspace/content/CollectionServiceImpl.java
#	dspace-api/src/main/java/org/dspace/content/service/CollectionService.java
2023-06-09 12:18:38 +02:00
Francesco Pio Scognamiglio
8764724159 Merge branch 'main' into DURACOM-92 2023-06-09 09:39:31 +02:00
Nona Luypaert
59caeb5875 Merge branch 'main' into contract-pr-222-primary-bitstream-on-bundle-support 2023-06-08 23:09:52 +02:00
Nona Luypaert
c5028f7f1f 102052: Small improvements 2023-06-08 23:08:48 +02:00
Nona Luypaert
1b06c64454 102052: Remove getPrimaryBitstream from PrimaryBitstreamController 2023-06-08 21:49:13 +02:00
Tim Donohue
f55e21e271 Merge pull request #8855 from paulo-graca/enhancement/addressing-#8633
Default submission forms per Entity type
2023-06-08 14:25:45 -05:00
Nona Luypaert
377e22eb65 Merge branch 'w2p-102124_bitstream-formats-download-attachment-7.2' into w2p-102124_bitstream-formats-download-attachment-main 2023-06-08 20:57:26 +02:00
Nona Luypaert
a00dd83a0c 102124: Avoid null pointer when checking disposition 2023-06-08 20:47:27 +02:00
Andrea Bollini
33929fa6bf Merge branch 'main' of https://github.com/DSpace/DSpace into duracom-136_CST-9634 2023-06-08 19:56:22 +02:00
Tim Donohue
4deab95b14 Merge pull request #8894 from 4Science/DURACOM-153
[DURACOM-153] fix validation to use the retrieved zip file on saf import
2023-06-08 11:27:47 -05:00
Francesco Pio Scognamiglio
6794c80afe Merge branch 'main' into DURACOM-153 2023-06-08 17:44:56 +02:00
Tim Donohue
c2ad791bc9 Merge pull request #8830 from 4Science/duracom-136
Allow script execution by user other than admins - starting from the curate script
2023-06-08 10:35:09 -05:00
Francesco Pio Scognamiglio
7757c4e898 [DURACOM-153] fix validation to use the retrieved zip file on saf import 2023-06-08 13:51:25 +02:00
Nikita Krivonosov
39df261411 [CST-5728] LYRASIS [Donated]: DSpace7: Implement signposting pattern in DSpace (REST) 2023-06-08 11:51:48 +02:00
Kristof De Langhe
3f2e2b819a Merge branch 'main' into w2p-102057_refferer-fix-main 2023-06-08 10:08:09 +02:00
NikitaKr1vonosov
44b948e71c Merge branch 'main' into CST-5728 2023-06-08 00:20:29 +02:00
Nikita Krivonosov
f8e3dad234 [CST-5728] LYRASIS [Donated]: DSpace7: Implement signposting pattern in DSpace (REST) 2023-06-08 00:12:14 +02:00
Tim Donohue
13344aabf9 Merge pull request #8869 from paulo-graca/enhancement/xoai-access-status-plugin
new Access Status XOAI plugin
2023-06-07 16:53:35 -05:00
Tim Donohue
7bbb5f438b Merge pull request #8829 from mspalti/iiif-search-plugin-update
Updated IIIF content search solr query params.
2023-06-07 09:40:09 -05:00
Mohamed Saber Eskander
f7ff85bbd5 solved issue of 'could not initialize proxy - no Session' 2023-06-07 12:53:19 +03:00
Paulo Graça
ce9e9fcc95 Merge branch 'main' into enhancement/addressing-#8633 2023-06-07 08:34:23 +01:00
NikitaKr1vonosov
2a1b24a058 Merge branch 'main' into CST-5728 2023-06-07 09:04:02 +02:00
Nikita Krivonosov
11df3b8d63 [CST-5728] LYRASIS [Donated]: DSpace7: Implement signposting pattern in DSpace (REST) 2023-06-07 08:49:47 +02:00
Nona Luypaert
c7375acf39 Merge branch 'main' into w2p-102124_bitstream-formats-download-attachment-main 2023-06-07 08:46:30 +02:00
Nona Luypaert
da48803d3d Merge branch 'w2p-102124_bitstream-formats-download-attachment-7.2' into w2p-102124_bitstream-formats-download-attachment-main 2023-06-07 08:43:45 +02:00
Nona Luypaert
bca98cd8f4 102124: Don't loop over extensions if mimetype was already found 2023-06-07 08:33:51 +02:00
Tim Donohue
bf8df5b1e8 Merge pull request #8758 from alexandrevryghem/w2p-100553_fix-metadata-registry-bugs_contribute-7.4
Added input validation for new metadata field submissions & fixed some other bugs related to metadata fields
2023-06-06 14:33:38 -05:00
Andrea Bollini
5a8c7a397c DURACOM-136 open endpoints to retrieve files of process to the user that has triggered the process 2023-06-06 20:12:23 +02:00
Andrea Bollini
32cd24b753 DURACOM-136 restrict script endpoints to authenticated users, add test to proof that standard script are reseved to site administrator 2023-06-06 19:45:31 +02:00
Tim Donohue
ea7272ec00 Merge pull request #8874 from mwoodiupui/service-lookup
Make service lookup retry log at DEBUG; radically shorten the trace.
2023-06-06 12:26:36 -05:00
eskander
6848ab20bd Merge remote-tracking branch 'origin/main' into duracom-136_CST-9634
# Conflicts:
#	dspace/config/spring/api/discovery.xml
2023-06-06 17:30:53 +03:00
Mohamed Saber Eskander
f2a63d9636 added new test cases
added JavaDocs
refactoring
2023-06-06 17:21:20 +03:00
Andrea Bollini
2b523ba5ac DURACOM-136 improve handling and testing of invalid mimetype 2023-06-06 16:01:47 +02:00
Andrea Bollini
14bb32036c DURACOM-136 add explaination of the commandLineParameters in the javadoc 2023-06-06 16:01:04 +02:00
Paulo Graça
3e6e795c3d Merge branch 'main' into enhancement/xoai-access-status-plugin 2023-06-06 14:03:59 +01:00
Paulo Graça
8bc8efc64e Merge branch 'main' into enhancement/addressing-#8633 2023-06-06 12:44:24 +01:00
Nona Luypaert
04161a0c4d 102124: Fix BitstreamRestController after merge 2023-06-06 11:24:10 +02:00
Kevin Van de Velde
3945d164e6 [Issue: #8888] Fixing the hostname parsing for the shibboleth auth 2023-06-06 08:35:18 +02:00
Tim Donohue
4b3e271468 Merge pull request #8887 from tdonohue/fix_test
Fix test class compilation
2023-06-05 16:40:11 -05:00
Tim Donohue
a0a1844de7 Fix test class compilation 2023-06-05 16:01:31 -05:00
Tim Donohue
333c7da729 Merge pull request #8623 from atmire/discovery-fixes
Fixes for scope based searching and indexing in Discovery
2023-06-05 15:37:21 -05:00
Tim Donohue
58c71bbeab Merge pull request #8485 from atmire/w2p-94299_Multiple_Bitstream_deletion_endpoint
multiple bitstream deletion endpoint
2023-06-05 15:35:45 -05:00
Tim Donohue
61db65ead5 Merge pull request #8826 from atmire/contract-pr-225-browse-by-support-for-controlled-vocabulary-main
Browse by Controlled Vocabulary (hierarchicalBrowse)
2023-06-05 15:31:37 -05:00
Paulo Graça
5d7c26c3d5 Merge branch 'main' into enhancement/xoai-access-status-plugin 2023-06-05 15:45:24 +01:00
Paulo Graça
5dfb49a5a8 Merge branch 'main' into enhancement/addressing-#8633 2023-06-05 15:45:10 +01:00
Nona Luypaert
826f393e33 Merge branch 'w2p-102124_bitstream-formats-download-attachment-7.2' into w2p-102124_bitstream-formats-download-attachment-main
Conflicts:
	dspace-api/src/test/data/dspaceFolder/config/local.cfg
	dspace-server-webapp/src/test/java/org/dspace/app/rest/BitstreamRestControllerIT.java
2023-06-05 16:29:57 +02:00
Nona Luypaert
9a49998ea0 102124: Add config for opening formats as attachment + IT 2023-06-05 16:02:42 +02:00
Alan Orth
ffe6a63780 Merge pull request #8866 from alanorth/crossref-publisher
dspace: capture publisher from CrossRef live import
2023-06-05 16:30:07 +03:00
Alan Orth
a38ff42169 dspace: capture publisher from CrossRef live import
Publisher is a required field on CrossRef so we can always rely on
capturing this information when doing a live import.

See: https://github.com/CrossRef/rest-api-doc/blob/master/api_format.md
2023-06-05 15:52:30 +03:00
Nona Luypaert
d6d6a3e074 102052: Replace 'DELETE' with 'WRITE' on deletePrimaryBitstream + More auth ITs 2023-06-05 09:45:40 +02:00
Paulo Graça
e6f54a97bf Merge branch 'main' into enhancement/addressing-#8633 2023-06-04 23:01:31 +01:00
Paulo Graça
52bc4844bf Merge branch 'main' into enhancement/xoai-access-status-plugin 2023-06-04 09:33:54 +01:00
Tim Donohue
6013c41184 Merge pull request #8870 from TexasDigitalLibrary/DS-8759
DS-8759: check that zip file exists and has correct MIME type; clean up imports directory on failed import
2023-06-02 16:59:21 -05:00
Tim Donohue
4d5e907617 Merge pull request #8856 from kshepherd/item_delete_unlink_doi
Unlink DOI from item on deletion even if no provider is configured
2023-06-02 16:26:29 -05:00
Tim Donohue
9735020c4a Merge pull request #8857 from buithaihai/DS-8837
Fix: default sort option for discovery
2023-06-02 15:55:21 -05:00
Paulo Graça
39283650d0 Merge branch 'main' into DS-8837 2023-06-02 15:44:46 +01:00
Paulo Graça
cd57a0851f Merge branch 'main' into enhancement/addressing-#8633 2023-06-02 15:06:47 +01:00
Paulo Graça
ab5a040a1d Merge branch 'main' into enhancement/xoai-access-status-plugin 2023-06-02 12:05:57 +01:00
Alan Orth
44d038c2a5 Merge pull request #8878 from 4Science/DURACOM-149
[DURACOM-149] correctly handle dates in pubmed live import; added integration tests
2023-06-02 12:38:20 +03:00
Paulo Graça
fa8b6e0280 Merge branch 'main' into enhancement/xoai-access-status-plugin 2023-06-02 09:47:12 +01:00
Paulo Graça
99f2c7c134 Merge branch 'main' into DS-8837 2023-06-02 09:21:51 +01:00
Francesco Pio Scognamiglio
52b02b5d36 Merge branch 'main' into DURACOM-149 2023-06-02 10:11:21 +02:00
Francesco Pio Scognamiglio
7c85b007c0 [DURACOM-149] remove trailing whitespace 2023-06-02 10:10:45 +02:00
Nona Luypaert
7b45ec0e51 Merge branch 'main' into contract-pr-222-primary-bitstream-on-bundle-support 2023-06-02 09:03:00 +02:00
Nona Luypaert
d565cd3e6b 102052: Return 204 status when primaryBitstream is null 2023-06-02 08:33:59 +02:00
Bui Thai Hai
70a7930f63 Tweaks fo test cases. 2023-06-02 09:45:52 +07:00
Andrea Bollini
b93e27e6ee Merge branch 'main' of https://github.com/DSpace/DSpace into duracom-136_CST-9634 2023-06-01 21:07:07 +02:00
Andrea Bollini
1b7af28dd3 CST-9634 remove unnecessary turn off/on auth system 2023-06-01 21:07:00 +02:00
Andrea Bollini
b78ddf2498 CST-9634 make public the validateResourcePolicy method 2023-06-01 19:38:01 +02:00
Andrea Bollini
b29409e08e Merge branch 'duracom-136_CST-9634' of https://bitbucket.org/4Science/dspace-cris into duracom-136_CST-9634 2023-06-01 19:24:47 +02:00
Andrea Bollini
308bae43c7 Merge branch 'main' of https://github.com/DSpace/DSpace into duracom-136_CST-9634 2023-06-01 19:22:34 +02:00
Tim Donohue
379db2a166 Merge pull request #8860 from 4Science/DURACOM-127
[DURACOM-127] check if versioning is enabled for versioned identifier providers
2023-06-01 12:01:49 -05:00
Andrea Bollini
d76bdc6d47 CST-9634 Assure that REST API assumes all dates to be UTC if not specified 2023-06-01 18:47:52 +02:00
Tim Donohue
5be09e375b Merge pull request #8842 from 4Science/DURACOM-126
Fix validation issue with hidden submission's sections
2023-06-01 11:31:39 -05:00
Giuseppe Digilio
cdac4c4459 Merge branch 'main' into DURACOM-126 2023-06-01 17:53:59 +02:00
Alexandre Vryghem
eb224eb809 100553: Added stricter metadata field & schema validation 2023-06-01 17:11:24 +02:00
Francesco Pio Scognamiglio
4e7107f63c Merge branch 'main' into DURACOM-149 2023-06-01 15:12:08 +02:00
Francesco Pio Scognamiglio
0ec27875bc [DURACOM-149] use right formatter for mapping of dc.date.issued in pubmed live import; added integration tests 2023-06-01 15:10:59 +02:00
Giuseppe Digilio
dae8f166e1 [DURACOM-126] add java doc 2023-06-01 14:48:46 +02:00
Giuseppe Digilio
56c8820d31 [DURACOM-126] Improve test in order to check item can be submitted 2023-06-01 14:41:58 +02:00
Nona Luypaert
b0068e3d4e Merge branch 'main' into contract-pr-222-primary-bitstream-on-bundle-support 2023-06-01 12:22:56 +02:00
Mohamed Saber Eskander
f587989726 edited param name 2023-06-01 11:48:45 +03:00
eskander
00576b7fb6 Merge remote-tracking branch 'origin/main' into duracom-136_CST-9634 2023-06-01 10:34:31 +03:00
Mark H. Wood
b272b1fcab Make service lookup retry log at DEBUG; radically shorten the trace. 2023-05-31 17:37:34 -04:00
Tim Donohue
894bc39e8b Merge pull request #8698 from mwoodiupui/embargo-date
Calculate the correct maximum for access condition start and end dates
2023-05-31 11:53:46 -05:00
Tim Donohue
cac0859cb1 Merge pull request #8850 from alanorth/rework-im-thumbnail-filter
Minor improvements to ImageMagick thumbnail filters
2023-05-31 11:03:40 -05:00
Nona Luypaert
2c43270152 102052: Create PrimaryBitstreamController for primaryBitstream endpoint + ITs 2023-05-31 16:53:45 +02:00
Nona Luypaert
99d4a8447e 102052: Add remaining CRUD methods to BundlePrimaryBitstreamLinkRepository 2023-05-31 16:52:04 +02:00
Jens Vannerum
cfb932547c Merge remote-tracking branch 'atmireGithub/w2p-101481_Referrer-fix' into w2p-refferex-fix-main 2023-05-31 13:57:59 +02:00
damian
e31a223882 Item counts are now managable. 2023-05-31 13:53:09 +02:00
Mohamed Saber Eskander
e6daf49f25 added missed configuration 2023-05-31 13:26:28 +03:00
Mohamed Saber Eskander
bfbf17f577 - refactoring and adding new test cases
- update resource polices of derivative bitstreams also
- check authorization when run script
- added some log information
2023-05-31 12:33:56 +03:00
Giuseppe Digilio
54981b0bd2 Merge branch 'main' into DURACOM-126 2023-05-30 09:11:49 +02:00
NikitaKr1vonosov
3ee18f5a6e Merge branch 'main' into CST-5728 2023-05-29 13:05:46 +02:00
Nikita Krivonosov
3ba6db388b Merge remote-tracking branch 'origin/CST-5728' into CST-5728 2023-05-29 12:42:39 +02:00
Nikita Krivonosov
d0d6776810 [CST-5728] LYRASIS [Donated]: DSpace7: Implement signposting pattern in DSpace (REST) 2023-05-29 09:56:07 +02:00
Paulo Graça
c11679c6de removing tailing semicolon 2023-05-27 09:19:15 +01:00
Paulo Graça
c2a5e2ad80 Merge branch 'main' into enhancement/xoai-access-status-plugin 2023-05-27 09:15:59 +01:00
Paulo Graça
a9eab4a254 also add support for access status at bitstream level 2023-05-27 08:23:46 +01:00
Paulo Graça
43ab705568 fixing code style errors 2023-05-26 22:47:02 +01:00
nwoodward
fdef871e69 fix checkstyle 2023-05-26 15:41:14 -05:00
nwoodward
e889abc623 check that zip file exists and has correct MIME type; also make sure that common temp imports directory is not removed 2023-05-26 15:41:14 -05:00
Paulo Graça
4fa51d03d1 adding support for access status xoai plugin 2023-05-26 17:14:10 +01:00
Paulo Graça
b47fd234e8 Merge branch 'main' into enhancement/addressing-#8633 2023-05-26 12:22:38 +01:00
Francesco Pio Scognamiglio
78f91b096b Merge branch 'main' into DURACOM-127 2023-05-26 09:24:17 +02:00
Mark H. Wood
7b720d6521 Merge pull request #8772 from alexandrevryghem/use-variables-in-email-templates_contribute-main
Use variables in email templates contribute main
2023-05-25 13:57:27 -04:00
Tim Donohue
bdcfb8523d Merge pull request #8796 from atmire/w2p-100414_Missing-search-result-statistics-PR
Missing search results statistics
2023-05-25 08:55:07 -05:00
Giuseppe Digilio
ec3cc2dcf1 Merge branch 'main' into duracom-136_CST-9634 2023-05-25 15:49:41 +02:00
Giuseppe Digilio
e3beefadaa Merge remote-tracking branch 'bitbucket4science/DURACOM-126' into DURACOM-126 2023-05-25 14:49:55 +02:00
Giuseppe Digilio
f750f85b17 Merge remote-tracking branch 'origin/main' into DURACOM-126 2023-05-25 14:48:24 +02:00
Yana De Pauw
f3b939e88f 94299: Add rest.patch.operations.limit to config file 2023-05-25 15:34:05 +03:00
Paulo Graça
111b2e4a6a Merge branch 'main' into enhancement/addressing-#8633 2023-05-25 09:42:31 +01:00
Bui Thai Hai
b3a21ebd5a Minor Tweaks 2023-05-25 14:54:46 +07:00
Bui Thai Hai
eb46a99dff Fix: default sort option (lastModified) for discovery 2023-05-25 10:21:44 +07:00
Mark H. Wood
571df9b38a Add a simple test for new TimeHelpers class. 2023-05-24 15:56:03 -04:00
Tim Donohue
c0446d45dc Merge pull request #8783 from kshepherd/LU-30_bitstream_inheritence
Bitstreams should inherit collection DEFAULT_BITSTREAM_READ, falling back to bundle READ
2023-05-24 11:29:43 -05:00
Alexandre Vryghem
01d5276fd7 Replace occurrences of DSpace with the dspace.name variable 2023-05-24 17:53:58 +02:00
Francesco Pio Scognamiglio
4417eddb85 Merge branch 'main' into DURACOM-127 2023-05-24 15:43:14 +02:00
Paulo Graça
2ca723d687 Merge branch 'main' into enhancement/addressing-#8633 2023-05-24 09:36:16 +01:00
Alan Orth
bd36261b20 Merge pull request #8863 from 4Science/DURACOM-148
[DURACOM-148] add crossref metadata processor to manage the date issued field
2023-05-24 10:03:45 +03:00
Tim Donohue
9e5165e626 Merge pull request #8851 from buithaihai/DS-8832
Fix: Collection's admin cannot edit its template item.
2023-05-23 11:48:52 -05:00
Bui Thai Hai
2f59554a5d ADD: Unit Tests for fix 2023-05-23 15:05:34 +07:00
Paulo Graça
50f808a7d0 removing Person test configuration 2023-05-23 08:51:27 +01:00
Francesco Pio Scognamiglio
8980b07f2b [DURACOM-148] fix typo: remove trailing whitespace 2023-05-23 08:51:07 +02:00
Francesco Pio Scognamiglio
8a0645c628 Merge branch 'main' into DURACOM-148 2023-05-23 08:46:30 +02:00
Bui Thai Hai
9bc7edb733 Fix: Collection's admin cannot edit its template item. 2023-05-23 09:14:10 +07:00
Tim Donohue
e0d2248da3 Merge pull request #8859 from alanorth/bump-tika-dep
pom.xml: bump tika from 2.3.0 to 2.5.0
2023-05-22 16:56:26 -05:00
Alexandre Vryghem
05f1714b05 Replace occurrences of DSpace with the dspace.name variable 2023-05-22 23:15:19 +02:00
Tim Donohue
33545667ef Merge pull request #8862 from tdonohue/update_spring_boot
Update to latest Spring Boot
2023-05-22 12:33:13 -05:00
Alan Orth
5357923d28 dspace-api: avoid generation loss in ImageMagickThumbnailFilter
When filtering PDF bitstreams, the ImageMagickThumbnailFilter first
creates an intermediate JPEG and then a "thumbnail" JPEG. These two
operations are both lossy. The ImageMagick usage guide warns against
doing that:

> JPEG losses (sic) information, degrading images when saved.
> Use some other format for intermediate images during processing.
> Only use JPEG format, for the final image, not for further processing.

As our current filter architecture requires writing a temporary file
we must choose one of the following lossless formats to use for the
intermediate: PNG, TIFF, or MIFF. MIFF is ImageMagick's own internal
format and is much faster to write than PNG.

By eliminating the first lossy conversion we gain 1.1% points on the
ssimulacra2 (v2.1) scoring scale of visual quality.

See: https://imagemagick.org/Usage/formats/#jpg
2023-05-22 18:36:11 +03:00
Alan Orth
7ebb5290fc dspace-api: comment ImageMagick filters
Add some comments to document the functionality of the ImageMagick
thumbnail filters. This will help others understand it later when
we need to re-factor them.
2023-05-22 18:36:11 +03:00
Alan Orth
a4105bdcb0 dspace-api: simplify logic in ImageMagickThumbnailFilter
There is no point passing a page parameter here, with a default of
0 no less, because we will *always* use the first page of the PDF
to generate the thumbnail. No other filters use this function and
the page parameter is not configurable so we should just hard code
it.
2023-05-22 18:36:11 +03:00
Alan Orth
7dbfa9a3c5 dspace-api: minor logging fix in ImageMagickThumbnailFilter
Minor standardization to logging (unneccessary capitalization and
excessive spaces).
2023-05-22 18:36:11 +03:00
Alan Orth
c37622cb3f dspace-api: improve logging in ImageMagickThumbnailFilter
Instead of logging the name of the source bitstream, we should be
logging the name of the actual thumbnail bitstream that is being
considered for replacement. For example, instead of this:

  IM Thumbnail manual.pdf matches pattern and is replaceable.

... the message should read:

  IM Thumbnail manual.pdf.jpg matches pattern and is replaceable.

This message is already confusing enough, but this will help.
2023-05-22 18:36:11 +03:00
Alan Orth
7ab5f3b489 dspace-api: fix typo in ImageMagickThumbnailFilter 2023-05-22 18:36:11 +03:00
Tim Donohue
c3dd1f8489 Update to latest Spring Boot 2023-05-22 09:23:21 -05:00
Francesco Pio Scognamiglio
cbfed3e218 [DURACOM-148] add crossref metadata processor to manage the date issued field 2023-05-22 15:44:52 +02:00
Paulo Graça
fc2589464f checkstyle violations fixing and remove unnecessary max rows limit 2023-05-22 12:57:56 +01:00
Francesco Pio Scognamiglio
8ddf4702af [DURACOM-127] check if versioning is enabled for versioned identifier providers 2023-05-22 11:53:03 +02:00
Alan Orth
6018a2b7be pom.xml: bump tika from 2.3.0 to 2.5.0
A handful of bug fixes, improvements to PDF parsing, and updates
to dependencies. This is the highest we can go right now without
hitting dependency convergence issues related to bouncycastle.

See: https://github.com/apache/tika/blob/2.5.0/CHANGES.txt
2023-05-22 11:50:59 +03:00
Paulo Graça
2b3af3a126 checkstyle violations fixing 2023-05-22 08:42:33 +01:00
Kim Shepherd
208cac08d5 modifying unit tests as per CI feedback, stubbings now unnecessary 2023-05-21 15:43:26 +12:00
Kim Shepherd
2ef268380f Unlink DOI from item on deletion even if no provider is configured 2023-05-21 15:43:26 +12:00
Paulo Graça
6fa9e74d90 checkstyle violations fixing 2023-05-20 11:35:27 +01:00
Paulo Graça
687b6216df checkstyle violations fixing 2023-05-20 10:41:51 +01:00
Paulo Graça
cd73d38be8 Merge branch 'enhancement/addressing-#8633' of github.com:paulo-graca/DSpace into enhancement/addressing-#8633 2023-05-20 08:07:58 +01:00
Paulo Graça
32b2b7dacb Merge branch 'main' of github.com:dspace/dspace into enhancement/addressing-#8633 2023-05-20 08:07:29 +01:00
Paulo Graça
0409373b61 handling exceptions 2023-05-20 08:07:05 +01:00
kshepherd
6fd31622ae Merge pull request #8752 from amgciadev/fix-8732-b
Fix for #8732 and #8750
2023-05-20 10:26:45 +12:00
Paulo Graça
30223d6196 Merge branch 'DSpace:main' into enhancement/addressing-#8633 2023-05-19 22:48:34 +01:00
Paulo Graça
d7d7f7c370 support for entity type for collection at input submissions 2023-05-19 22:44:07 +01:00
Tim Donohue
116871d790 Merge pull request #8853 from alanorth/bump-pom-dependencies
pom.xml: bump a handful of dependencies
2023-05-19 12:35:39 -05:00
Alan Orth
564f9fdcf6 pom.xml: bump a handful of dependencies
All minor and patch versions with no breaking changes:

- pdfbox 2.0.28
  - See: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310760&version=12352284
- log4j 2.20.0
  - See: https://logging.apache.org/log4j/2.x/release-notes/2.20.0.html
- rome 1.19.0
  - See: https://github.com/rometools/rome/releases/tag/1.19.0
- slf4j 1.7.36
  - https://www.slf4j.org/news.html
- solr-client 8.11.2
  - https://lucene.apache.org/core/8_11_2/changes/Changes.html
- hibernate 5.6.15.Final
  - See: https://hibernate.org/orm/releases/5.6/#whats-new
- hibernate-validator 6.2.5.Final
  - See: https://hibernate.org/validator/documentation/migration-guide/#6-2-x
- postgresql JDBC driver 42.6.0
2023-05-19 16:43:05 +03:00
NikitaKr1vonosov
9e2b4a1acf Merge branch 'main' into CST-5728 2023-05-19 13:01:38 +02:00
Tim Donohue
95ad0ba927 Merge pull request #8822 from tdonohue/remove_oracle
Remove Oracle Support
2023-05-18 16:43:38 -05:00
Tim Donohue
c1629ff478 Merge pull request #8712 from tdonohue/update_spring_boot
Update Spring & Spring Boot versions
2023-05-18 11:49:37 -05:00
Mark H. Wood
4c00e13b52 Merge branch 'main' into reqitem-response 2023-05-18 08:29:39 -04:00
Giuseppe Digilio
083eb07251 Merge branch 'main' into DURACOM-126 2023-05-18 11:57:30 +02:00
Tim Donohue
d5ac263743 Merge pull request #8795 from arvoConsultores/DS-8636
#8636 Request a Copy's "helpdesk" strategy requires authentication t…
2023-05-17 16:46:42 -05:00
aroman-arvo
9784c6f50d 8636 - checkstyle 2023-05-17 19:26:50 +02:00
aroman-arvo
567e989202 8636 Request a Copy - integration test increased 2023-05-17 19:11:31 +02:00
Tim Donohue
604bcea759 Merge pull request #8847 from saschaszott/patch-6
remove configuration property eperson.subscription.onlynew
2023-05-17 10:43:53 -05:00
Tim Donohue
d3c03efe61 Merge pull request #8799 from uofmsean/fix-8490-preferred-label-lookup
Fix #8490 preferred label lookup
2023-05-16 16:53:37 -05:00
Tim Donohue
c0e62657f6 Merge pull request #8789 from amtuannguyen/main
properly escape ':' in query to address #8490
2023-05-16 16:51:25 -05:00
aroman-arvo
b1bb430ab2 Merge branch 'DS-8636' of https://github.com/arvoConsultores/DSpace into DS-8636 2023-05-16 13:50:02 +02:00
aroman-arvo
5f58e587f3 Security issue fixed: request item token exposed 2023-05-16 13:49:16 +02:00
aroman-arvo
84ac53c7c2 Security issue fixed: request item token exposed 2023-05-16 13:29:45 +02:00
Alexandre Vryghem
3ab0c812a6 Merge remote-tracking branch 'upstream/main' into issue-1671_fix-relationships-not-updating-view-on-submission-form_contribute-main 2023-05-16 12:09:40 +02:00
Sascha Szott
2f1d52bf3f removed eperson.subscription.onlynew 2023-05-16 09:09:17 +02:00
Agustina Martinez
95af5fff41 VersionedDOIIdentifierProvider: add non-fatal check that dso is of type Item 2023-05-15 08:40:57 +01:00
Agustina Martinez
754c0756c4 Merge branch 'main' into fix-8732-b 2023-05-15 08:40:27 +01:00
Tim Donohue
f67f55cb21 Merge pull request #8839 from DSpace/paulo-graca-dspace-submission-fix
Replace invalid dc.terms.references with a proper dcterms.references
2023-05-12 16:22:20 -05:00
Tim Donohue
0504e10dab Merge pull request #8841 from alexandrevryghem/fix-community-page-sorting_contribute-main
Fixed community's sub-communities and collections sort
2023-05-12 15:00:30 -05:00
Tim Donohue
baf1b94962 Merge pull request #8845 from tdonohue/fix_codecov_settings
Fix Codecov settings to notify after one coverage file upload
2023-05-12 11:43:01 -05:00
Tim Donohue
c6b044222d Remove setting to wait on two codecov builds 2023-05-12 10:53:59 -05:00
samuel
f49b6f24ba 99221: Fix minor issues with Relationships in submission - repair relationship error 2023-05-12 15:25:02 +02:00
samuel
2e69ba7f63 96598: Test feedback pt. 3: submission - repair auto-refresh 2023-05-12 15:24:58 +02:00
eskander
2bdb7be422 Merge remote-tracking branch 'origin/duracom-136_CST-9634' into duracom-136_CST-9634 2023-05-12 15:35:52 +03:00
Mohamed Saber Eskander
07fbe15126 refactoring and added new IT class 2023-05-12 15:35:22 +03:00
Agustina Martinez
f844ca347b Improved fix: override missing register method in VersionedDOIIdentifierProvider 2023-05-12 13:24:28 +01:00
Agustina Martinez
1d355b7ed0 Merge branch 'DSpace:main' into fix-8732-b 2023-05-12 13:06:27 +01:00
Giuseppe Digilio
cf0215b029 [CST-9634] add administrativeBulkAccess discovery configuration 2023-05-12 13:15:48 +02:00
Giuseppe Digilio
3f5406df24 [CST-9634] Fix exception message 2023-05-12 13:13:38 +02:00
damian
1cc6fb2f58 Item counters refactor. Removing unnecessary code. 2023-05-12 12:29:22 +02:00
Jens Vannerum
b24f121c76 94299: checkstyle issue after main merge 2023-05-12 10:11:09 +02:00
eskander
27f874a08b refactoring and adding new test cases 2023-05-12 10:58:17 +03:00
Jens Vannerum
81f1eab2ed Merge remote-tracking branch 'DSpace_github/main' into w2p-94299_Multiple_Bitstream_deletion_endpoint
# Conflicts:
#	dspace-api/src/main/resources/Messages.properties
#	dspace-server-webapp/src/main/java/org/dspace/app/rest/exception/DSpaceApiExceptionControllerAdvice.java
#	dspace-server-webapp/src/test/java/org/dspace/app/rest/BitstreamRestRepositoryIT.java
2023-05-12 09:41:04 +02:00
eskander
fd388620c0 Merge remote-tracking branch 'origin/duracom-136_CST-9634' into duracom-136_CST-9634
# Conflicts:
#	dspace-api/src/main/java/org/dspace/app/bulkaccesscontrol/BulkAccessControl.java
#	dspace-api/src/test/java/org/dspace/app/bulkaccesscontrol/BulkAccessControlIT.java
2023-05-12 09:18:46 +03:00
eskander
44c066d07a refactoring and adding new test cases 2023-05-12 09:12:05 +03:00
Kim Shepherd
6943399938 #8783 checkstyle fixes 2023-05-12 18:03:02 +12:00
Kim Shepherd
b69517da74 #8783 don't inherit DEFAULT_BITSTREAM_READ if item has current embargo 2023-05-12 17:48:27 +12:00
Kim Shepherd
c2575b05b2 #8783 checkstyle fixes for integration test 2023-05-12 17:48:27 +12:00
Kim Shepherd
4a88573dc1 #8783 Strip out unused generateAutomaticPolicies method from AuthorizeService 2023-05-12 17:48:27 +12:00
Kim Shepherd
019d0319dc #8783 New bitstreams inherit DEFAULT_BITSTREAM_READ from owning collection
Otherwise will keep inherited READ from bundle. Does not affect embargos set during submission or workflow, these will always be applied afterwards.
2023-05-12 17:48:27 +12:00
Kim Shepherd
03c39cf6f1 Bitstreams should inherit DEFAULT_BITSTREAM_READ, then DEFAULT_ITEM_READ
When generating automatic policies, bitstream DSOs have always inherited
from DEFAULT_ITEM_READ, even if the collection's DEFAULT_BITSTREAM_READ
policy differs. This bugfix checks DEFAULT_BITSTREAM_READ first, and
uses DEFAULT_ITEM_READ as a fallback.
2023-05-12 17:48:27 +12:00
Adán Román Ruiz
2cf5b290b6 Fix "Simultaneous deletion of multiple bitstreams from the same bundle often compromises the state of the bundle" (#8778)
* DS-8694

* clean imports

* cleaning code

* DS-8694 - re-deletion of bitstream throw exception

* ds-8694 - clean code
2023-05-11 16:59:38 -05:00
Andrea Bollini
50e816f718 CST-9634 fix issues with date timezone and inheritance of default policies 2023-05-11 23:39:34 +02:00
Jens Vannerum
78fba6b579 94299: checkstyle 2023-05-11 21:24:31 +02:00
damian
0231af5867 Item counters added to Communities and Collections REST API 2023-05-11 20:08:32 +02:00
Giuseppe Digilio
2f96696ba5 Merged main into DURACOM-126 2023-05-11 16:38:54 +00:00
Yana De Pauw
c9c055ed67 Merge branch 'discovery-fixes-7.2' into discovery-fixes 2023-05-11 18:02:05 +02:00
Yana De Pauw
7c7824f913 Implement community feedback 2023-05-11 17:57:45 +02:00
Mark H. Wood
a026a8ced0 Fix test broken by new injection plan. 2023-05-11 11:43:54 -04:00
Jens Vannerum
c670251a68 94299: Fix minor issues 2023-05-11 17:13:13 +02:00
Mohamed Saber Eskander
9e013ef97f refactoring BulkAccessControl 2023-05-11 14:10:34 +03:00
Kristof De Langhe
9941ca2b78 Merge branch 'w2p-100414_Missing-search-result-statistics-7.0' into w2p-100414_Missing-search-result-statistics-PR 2023-05-11 11:37:18 +02:00
Kristof De Langhe
0528b4dd30 100414: Missing search result statistics code cleanup + extra test 2023-05-11 11:16:16 +02:00
Mohamed Saber Eskander
4e64afbe3b bulk access controll 2023-05-11 12:04:20 +03:00
Alexandre Vryghem
b01891cfde Merge remote-tracking branch 'upstream/main' into fix-community-page-sorting_contribute-7.4 2023-05-10 23:41:43 +02:00
Mark H. Wood
034fc3317b Fix unconfigured collaborator by not scanning it into two ApplicationContexts.
Minor tidying.
2023-05-10 17:37:36 -04:00
Paulo Graça
ccf9bc2d98 Update submission-forms.xml 2023-05-09 17:20:44 +01:00
eskander
6b40f2eea6 [CST-9634] refactoring 2023-05-09 14:46:37 +03:00
Mohamed Saber Eskander
9a2a8ef4f5 [CST-9634] created new endpoint for bulkAccessConditionOptions configuration 2023-05-09 13:31:37 +03:00
Tim Donohue
a2256ef8ec Merge pull request #8814 from ubks-mp/DSpace-7.5
LDAP Auth extended for many groups
2023-05-08 16:44:40 -05:00
Mark H. Wood
a86235a06b Simplify dependency injection.
To use autowiring via alias to select a grantor strategy is needlessly
complicated and fragile.  Instead, configure the email sender by
explicit constructor injection.  Other collaborators are internal
matters for the class and continue to be autowired.
2023-05-08 15:35:38 -04:00
Mark H. Wood
f8432ac7d4 Include new email template missed in original commit. 2023-05-08 13:15:29 -04:00
Mark H. Wood
6c8bcb334e Fix nonsense class name. 2023-05-08 12:49:43 -04:00
Tim Donohue
568a733d5e Merge pull request #8816 from TexasDigitalLibrary/DS-2175
DS-2175: send "forgot password" email if user tries to register with an existing email address
2023-05-08 11:17:03 -05:00
Mark H. Wood
896cffda7d Get request-copy response email body from backend templates, as with all other emails.
There is a considerable quantity of other changes here which were made to
facilitate testing by making the affected class a bean and injecting the
desired "strategy" class programmatically in the test.
2023-05-08 11:48:56 -04:00
aroman-arvo
6b10fc3783 Fix Style 2023-05-08 09:15:05 +02:00
aroman-arvo
909003bfac Fix style 2023-05-08 09:01:05 +02:00
aroman-arvo
3c37dd4519 ds-8636 - indentation 2023-05-08 08:44:49 +02:00
aroman-arvo
a2ee96809d Merge branch 'DS-8636' of https://github.com/arvoConsultores/DSpace into DS-8636 2023-05-08 08:42:40 +02:00
aroman-arvo
0783f7ff82 DS-8636 - all files option fixed 2023-05-08 08:37:55 +02:00
Alexandre Vryghem
2dfc373ad1 Fixed communities sub-communities and communities collections sorting 2023-05-07 22:06:01 +02:00
Alexandre Vryghem
bc73e312e0 100553: Added test for create metadata schema & field and created test for sort byFieldName 2023-05-07 17:35:10 +02:00
Nikita Krivonosov
7ba68c40ab [CST-5728] LYRASIS [Donated]: DSpace7: Implement signposting pattern in DSpace (REST) 2023-05-07 16:25:27 +02:00
Andrea Bollini
7971887b9a DURACOM-136 allow script execution by user other than admins 2023-05-07 10:58:41 +02:00
Michael W Spalti
5088447111 Updated solr query params. 2023-05-06 11:30:51 -07:00
Nicholas Woodward
29da9cf9c0 Merge branch 'main' into DS-2175 2023-05-05 14:37:37 -05:00
Tim Donohue
2e6085802f Merge pull request #8807 from hardyoyo/fix-cli-container
Add missing unzip command to CLI container
2023-05-05 14:35:45 -05:00
Tim Donohue
346c3e5cd9 Merge pull request #8710 from 4Science/CST-6402
Add SAF import via remote URL
2023-05-05 10:57:11 -05:00
Nona Luypaert
ab240d7f0e 101549: Fix BrowsesResourceControllerIT 2023-05-05 17:47:24 +02:00
Nona Luypaert
8c7f7475eb Merge branch 'contract-pr-225-browse-by-support-for-controlled-vocabulary-7.4' into contract-pr-225-browse-by-support-for-controlled-vocabulary-main
Conflicts:
	dspace-server-webapp/src/main/java/org/dspace/app/rest/repository/BrowseIndexRestRepository.java
2023-05-05 16:57:36 +02:00
Nona Luypaert
acb700c887 101549: Fix BrowseIndexMatcher and BrowsesResourceControllerIT 2023-05-05 15:55:49 +02:00
Jens Vannerum
999fb46e8d 94299: Add IT 2023-05-05 15:10:12 +02:00
Nona Luypaert
648b27befb 101549: Make BrowseIndexRestRepository#findAll also return hierarchicalBrowses 2023-05-05 14:52:16 +02:00
Jens Vannerum
80706592aa Revert "94299 Multiple Bitstream deletion endpoint"
This reverts commit 51d8874a
2023-05-05 13:07:47 +02:00
Jens Vannerum
09b56c2d99 94299: Configurable limit on amount of patch operations 2023-05-05 13:05:34 +02:00
Jens Vannerum
8be66c935d 94299: Remove bitstreams in bulk via patch 2023-05-05 12:35:40 +02:00
Marie Verdonck
928a46d30f Merge branch 'main' into contract-pr-225-browse-by-support-for-controlled-vocabulary-main
# Conflicts:
#	dspace-server-webapp/src/main/java/org/dspace/app/rest/repository/BrowseIndexRestRepository.java
2023-05-05 10:35:27 +02:00
Marie Verdonck
66eb8a548f Browse-by support for controlled vocabularies
https://github.com/DSpace/RestContract/pull/225
2023-05-04 20:14:44 +02:00
Francesco Pio Scognamiglio
390a6f1b44 Merge branch 'main' into CST-6402 2023-05-04 08:44:21 +02:00
Tim Donohue
dac7ed2f09 Migrate to org.hibernate.type.TextType from our custom LobType 2023-05-03 15:59:01 -05:00
Tim Donohue
7a209d228a Remove oracle specific Java code / comments. 2023-05-03 14:08:05 -05:00
Tim Donohue
140cdc6de0 Remove all oracle-specific migration scripts 2023-05-03 14:08:05 -05:00
Tim Donohue
6fbf97a6b3 Remove oracle mentions from configs / READMEs 2023-05-03 14:08:05 -05:00
Tim Donohue
6b7656f8b8 Remove oracle profiles from POMs 2023-05-03 14:08:05 -05:00
Tim Donohue
53a09a9ba7 Merge pull request #8800 from hutattedonmyarm/8792-fix-long-title-export
Fix #8792, change column type of Process.parameters to TEXT
2023-05-03 14:06:56 -05:00
Nicholas Woodward
980e50b877 Merge branch 'main' into DS-2175 2023-05-03 12:23:17 -05:00
Tim Donohue
22c667e7cd Merge pull request #8766 from Ma-Tador/synced
fix bug: reset password from Admin Panel when Captcha enabled
2023-05-03 10:52:46 -05:00
Ma-Tador
310b7a9b0c Add missing request parameter in RegistrationRestRepositoryIT 2023-05-03 09:01:26 +02:00
Ma-Tador
37e93e278b Merge branch 'DSpace:main' into synced 2023-05-03 08:34:27 +02:00
nwoodward
9cca5ee12a updated tests to reflect that registering with an existing email address no longer throws an unprocessable exception 2023-05-02 15:55:18 -05:00
Kristof De Langhe
12ad2064c4 101481: View events referrer fix 2023-05-02 17:48:32 +02:00
Giuseppe Digilio
ed845cbfa2 Merged main into DURACOM-126 2023-05-02 13:59:46 +00:00
Mohamed Saber Eskander
518cdb7ff0 [DURACOM-126] solved Submission with a validation error on a hidden step can't be submitted 2023-05-02 14:42:33 +03:00
Ma-Tador
603cd9a19b Remove white spaces to comply with DSpace checkstyle 2023-05-02 12:11:44 +02:00
Francesco Pio Scognamiglio
ef138cf76d [CST-6402] fix saf import via remote url: the source param is not used 2023-05-02 09:19:32 +02:00
Francesco Pio Scognamiglio
637003a75e Merge branch 'main' into CST-6402 2023-05-02 08:53:49 +02:00
Tim Donohue
7cebc65a31 Merge pull request #8784 from atmire/w2p-89779_VersionedHandleIdentifierProviderWithCanonicalHandles-fix
Fix for the optional VersionedHandleIdentifierProviderWithCanonicalHandles identifier system
2023-05-01 16:50:22 -05:00
nwoodward
80af0665c1 send "forgot password" email if user tries to register with email address already in eperson table 2023-05-01 15:15:28 -05:00
Tim Donohue
9bbfb8de68 Merge pull request #8776 from CVamsi27/ds-8728
Implement default description for Community/Collection for OpenSearch
2023-05-01 13:22:29 -05:00
Chandaluri Vamsi Krishna
fdf4a4d571 Updated to fetch dynamic default description
Signed-off-by: Chandaluri Vamsi Krishna <cvamsik99@gmail.com>
2023-04-30 22:32:42 +05:30
Chandaluri Vamsi Krishna
da09d4b1f5 Merge branch 'DSpace:main' into ds-8728 2023-04-29 08:51:31 +05:30
Tim Donohue
80cb84433b Merge pull request #8781 from CVamsi27/ds-8671
Removed instances of useProxies
2023-04-28 16:48:50 -05:00
Tim Donohue
05a1a371fa Merge pull request #8745 from alexandrevryghem/w2p-99466_made-import-external-source-date-uniform_contribute-main
Removed timestamp from dc.date.issued when importing from external sources
2023-04-28 16:38:30 -05:00
Tim Donohue
afcc9dc6c5 Merge pull request #8742 from 4Science/duracom-125
MetadataValues' list doesn't respect ordering after been modified
2023-04-28 15:03:22 -05:00
Abel
b656cba343 Merge branch 'dspace-7.5-sistedes' into feature-imagemagick-video 2023-04-28 17:18:01 +02:00
Michael Plate
c919df81fb LDAP Auth extended for many groups 2023-04-28 17:09:55 +02:00
Abel
77f6daf0a3 Change import order 2023-04-28 13:36:20 +02:00
Francesco Pio Scognamiglio
dd1a5188b6 [CST-6402] manage saf import via remote url in CLI mode 2023-04-28 10:28:27 +02:00
Francesco Pio Scognamiglio
1138667f3a [CST-6402] fix saf import via remote url: the url param is a string 2023-04-28 09:51:03 +02:00
Francesco Pio Scognamiglio
80a0e3267a Merge branch 'main' into CST-6402 2023-04-28 08:43:23 +02:00
Abel
f7414f1d58 Add a comment about ImageMagick policies 2023-04-28 04:40:23 +02:00
Abel
413c6f443f Use same defaults than ImageMagickThumbnailFilter 2023-04-28 04:28:38 +02:00
Abel
d256065fc2 Set FRAME_NUMBER using a constant 2023-04-28 04:09:26 +02:00
Abel
43661de74e Add Override annotation 2023-04-28 03:59:00 +02:00
Abel
535edef1b3 Add ImageMagickVideoThumbnailFilter 2023-04-28 03:53:43 +02:00
Tim Donohue
5944c4c1bf Merge pull request #8755 from hutattedonmyarm/main
Change description column in orcid tables to TEXT type
2023-04-27 16:47:33 -05:00
Tim Donohue
42663a3e0e Merge pull request #8762 from atmire/w2p-100302_Pubmed-lookup-too-many-requests-7.5
Fix PubMed lookup too many requests
2023-04-27 14:20:31 -05:00
Tim Donohue
8cd82e5d2e Update to Spring Boot v2.7.11 2023-04-25 17:13:40 -05:00
Tim Donohue
66d7c1bde6 Update to latest spring-boot and spring 2023-04-25 17:13:40 -05:00
Tim Donohue
42f548b17e Remove check for double-encoded param. It is no longer double-encoded after upgrading Spring Boot. 2023-04-25 17:13:40 -05:00
Tim Donohue
a15a41401b Update Spring & Spring Boot versions 2023-04-25 17:13:40 -05:00
Tim Donohue
89c49bf5ae Merge pull request #8793 from tdonohue/update_jetty
Update to latest Jetty v9
2023-04-25 14:48:09 -05:00
Hardy Pottinger
61845da1aa Install unzip in Dockerfile.cli so cli.ingest.yml can work correctly (requires unzip) 2023-04-25 11:17:24 -05:00
Tim Donohue
74e3d10326 Merge pull request #8794 from tdonohue/update_postgres_docker
Update Postgres Docker scripts to build/tag image automatically
2023-04-24 17:14:10 -05:00
Tim Donohue
f1f4fe4cdf Update to Postgres v13 (as v11 images are not being maintained). Add db.restore.yml upgrade script & enhance READMEs 2023-04-21 16:59:47 -05:00
max.nuding
d7c4d35d99 Add H2 and Oracle DB migrations 2023-04-21 11:52:24 +02:00
max.nuding
10d7b352ef Fix #8792, change column type of Process.parameters to TEXT 2023-04-21 07:55:24 +02:00
Sean Kalynuk
98b843668e Fix #8490 preferred label lookup
When the authority key still needs to be generated, skip the lookup for
the preferred label since it does not exist in Solr yet.
2023-04-20 14:08:30 -05:00
Tim Donohue
fea4067464 Merge pull request #8785 from mwoodiupui/event-consumer-doc
Document the need to avoid commit() during event dispatch.
2023-04-20 09:53:42 -05:00
Luca Giamminonni
c4f50c0116 Merge branch 'main' into DURACOM-92 2023-04-20 14:51:35 +02:00
Adán Román Ruiz
daa1a67e8c Merge branch 'main' into DS-8636 2023-04-20 13:30:26 +02:00
aroman-arvo
d9f7e04368 #8636 Request a Copy's "helpdesk" strategy requires authentication to respond 2023-04-20 11:13:28 +02:00
Kristof De Langhe
3154caaae8 Merge branch 'main' into w2p-100414_Missing-search-result-statistics-7.0 2023-04-20 10:21:59 +02:00
Francesco Pio Scognamiglio
9c7012b36b Merge branch 'main' into CST-6402 2023-04-20 09:05:47 +02:00
Tim Donohue
3df54e549f Revert change to alpine linux. Scripts all assume debian. 2023-04-19 15:14:40 -05:00
Tim Donohue
5e013a8a36 Update to latest version of Ant 2023-04-19 14:25:52 -05:00
Tim Donohue
aa7acb5be7 Update Postgres Docker scripts to build/tag images automatically 2023-04-19 14:25:18 -05:00
Tim Donohue
e3fb8bf601 Update to latest Jetty v9 2023-04-19 11:21:13 -05:00
Kristof De Langhe
583b38a2e6 100414: Missing search_result statistics fix 2023-04-19 12:23:26 +02:00
Max Nuding
0dc5a298dc Merge branch 'DSpace:main' into main 2023-04-19 11:32:12 +02:00
Tim Donohue
bcb7142b90 Merge pull request #8779 from DSpace/dependabot/maven/dspace-api/org.json-json-20230227
Bump json from 20180130 to 20230227 in /dspace-api
2023-04-17 16:30:20 -05:00
Tim Donohue
7b4bf36898 Merge pull request #8780 from tdonohue/update_actions
Split Codecov GitHub action to separate job & add retries. Update other actions.
2023-04-17 14:58:33 -05:00
Tuan Nguyen
b48ea37de5 properly escape ':' in query 2023-04-17 15:16:17 -04:00
Mark H. Wood
d5178a7129 Document the need to avoid commit() during event dispatch. 2023-04-17 09:26:49 -04:00
Kevin Van de Velde
090994a378 Merge remote-tracking branch 'upstream/main' into w2p-89779_VersionedHandleIdentifierProviderWithCanonicalHandles-fix 2023-04-17 14:11:25 +02:00
Chandaluri Vamsi Krishna
1ccde8468d Removed useProxies usage
Signed-off-by: Chandaluri Vamsi Krishna <cvamsik99@gmail.com>
2023-04-15 11:42:02 +05:30
Chandaluri Vamsi Krishna
24897cde05 Merge branch 'DSpace:main' into ds-8728 2023-04-15 10:56:10 +05:30
Tim Donohue
9b0f2ed433 Update to latest version of actions 2023-04-14 16:45:52 -05:00
Tim Donohue
e00388995b Split Codecov upload into a separate job. Make it auto-retry up to five times 2023-04-14 16:45:15 -05:00
Tim Donohue
180fb00864 Merge pull request #8717 from amgciadev/fix-1702-b
Fixes "Move item to a different collection is not inheriting policies"
2023-04-14 14:50:21 -05:00
dependabot[bot]
fe5a305264 Bump json from 20180130 to 20230227 in /dspace-api
Bumps [json](https://github.com/douglascrockford/JSON-java) from 20180130 to 20230227.
- [Release notes](https://github.com/douglascrockford/JSON-java/releases)
- [Changelog](https://github.com/stleary/JSON-java/blob/master/docs/RELEASES.md)
- [Commits](https://github.com/douglascrockford/JSON-java/commits)

---
updated-dependencies:
- dependency-name: org.json:json
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-14 17:40:58 +00:00
Tim Donohue
d180fc5393 Merge pull request #8756 from 4Science/DURACOM-128
[DURACOM-128] Unable to delete a profile
2023-04-14 11:44:26 -05:00
Tim Donohue
cc6c840cc8 Merge pull request #8735 from TexasDigitalLibrary/DS-8668
DS-8668: adds exception handler for when maximum upload size is exceeded
2023-04-14 11:43:14 -05:00
Tim Donohue
1e14974710 Merge pull request #8718 from 4Science/DSC-968_main
Added pagination on bitstream cleanup
2023-04-14 10:30:21 -05:00
corrado lombardi
b2b4dda243 checkstyle fix 2023-04-13 08:35:38 +02:00
Chandaluri Vamsi Krishna
9a345d3e64 Testing of default description
Signed-off-by: Chandaluri Vamsi Krishna <cvamsik99@gmail.com>
2023-04-13 09:52:14 +05:30
Chandaluri Vamsi Krishna
77d552b029 Added logic for default description
Signed-off-by: Chandaluri Vamsi Krishna <cvamsik99@gmail.com>
2023-04-13 09:50:57 +05:30
corrado lombardi
4685c9fc8d updated test expectation 2023-04-12 19:20:40 +02:00
corrado lombardi
3f0ae31573 Merge remote-tracking branch 'origin/DURACOM-92' into DURACOM-92 2023-04-12 18:51:45 +02:00
corrado lombardi
d8357d77aa used utils.copy to copy input stream content in order to prevent oom problems 2023-04-12 18:45:27 +02:00
corrado lombardi
9ef3794090 updated checksum calculation 2023-04-12 15:29:52 +02:00
Vincenzo Mecca
006f4a5ff7 Merge branch 'main' into duracom-125 2023-04-12 09:28:13 +02:00
Tim Donohue
7a8edb6de2 Merge pull request #8771 from tadeubas/main
Typo fix in dspace.cfg
2023-04-11 14:45:26 -05:00
TS
1c41794ddd Fix typo in dspace.cfg
Fixed typo "cummulative" to "cumulative" in dspace/config/dspace.cfg file
2023-04-11 15:02:24 -03:00
TS
d9cb1e51c4 Typo fix in dspace.cfg
Fixed typo "dermine" to "determine" in `dspace/config/dspace.cfg` file
2023-04-11 14:41:17 -03:00
Vincenzo Mecca
dca82017c4 Merge branch 'main' into duracom-125 2023-04-11 09:38:31 +02:00
Tim Donohue
4b1b9791ca Merge pull request #8679 from mark-cooper/dspace-solr
Build, use, publish dspace/dspace-solr imgs
2023-04-07 11:50:30 -05:00
Yana De Pauw
cf831ed7d5 Fix merge issues 2023-04-07 16:26:12 +02:00
Yana De Pauw
e6b7154204 Merge branch 'discovery-fixes-7.2' into discovery-fixes 2023-04-07 16:01:49 +02:00
Yana De Pauw
09f59b0b73 Merge remote-tracking branch 'upstream/main' into discovery-fixes 2023-04-07 16:00:45 +02:00
Yana De Pauw
e433720cd0 Add test-discovery xml 2023-04-07 15:31:46 +02:00
Yana De Pauw
11bc061ff9 97248: Implement feedback 2023-04-07 15:29:57 +02:00
Mark Cooper
b36e6df9bc Build, use, publish dspace/dspace-solr imgs 2023-04-06 16:48:36 -07:00
Ma-Tador
44e7bef9ca fix bug: reset password from Admin Panel #8765 2023-04-06 11:24:30 +02:00
Vincenzo Mecca
0c6ae1fffc Merge branch 'main' into duracom-125 2023-04-06 09:31:15 +02:00
Tim Donohue
5d14b23e05 Merge pull request #8727 from alexandrevryghem/added-vtt-to-default-supported-bitstream-types
Added WebVTT to default supported bitstream formats
2023-04-04 11:50:06 -05:00
Yana De Pauw
d152a49e4f Merge remote-tracking branch 'upstream/main' into w2p-100302_Pubmed-lookup-too-many-requests-7.5 2023-04-04 10:42:08 +02:00
Max Nuding
c54dc03bf2 Merge branch 'DSpace:main' into main 2023-04-04 10:15:59 +02:00
Alexandre Vryghem
0e0962e3bc Added WebVTT to default supported bitstream formats 2023-04-03 23:56:28 +02:00
Tim Donohue
564184496a Merge pull request #8722 from alanorth/update-bitstream-format-registry
Update bitstream format registry
2023-04-03 16:11:09 -05:00
Alexandre Vryghem
a26f6bc80e 100553: Removed possibility to updated schema name, element and qualifier 2023-04-03 14:12:56 +02:00
Alan Orth
e777142502 dspace-api: Add SQL migration for PNG
Add a Flyway SQL migration to update the description of PNG in the
bitstream format registry.
2023-03-31 20:56:54 +03:00
Alan Orth
f384eaaf91 dspace-server-webapp: Update IT for bitstream format registry
Since we added WebP and AVIF we need to increase the expected numb-
er of formats by two.
2023-03-31 20:56:54 +03:00
Alan Orth
3f8970048b dspace: add WebP and AVIF to bitstream format registry
WebP and AVIF are modern image formats that have been around for a
few years and have become increasingly widely supported.
2023-03-31 20:56:54 +03:00
Alan Orth
00313ad925 dspace.cfg: update name of PNG format
We should use the short description, not the mime type, as with all
other image types.
2023-03-31 20:56:54 +03:00
Alan Orth
855ca64c1e dspace: Change description for image/png to "PNG"
"image/png" is the mime type, not the short description.
2023-03-31 20:56:54 +03:00
Luca Giamminonni
d77125ccb9 Merge remote-tracking branch '4Science-bitbucket/main' into DURACOM-92 2023-03-31 11:37:09 +02:00
Vincenzo Mecca
9154374e4e Merge branch 'main' into duracom-125 2023-03-31 11:33:33 +02:00
max.nuding
d5c001463a Add integration tests for orcid bulk push with long titles 2023-03-31 08:49:53 +02:00
max.nuding
714c4c7fbb Add CLOB column annotations 2023-03-31 08:32:12 +02:00
Max Nuding
877b514882 Merge branch 'DSpace:main' into main 2023-03-31 08:13:16 +02:00
Tim Donohue
2d8b2b72ad Merge pull request #8716 from amgciadev/fix-8715-b
Fix #8714 and #8715
2023-03-30 12:34:54 -05:00
Tim Donohue
3b92ccede2 Merge pull request #8733 from mspalti/pagination-test
Performance improvement for pagination
2023-03-30 11:28:11 -05:00
Tim Donohue
516221b537 Merge pull request #8684 from 4Science/media-filter
CST-8792 remove all thumbnails in force mode
2023-03-30 11:03:21 -05:00
Yana De Pauw
de46faf23e 100302: Add debugging logs for pubmed requests 2023-03-30 17:39:07 +02:00
Alexandre Vryghem
96b2437e24 100553: Added backend validation on schema, element and qualifier to check if they contain dots 2023-03-30 17:26:29 +02:00
Yana De Pauw
f456beadba Merge branch 'w2p-100302_Pubmed-lookup-too-many-requests' into w2p-100302_Pubmed-lookup-too-many-requests-7.5 2023-03-30 16:33:40 +02:00
Yana De Pauw
b43a92062f 100302: Add delays between specific Pubmed calls 2023-03-30 16:28:31 +02:00
Alexandre Vryghem
0f8b9707f0 100553: Fixed the pagination for core/metadatafield/byFieldName rest endpoint 2023-03-30 16:01:57 +02:00
Alexandre Vryghem
a11ed8a0d3 100553: Sort the queried metadata fields ASC to always display exact matches on top (this can otherwise lead to angular errors) 2023-03-30 15:43:21 +02:00
Nikita Krivonosov
3738d21e0d [DURACOM-128] Unable to delete a profile 2023-03-30 09:34:25 +02:00
Agustina Martinez
ca66fc7309 Update VersionedDOIIdentifierProvider.java
Include check for DOI.SCHEME before returning DOI
2023-03-29 21:05:07 +01:00
Agustina Martinez
8989d5ad16 Update VersionedDOIIdentifierProvider.java
getBareDOI method already adds doi: SCHEME
2023-03-29 20:44:34 +01:00
Agustina Martinez
aa45a407ba Fix for #8732 and #8750 2023-03-29 17:30:59 +01:00
max.nuding
db3ebe84bd Change description column in orcid tables to TEXT type 2023-03-29 15:12:07 +02:00
Francesco Pio Scognamiglio
1f209f4782 Merge branch 'main' into CST-6402 2023-03-29 10:08:15 +02:00
Alexandre Vryghem
5976c5c970 Merge remote-tracking branch 'upstream/main' into w2p-99466_made-import-external-source-date-uniform_contribute-main 2023-03-29 09:59:18 +02:00
Vincenzo Mecca
0a4644750a Merge remote-tracking branch 'origin/main' into duracom-125 2023-03-29 09:06:48 +02:00
Tim Donohue
bdb88724ac Merge pull request #8705 from mspalti/jp2-test
Added test and format registry entry for JPEG2000 image
2023-03-28 16:50:30 -05:00
Tim Donohue
89143deb5c Merge pull request #8724 from arvoConsultores/DS-8719
fix #8719 update sequences
2023-03-28 16:15:45 -05:00
Francesco Pio Scognamiglio
c26d3d7104 Merge branch 'main' into CST-6402 2023-03-28 22:42:03 +02:00
Tim Donohue
3ac343b413 Merge pull request #8746 from tdonohue/fix_broken_alert_test
Fix SystemWideAlert date tests to use our DateMatcher
2023-03-28 13:35:14 -05:00
Tim Donohue
c1731f11ee Fix date tests to use our DateMatcher 2023-03-28 11:44:12 -05:00
Alexandre Vryghem
0133be8a49 99466: Fixed ArXiv date not being formatted as a date but just being saved as a plain string 2023-03-28 11:16:18 +02:00
Vincenzo Mecca
692c5b5a99 [DURACOM-125][#8736] Check replace operation correctness
feat:
  - Introduced ITs inside RestRepositories to check correctness of multi replacement with indexes.
2023-03-27 17:57:40 +02:00
Alexandre Vryghem
6a29d01496 99466: Fixed pubmed date not being saved like the dateFormatsToAttempt specified in pubmed-integration.xml 2023-03-27 17:35:50 +02:00
Yana De Pauw
48cf8403c3 Merge remote-tracking branch 'upstream/main' into w2p-100302_Pubmed-lookup-too-many-requests-7.5 2023-03-27 17:22:32 +02:00
Yana De Pauw
56aca5c14f 100302: Fix issue with Pubmed too many requests 2023-03-27 16:44:07 +02:00
Luca Giamminonni
5a32771791 [DURACOM-92] Fixed CheckerCommand if no bitstream was found 2023-03-27 13:25:01 +02:00
Luca Giamminonni
76d90e7d53 Merge remote-tracking branch '4Science-github/main' into DURACOM-92 2023-03-27 12:33:09 +02:00
Francesco Pio Scognamiglio
ae3c9642ff Merge branch 'main' into CST-6402 2023-03-27 09:17:13 +02:00
Michael Spalti
3d0b63e15b Remove unused import 2023-03-24 11:28:30 -07:00
Vincenzo Mecca
b1c1edc7f0 [DURACOM-125][#8736] Preserved order of modified MetadataValues
feat:
  - Introduced new Class with static methods usable to order
`MetadataValue` lists;
  - Introduced ITs also for `PatchMetadata` replace operations;
  - Introduced new method `DspaceObject#getMetadataFieldId`.
ref:
  - Replaced old sort method inside `ItemServiceImpl` with the new one
2023-03-24 17:34:02 +01:00
Vincenzo Mecca
882373faa1 [DURACOM-125][#8736] Failing Test ItemServiceTest
bug:
  - MetadataValue list once modified should respect a similar order of
the `@OrderBy` annotation inside the `DSpaceObject#metadata` field.
2023-03-24 17:14:06 +01:00
nwoodward
d3e70c4a07 added exception handler for when maximum upload size is exceeded 2023-03-24 08:34:45 -05:00
Michael Spalti
2b8c1ac604 minor refactoring 2023-03-23 16:11:50 -07:00
Michael Spalti
73a9fac5e9 Modified converter service 2023-03-23 13:01:18 -07:00
Tim Donohue
b68f03b845 Merge pull request #8707 from shorock/iss-8706
Off-by-one in solr-upgrade-statistics-6x #8706
2023-03-23 14:42:33 -05:00
Michael Spalti
ac48b2d1fd Fixed typo in bean definition 2023-03-20 16:04:37 -07:00
Michael Spalti
71ababf728 Updated bitstream format test 2023-03-20 16:04:37 -07:00
Michael Spalti
e0846452e5 Added test and format registry entry
Added jp2 resource
2023-03-20 16:04:37 -07:00
aroman-arvo
5d52a2a512 DS-8719 - added if exist to drop sequence 2023-03-20 17:11:05 +01:00
aroman-arvo
372b7e3394 fix #8719 update sequences 2023-03-17 11:00:02 +01:00
Francesco Pio Scognamiglio
6970158eba Merge branch 'main' into CST-6402 2023-03-15 10:51:47 +01:00
Agustina Martinez
11d2d5a3c7 Fix Checkstyle issues 2023-03-13 15:07:04 +00:00
Agustina Martinez
f82834bd57 ItemOwningCollectionUpdateRestController: add support for inheritPolicies flag whem moving items 2023-03-13 14:36:57 +00:00
Luca Giamminonni
bdf867541d [DSC-968] Adding pagination on bitstream cleanup 2023-03-13 15:12:01 +01:00
Agustina Martinez
4748163eaf Fix #8714 and #8715 2023-03-11 15:49:02 +00:00
Tom Shorock
39e4ed67ab Off-by-one in solr-upgrade-statistics-6x #8706 2023-03-08 14:40:15 -06:00
Tim Donohue
b956bcd389 Merge pull request #8680 from DSpace/dependabot/maven/commons-fileupload-commons-fileupload-1.5
Bump commons-fileupload from 1.3.3 to 1.5
2023-03-08 14:33:53 -06:00
Tim Donohue
164b449c44 Merge pull request #8701 from TexasDigitalLibrary/DS-4493
DS-4493: prevent empty string assignment for language variable
2023-03-08 11:56:19 -06:00
nwoodward
1cbaf628cf prevent empty string assignment for language variable 2023-03-07 13:07:03 -06:00
Mark H. Wood
ecb1f1747c Guard against null dates. How embarassing. 2023-03-06 16:53:26 -05:00
Mark H. Wood
9675a0e9b1 Move DateMathParser from instance variables to locals, so "now" is current time not startup time.
Clamp access condition dates to midnight UTC.
Add a lot of debug logging and a test main().
2023-03-06 11:41:14 -05:00
Kevin Van de Velde
5ee8def49c Fixing an issue where the REST api wouldn't resolve a handle url 2023-03-02 13:41:27 +01:00
Tim Donohue
ab578dc742 Merge pull request #8632 from mwoodiupui/policy
Improve ResourcePolicy documentation.
2023-03-01 16:09:02 -06:00
Mark H. Wood
0548b83598 Remove obsolete paragraph: we no longer have any unused properties.
Minor re-wrapping so it's easier to read when editing.  No effect on output.
2023-03-01 09:34:46 -05:00
Tim Donohue
9f304b5b16 Merge pull request #8672 from TexasDigitalLibrary/DS-8478
DS-8478: restores member variables used in sharding functions
2023-02-28 12:19:20 -06:00
Kristof De Langhe
b604480e31 89779: VersionedHandleIdentifierProviderTest pt2 & VersionedHandleIdentifierProviderWithCanonicalHandles fix 2023-02-28 13:58:08 +01:00
nwoodward
d7749e2438 removed logging statements that were already elsewhere 2023-02-27 16:51:02 -06:00
Tim Donohue
ec22f121bf Merge pull request #8665 from DSpace/issue-8661-xsl-stylesheet-1.1
Downgrade Creative Commons transformation stylesheet version
2023-02-27 12:47:47 -06:00
Kristof De Langhe
f70a0cdf50 89779: VersionedHandleIdentifierProviderTest pt2 2023-02-27 14:21:57 +01:00
Andrea Bollini
b847d3ff72 CST-8792 remove all thumbnails in force mode 2023-02-26 14:50:05 -05:00
Kristof De Langhe
47fab88c17 89779: VersionedHandleIdentifierProviderWithCanonicalHandles fix pt1 2023-02-24 17:30:28 +01:00
Mark H. Wood
1acdc55104 Improve ResourcePolicy documentation. 2023-02-23 11:23:39 -05:00
dependabot[bot]
b0567aa224 Bump commons-fileupload from 1.3.3 to 1.5
Bumps commons-fileupload from 1.3.3 to 1.5.

---
updated-dependencies:
- dependency-name: commons-fileupload:commons-fileupload
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-22 06:56:19 +00:00
nwoodward
358e2b5b41 restores member variables used in sharding functions 2023-02-17 10:21:34 -06:00
Tim Donohue
3aa3a945af [maven-release-plugin] prepare for next development iteration 2023-02-17 10:12:27 -06:00
Tim Donohue
654520e1bb [maven-release-plugin] prepare release dspace-7.5 2023-02-17 10:12:23 -06:00
Tim Donohue
055e5a3d09 Updates to LICENSES_THIRD_PARTY for 7.5 2023-02-17 09:42:40 -06:00
Francesco Pio Scognamiglio
191d3700bb [CST-6402] manage saf import via remote url 2023-02-17 12:15:03 +01:00
Tim Donohue
b2d64c52e4 Merge pull request #8669 from 4Science/CST-8936
CST-8936 fix permission for bitstream generated by media-filter
2023-02-15 14:51:37 -06:00
Andrea Bollini
9e8276deba CST-8936 fix permission for bitstream generated by media-filter 2023-02-15 19:12:11 +01:00
Tim Donohue
dbbec3c655 Merge pull request #8660 from atmire/w2p-99200_request-copy-bugfix
Fix for Delete items after copies have been requested
2023-02-14 12:38:09 -06:00
Tim Donohue
0be1464829 Merge pull request #8621 from 4Science/CST-7754
Supervision order REST endpoints
2023-02-14 11:11:40 -06:00
jensvannerum
9bf9ba0775 Merge branch 'main' into w2p-99200_request-copy-bugfix 2023-02-14 14:24:30 +01:00
Raf Ponsaerts
a8a886b242 removed the log info 2023-02-14 11:22:13 +01:00
Tim Donohue
9c5a1976a2 Merge pull request #8663 from 4Science/DURACOM-116
[DURACOM-116] process sorted alphabetically
2023-02-13 10:15:01 -06:00
corrado lombardi
58a010d149 Merge branch 'main' into CST-7754
# Conflicts:
#	dspace-api/src/test/java/org/dspace/builder/AbstractBuilder.java
2023-02-13 17:03:30 +01:00
corrado lombardi
c729fc3b38 Merge branch 'main' into CST-7754 2023-02-13 16:57:49 +01:00
Tim Donohue
bcdf493545 Merge pull request #8620 from 4Science/CST-7756-SubscriptionFeature
Subscription feature rest
2023-02-13 09:51:38 -06:00
corrado lombardi
a37403781e [DURACOM-116] moved sorting to service 2023-02-13 12:53:13 +01:00
Mykhaylo
3b1d930c50 [CST-7756] Non-Discoverable and withdrawn items must be excluded from the notification list 2023-02-13 12:36:27 +01:00
Paulo Graça
37cf25c3f9 Merge branch 'main' into issue-8661-xsl-stylesheet-1.1 2023-02-10 23:04:38 +00:00
Mykhaylo
c34c14f807 Merge branch 'main' into CST-7756-SubscriptionFeature 2023-02-10 21:18:38 +01:00
Tim Donohue
37262101a1 Merge pull request #8629 from atmire/w2p-97414_advanced_workflow_actions-main
Advanced workflow - framework, workflows scoreReview and selectSingleReviewer
2023-02-10 13:40:26 -06:00
Marie Verdonck
f788daa45f Merge branch 'main' into w2p-97414_advanced_workflow_actions-main 2023-02-10 19:37:39 +01:00
Tim Donohue
cc15378fc7 Merge pull request #8664 from amgciadev/fix-8649
Bitstream command line cleanup operation - huge running time and potentially missing a DB commit
2023-02-10 11:07:57 -06:00
Mykhaylo
dd6b03bafc Merge branch 'main' into CST-7756-SubscriptionFeature 2023-02-10 17:29:43 +01:00
Paulo Graça
e4fcfdada6 Downgrade stylesheet version
Due to an warning message reported in:  #8661
2023-02-10 15:43:44 +00:00
Paulo Graça
69d124603b Downgrade stylesheet version
Due to an warning message reported in:  #8661
2023-02-10 15:35:54 +00:00
Agustina Martinez
2208a6bc63 Update BitstreamStorageServiceImpl.java
Amend commit log message
2023-02-10 15:17:40 +00:00
Agustina Martinez
f1a43cdaba Merge branch 'main' into fix-8649 2023-02-10 15:14:51 +00:00
corrado lombardi
e1700797d2 Merge branch 'main' into CST-7754
# Conflicts:
#	dspace-api/src/main/java/org/dspace/content/InstallItemServiceImpl.java
2023-02-10 15:21:54 +01:00
Tim Donohue
1a4e203a96 Merge pull request #8423 from the-library-code/TLC-249_identifiers_submission_7x
Show Identifier Step, pre-register identifiers
2023-02-10 06:51:20 -06:00
corrado lombardi
b76df48c0d Merge branch 'main' into CST-7754
# Conflicts:
#	dspace-api/src/test/java/org/dspace/builder/AbstractBuilder.java
2023-02-10 09:54:40 +01:00
Mykhaylo
5c1dbb0fc5 Merge branch 'main' into CST-7756-SubscriptionFeature 2023-02-10 08:33:04 +01:00
Agustina Martinez
86d7902c1a Added missing commit in cleanup method 2023-02-10 05:24:50 +00:00
Tim Donohue
ec514b5aec Merge pull request #8624 from atmire/w2p-97425_System-wide-alerts
System-wide alerts
2023-02-09 17:10:50 -06:00
Pascal-Nicolas Becker
94c5450318 [TLC-249] Ensure property identifiers.item-status.register-doi is set 2023-02-09 21:39:19 +01:00
Pascal-Nicolas Becker
594050070f [TLC-249] Test abandoning of a pending DOI and minting afterwards 2023-02-09 20:57:04 +01:00
Mohamed Saber Eskander
1fcbd6642c [DURACOM-116] process sorted alphabetically 2023-02-09 19:09:14 +01:00
corrado lombardi
2331db335f [CST-7754] supervising user can perform operations on Workspace item only if they have proper permissions 2023-02-09 15:26:30 +01:00
Marie Verdonck
93f328be95 Merge branch 'w2p-97414_advanced_workflow_actions-7.2' into w2p-97414_advanced_workflow_actions-main 2023-02-09 15:00:57 +01:00
Marie Verdonck
d8f5ae91bd Fix for decline when the delete doesn't persist in context before wfi is created again from same item 2023-02-09 14:59:53 +01:00
Marie Verdonck
0bafbb60a4 Alternate way to restart workflow in case of decline 2023-02-09 14:58:01 +01:00
Mykhaylo
27f75e9fb1 [CST-7756] added security check into 'subscription-send' script 2023-02-09 13:07:27 +01:00
Jens Vannerum
c2845e95aa 99200: Delete items after copies have been requested fix 2023-02-09 11:19:47 +01:00
Mykhaylo
9a9dff47fc Merge branch 'main' into CST-7756-SubscriptionFeature 2023-02-09 09:10:47 +01:00
Kim Shepherd
943bdb19e0 [TL-249] Checkstyle fix 2023-02-09 08:21:38 +13:00
Kim Shepherd
c4af5f2bff [TL-249] Javadoc and other small fixes
Including stripping $Revision$ from filter javadoc.
2023-02-09 08:21:38 +13:00
Kim Shepherd
555363e9b7 [TL-249] Javadoc and other small fixes, DOI unit tests 2023-02-09 08:21:38 +13:00
Kim Shepherd
2b957e2bb9 [TL-249] Revert accidental commit to RestResourceController 2023-02-09 08:21:38 +13:00
Kim Shepherd
7efb70a2f8 [TL-249] Fix imports 2023-02-09 08:21:38 +13:00
Kim Shepherd
b156badb68 [TL-249] Add identifiers.cfg and item-filters.xml config to test data 2023-02-09 08:21:38 +13:00
Kim Shepherd
d0c202010d [TL-249] Add always_true_filter to test REST identifier-service.xml config 2023-02-09 08:21:38 +13:00
Kim Shepherd
94cb0c78ec [TL-249] Remove example-doi_filter from config, add singleton attr to TrueFilter 2023-02-09 08:21:38 +13:00
Kim Shepherd
cb3c9b1f20 [TLC-249] Construct canonical handle URL in identifier item link 2023-02-09 08:21:38 +13:00
Kim Shepherd
dd0a7d7a63 [TLC-249] Refactor TrueFilter to get instantiated as singleton 2023-02-09 08:21:38 +13:00
Kim Shepherd
4997954f23 [TLC-249] Update integration tests for IdentifierRestRepository 2023-02-09 08:21:38 +13:00
Kim Shepherd
e63727e39e [TLC-249] Fix category type in IdentifierRest 2023-02-09 08:21:38 +13:00
Kim Shepherd
b13f36148d [TLC-249] return value as id for IdentifierRest 2023-02-09 08:21:38 +13:00
Kim Shepherd
18ea2f864d [TLC-249] Checkstyle fix 2023-02-09 08:21:38 +13:00
Kim Shepherd
b732764dac [TLC-249] Fixes and improvements as per review feedback 2023-02-09 08:21:38 +13:00
Kim Shepherd
c2f0159414 [TLC-249] Throw not implemented for findOne and findAll 2023-02-09 08:21:38 +13:00
Kim Shepherd
074233ce8d [TLC-249] Refactor, include controller 'find DSO' operation 2023-02-09 08:21:38 +13:00
Kim Shepherd
f9ffceb172 [TLC-249] Refactor identifiers create endpoint 2023-02-09 08:21:36 +13:00
Kim Shepherd
0f77f1d3b1 [TLC-249] Update canRegisterDOIFeature to check for cfg enabled 2023-02-09 08:21:09 +13:00
Kim Shepherd
243df364b5 [TLC-249] Fix submission controller IT 2023-02-09 08:21:09 +13:00
Kim Shepherd
7dafb1ec43 [TLC-249] Update integration tests for identifier controller 2023-02-09 08:21:09 +13:00
Kim Shepherd
94f7be0727 [TLC-249] Update identifier section IT 2023-02-09 08:21:09 +13:00
Kim Shepherd
dbcd1b9525 [TLC-249] Remove unused subclass DataIdentifier 2023-02-09 08:21:09 +13:00
Kim Shepherd
9c7729e0ab [TLC-249] Update configuration identifiers.cfg 2023-02-09 08:21:09 +13:00
Kim Shepherd
d376f45e96 [TLC-249] Improve model for identifier step data 2023-02-09 08:21:09 +13:00
Kim Shepherd
6737a218f6 [TLC-249] Lint fixes 2023-02-09 08:21:09 +13:00
Kim Shepherd
e82ff5eeec [TLC-249] Address review feedback
Controller updated to be less DOI-specific in its
registration implementation
item-status.register renamed to registerDOI
display types included in section data, for UI hints
comments / javadoc added
DOI status text sent instead of number in status data

As per tdonohue's revew on 2022-01-18
2023-02-09 08:21:07 +13:00
Kim Shepherd
65952537a0 [TLC-249] Licence header fix 2023-02-09 08:18:15 +13:00
Kim Shepherd
9a956270d3 [TLC-249] Further IT fix for identifiers 2023-02-09 08:18:15 +13:00
Kim Shepherd
03fb419e38 [TLC-249] Fix tests, Refactor things to use a LinkRestRepository for GET, Controller for POST 2023-02-09 08:18:15 +13:00
Kim Shepherd
43c2b20367 [TLC-249] Further checkstyle fixes 2023-02-09 08:18:15 +13:00
Kim Shepherd
abf65cd48c [TLC-249] Licence header fixes 2023-02-09 08:18:15 +13:00
Kim Shepherd
7926021887 [TLC-249] Checkstyle fixes 2023-02-09 08:18:15 +13:00
Kim Shepherd
12dba51b72 [TLC-249] Move GET handling back to ItemIdentifierController 2023-02-09 08:18:15 +13:00
Kim Shepherd
4140470f9d [TLC-249] Integration tests, keep GET handling in controller 2023-02-09 08:18:15 +13:00
Kim Shepherd
3373cf3330 [TLC-249] Better status return for new DOIs, write new integration tests 2023-02-09 08:18:15 +13:00
Kim Shepherd
73406b7ff0 [TLC-249] REST backend for identifier config 2023-02-09 08:18:15 +13:00
Kim Shepherd
dcdbad7d02 [TLC-249] Add and expose config for enabling register DOI 2023-02-09 08:18:14 +13:00
Kim Shepherd
20aeedfdb3 [TLC-249] Refactor to support better filter usage, PENDING and MINTED status 2023-02-09 08:17:47 +13:00
Kim Shepherd
8fcda7f03a [TLC-249] Update section count test in SubmissionDefinitionsControllerIT 2023-02-09 08:17:47 +13:00
Kim Shepherd
ef6af28fb1 [TLC-249] Remove unused import in WorkspaceItemServiceImpl 2023-02-09 08:17:47 +13:00
Kim Shepherd
c93e6e4a9e [TLC-249] Show Identifier Step, pre-register identifiers 2023-02-09 08:17:47 +13:00
Tim Donohue
e7f217210c Merge pull request #8628 from atmire/w2p-94479_issue-1809_restricted-bitstreams
Downloading restricted bitstreams does not work when opening a new tab/window
2023-02-08 13:04:29 -06:00
Marie Verdonck
cef47deddc #8628: Remove GET shortlivedtokens endpoint & related IT 2023-02-08 18:06:24 +01:00
Tim Donohue
1c4a27bcd4 Merge pull request #8619 from atmire/w2p-97298_issue-3281_self-register-issue-main
Self register domains restriction
2023-02-08 10:56:12 -06:00
corrado lombardi
f5dc078d2f Merge branch 'main' into CST-7756-SubscriptionFeature 2023-02-08 13:31:44 +01:00
Mykhaylo
a00295a32d [CST-7756] described beans 2023-02-08 13:22:50 +01:00
Mykhaylo
ae919d6117 [CST-7756] restores security check as was originaly 2023-02-08 12:49:05 +01:00
Tim Donohue
9b0c592fb7 Merge pull request #8653 from toniprieto/remove-status-filter
Fix for "All of DSpace" browse menu has odd behavior for Community/Collection Admins
2023-02-07 16:53:38 -06:00
Marie Verdonck
e1fd7e2876 Merge branch 'w2p-97414_advanced_workflow_actions-7.2' into w2p-97414_advanced_workflow_actions-main 2023-02-07 23:06:46 +01:00
Marie Verdonck
2516460364 Test IT without drop constraint 2023-02-07 23:00:37 +01:00
Marie Verdonck
1e76abdedd Merge branch 'w2p-97414_advanced_workflow_actions-7.2' into w2p-97414_advanced_workflow_actions-main 2023-02-07 22:59:50 +01:00
Marie Verdonck
9aefeebaa3 IT fix: ReviewManagers repository wide group, not collection workflow group 2023-02-07 22:01:41 +01:00
Tim Donohue
b403a01d33 Merge pull request #8589 from the-library-code/TLC-380_browse_link_configuration_PR
Browse links and "by regex" links in item display (REST)
2023-02-07 14:18:27 -06:00
corrado lombardi
6190e337ac [CST-7756] If no crosswalk is defined for the Item's entity type, default generic Item one is applied 2023-02-07 18:52:35 +01:00
corrado lombardi
31bd28e80c [CST-7756] added dissemination for generic DSpace Item 2023-02-07 18:00:26 +01:00
corrado lombardi
3584633516 [CST-7756] added email subject 2023-02-07 18:00:09 +01:00
Mykhaylo
f6967125fb [CST-7756] minor refactoring 2023-02-07 17:16:21 +01:00
Mykhaylo
9286a692c4 [CST-7756] removed 'lastModified_dt' index field 2023-02-07 17:15:37 +01:00
Mykhaylo
4ff1194c88 [CST-7756] updated subscriptions migration scripts 2023-02-07 17:14:10 +01:00
Mykhaylo
951c755943 [CST-7756] renamed a method 2023-02-07 12:12:04 +01:00
Mykhaylo
8e7cf16ccb [CST-7756] added test that proves what happens if an object is access restricted after you have a subscription to it. 2023-02-07 12:10:41 +01:00
Mykhaylo
b4db57ff99 [CST-7756] implemented community feedbacks 2023-02-07 10:41:11 +01:00
Marie Verdonck
da53eba37c Merge branch 'w2p-97414_advanced_workflow_actions-7.2' into w2p-97414_advanced_workflow_actions-main
# Conflicts:
#	dspace-api/src/main/java/org/dspace/xmlworkflow/state/actions/processingaction/SingleUserReviewAction.java
#	dspace/config/dspace.cfg
2023-02-06 17:13:13 +01:00
Marie Verdonck
07bc6d3141 #8629: PR feedback refactor 2023-02-06 16:46:35 +01:00
Marie Verdonck
450956de86 #8629: Make sure temporary worfklow groups of reviewers get deleted 2023-02-06 10:25:41 +01:00
Kim Shepherd
56ed4aadd4 [TLC-380] Remove unused methods, add ITs 2023-02-06 18:09:15 +13:00
Kim Shepherd
18609c0a20 [TLC-380] Fix browse resource byFields IT 2023-02-06 18:09:15 +13:00
Kim Shepherd
1c2a1538fd [TLC-249] Improve 'findByFields' browse refactor 2023-02-06 18:09:15 +13:00
Kim Shepherd
d85de89261 [TLC-380] Refactor browses endpoint for browse link usage 2023-02-06 18:09:15 +13:00
Kim Shepherd
135385816a [TLC-380] Further checkstyle fixes 2023-02-06 18:09:15 +13:00
Kim Shepherd
9f67c6a9f4 [TLC-380] Further checkstyle fixes 2023-02-06 18:09:15 +13:00
Kim Shepherd
14b5f0e343 [TLC-380] Fix checkstyle and duplicate code 2023-02-06 18:09:15 +13:00
Kim Shepherd
3fe4fd192f [TLC-380] Browse links and "by regex" links in item display 2023-02-06 18:09:15 +13:00
corrado lombardi
fc548e6586 Merge branch 'main' into CST-7754 2023-02-03 18:49:57 +01:00
corrado lombardi
a1550f3e5c [CST-7754] moved supervision orders test on workflow items to SupervisionOrderRestRepositoryIT, added test covering the scenario when an admin tries to set a supervision order on a withdrawn item, and when an admin sets a supervision order on a workflow item before sending it back to workspace: supervisor can edit the item only when it goes to workspace status. 2023-02-03 18:41:00 +01:00
corrado lombardi
744748ab66 [CST-7754] withdrawn item should not allow supervision order 2023-02-03 18:38:47 +01:00
corrado lombardi
920b36ec48 [CST-7754] updated comment 2023-02-03 18:38:14 +01:00
corrado lombardi
9558330aea [CST-7754] updated javadoc 2023-02-03 18:37:55 +01:00
Mykhaylo
9fe1953d07 [CST-7756] added missing IT 2023-02-03 17:22:26 +01:00
corrado lombardi
a26790fe4b [CST-7756] removed Items section 2023-02-03 15:10:46 +01:00
corrado lombardi
2c2c037ce0 [CST-7756] code refactoring 2023-02-03 15:10:27 +01:00
corrado lombardi
ad6d514e0e [CST-7756] removed mail template used by previous script 2023-02-03 15:09:45 +01:00
corrado lombardi
dca79c1a20 [CST-7756] renamed test class in order to reflect its actual behavior 2023-02-03 15:09:02 +01:00
corrado lombardi
669442eb03 [CST-7756] code refactoring 2023-02-03 15:08:26 +01:00
Mykhaylo
4fd8eeebb8 [CST-7756] added missing JavaDoc 2023-02-03 12:14:28 +01:00
corrado lombardi
c297e49ed2 Merge remote-tracking branch 'origin/CST-7756-SubscriptionFeature' into CST-7756-SubscriptionFeature
# Conflicts:
#	dspace-api/src/test/java/org/dspace/eperson/SubscribeServiceTest.java
2023-02-03 00:04:58 +01:00
corrado lombardi
611be00481 [CST-7756] extended SubscribeServiceTest in order to use service instance with real (h2) database instead of mocks, so that tests actually store, query and remove subscriptions interacting with database 2023-02-02 23:58:51 +01:00
Mykhaylo
80a7119344 [CST-7756] minor fix 2023-02-02 19:31:13 +01:00
Mykhaylo
00b53923a6 [CST-7756] removed subscriptions for items 2023-02-02 19:23:54 +01:00
Marie Verdonck
98ee5cb44f Reinstate config accidentally deleted, added in 30f923a080 (#8064) - enables RSS/Atom feeds 2023-02-02 19:08:28 +01:00
Alexandre Vryghem
54f6ba9951 99053: Add return_to_pool option to all ProcessingAction except SingleUserReviewAction 2023-02-02 18:57:49 +01:00
corrado lombardi
edcb771ef2 [CST-7756] updated script 2023-02-02 18:04:07 +01:00
corrado lombardi
d3c79bd2cb [CST-7756] extended abstract test 2023-02-02 18:01:24 +01:00
corrado lombardi
0edaba6f3a [CST-7756] after merge checkstyle fix 2023-02-02 17:54:09 +01:00
corrado lombardi
83649f6036 Merge branch 'main' into CST-7756-SubscriptionFeature
# Conflicts:
#	dspace-api/src/main/java/org/dspace/content/ItemServiceImpl.java
2023-02-02 17:52:50 +01:00
corrado lombardi
b4f7ebfb8a [CST-7756] added instructions to migrate subscriptions from previous versions 2023-02-02 17:47:08 +01:00
Tim Donohue
8f1ba7b78d Merge pull request #8607 from atmire/w2p-97183_fix-user-authorization-issues-with-admin-sidebar
Fix user authorization issues with admin sidebar
2023-02-02 10:34:49 -06:00
Yana De Pauw
8077139c67 97425: Fix minor issues 2023-02-02 16:23:20 +01:00
corrado lombardi
6069e32353 [CST-7756] updated license header 2023-02-02 16:04:35 +01:00
corrado lombardi
f0acbb9575 [CST-7756] sub-daily command and its referred class removed, as subscriptions are sent by subscription-send command 2023-02-02 15:51:24 +01:00
corrado lombardi
0d872b543c [CST-7756] added unit tests covering methods with business logic 2023-02-02 15:39:24 +01:00
Mykhaylo
de7d1738fc [CST-7756] monor fix 2023-02-02 12:53:57 +01:00
Toni Prieto
7267e151cf Remove statusFilter added to Solr browse indexes queries to solve an issue with the local administrators navigation 2023-02-01 18:58:09 +01:00
Mohamed Saber Eskander
7197767a31 Merge remote-tracking branch 'origin/main' into CST-7754
# Conflicts:
#	dspace-server-webapp/src/test/java/org/dspace/app/rest/DiscoveryRestControllerIT.java
2023-02-01 18:52:41 +02:00
Mykhaylo
22ebb04fcd Merge branch 'main' into CST-7756-SubscriptionFeature 2023-02-01 17:16:42 +01:00
Mykhaylo
6a02994c5b [CST-7756] refactoring 2023-02-01 17:13:42 +01:00
Mohamed Saber Eskander
da2815752c [CST-7754] removed old code of supervision orders
added a new migration script sql
tested that supervisors can edit only workspace items
2023-02-01 18:13:26 +02:00
Mykhaylo
de44d9dbe7 [CST-7756] added template for subscription content email 2023-02-01 17:12:46 +01:00
Mykhaylo
7a807f61a8 [CST-7756] added missing index field 2023-02-01 17:12:04 +01:00
Mykhaylo
0944f5956f [CST-7756] minor update 2023-02-01 17:11:24 +01:00
Yana De Pauw
d470c759b0 Merge remote-tracking branch 'upstream/main' into w2p-97425_System-wide-alerts 2023-01-31 13:26:54 +01:00
Yana De Pauw
659382fa8b 97425: Implement feedback 2023-01-31 12:27:39 +01:00
Tim Donohue
8b739d4b30 Merge pull request #8642 from atmire/w2p-98462_Use-discovery-config-in-browse
Use discovery configurations in browse
2023-01-30 14:20:14 -06:00
Tim Donohue
9354244b7c Merge pull request #8578 from tdonohue/update_bcel
Update Apache Commons BCEL and add "test" scope
2023-01-30 09:19:54 -06:00
Mykhaylo
1593e1a867 [CST-7756] refactored CanSubscribeFeatureIT 2023-01-30 13:30:01 +01:00
Mykhaylo
cb4fd99211 [CST-7756] minor fix 2023-01-27 18:09:50 +01:00
Mykhaylo
f5c1690e0b [CST-7756] renamed some methods & class 2023-01-27 14:53:53 +01:00
Mykhaylo
c59438b936 [CST-7756] added validation logic of params 2023-01-27 12:10:16 +01:00
Mykhaylo
d3c5e7debe [CST-7756] added tests to valid subscription parameters 2023-01-27 11:51:31 +01:00
Mykhaylo
20231fd086 [CST-7756] refactoring 2023-01-26 18:32:45 +01:00
Mykhaylo
9ff712c54f Merge branch 'main' into CST-7756-SubscriptionFeature 2023-01-26 14:28:09 +01:00
Mykhaylo
600a194284 [CST-7756] fixed failed tests 2023-01-26 14:25:06 +01:00
Marie Verdonck
871bac5d84 PR #8619: Removed dependency spring-context-support, not needed in main 2023-01-26 12:15:36 +01:00
Mykhaylo
0867a05e79 [CST-7756] minor refactoring according to the rest contract 2023-01-26 11:54:57 +01:00
Mykhaylo
08259ecb3a [CST-7756] removed unused service bean 2023-01-26 11:53:21 +01:00
Mykhaylo
f4ca5958ac [CST-7756] refactoring & added missing JavaDoc 2023-01-25 18:37:01 +01:00
Marie Verdonck
5a2f2eda10 Merge branch 'w2p-97298_issue-3281_self-register-issue-7.2' into w2p-97298_issue-3281_self-register-issue-main
# Conflicts:
#	dspace-server-webapp/src/test/java/org/dspace/app/rest/RegistrationRestRepositoryIT.java
2023-01-25 16:30:23 +01:00
Marie Verdonck
f1af02c9cc 97061: type request param name change to avoid confusion with rest object type &
error codes endpoint changes + IT:
- missing/wrong query param accountRequestType => 400 bad request
- email not valid domain => 422 unprocessable entity
2023-01-25 15:40:53 +01:00
Yana De Pauw
51424cbb7c 97425: Fix issue with sessions null value 2023-01-23 17:22:32 +01:00
Tim Donohue
536e8cb347 Merge pull request #8613 from atmire/issue-1712_w2p-97080_facet-search-all-words-main
Facet search should search all words, not just the first one
2023-01-20 09:37:06 -06:00
Mykhaylo
1f06e29c25 Implemented community feedbacks 2023-01-20 11:49:29 +01:00
Marie Verdonck
e0e587ce09 Merge branch 'main' into issue-1712_w2p-97080_facet-search-all-words-main 2023-01-20 01:01:21 +01:00
Marie Verdonck
465a15f9a5 Merge branch 'issue-1712_w2p-97080_facet-search-all-words-7.2' into issue-1712_w2p-97080_facet-search-all-words-main 2023-01-20 01:00:30 +01:00
Marie Verdonck
2c155cb8b4 97080: #8613 - Doc for the prefix solr field 2023-01-20 00:53:59 +01:00
Mykhaylo
702ce8128a Merge branch 'main' into CST-7756-SubscriptionFeature 2023-01-19 12:36:45 +01:00
Tim Donohue
3ac5d566a4 Merge pull request #8600 from atmire/issue-815-controlled-vocabulary-hierarchical-facets-7.4
Issue 815 controlled vocabulary hierarchical facets 7.4
2023-01-18 11:48:03 -06:00
Koen Pauwels
9534b7893e 97183 Tests for findItemsWithEdit and countItemsWithEdit methods of ItemServiceImpl 2023-01-17 16:14:42 +01:00
jensvannerum
9d7e9eecc0 Merge branch 'main' into issue-815-controlled-vocabulary-hierarchical-facets-7.4 2023-01-16 14:31:16 +01:00
Tim Donohue
4cd3c3af95 Merge pull request #8319 from mwoodiupui/8304
Enable to answer a request a copy using "helpdesk" strategy
2023-01-13 14:48:25 -06:00
Jens Vannerum
b7626dd884 97538: Alter IT for public vocabulary search method 2023-01-13 13:19:38 +01:00
Jens Vannerum
f83c82e00d 97538: The search rest method should be public 2023-01-13 12:16:35 +01:00
Nona Luypaert
ce9f4ca08b Merge remote-tracking branch 'upstream/main' into issue-1712_w2p-97080_facet-search-all-words-main
Merge remote-tracking branch 'upstream/main' into
issue-1712_w2p-97080_facet-search-all-words-main
2023-01-13 12:10:26 +01:00
jensvannerum
98425b8066 Merge branch 'main' into issue-815-controlled-vocabulary-hierarchical-facets-7.4 2023-01-13 09:58:55 +01:00
Tim Donohue
237cad1f14 Merge pull request #8625 from atmire/Add-Range-CORS-header
Add CORS "Access-Control-Expose-Headers:  Accept-Ranges"  header
2023-01-12 15:09:50 -06:00
Tim Donohue
4e9a6f0800 Merge pull request #8631 from 4Science/DURACOM-113
[DURACOM-113] add jfif extension on bitstream formats
2023-01-12 14:32:56 -06:00
Luca Giamminonni
fc9f692bed [DURACOM-92] Tested and improved S3BitStoreService.about method 2023-01-12 17:22:45 +01:00
Yana De Pauw
d53d3054bd Merge branch 'w2p-98462_Use-discovery-config-in-browse-7.2' into w2p-98462_Use-discovery-config-in-browse 2023-01-12 16:33:42 +01:00
Yana De Pauw
d18120919c 98462: Refactor change and add admin tests 2023-01-12 16:32:51 +01:00
Francesco Pio Scognamiglio
a9c5a2ce31 [DURACOM-113] add jfif extension on bitstream formats 2023-01-12 14:59:52 +01:00
Yana De Pauw
a29b70337e Merge remote-tracking branch 'upstream/main' into w2p-98462_Use-discovery-config-in-browse 2023-01-12 14:07:13 +01:00
Yana De Pauw
902141df36 Merge tag 'dspace-7.4' into w2p-98462_Use-discovery-config-in-browse-7.4
[maven-release-plugin] copy for tag dspace-7.4
2023-01-12 13:52:48 +01:00
Yana De Pauw
3579026694 98462: Use discovery configurations in browse 2023-01-12 13:10:55 +01:00
Mykhaylo
bccd39b3c0 Merge branch 'main' into CST-7756-SubscriptionFeature 2023-01-12 10:26:39 +01:00
Mykhaylo
96ee82af97 [CST-7756] removed unused param 2023-01-12 10:18:21 +01:00
jensvannerum
282d4747e1 Merge branch 'main' into issue-815-controlled-vocabulary-hierarchical-facets-7.4 2023-01-12 10:03:09 +01:00
Luca Giamminonni
1e8c58ef6d Merge branch 'main' into DURACOM-92 2023-01-12 09:59:19 +01:00
Marie Verdonck
d0c507df64 98433: Refactoring SingleUserReviewAction & general refactoring in Actions
- Fix in AutoAssignAction that selected reviewer didn't get registered as new InProgressSubmissionUser
2023-01-12 03:42:45 +01:00
Marie Verdonck
a24d383ab1 98433: IT fixes now that access rights are now moved to selected reviewers in AutoAssignAction 2023-01-12 02:52:16 +01:00
Marie Verdonck
3756b197ba 98433: Refactoring SingleUserReviewAction & general refactoring in Actions
- Fix in AutoAssignAction that selected reviewer didn't get registered as new InProgressSubmissionUser
2023-01-12 02:01:20 +01:00
Tim Donohue
6cdcfb50fd Merge pull request #8626 from 4Science/CST-7604
Configuration updated to highlight Orgunit and Person
2023-01-11 16:36:54 -06:00
Marie Verdonck
fb4fa0d20e Merge branch 'w2p-97414_advanced_workflow_actions-7.2' into w2p-98433_advanced_workflow_actions_SingleUserReviewAction 2023-01-11 22:32:36 +01:00
Marie Verdonck
217ea10114 Merge branch 'w2p-97414_advanced_workflow_actions-7.2' into w2p-97414_advanced_workflow_actions-main 2023-01-11 21:47:30 +01:00
Marie Verdonck
fa1c48b56c 98434: IT fix 2023-01-11 21:46:33 +01:00
Marie Verdonck
c9cf77d77c Merge branch 'main' into w2p-97414_advanced_workflow_actions-main
# Conflicts:
#	dspace-api/src/main/java/org/dspace/xmlworkflow/state/actions/processingaction/SelectReviewerAction.java
#	dspace/config/dspace.cfg
2023-01-11 21:01:56 +01:00
Marie Verdonck
bfed2b7064 98434: Advanced workflow - refactor scoreReview workflow 2023-01-11 20:53:19 +01:00
Tim Donohue
373234fd30 Merge pull request #8593 from johannastaudinger/issue-8564
DataCite plugin for import
2023-01-11 12:36:46 -06:00
Tim Donohue
c4efe41b23 Merge pull request #8611 from tdonohue/add_database_skip
Add "./dspace database skip" command to optionally skip older migrations
2023-01-11 11:54:39 -06:00
Koen Pauwels
4032828342 98433 Reject button mostly works - still triggers a 404 in console though 2023-01-11 18:07:15 +01:00
jensroets
5297f6a60b 98345 SelectReviewerAction, TaskRestRepositoriesIT and h2 migration 2023-01-11 16:26:15 +01:00
jensroets
75cfaaef80 98345 Advanced workflow actions - Parse select reviewers step 2023-01-09 16:45:22 +01:00
Yana De Pauw
f03d5ff0a6 Fix license issues 2023-01-05 17:17:11 +01:00
Yana De Pauw
8bd4ec3b10 Merge remote-tracking branch 'upstream/main' into Add-Range-CORS-header 2023-01-05 16:34:33 +01:00
Yana De Pauw
1004a7c8c4 97735: Add a accept range cors header 2023-01-05 16:27:23 +01:00
corrado lombardi
d1a7fe9a02 [CST-7604] Configuration updated to highlight Orgunit and Person 2023-01-03 13:07:35 +01:00
jensroets
bb6e089ae5 97414 Advanced workflow actions: fixed SelectReviewerAction NullPointerException 2023-01-03 12:40:09 +01:00
jensroets
51c581ed26 97414 Advanced workflow actions: implemented feedback on SelectReviewerAction + WorkflowActionRestRepositoryIT 2023-01-03 11:02:50 +01:00
Yana De Pauw
faea5a1ed2 Merge remote-tracking branch 'upstream/main' into discovery-fixes 2023-01-02 16:05:08 +01:00
Jens Vannerum
de6bccafa3 97538: Remove readability change in IT 2023-01-02 13:36:11 +01:00
Jens Vannerum
bf084d74a1 97538: Remove readability change 2023-01-02 12:28:54 +01:00
Jens Vannerum
00a11c58cb 97538: Unauthorized tests should now be anonymous 2023-01-02 12:21:00 +01:00
Jens Vannerum
e5552ead40 Merge branch 'main' into issue-815-controlled-vocabulary-hierarchical-facets-7.4 2023-01-02 10:11:16 +01:00
Koen Pauwels
7ee46e0cba 97183 Processing PR review feedback 2023-01-02 09:58:31 +01:00
Mohamed Saber Eskander
7a08fe50fe [CST-7754] test supervision order is deleted if workspaceItem or group is deleted. 2023-01-02 10:58:18 +02:00
corrado lombardi
01634d1414 [CST-7754] otherworkspace discovery configuration shows only supervised workspace items, when a supervision order is deleted grants given to supervision groups on an item are revoked. 2022-12-30 15:55:23 +01:00
corrado lombardi
e9af511f26 Merge branch 'main' into CST-7754 2022-12-30 14:20:36 +01:00
corrado lombardi
343ce405f7 Merge branch 'main' into CST-7756-SubscriptionFeature 2022-12-30 11:29:43 +01:00
corrado lombardi
1fd22ee8a9 Merge remote-tracking branch 'origin/CST-7756-SubscriptionFeature' into CST-7756-SubscriptionFeature 2022-12-30 11:20:10 +01:00
corrado lombardi
bca8d6320a [CST-7756] fixed database scripts version number 2022-12-30 11:17:53 +01:00
Giuseppe Digilio
c52042aad5 [CST-7756] Fix checkstyle 2022-12-30 09:22:45 +01:00
Giuseppe Digilio
d5888a8cfd [CST-7756] Rename type property to subscriptionType in the subscriptionType object 2022-12-29 18:36:15 +01:00
Marie Verdonck
f8037d465a 97298: Self-register - test fixes 2022-12-29 17:30:48 +01:00
Marie Verdonck
1cff907a2f Merge branch 'w2p-97298_issue-3281_self-register-issue-7.2' into w2p-97298_issue-3281_self-register-issue-main 2022-12-29 17:30:14 +01:00
Marie Verdonck
2f196624e0 97298: Self-register - test fixes 2022-12-29 17:08:58 +01:00
Marie Verdonck
6a594cb62b 97298: #3281 Self-register - fix, needs existent user for forgot 2022-12-29 16:57:05 +01:00
Marie Verdonck
cd709c5033 Merge branch 'w2p-97298_issue-3281_self-register-issue-7.2' into w2p-97298_issue-3281_self-register-issue-main 2022-12-29 15:31:04 +01:00
Marie Verdonck
3dc98bae78 97298: #3281 Self-register - type param 2022-12-29 15:17:54 +01:00
corrado lombardi
b54bdd1712 [CST - 7754] refactoring and added support for NONE type 2022-12-28 10:09:54 +01:00
jensroets
25ef93ac7b 97414 Advanced workflow actions: javadocs + moved isAdvanced method 2022-12-23 15:18:02 +01:00
Mohamed Saber Eskander
5330c2dc0f [CST-7754] removed unused fields. 2022-12-23 15:29:13 +02:00
Marie Verdonck
37be809eb0 Merge remote-tracking branch 'origin/main' into w2p-97298_issue-3281_self-register-issue-main 2022-12-23 14:26:41 +01:00
Joost
813eb1ef8a Merge branch 'w2p-97298_issue-3281_self-register-issue-7.2' into w2p-97298_issue-3281_self-register-issue-main 2022-12-23 14:26:03 +01:00
Marie Verdonck
845c58f246 Merge remote-tracking branch 'origin/main' into issue-1712_w2p-97080_facet-search-all-words-main 2022-12-23 14:19:38 +01:00
Yana De Pauw
1cabe8e87c 97425: Update names of sessions enum 2022-12-23 12:00:44 +01:00
Yana De Pauw
45e4748482 97425: Create "System Wide Alerts" feature 2022-12-23 10:35:35 +01:00
Mohamed Saber Eskander
dea4b5e17f [CST-7754] LYRASIS: Supervisor orders (REST). 2022-12-22 17:40:43 +02:00
Philipp Rumpf
26f0a42521 Merge pull request #8
* DataCite: use configuration service to set URL + timeout

* DataCite: configure DataCite url + timeout in external-providers.cfg

* DataCite: add DataCite bean to default configuration
2022-12-22 13:42:23 +01:00
jensroets
3cf0be61ef 97414 Advanced workflow actions: SelectReviewerAction advanced info 2022-12-21 16:00:08 +01:00
jensroets
c21eb479f3 97414 Advanced workflow actions: refactor for updated rest contract 2022-12-21 14:05:34 +01:00
Tim Donohue
ba68535d76 Merge pull request #8605 from atmire/w2p-97294_content_migration_contribution
Huge performance improvement on metadata import
2022-12-20 15:59:23 -06:00
Tim Donohue
d50f669a78 Merge pull request #8612 from toniprieto/browse-by-title-with-spaces
Fix Browse by Title cannot filter by multiple words
2022-12-20 15:15:44 -06:00
Tim Donohue
4047235e69 Merge pull request #8562 from mwoodiupui/8561
Option to skip bitstreams on import, like 'export -x'
2022-12-20 14:11:01 -06:00
Kevin Van de Velde
0567e8df03 Adding a sensible default to the "bulkedit.change.commit.count" retrieval 2022-12-20 17:19:44 +01:00
Kevin Van de Velde
167016084d Renaming the resource policy sql file and adding the same file to the H2 so our tests are in sync 2022-12-20 17:14:51 +01:00
Tim Donohue
83cf9e88d4 Merge pull request #8591 from arvoConsultores/DS-8412
#8412 In Submission Form, list collections alphabetically
2022-12-20 10:00:54 -06:00
Tim Donohue
6363b21c84 Merge pull request #8565 from 4Science/main_8563_DURACOM-101
Common Extendend Regex Parser
2022-12-20 09:39:50 -06:00
Adan Roman
027c79e341 Sorting constant moved and renamed 2022-12-20 10:39:30 +01:00
Joost
507189a828 [task 97298] only check for allowed domains on register 2022-12-20 09:35:59 +01:00
Vincenzo Mecca
72813eebaf [8563][DURACOM-101] Multiflag regex tests 2022-12-19 18:40:06 +01:00
Vincenzo Mecca
14b7ac18b0 [8563][DURACOM-101] Improved Regex Tests 2022-12-19 18:14:40 +01:00
Vincenzo Mecca
496f936a7d [8563][DURACOM-101] Removed unreachable branch 2022-12-19 18:14:15 +01:00
Tim Donohue
a7cba3c57b Merge pull request #8522 from qzhao-ulb/patch-6
Item/Collection admin can't create new version item
2022-12-19 10:54:39 -06:00
Vincenzo Mecca
7efc955460 [8563][DURACOM-101] Updated JavaDoc for computePattern method 2022-12-19 17:40:18 +01:00
Tim Donohue
014e671fd6 Remove unnecessary system.out from IT 2022-12-19 10:09:55 -06:00
jensroets
d0a91347c6 97414 Advanced workflow actions 2022-12-19 16:53:49 +01:00
Mykhaylo
9f456c21d5 [CST-7756] porting of SubscribeFeature 2022-12-19 13:51:06 +01:00
qzhao
44e99772e1 Merge branch 'patch-6' of https://github.com/qzhao-ulb/DSpace into patch-6 2022-12-19 13:36:05 +01:00
qzhao
f523420a9b add test method for bugfix "collectin admin can create new version" pull request: dspace/dspace/#8522 2022-12-19 12:59:45 +01:00
Yury Bondarenko
eb28c639a0 Merge branch 'discovery-fixes-7.2' into discovery-fixes 2022-12-19 12:11:12 +01:00
Yury Bondarenko
1300cdc75b 97248: Cache discovery configurations by UUID 2022-12-19 11:20:53 +01:00
QZhao
3240c1c33f Merge branch 'main' into patch-6 2022-12-19 08:56:51 +01:00
Nona Luypaert
c65314db9d Merge remote-tracking branch 'origin' into issue-1712_w2p-97080_facet-search-all-words-main
97080: Facet search box should search all words
2022-12-16 17:06:13 +01:00
Nona Luypaert
32bafed548 97080: Browse values also get indexed with _prefix field 2022-12-16 16:35:27 +01:00
Nona Luypaert
4ff2e2826d 97080: Fix DiscoveryRestControllerIT 2022-12-16 15:54:31 +01:00
Nona Luypaert
6195127e81 97080: Facet search on all words: authorityKey fix + ITs 2022-12-16 12:49:30 +01:00
Adan Roman
193f0a4750 checkstyle 2022-12-16 10:14:01 +01:00
Adan Roman
003a89c8ed Merge branch 'DS-8412' of https://aroman-arvo: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@github.com/arvoConsultores/DSpace.git into DS-8412 2022-12-16 10:06:23 +01:00
aroman-arvo
bc597b710b Merge branch 'DS-8412' of https://github.com/arvoConsultores/DSpace into
DS-8412
2022-12-16 10:05:56 +01:00
aroman-arvo
b4408e5e8a Merge branch 'DS-8412' of https://github.com/arvoConsultores/DSpace into DS-8412 2022-12-16 09:55:12 +01:00
Arvo Consultores y Tecnología. S.L
3e7599dff6 Merge branch 'DSpace:main' into DS-8412 2022-12-16 09:43:28 +01:00
Adan Roman
bc6066523f #8412 In Submission Form, list collections alphabetically - solr
ordering
2022-12-16 09:38:48 +01:00
Mark H. Wood
ea6876f2fe Add option to GUI as well. 2022-12-15 14:22:59 -05:00
Mark H. Wood
0f38f261c2 Rename option to parallel the exporter. 2022-12-15 14:22:25 -05:00
Nona Luypaert
2f546ffafa Merge remote-tracking branch 'atmire/w2p-95912_facet-capital-letter-bugfix' into issue-1712_w2p-97080_facet-search-all-words-7.2
95912: queries should be case-insensitive
2022-12-15 15:50:47 +01:00
Yana De Pauw
69500ad5d5 Fix discovery test config and make ids for relationship profiles unique 2022-12-15 11:55:05 +01:00
Mykhaylo
57f917ae0e [CST-7756] porting of the script for notification of content subscription 2022-12-14 16:14:48 +01:00
Mykhaylo
25b8ba8ead [CST-7756] added tests 2022-12-14 11:10:36 +01:00
Yana De Pauw
38b30c394c Fix openSearchController issue 2022-12-14 10:32:54 +01:00
Tim Donohue
7c68e09486 Add database skip command. Minor refactor of DatabaseUtils to use switch 2022-12-13 15:13:19 -06:00
Yana De Pauw
14534b4eaf Move context to first argument in getDiscoveryConfigurationByNameOrDso 2022-12-13 17:47:35 +01:00
Yana De Pauw
2f8260ec49 Merge branch 'discovery-fixes-7.2' into discovery-fixes 2022-12-13 17:09:37 +01:00
Yana De Pauw
463edac869 Remove local file 2022-12-13 17:08:02 +01:00
Yana De Pauw
eb50fa03eb Merge branch 'discovery-fixes-7.2' into discovery-fixes 2022-12-13 16:38:56 +01:00
Yana De Pauw
c538b9cbed Add docs and remove unused site configuration 2022-12-13 14:27:29 +01:00
Yana De Pauw
82bc777e45 Fix issue with indexing and add tests 2022-12-13 12:32:15 +01:00
Marie Verdonck
fc6ac8e078 97080: #1712 - Refactoring facet search all words 2022-12-13 12:00:00 +01:00
Joost
2378dbbeec Merge remote-tracking branch 'upstream/main' into w2p-97298_issue-3281_self-register-issue-main 2022-12-13 10:38:30 +01:00
Philipp Rumpf
f0cd84ed77 Tests: configure dc.contributor.author, test it 2022-12-12 14:38:53 +00:00
Johanna Staudinger
607e7458e0 Minor fixes:
remove unused class field
avoid potential NPE on invalid JSON
2022-12-12 14:38:53 +00:00
Philipp Rumpf
360bc85ead Merge pull request #5
* DataCite plugin for import

* start copying Crossref test

* use dataCite original JSON

* snapshot

* adjust DataCite mapping to grab all titles

* simplify DataCiteImportMetadataSourceServiceImpl. Avoid GSON, JsonPat…

* rewrite DataCiteImportMetadataSourceServiceIT based on CrossRef IT.
2022-12-12 14:38:53 +00:00
Johanna Staudinger
a9cee40a15 DataCite plugin for import
Plugin for import of external metadata from DataCite for publications.
Code by @johannastaudinger, @floriangantner and @philipprumpf.
2022-12-12 14:38:53 +00:00
Toni Prieto
d906d9463b Add test for filtering browse by title with spaces 2022-12-12 10:50:19 +01:00
Toni Prieto
b0afb15efa Escape special characters in startsWith filter of browse by title 2022-12-12 10:46:39 +01:00
Tim Donohue
ec483fef5b Update BCEL and add correct scope 2022-12-09 10:37:48 -06:00
Kevin Van de Velde
f2d329dc88 Changing a log info to a handler logInfo call 2022-12-09 09:24:00 +01:00
Kevin Van de Velde
c705e3c92c Fixing tests 2022-12-09 09:21:31 +01:00
Kevin Van de Velde
77be5cdc25 Improve performance for metadata imports 2022-12-09 09:21:19 +01:00
jensvannerum
9752677b70 Merge branch 'main' into issue-815-controlled-vocabulary-hierarchical-facets-7.4 2022-12-08 17:06:10 +01:00
jensroets
1a9b1e3e94 89597 Metadata import (Improve performance): edit comment 2022-12-08 13:57:03 +01:00
jensroets
02cb5243a4 89597 Metadata import (Improve performance) 2022-12-08 13:56:34 +01:00
Koen Pauwels
1252a98240 97183 SolrServiceIndexItemEditorsPlugin: fixed logger type 2022-12-08 10:33:31 +01:00
Tim Donohue
ec0853ddad Merge pull request #8579 from TexasDigitalLibrary/DS-8385
DS-8385: Use discovery configuration to get correct sort field type for given …
2022-12-07 15:13:06 -06:00
Tim Donohue
424d691b98 Merge pull request #8571 from TexasDigitalLibrary/DS-4488
DS-4488: Log views statistics even when MaxMind DatabaseReader isn't fully configured
2022-12-07 14:32:59 -06:00
Tim Donohue
cf21da8ce7 Merge pull request #8594 from DSpace/dependabot/maven/org.postgresql-postgresql-42.4.3
Bump postgresql from 42.4.1 to 42.4.3
2022-12-07 12:06:38 -06:00
dependabot[bot]
e8dc1c9a58 Bump postgresql from 42.4.1 to 42.4.3
Bumps [postgresql](https://github.com/pgjdbc/pgjdbc) from 42.4.1 to 42.4.3.
- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)
- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.4.1...REL42.4.3)

---
updated-dependencies:
- dependency-name: org.postgresql:postgresql
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-07 17:09:19 +00:00
Vincenzo Mecca
c933cd60ef Merge branch 'main' into main_8563_DURACOM-101 2022-12-07 18:05:04 +01:00
Mykhaylo
9901bcfd55 [CST-7756] minor fix 2022-12-07 17:37:30 +01:00
Tim Donohue
b38cbb0ba0 Merge pull request #8550 from alanorth/imagemagick-cropbox
dspace-api: tell ImageMagick about the PDF CropBox
2022-12-07 10:32:33 -06:00
Mykhaylo
bd6334d9b0 [CST-7565] minor refactoring 2022-12-07 16:45:55 +01:00
Joost
a152b551d4 [task 97298] implemented check for allowed domains during registration' 2022-12-07 16:32:08 +01:00
Mykhaylo
fd7016f14e [CST-7756] refactoring 2022-12-07 14:25:35 +01:00
Nona Luypaert
088bbc8053 97080: Fix facet search box should search all parts (WIP) 2022-12-07 14:23:01 +01:00
Alan Orth
e6693f4232 dspace-api: tell ImageMagick about the PDF CropBox
ImageMagick uses the MediaBox by default when rasterizing PDFs be-
cause the PDF specification says that all PDFs *must* contain one.
This page box is the parent for all other boxes that a PDF *may*
contain, for example a CropBox, ArtBox, etc. In many cases these
are the same, but when they are not the CropBox is used to define
the area displayed to a user when they open the PDF on screen (as
opposed to when printing on paper).

If a PDF has a CropBox that is different to its MediaBox then we
should tell ImageMagick to use it.

Fixes: https://github.com/DSpace/DSpace/issues/8549
2022-12-06 14:00:38 -06:00
Tim Donohue
705f87a826 Merge pull request #8402 from mspalti/canvas-dims-mutiple-bundles
Updates the canvas dimension method to use multiple bundles.
2022-12-06 13:59:56 -06:00
Michael W Spalti
34e6ce3b39 Missing javadoc. 2022-12-06 12:41:15 -06:00
Michael W Spalti
b0f809db05 Added mock to dspace-api tests.
Updated bean configs.
2022-12-06 12:41:15 -06:00
Michael W Spalti
83b1b346c9 Updating to address feedback. 2022-12-06 12:41:15 -06:00
Michael W Spalti
37e89c13b1 New mock and test. 2022-12-06 12:41:15 -06:00
Michael Spalti
d4c03764a6 Added check for image format.
Added logging for error.
2022-12-06 12:41:15 -06:00
Michael Spalti
18ce42c388 Updates the canvas dimension method to use multiple bundles. 2022-12-06 12:41:15 -06:00
Tim Donohue
b5b94b2986 Merge pull request #8548 from tdonohue/enable_github_codeql
Update to use GitHub CodeQL for code scanning
2022-12-06 12:09:38 -06:00
Tim Donohue
9cd358f7b2 Update to use GitHub CodeQL for code scanning 2022-12-06 11:25:30 -06:00
Tim Donohue
7f04d496e5 Merge pull request #8602 from tdonohue/more_contributing
Minor fixes to sync CONTRIBUTING with PR template
2022-12-06 11:08:46 -06:00
Tim Donohue
a501d84092 Minor fixes to sync CONTRIBUTING with PR template 2022-12-06 10:48:42 -06:00
Tim Donohue
9764eefd77 Merge pull request #8568 from tdonohue/add_contributing_docs
Add Contributing docs to GitHub
2022-12-06 09:49:48 -06:00
Koen Pauwels
f928ec71f6 97183 Renamed "canEditItem" feature 2022-12-06 16:12:38 +01:00
Yana De Pauw
3e651af760 97248: Find DSO based configurations recursively through parent objects 2022-12-06 12:37:21 +01:00
Yana De Pauw
8e2ada65b1 97248: Fix File info Solr plugin to allow faceting 2022-12-06 12:36:34 +01:00
Koen Pauwels
ebccac79f7 97183 EditItemFeature integration tests 2022-12-06 09:09:39 +01:00
Tim Donohue
35f65ff5b8 Add Contributing docs 2022-12-05 16:13:09 -06:00
Tim Donohue
0b61d7c738 Merge pull request #8597 from tdonohue/fix_broken_IT
Fix broken OrcidQueueConsumerIT & several other flakey tests
2022-12-05 15:57:17 -06:00
Tim Donohue
17d0fe83c4 Fix flakey tests in ExternalSourcesRestControllerIT 2022-12-05 14:24:52 -06:00
Tim Donohue
ab767ca694 Fix flakey test in CreateMissingIdentifiersIT to ensure new curation task loads immediately 2022-12-05 14:24:52 -06:00
Tim Donohue
072ae5f65e Ensure assigned Handles have a fake prefix so they cannot overlap with incremental, autoassigned Handles 2022-12-05 10:56:44 -06:00
Koen Pauwels
ada0b8c4d1 97183 Added EditItemFeature 2022-12-05 16:49:47 +01:00
Koen Pauwels
36e9f0d4f7 97183 SubmitFeatureIT: renamed some tests 2022-12-05 16:42:26 +01:00
Koen Pauwels
3fe6491975 97183 Integration tests and fixes for SubmitFeature 2022-12-05 16:27:51 +01:00
Tim Donohue
a81dd28a46 Ensure ItemBuilder also cleans up WorkspaceItem if it still exists 2022-12-02 14:49:57 -06:00
Tim Donohue
64e5697d47 Ensure @Before and @After override default methods 2022-12-02 14:37:03 -06:00
Mykhaylo
2c11f7c757 [CST-7756] refactoring 2022-12-02 18:19:37 +01:00
Koen Pauwels
6cbb1630e3 97183 ItemService: added methods to search the index for items for which the current user has editing rights 2022-12-02 16:09:26 +01:00
Jens Vannerum
e902ace5c9 Merge branch 'issue-815-controlled-vocabulary-hierarchical-facets-7.2,' into issue-815-controlled-vocabulary-hierarchical-facets-7.4 2022-12-02 14:17:10 +01:00
Koen Pauwels
f99e876327 97183 IndexingUtils: Changed interface to Lists instead of Streams 2022-12-02 10:50:24 +01:00
Koen Pauwels
31cb37b4a5 97183 Minor fixes to IndexingUtils#findDirectlyAuthorizedGroupAndEPersonPrefixedIds 2022-12-02 09:49:06 +01:00
Tim Donohue
c36d0e2278 Merge pull request #8583 from tdonohue/require_javadoc_methods
Require javadocs for all public methods. Fix checkstyle errors.
2022-12-01 14:59:25 -06:00
Mykhaylo
d08b3cb984 [DSC-183] header licence 2022-12-01 18:58:42 +01:00
Mykhaylo
389cb760e2 [DSC-193] tests added, code review fixes, other fixes in pagination and ordering 2022-12-01 18:57:45 +01:00
Mykhaylo
3ac40b9761 [DSC-183] new paramater of type of dso in findall and pagination usage in query 2022-12-01 18:54:35 +01:00
Mykhaylo
141cde9899 [DSC-183] Fix checkstyle and refactor 2022-12-01 18:51:24 +01:00
Mykhaylo
bdb4bd53dc [DSC-183] New endpoint, IT tests changed 2022-12-01 18:43:42 +01:00
Mykhaylo
b036262514 [DSC-183] fixes 2022-12-01 18:32:11 +01:00
Mykhaylo
40c0c9b7db [DSC-183] Created Subscription_Parameter, Changed Subscription and created entry points components for Subscription 2022-12-01 18:29:19 +01:00
Mykhaylo
c535de90f1 [DSC-183] Created Subscription_Parameter, Changed Subscription and created entry points components for Subscription 2022-12-01 18:25:00 +01:00
Jens Vannerum
f7e7f69f2d 97049: Remove client specific test 2022-12-01 17:49:15 +01:00
Koen Pauwels
6621e57ebd 97183: Added SolrServiceIndexItemEditorsPlugin
Analogous to SolrServiceIndexCollectionSubmittersPlugin, but for Items instead
of Collections, and for WRITE rights instead of ADD rights.

Also refactored SolrServiceIndexCollectionSubmittersPlugin to share code with
the new plugin.
2022-12-01 16:37:03 +01:00
Jens Vannerum
2c7c40876d 97049: Remove client structure 2022-12-01 15:36:38 +01:00
Joost
cfbd7785e5 [task 86387] made findone for vocabularies publicly available 2022-12-01 11:25:07 +01:00
Samuel
f065f12fa7 taskid 85816 Rename vocabularies to match the discovery config 2022-12-01 11:25:06 +01:00
Samuel
188d02c822 taskid 85555 Custom DSpaceControlledVocabulary for WB syntax - permissions 2022-12-01 11:22:55 +01:00
Samuel
a6992efd45 taskid 85555 Custom DSpaceControlledVocabulary for WB syntax 2022-12-01 11:22:53 +01:00
Koen Pauwels
4a7952af15 97183 Added SubmitFeature: checks if eperson has ADD rights to any or specific collection 2022-12-01 08:45:57 +01:00
Vincenzo Mecca
fbb1405776 [8563][DURACOM-101] Fixed regex validation
Fixed:
  - Checks for string emptiness while validating input;

Feat:
  - Saved Compiled pattern using ECMAScript standard inside DCInput.
2022-11-28 10:54:54 +01:00
Arvo Consultores y Tecnología. S.L
9e6434d89b Merge branch 'main' into DS-8412 2022-11-23 11:07:02 +01:00
Adan Roman
ffc15ec54a #8412 In Submission Form, list collections alphabetically 2022-11-16 16:22:36 +01:00
Tim Donohue
f2fa6863d2 Fix broken link in PR template 2022-11-15 16:18:35 -06:00
Tim Donohue
59838e6e29 Add link to REST Contract from PR template 2022-11-15 16:17:51 -06:00
Tim Donohue
ee1f9f047e Require javadocs for all public methods. Fix checkstyle errors. 2022-11-11 16:13:08 -06:00
Luca Giamminonni
da778f3306 [DURACOM-92] Fixed dependency convergence error 2022-11-11 17:17:12 +01:00
Luca Giamminonni
4d085503c9 [DURACOM-92] Fixed dependency convergence error 2022-11-11 17:06:37 +01:00
Luca Giamminonni
ba0819782a [DURACOM-92] Improved S3BitStoreService using embedded S3 2022-11-11 16:43:05 +01:00
Luca Giamminonni
934a4b3b6e Merge remote-tracking branch '4science-bitbucket/main' into DURACOM-92 2022-11-11 10:51:54 +01:00
nwoodward
29b1eaa078 added sort tests 2022-11-10 11:49:45 -06:00
Tim Donohue
2d5eafb384 Merge pull request #8556 from the-library-code/TLC-387_s3_bitstore_registration
[TLC-387] When retrieving S3 bitstream, strip -R from internal ID if bitstream is registered
2022-11-10 10:15:31 -06:00
Tim Donohue
fd6450ca55 Merge pull request #8537 from tdonohue/update_commons-text
Require commons-text 1.10.0 in dependencyManagement
2022-11-10 10:07:08 -06:00
nwoodward
99ecf531ea fix checkstyle errors 2022-11-10 08:02:25 -06:00
Kim Shepherd
196926576d [TLC-387] Add basic unit tests for registered ID handling in S3 bitstore 2022-11-10 11:45:40 +13:00
nwoodward
a152f9baef use discovery configuration to get correct sort field type for given sort field 2022-11-09 15:53:00 -06:00
nwoodward
a350090d76 stop requiring Maxmind DatabaseReader to log views statistics 2022-11-07 16:52:46 -06:00
Vincenzo Mecca
57fcfec276 [8563] [DURACOM-101] Changed method name and visibility 2022-11-04 09:34:22 +01:00
Vincenzo Mecca
d1f61b8acd [8563] [DURACOM-101] Checkstyle fix 2022-11-04 09:30:18 +01:00
Tim Donohue
ccd47b0ddd Merge pull request #8566 from tdonohue/update_actions
Update to the latest version of all GitHub actions
2022-11-03 17:26:38 -05:00
Tim Donohue
279b6785fe Update to the latest version of all GitHub actions 2022-11-03 16:05:11 -05:00
Tim Donohue
d3de602f66 Merge pull request #8547 from toniprieto/translate-cc
Use translations of Creative Commons API
2022-11-03 14:59:16 -05:00
Vincenzo Mecca
ff44d3f591 [8563] [DURACOM-101] Unit tests for RegexPatternUtils 2022-11-03 18:50:27 +01:00
Vincenzo Mecca
8c88b4973c [8563][DURACOM-101] Refactored regex usage
Introduced a new dspace-api Regex-Pattern utility class.
2022-11-03 17:48:07 +01:00
Tim Donohue
e5b5aa5e09 Merge pull request #8545 from toniprieto/cc-jurisdiction
Fix for Creative Commons jurisdiction chosen is ignored (REST API)
2022-11-03 11:07:24 -05:00
Mark H. Wood
035d42c194 Option to skip bitstreams like 'export -x' 2022-11-01 17:15:56 -04:00
Tim Donohue
7fdc3c53b5 Merge pull request #8553 from alanorth/imagemagick-pdf-density
dspace-api: allow overriding ImageMagick density
2022-11-01 11:20:38 -05:00
Tim Donohue
6003cc8151 Merge pull request #8541 from TexasDigitalLibrary/DSpace-8450
DS-8450 Fixes the null subject in the request acceptance email
2022-10-31 15:16:55 -05:00
Tim Donohue
8c9a920cb6 Merge pull request #8551 from TexasDigitalLibrary/DSpace-8298
DS-8298: set last harvested time for successful OAI harvest
2022-10-31 14:31:10 -05:00
Tim Donohue
fff620b682 Merge pull request #8535 from 4Science/DURACOM-98_solr-logging
Enable solr slow query logging
2022-10-31 14:08:54 -05:00
Tim Donohue
9dd3887030 Merge pull request #8529 from atmire/w2p-95912_facet-capital-letter-bugfix-main
Facet search endpoint queries should be case-insensitive
2022-10-31 12:46:03 -05:00
Tim Donohue
6c0f4d1b07 Merge pull request #8559 from sashashura/patch-1
GitHub Workflows security hardening
2022-10-31 10:30:30 -05:00
Alex
07f2cc0e33 build: harden label_merge_conflicts.yml permissions
Signed-off-by: Alex <aleksandrosansan@gmail.com>
2022-10-31 16:55:32 +02:00
Alex
1cf5a5497d build: harden docker.yml permissions
Signed-off-by: Alex <aleksandrosansan@gmail.com>
2022-10-31 16:45:42 +02:00
Alex
6695396d28 build: harden build.yml permissions
Signed-off-by: Alex <aleksandrosansan@gmail.com>
2022-10-31 16:45:18 +02:00
Tim Donohue
a0732efa35 Merge pull request #8532 from atmire/w2p-96097_CreateMissingIdentifiersIT-bugfix
CreateMissingIdentifiersIT affecting other tests fix
2022-10-31 09:09:38 -05:00
Alex
bc41e60b70 build: harden issue_opened.yml permissions
Signed-off-by: Alex <aleksandrosansan@gmail.com>
2022-10-31 15:05:43 +02:00
Kim Shepherd
517daaeea2 [TLC-387] When retrieving S3 bitstream, strip -R from internal ID if bitstream is registered 2022-10-31 12:17:07 +13:00
Tim Donohue
77ea148574 Merge pull request #8523 from J4bbi/ds7-oai-remove-bundles
OAI : Use removeAllBundles, defend against ConcurrentModificationException
2022-10-28 16:16:41 -05:00
Tim Donohue
78cc75e180 Merge pull request #8531 from christian-scheible/refresh_spider_file_bugfix
Fixes #8528, refreshing spider files causes null pointer.
2022-10-28 14:52:54 -05:00
Tim Donohue
0c9ee528f8 Merge pull request #8502 from atmire/Fix-registry-dependent-IT-for-MetadatafieldRestRepository
Fix hardcoded `workflow.score` comparison in MetadatafieldRestRepositoryIT
2022-10-28 14:50:56 -05:00
Tim Donohue
4539c8db60 Merge pull request #8484 from nibou230/copy-request-email-8451
Send email even if copy request is refused
2022-10-28 14:39:07 -05:00
Tim Donohue
616170df7a Ensure label_merge_conflicts never runs on forks 2022-10-28 09:55:53 -05:00
Tim Donohue
7c2aa7f86d Bug fix to label_merge_conflicts GitHub action 2022-10-28 09:43:19 -05:00
Tim Donohue
55334703f3 Merge pull request #8552 from tdonohue/update_merge_conflict_action
Switch GitHub action for labeling merge conflicts
2022-10-28 09:26:20 -05:00
Alan Orth
bf0038182f dspace-api: allow overriding ImageMagick density
Allow users to override ImageMagick's default density of 72 DPI for
creating PDF thumbnails. In this case a density of 144 will perform
a "2x" supersample, which greatly increases the quality of the res-
ulting images at the expense of slightly longer execution time and
higher memory usage.

See: https://imagemagick.org/script/command-line-options.php#density
See: https://stackoverflow.com/questions/49828544/how-to-make-thumbnails-using-imagickresizeimage-appear-sharper-php
Fixes: https://github.com/DSpace/DSpace/issues/8514
2022-10-28 09:28:15 +03:00
Tim Donohue
8aa8518ed8 Switch GitHub action for labeling merge conflicts 2022-10-27 13:35:06 -05:00
nwoodward
e3133460b8 set last harvested time for successful OAI harvest 2022-10-27 13:19:50 -05:00
Toni Prieto
954cf43caf Changes to use the translations of CC API when no default locale is configured and correct language code used for CC metadata 2022-10-26 10:57:29 +02:00
Toni Prieto
fd5dda2f0e Expose configuration key cc.license.jurisdiction and use user-selected jurisdiction if this key is set to none 2022-10-26 09:33:19 +02:00
nwoodward
e49d4c9f54 changed to check that headerValue is not null before setting subject to it 2022-10-24 15:20:31 -05:00
Tim Donohue
5c697c813b Merge pull request #8534 from DSpace/dependabot/maven/com.fasterxml.jackson.core-jackson-databind-2.13.4.1
Bump jackson-databind from 2.12.6.1 to 2.13.4.1
2022-10-24 12:18:20 -05:00
Tim Donohue
ad4a13e7ab Update jackson core alongside databind
Also bumped databind to absolute latest
2022-10-24 11:17:17 -05:00
Tim Donohue
a6e4c7daba Merge branch 'main' into dependabot/maven/com.fasterxml.jackson.core-jackson-databind-2.13.4.1 2022-10-24 10:56:40 -05:00
Tim Donohue
b3ad1d5606 Fix comment 2022-10-21 16:50:05 -05:00
Tim Donohue
21aebee319 Update GitHub token for action 2022-10-21 16:37:30 -05:00
Tim Donohue
79d70be6fb Update action to add issues to new triage board 2022-10-21 16:22:26 -05:00
Tim Donohue
d6cc202e6b Require commons-text 1.10.0 in dependencyManagement. Remove unnecessary references to commons-text elsewhere in POMs 2022-10-19 10:27:01 -05:00
corrado lombardi
64d264a660 [DURACOM-98] enable solr slow query logging 2022-10-19 15:30:28 +02:00
dependabot[bot]
c425da2ffb Bump jackson-databind from 2.12.6.1 to 2.13.4.1
Bumps [jackson-databind](https://github.com/FasterXML/jackson) from 2.12.6.1 to 2.13.4.1.
- [Release notes](https://github.com/FasterXML/jackson/releases)
- [Commits](https://github.com/FasterXML/jackson/commits)

---
updated-dependencies:
- dependency-name: com.fasterxml.jackson.core:jackson-databind
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-19 05:59:04 +00:00
Tim Donohue
63b1ff825b Merge pull request #8306 from kshepherd/docker-test_remote_debug
Dockerfile.test and docker-compose: expose port 8000, set JDWP java opts
2022-10-18 14:39:08 -05:00
Kristof De Langhe
93e72eff54 96097: CreateMissingIdentifiersIT affecting other tests fix 2022-10-18 11:16:59 +02:00
Christian Scheible
6f02dd502d Fixes #8528, refreshing spider files causes null pointer. 2022-10-18 09:28:59 +02:00
Tim Donohue
2a6b457f5a Merge pull request #8503 from alanorth/update-pdfbox
Update PDFBox dependency to version 2.0.27
2022-10-17 15:28:56 -05:00
Tim Donohue
4789b16511 Merge pull request #8504 from alanorth/update-commons-dbcp2
Update Apache commons-dbcp2 and commons-pool2 dependencies
2022-10-17 15:12:01 -05:00
Jens Vannerum
0ad63f054b Merge branch 'w2p-95912_facet-capital-letter-bufix' 2022-10-17 15:52:26 +02:00
Jens Vannerum
1047dca2fd 95912: queries should be case-insensitive 2022-10-17 15:49:41 +02:00
Hrafn Malmquist
528f1a4ff2 Use removeAllBundles, defend against ConcurrentModificationException 2022-10-15 01:14:30 +01:00
QZhao
d015c4b8e8 Bugfix: item admin can't create new version item 2022-10-14 10:41:43 +02:00
Alan Orth
e65c277779 pom.xml: update DBCP2 dependency
Update commons-dbcp2 and commons-pool2 to latest stable versions.
2022-10-07 10:34:01 +03:00
Alan Orth
75e1c0c27d pom.xml: update pdfbox to 2.0.27
See release notes for versions from the current 2.0.24 until 2.0.27
here:

- 2.0.25: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310760&version=12350196
- 2.0.26: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310760&version=12350925
- 2.0.27: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310760&version=12351648
2022-10-07 10:33:28 +03:00
Tim Donohue
7837fbacd1 [maven-release-plugin] prepare for next development iteration 2022-10-06 12:53:51 -05:00
Tim Donohue
4cdb66267e [maven-release-plugin] prepare release dspace-7.4 2022-10-06 12:53:47 -05:00
Tim Donohue
90bb165eab Minor updates for 7.4 2022-10-06 12:23:54 -05:00
Tim Donohue
70fc220660 Merge pull request #8357 from 4Science/main-duracom-70
Add compatibility for DSpace 7 with the Remote Handle Resolver
2022-10-04 14:48:07 -05:00
Tim Donohue
4067a40f86 Merge pull request #8508 from mwoodiupui/8507
Shorten the classpath in bin/start-handle-server to address inconsistent ClassNotFound
2022-10-04 13:10:01 -05:00
Tim Donohue
bf892262dd Merge pull request #8509 from jeffmorin/main
Fixed start-handle-server.bat (Windows version)
2022-10-04 10:35:29 -05:00
Jean-François Morin
02c2fea8da Cleaned all references to OAI 2022-10-04 10:54:20 -04:00
Tim Donohue
110d577c33 Merge pull request #8482 from 4Science/CST-6761-NewUsersMightBeRegisteredInMassiveWayByRobot
New users might be registered in a massive way by a robot
2022-10-04 09:52:56 -05:00
Jean-François Morin
616fe9fb7d Fixed start-handle-server.bat (Windows version) 2022-10-04 10:42:40 -04:00
Mark H. Wood
9c8840f4ce Remove redundant code: 'dspace classpath' already does what we want. 2022-10-04 07:51:18 -04:00
Tim Donohue
dd3a4220ba Merge pull request #8505 from DSpace/dependabot/maven/org.eclipse.jetty.http2-http2-server-9.4.48.v20220622
Bump http2-server from 9.4.44.v20210927 to 9.4.48.v20220622
2022-10-03 16:22:10 -05:00
Mark H. Wood
61f6bd1622 Remove duplication by depending on 'dspace classpath'. 2022-10-03 16:53:01 -04:00
Mark H. Wood
60d41b86f2 Shorten the argument to -classpath by making the JRE enumerate library JARs.
Also fix some incorrect comments and remove insignificant differences
between 'start-handle-server' and 'dspace'.
2022-10-03 16:36:35 -04:00
Mark H. Wood
b8908e533b Ask for (aliased) strategy by name. 2022-10-03 15:58:49 -04:00
Tim Donohue
09d7d12ba1 Fix minor dependency convergence issues 2022-10-03 14:22:21 -05:00
dependabot[bot]
2af9060ceb Bump http2-server from 9.4.44.v20210927 to 9.4.48.v20220622
Bumps http2-server from 9.4.44.v20210927 to 9.4.48.v20220622.

---
updated-dependencies:
- dependency-name: org.eclipse.jetty.http2:http2-server
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-03 19:08:31 +00:00
Tim Donohue
e396d318bf Merge pull request #8498 from tdonohue/fix_jetty_issues
Fix Jetty dependency issues in DSpace POMs & broken "start-handle-server"
2022-10-03 14:08:03 -05:00
Mykhaylo
b5aacdf967 [CST-6761] restored deleted accidentally properties 2022-10-03 18:04:58 +02:00
Luca Giamminonni
9bc01e8f05 [DURACOM-92] Fixed S3BitStoreServiceTest tests 2022-10-03 12:05:12 +02:00
Mykhaylo
0063b266d5 Merge branch 'main' into CST-6761-NewUsersMightBeRegisteredInMassiveWayByRobot 2022-10-03 09:37:46 +02:00
Luca Giamminonni
b13dff9e65 Merge remote-tracking branch '4science-bitbucket/main' into DURACOM-92 2022-10-03 09:20:00 +02:00
Andrea Bollini
66c452bcf9 CST-6950 fix report email 2022-10-03 09:17:09 +02:00
Andrea Bollini
75840c70c6 CST-6950 fix checker report query 2022-10-03 09:16:58 +02:00
Andrea Bollini
70b1ee19f3 CST-6950 fix checksum check 2022-10-03 09:16:46 +02:00
Andrea Bollini
5210aedbf3 CST-6950 fix checksum check and history 2022-10-03 09:16:24 +02:00
Tim Donohue
c318704ccf Merge pull request #8318 from 4Science/CST-5699
Add scripts and ITs for SAF (Simple Archive Format) import and export functionalities
2022-09-30 14:07:51 -05:00
Tim Donohue
ea930f9bf4 Merge pull request #8060 from atmire/shared-feature-s3-download
Change S3Bitstore to use TransferManager to allow larger then 5gb files
2022-09-30 09:43:19 -05:00
Vincenzo Mecca
3d538cb185 [#8357][DURACOM-70] Fixed url parsing for listhandles 2022-09-30 16:16:39 +02:00
Luca Giamminonni
d7d2723d65 [DURACOM-92] Use TransferManager to download files from S3 2022-09-30 16:08:36 +02:00
Andrea Bollini
b05d19ed6c Always use md5 checksum for data integrity check. Send it to S3 to exclude corruption during upload 2022-09-30 16:02:42 +02:00
Yury Bondarenko
980fd0f8ad Fix last expected MDF in findAllPaginationTest 2022-09-30 10:26:05 +02:00
Tim Donohue
41bf4e9956 Fix Jetty dependencies issues by forcing a specific version to be used, instead of via exclusions 2022-09-29 15:58:33 -05:00
Nicolas Boulay
d246fc4a14 Make it possible to allow a silent refusal 2022-09-29 15:16:50 -04:00
Nicolas Boulay
e26f583992 Send email even if copy request is refused 2022-09-29 15:16:50 -04:00
Mykhaylo
965afa0393 [CST-6761] fix version checking 2022-09-29 18:47:17 +02:00
Jens Vannerum
3f7ceab235 94474: Update the s3 tests to use the new TransferManager method 2022-09-29 17:46:41 +02:00
Mykhaylo
6227adc67b Merge branch 'main' into CST-6761-NewUsersMightBeRegisteredInMassiveWayByRobot 2022-09-29 17:08:06 +02:00
Mykhaylo
b0fb918796 [CST-6761] fix failed tests 2022-09-29 17:01:44 +02:00
Tim Donohue
1a4e7a82e6 Merge pull request #8486 from 4Science/CST-6751
Update Google Analytics to version 4
2022-09-29 09:47:42 -05:00
Mykhaylo
fdd4bc7226 Merge branch 'main' into CST-6761-NewUsersMightBeRegisteredInMassiveWayByRobot 2022-09-29 15:17:27 +02:00
Mykhaylo
c18f5cb7ea [CST-6761] Implemented community feedbacks 2022-09-29 15:14:51 +02:00
Jens Vannerum
0c533c5d1a 94474: Issues after merge 2022-09-29 10:44:56 +02:00
Jens Vannerum
dc6707bc4c Merge branch 'main' into shared-feature-s3-download 2022-09-29 10:41:08 +02:00
Francesco Pio Scognamiglio
a9e23112a3 [CST-5699] clean imports dir; use unique location during import via CLI 2022-09-29 10:29:32 +02:00
Tim Donohue
87cbca439b Merge pull request #8492 from 4Science/CST-6938
Fixed error handling for invalid password during eperson creation
2022-09-28 16:43:47 -05:00
Mykhaylo
f690ac5f43 [CST-6761] fix captcha failed test & added missing java docs 2022-09-28 19:38:07 +02:00
Mykhaylo
0ab2095c3d Merge branch 'main' into CST-6761-NewUsersMightBeRegisteredInMassiveWayByRobot 2022-09-28 18:22:31 +02:00
Mykhaylo
e84f284b87 [CST-6761] added IT for captcha 2022-09-28 18:19:14 +02:00
Mykhaylo
d019b1fd6d [CST-6761] refactored captcha feature 2022-09-28 18:16:56 +02:00
Tim Donohue
60ef084177 Merge pull request #8488 from atmire/issue-8479-Regular_search_can_contain_private_withdrawn_items
Issue 8479 regular search can contain private withdrawn items
2022-09-28 10:43:29 -05:00
Tim Donohue
ce7a0d40aa Merge pull request #8356 from 4Science/main-duracom-69
Improvement for the S3 support - IAM Role and support for legacy folder structure
2022-09-28 10:00:34 -05:00
Luca Giamminonni
6b385d14e5 [CST-6938] Fixed EPersonRestRepositoryIT tests 2022-09-28 11:50:33 +02:00
Jens Vannerum
3af51f5c6f Merge branch 'main' into shared-feature-s3-download
# Conflicts:
#	dspace-api/src/main/java/org/dspace/storage/bitstore/S3BitStoreService.java
2022-09-28 10:18:20 +02:00
Tim Donohue
41225650ec Merge pull request #8392 from mspalti/iiif-bundle
TOC exclusion bundle(s)
2022-09-27 16:05:10 -05:00
Tim Donohue
18f3ae1202 Merge pull request #8477 from 4Science/CST-6152
Ask current password to user when setting a new password
2022-09-27 13:08:13 -05:00
Tim Donohue
9c701265c5 Merge pull request #8398 from mspalti/uncache-bitstreams
Uncaching bitstreams to improve performance of iiif-canvas-dimensions
2022-09-27 12:29:24 -05:00
Vincenzo Mecca
b89c54e9f5 [#8356][DURACOM-69] Removed wrong secondary store option 2022-09-27 18:07:40 +02:00
Luca Giamminonni
a41b9bea82 [CST-6751] Improved dspace.cfg 2022-09-27 16:38:47 +02:00
Luca Giamminonni
591e361caf [CST-6938] Removed old password verification on eperson creation 2022-09-27 15:43:02 +02:00
Francesco Pio Scognamiglio
5ddc5c1360 [CST-5699] change test option to validate 2022-09-27 15:26:47 +02:00
Francesco Pio Scognamiglio
1b4f1cb49c [CST-5699] fix duplicate separator on working directories 2022-09-27 15:04:49 +02:00
Samuel Cambien
da6d55cfd5 issue #8479 Regular search can contain private & withdrawn items - additional configurations 2022-09-27 14:08:35 +02:00
Vincenzo Mecca
1600cdca28 [#8356][DURACOM-69] Improved Configuration for S3Store
feat:
	- New Properties to configure primary store;
	- New status for stores that indicates their initialization;
	- New enabled status for stores for disabling them;
	- New secondary index, used as backup for temporary configs.
2022-09-27 13:34:39 +02:00
Francesco Pio Scognamiglio
430a0f0eb3 [CST-5699] minor fix on zip export from CLI; add missing ITs to check if the exported zip exists 2022-09-27 13:17:49 +02:00
Francesco Pio Scognamiglio
81fc5d9910 [CST-5699] use work dirs instead of temp one 2022-09-27 09:43:36 +02:00
Vincenzo Mecca
101b9e833d [#8357][DURACOM-70] Completed behavior Remote-Handle-Resolver
fix:
	- Removed duplicated routes;
	- Renamed from `hdlResolver` to `hdlresolver`.

feat:
	- New routes'behavior
		- listhandles: lists all handle with a target prefix;
		- listprefixes: lists all prefixes mapped in configuration.
	- New ITs for the updated routes.
2022-09-26 16:29:17 +02:00
Davide Negretti
6a57149b80 Merge branch 'main' into CST-6761-NewUsersMightBeRegisteredInMassiveWayByRobot 2022-09-26 15:47:01 +02:00
Davide Negretti
7bdb1dc88a [CST-6761] Missing exposed properties 2022-09-26 14:53:33 +02:00
Davide Negretti
b299551717 [CST-6761] Missing exposed properties 2022-09-26 14:53:13 +02:00
Francesco Pio Scognamiglio
d04e75abde [CST-5699] delete temp dirs after SAF import and export 2022-09-24 10:48:45 +02:00
Francesco Pio Scognamiglio
ebe21f59db [CST-5699] fix export of a collection with at least two items on SAF export 2022-09-23 19:39:30 +02:00
Tim Donohue
e9e6fbd216 Merge pull request #8481 from atmire/w2p-94103_Enable-MetadataExportSearchIT_search-core-missing-bug-in-CI
Enable and fix `MetadataExportSearchIT`
2022-09-23 10:27:16 -05:00
Francesco Pio Scognamiglio
e355f49035 [CST-5699] delete temp files when added to process; use handler for logging 2022-09-23 13:58:40 +02:00
Luca Giamminonni
9d6ab36a3c Merge remote-tracking branch '4science-bitbucket/main' into CST-6152 2022-09-23 12:29:59 +02:00
Mykhaylo
65c0115833 Merge branch 'main' into CST-6761-NewUsersMightBeRegisteredInMassiveWayByRobot 2022-09-23 10:21:51 +02:00
Tim Donohue
2b4c10b533 Merge pull request #8480 from 4Science/CST-6265
Curation task results are not included in the output file or process output
2022-09-22 16:21:56 -05:00
Francesco Pio Scognamiglio
eb230b10e7 [CST-5699] fix SAF import and export functionality; add ITs for SAF via CLI 2022-09-22 18:34:25 +02:00
Luca Giamminonni
c3a99f6f62 Merge remote-tracking branch '4science-bitbucket/main' into CST-6751 2022-09-22 17:32:34 +02:00
Luca Giamminonni
1e24b50b0b [CST-6751] Improved GoogleAnalyticsClient, dspace.cfg and added tests 2022-09-22 17:31:48 +02:00
Tim Donohue
bf0155f6ce Merge pull request #8404 from 4Science/CST-6108-ValidatePassword
Make password minimum requirements stronger
2022-09-22 08:47:58 -05:00
Michael Spalti
ae1fb9c246 Fixed integration test. 2022-09-21 21:59:08 -07:00
Michael Spalti
574790a087 Minor refactor after merging remote. 2022-09-21 20:27:20 -07:00
Michael Spalti
6a2a0aaf61 Merge branch 'uncache-bitstreams' of https://github.com/mspalti/DSpace into uncache-bitstreams 2022-09-21 20:22:15 -07:00
Michael Spalti
62ef19c548 Merge branch 'main' into uncache-bitstreams 2022-09-21 20:21:03 -07:00
Michael Spalti
4c8a671709 Minor refactor. 2022-09-21 20:17:56 -07:00
Michael Spalti
3e02f855b3 Removed unused constant 2022-09-21 15:05:36 -07:00
Tim Donohue
7b07013e07 Merge pull request #8465 from 4Science/DURACOM-86
DURACOM-86 Add html support to opensearch, fix misconfiguration
2022-09-21 16:32:40 -05:00
Michael Spalti
1e643d0610 Merge branch 'main' into iiif-bundle 2022-09-21 14:00:51 -07:00
Mark H. Wood
4995345387 Merge branch '8304' of github.com:mwoodiupui/DSpace into 8304 2022-09-21 13:04:28 -04:00
Mark H. Wood
24c1d44e94 Autowire by name so alias works. Uncomment all strategies, mark for autowiring and lazy loading.
Also tidy up XML internal documentation.
2022-09-21 13:00:41 -04:00
Tim Donohue
5a27ab74af Merge pull request #8417 from 4Science/DS-4415-main
port #2634 CitationPage curation task mess the bitstream policies to the main branch
2022-09-21 11:19:34 -05:00
Tim Donohue
3ee8470970 Merge pull request #8476 from 4Science/CST-6756
Provide a script to delete old processes
2022-09-21 10:20:40 -05:00
Luca Giamminonni
630fde0f51 [CST-6152] Fixed integration tests 2022-09-21 14:57:32 +02:00
Luca Giamminonni
9938518c66 [DSC-93] Improved dspace.cfg 2022-09-21 11:57:03 +02:00
Andrea Bollini
e28eca8745 Move the citationpage curation task in the right package, add example configuration 2022-09-21 00:01:49 +02:00
Andrea Bollini
228cc31368 Fix checkstyle 2022-09-20 23:54:40 +02:00
Andrea Bollini
46df923c26 Merge branch 'main' of https://github.com/DSpace/DSpace into DS-4415-main 2022-09-20 23:49:09 +02:00
Andrea Bollini
8ccb5918fe DURACOM-86 fix configuration lookup, clenaup configuration and tests 2022-09-20 23:43:37 +02:00
Andrea Bollini
b20caee285 Merge branch 'main' of https://github.com/DSpace/DSpace into DURACOM-86 2022-09-20 22:35:12 +02:00
Mark H. Wood
b4b67c4322 Clean up an unused logger. 2022-09-20 15:40:18 -04:00
Francesco Pio Scognamiglio
c20cab3f6e [CST-5699] minor refactoring 2022-09-20 16:26:43 +02:00
Luca Giamminonni
f2eb9c55b4 [CST-6152] Renamed challenge to currentPassword 2022-09-20 15:29:20 +02:00
Jens Vannerum
74b56d6fe1 94474: Transfer manger should be class wide 2022-09-20 15:19:19 +02:00
Francesco Pio Scognamiglio
b1c9c60cd6 Merge branch 'CST-5699' of github.com:4Science/DSpace into CST-5699 2022-09-20 14:35:47 +02:00
Francesco Pio Scognamiglio
df44b978e0 [CST-5699] refactoring on SAF import and export functionality 2022-09-20 13:50:12 +02:00
Mykhaylo
07934d09f1 minor fix 2022-09-20 11:44:29 +02:00
Francesco Pio Scognamiglio
7c6bf08905 Merge branch 'main' into CST-5699 2022-09-20 09:16:27 +02:00
Francesco Pio Scognamiglio
f606cea1bd Merge branch 'main' into CST-5699 2022-09-20 08:24:15 +02:00
Vincenzo Mecca
97e9379de2 [#8357][DURACOM-70] Added the new property in test configuration 2022-09-19 10:46:06 +02:00
Vincenzo Mecca
ff48afeea4 [#8357][DURACOM-70] Property to disable HdlResolver 2022-09-19 09:42:53 +02:00
Mark H. Wood
b1423de7c1 Noticed in testing: okay not to have a current user. 2022-09-16 14:47:54 -04:00
Mark H. Wood
38946f8de5 Test that unauthenticated session can (dis)approve a request. 2022-09-16 14:47:16 -04:00
Mark H. Wood
fa5aa9c993 Don't test for authNZ failures that can no longer occur. 2022-09-16 11:53:11 -04:00
Mark H. Wood
692fefcbac Don't require authentication to approve/deny a copy request. Possession of the token is sufficient. 2022-09-16 11:08:15 -04:00
Mark H. Wood
a4cb9bd129 Remove more unused code. Caused by removing isAuthorized(). 2022-09-16 10:58:27 -04:00
Samuel Cambien
46bf27748d Merge remote-tracking branch 'DSpace/main' into issue-8479-Regular_search_can_contain_private_withdrawn_items
# Conflicts:
#	dspace/config/spring/api/discovery.xml
2022-09-16 13:42:39 +02:00
Samuel Cambien
7a89c5817c Merge tag 'dspace-7.2' into w2p-94445-Regular_search_can_contain_private_withdrawn_items-7_2
[maven-release-plugin] copy for tag dspace-7.2
2022-09-16 13:39:21 +02:00
Samuel Cambien
1800bf1e7c issue #8479 Regular search can contain private & withdrawn items 2022-09-16 13:27:45 +02:00
Mykhaylo
a31bb4bf61 [CST-6108] implemented community feedbacks 2022-09-16 12:19:06 +02:00
Mykhaylo
2fa27afb6a Merge branch 'main' into CST-6761-NewUsersMightBeRegisteredInMassiveWayByRobot 2022-09-16 10:12:08 +02:00
Mykhaylo
a0e633f1d4 Merge branch 'main' into CST-6108-ValidatePassword 2022-09-16 10:11:24 +02:00
Mark H. Wood
f6ab8ba1fb Remove unused 'isAuthorized' methods.
This method was always questionable.  The point of Request a Copy is
to bypass DSpace's authorizations.
2022-09-15 14:18:01 -04:00
Mark H. Wood
d9caeed387 Merge branch 'main' into 8304 2022-09-15 12:53:22 -04:00
Luca Giamminonni
a111152ea0 [DSC-93] Added help to ProcessCleaner 2022-09-15 15:48:04 +02:00
Andrea Bollini
3b23ff95db Merge pull request #2115 from mwoodiupui/DS-3951
[DS-3951] Send Request Copy email to multiple recipients, and some new recipient strategies
2022-09-15 15:38:17 +02:00
Vincenzo Mecca
82f6f6f5b7 [DURACOM-70][#8357] Fixed unsatisfied dependency 2022-09-15 13:13:16 +02:00
Luca Giamminonni
ca8a85489a [CST-6751] Minor fixes 2022-09-15 12:56:54 +02:00
Luca Giamminonni
3a1d298156 [CST-6751] Added api-secret to dspace.cfg 2022-09-14 17:56:39 +02:00
Tim Donohue
6b1fae1464 Merge pull request #8461 from philipprumpf/issue-7969
SplitMetadataContributor.java: new class to split metadata values based on a regex
2022-09-14 10:55:21 -05:00
Luca Giamminonni
e06513a512 [CST-6751] Added ip anonymization 2022-09-14 17:45:24 +02:00
Luca Giamminonni
6805f33468 [CST-6751] Added value for google.analytics.crontab on dspace.cfg 2022-09-14 16:54:18 +02:00
jensroets
4644655601 94299 Multiple Bitstream deletion endpoint: rename items to parents 2022-09-14 15:49:03 +02:00
Luca Giamminonni
5130642415 [CST-6751] Renamed GoogleAnalyticsClientRequestBuilder method 2022-09-14 15:30:17 +02:00
Luca Giamminonni
53fd235841 [CST-6751] Added tests for UniversalAnalyticsClientRequestBuilder and GoogleAnalyticsClientRequestBuilder 2022-09-14 13:27:27 +02:00
Mykhaylo
75d9fb76b5 [CST-6108] refactored password validation exception 2022-09-14 13:15:21 +02:00
Mykhaylo
71599352e6 Merge branch 'main' into CST-6108-ValidatePassword 2022-09-14 11:52:07 +02:00
Philipp Rumpf
c2931bc440 Add integration tests for multiple BibTeX authors 2022-09-14 07:43:53 +00:00
Philipp Rumpf
c2771cbb7e Configure BibTeX authors to be split on "\sand\s" 2022-09-14 07:43:53 +00:00
Philipp Rumpf
e5049b01ef SplitMetadataContributor.java: new class to split metadata values based on a regex rather than a single character
Fixes #7969

Needed for BibTeX's convention of separating author names by " and ".
2022-09-14 07:43:53 +00:00
Luca Giamminonni
23c3a6d7f3 [CST-6751] Refactoring of GoogleAnalyticsClientImpl to send many request 2022-09-13 18:33:30 +02:00
Luca Giamminonni
6e8e85c2d6 [CST-6751] Added integration tests for GoogleAsyncEventListener 2022-09-13 17:46:31 +02:00
Tim Donohue
249fe2f1f7 Merge pull request #8281 from 4Science/CST-5340-OpenAIREFundingDataProvider
Make OpenAIRE Funding connector mapping configurable
2022-09-13 09:23:02 -05:00
Luca Giamminonni
a42dc30a9b [CST-6751] Minor improvements 2022-09-13 15:30:05 +02:00
Luca Giamminonni
b50fa3aaed [CST-6751] Refactoring of GoogleAsyncEventListener 2022-09-12 18:27:43 +02:00
Yury Bondarenko
73ede2f4c1 Merge remote-tracking branch 'origin/main' into w2p-94103_Enable-MetadataExportSearchIT_search-core-missing-bug-in-CI 2022-09-09 09:49:56 +02:00
Vincenzo Mecca
87118257ed [CST-6265] JavaDocs 2022-09-08 18:50:34 +02:00
Vincenzo Mecca
33e6339900 [CST-6265] Fixed message formatting
fix:
	- message formatting for logInfo was done twice
feat:
	- message inside logWarn was not formatted when using handler
2022-09-08 18:45:11 +02:00
jensroets
51d8874a8f 94299 Multiple Bitstream deletion endpoint 2022-09-08 16:50:02 +02:00
Mykhaylo
418afe79b7 fix checkstyle & added x-recaptcha-token into headers 2022-09-08 11:52:37 +02:00
Luca Giamminonni
43066240e8 Merge remote-tracking branch '4science-bitbucket/main' into CST-5340-OpenAIREFundingDataProvider 2022-09-08 10:25:00 +02:00
Luca Giamminonni
04deb6d42c [CST-5340] Removed not used metadata fields in external-openaire.xml 2022-09-08 10:23:53 +02:00
Davide Negretti
a727c96d89 Merge remote-tracking branch 'gh4science/CST-6761-NewUsersMightBeRegisteredInMassiveWayByRobot' into CST-6761-NewUsersMightBeRegisteredInMassiveWayByRobot 2022-09-07 19:25:59 +02:00
Davide Negretti
6c48a22f40 [CST-6761] Allow header x-recaptcha-token 2022-09-07 19:25:45 +02:00
Tim Donohue
fd4e6116a2 Merge pull request #8473 from 4Science/CST-6739-AIPexports
AIP exports could produce invalid mets.xml file
2022-09-07 12:06:45 -05:00
Mykhaylo
885ff20666 Merge branch 'main' into CST-6761-NewUsersMightBeRegisteredInMassiveWayByRobot 2022-09-07 09:55:17 +02:00
Mykhaylo
0a10e48eba [CST-6761] added missing license 2022-09-07 09:54:56 +02:00
Michael Spalti
dc55f12e64 Moved unchache 2022-09-06 09:39:34 -07:00
Michael Spalti
0481546cc7 Removed unused import. 2022-09-06 09:39:34 -07:00
Michael Spalti
1cf7352166 Using batch edit mode. 2022-09-06 09:39:34 -07:00
Michael Spalti
8a36bdd982 Uncache the item. 2022-09-06 09:39:34 -07:00
Michael Spalti
76314035f9 Uncaching bitstreams to improve performance. 2022-09-06 09:39:34 -07:00
Mykhaylo
a443004547 [CST-6761] added new property google.recaptcha.mode to rest.cfg 2022-09-06 16:38:05 +02:00
Mykhaylo
25438e42fb [CST-6761] added new property google.recaptcha.mode 2022-09-06 16:36:38 +02:00
Mykhaylo
6f8b3e1381 added captcha services 2022-09-06 16:35:03 +02:00
Tim Donohue
5b4a3da0bb Merge pull request #8447 from tdonohue/fix_8351
Update to oclc-harvester2 v1.0.0 and remove Xalan
2022-09-06 09:17:13 -05:00
Mykhaylo
eb7b78d59c [CST-6761] added support for captcha version (v2 and v3). - added new property. 2022-09-06 16:03:18 +02:00
Mykhaylo
1bfec3ab1d [CST-6108] configured param to use angular side 2022-09-05 16:22:04 +02:00
Mykhaylo
c608fd89fb Merge branch 'main' into CST-6108-ValidatePassword 2022-09-05 16:00:39 +02:00
Mykhaylo
9af70628a0 [CST-6108] update tests 2022-09-05 15:58:55 +02:00
eskander
3884007521 [CST-6265] Curation task results are not included in the output file or process output 2022-09-02 15:14:00 +02:00
Tim Donohue
c7692d5517 Merge pull request #8471 from mwoodiupui/upload-autowire
Autowire ConfigurationService in UploadConfiguration instead of requiring explicit configuration
2022-09-01 16:12:17 -05:00
Luca Giamminonni
e96107a6b9 [DSC-93] Added tests for ProcessCleaner 2022-09-01 16:54:44 +02:00
Luca Giamminonni
28bb6f93e0 [CST-6756] Implemented script to delete old processes 2022-09-01 16:24:55 +02:00
Tim Donohue
81a13eed29 Merge pull request #8446 from atmire/w2p-93108_Bitstream-name-missing-on-statistics-page_7.2
W2p 93108 bitstream name missing on statistics page 7.2
2022-08-31 16:37:03 -05:00
Vincenzo Mecca
b9eb369275 [DSpace#8356][DURACOM-69] Change Requests part. 3.1 2022-08-31 16:12:30 +02:00
Vincenzo Mecca
a78d2fa0ab [DSpace#8356][DURACOM-69] Change Requests part. 3 2022-08-31 13:24:47 +02:00
Mark H. Wood
07a464902c [DS-3951] Improve configuration documentation. 2022-08-30 09:29:24 -04:00
Yura Bondarenko
611f610f15 94103: Explicitly clear cached SearchService instance between ITs 2022-08-29 14:16:42 +02:00
Mykhaylo
00f607459d [CST-6739] removed unused imports 2022-08-29 10:16:56 +02:00
Andrea Bollini
5d1f3b6ea1 CST-6739 AIP exports could produce invalid mets.xml file 2022-08-29 10:09:33 +02:00
kshepherd
5254ecf9ff Merge pull request #1857 from mwoodiupui/DS-2670
[DS-2670] Restrospectively create DOIs for all items in archive
2022-08-28 10:01:09 +12:00
Mark H. Wood
91acf0baad [DS-2670] Fail if an incompatible IdentifierProvider is configured.
Added basic integration test to prove the above.
2022-08-26 18:04:34 -04:00
Mark H. Wood
e67e371577 Merge branch 'main' into DS-2670 2022-08-26 14:40:31 -04:00
Mark H. Wood
e4a4737aee [DS-3951] Remove unused import to satisfy Checkstyle. 2022-08-26 12:52:05 -04:00
Mark H. Wood
8f3289e8cd Merge branch 'main' into DS-3951 2022-08-26 11:15:24 -04:00
Mark H. Wood
4f5203b142 Explicit property must be removed from test configuration too.
I changed over from field injection to constructor injection while
diagnosing the failure caused by this problem, and decided to keep
it.  It's a little more verbose, but safer and clearer in the doco.
Really, the *required* properties should also be constructor
parameters.

Also cleaned up some trailing whitespace in the configuration documents.
2022-08-25 16:33:26 -04:00
Mykhaylo
b8136aed8c [CST-6108] fix faled IT 2022-08-25 19:24:12 +02:00
Mykhaylo
906d78b16e [CST-6108] fix failed unit tests 2022-08-25 18:23:50 +02:00
Mykhaylo
3060819a14 Merge branch 'main' into CST-6108-ValidatePassword 2022-08-25 17:11:24 +02:00
Vincenzo Mecca
03ac217a3a [DURACOM-70][DSpace#8357] Applied Second Change Requests 2022-08-25 12:05:57 +02:00
Marie Verdonck
ab3938b34f Issue #8355: enable MetadataExportSearchIT 2022-08-25 12:05:41 +02:00
Vincenzo Mecca
faa1f6284e [DSpace#8356][DURACOM-69] Change Requests part. 2 2022-08-25 10:04:09 +02:00
Tim Donohue
897d9b7d98 Merge pull request #8458 from mwoodiupui/8437
Solr search core initialization is fragile
2022-08-24 12:15:45 -05:00
Mark H. Wood
5e8a4ed397 Document this interface. 2022-08-24 12:32:42 -04:00
Tim Donohue
a40a5a6217 Merge pull request #8456 from philipprumpf/issue-8455
Expose BibTeX document type as PlainMetadataKeyValueItem during import
2022-08-24 11:30:41 -05:00
Mark H. Wood
747a2aeec9 Autowire constant ConfigurationService field instead of making it a parameter. 2022-08-24 12:30:40 -04:00
Tim Donohue
ed96cdcfe2 Merge pull request #8454 from philipprumpf/issue-8453
use org.jbibtex.LaTeXParser to handle BibTeX diacritics
2022-08-24 11:04:13 -05:00
Philipp Rumpf
4c26d2f77c Add integration test for BibTeX type import 2022-08-22 12:57:53 +00:00
Philipp Rumpf
cd65b4483f Configure BibTeX import to provide dc.type (without mapping it) 2022-08-22 12:10:32 +00:00
Philipp Rumpf
2c11d68875 Add integration test for BibTeX/LaTeX diacritics. 2022-08-22 11:11:46 +00:00
Kim Shepherd
13eaaf4ab8 Move JDWP configuration from JAVA_OPTS to CATALINA_OPTS 2022-08-20 10:18:17 +12:00
corrado lombardi
04c8e0d7c4 Merge remote-tracking branch 'bb-cris/CST-6151' into CST-6152 2022-08-19 17:32:04 +02:00
Tim Donohue
0ef8879c15 Merge pull request #8399 from ammanabrolua/main
[DS-3306] bin/dspace create-administrator needs a --help option #6661 #8367
2022-08-18 10:59:32 -05:00
ammanabrolua
15fae257f6 Merge branch 'DSpace:main' into main 2022-08-18 14:10:07 +02:00
Andrea Bollini
ad3ef6046b DURACOM-86 fix checkstyle 2022-08-18 13:11:35 +02:00
Andrea Bollini
d99913cb79 DURACOM-86 Add html support to opensearch, fix misconfiguration 2022-08-18 09:39:02 +02:00
Tim Donohue
62df120b75 Merge pull request #8464 from tdonohue/fix_gendered_lang
Remove/replace gendered language in code comments
2022-08-17 15:00:39 -05:00
Tim Donohue
8aacf54b87 More text replacement 2022-08-17 14:10:25 -05:00
Tim Donohue
9e098f229f Additional replacements of gendered text 2022-08-17 14:03:45 -05:00
Tim Donohue
9a3bd8a188 Fix more gendered language in code comments 2022-08-17 10:59:07 -05:00
Tim Donohue
dfac17e890 Fix descriptions of delegated admin settings in dspace.cfg 2022-08-17 10:41:51 -05:00
Tim Donohue
e6e283a1f2 Replace gendered language in code comments 2022-08-17 10:41:29 -05:00
Vincenzo Mecca
92f43aced3 [#8356][DURACOM-69] Change Requests 2022-08-16 11:37:28 +02:00
Mark H. Wood
ed04558402 Throw a RuntimeException if the Solr server cannot be reached. #8437 2022-08-12 16:17:36 -04:00
Mark H. Wood
80f65ad4ff [DS-2760] Take up a review suggestion. Also replace slf4j with log4j2. 2022-08-12 15:25:30 -04:00
Mark H. Wood
237ffe4af3 [DS-3951] More review comments. 2022-08-12 14:23:45 -04:00
Mark H. Wood
27143d8e56 [DS-3951] Address review comments. 2022-08-12 13:32:10 -04:00
ammanabrolua
6f990a4697 get option values by default 2022-08-11 09:25:33 +02:00
ammanabrolua
f5f0744839 applying deMorgan's Rule 2022-08-11 09:16:42 +02:00
Johanna Staudinger
4d5976b67e Expose BibTeX document type as PlainMetadataKeyValueItem during import 2022-08-10 13:02:26 +00:00
Philipp Rumpf
76467c7cfc use org.jbibtex.LaTeXParser to handle BibTeX diacritics 2022-08-10 09:50:29 +00:00
ammanabrolua
9e0b20fdac Merge branch 'DSpace:main' into main 2022-08-09 20:55:56 +02:00
Tim Donohue
1215992c86 Merge pull request #8452 from philipprumpf/issue-8403
Update jbibtex library to version 1.0.20
2022-08-09 13:53:03 -05:00
Tim Donohue
a74604647b Merge pull request #8435 from toniprieto/strip-diacritics-browse-item
Fix browse by title filter doesn't work with diacritics
2022-08-09 13:17:18 -05:00
Philipp Rumpf
b61aa04f48 Update jbibtex library to version 1.0.20
Fixes #8403
2022-08-09 13:45:10 +00:00
Toni Prieto
9556423e6c Prevent possible NPEs 2022-08-09 14:00:29 +02:00
Mykhaylo
5b6f19c089 Merge branch 'main' into CST-6108-ValidatePassword 2022-08-09 13:10:27 +02:00
Mykhaylo
3eac915dbb [CST-6108] Implemented community feedback 2022-08-09 13:08:14 +02:00
Tim Donohue
f0bcc4e5da Merge pull request #8424 from 4Science/CST-6448_auth_pagination
Pagination support for multiple objects and authorization features endpoint
2022-08-08 15:51:04 -05:00
Tim Donohue
75f7e8463f Merge pull request #8448 from DSpace/dependabot/maven/org.postgresql-postgresql-42.4.1
Bump postgresql from 42.3.3 to 42.4.1
2022-08-08 10:54:26 -05:00
Tim Donohue
1d3506a2c7 Merge pull request #8394 from DSpace/dependabot/maven/org.apache.commons-commons-configuration2-2.8.0
Bump commons-configuration2 from 2.7 to 2.8.0
2022-08-08 10:25:23 -05:00
dependabot[bot]
16b9874097 Bump postgresql from 42.3.3 to 42.4.1
Bumps [postgresql](https://github.com/pgjdbc/pgjdbc) from 42.3.3 to 42.4.1.
- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)
- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.3.3...REL42.4.1)

---
updated-dependencies:
- dependency-name: org.postgresql:postgresql
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-06 05:57:35 +00:00
Tim Donohue
ff3c8b6b0b Fix dependency convergence issues via minor upgrades to opencsv and commons-text 2022-08-05 16:52:06 -05:00
Tim Donohue
9afd6ce1da Fix checkstyle violations by correcting order of imports 2022-08-05 16:47:31 -05:00
dependabot[bot]
ca046e5f98 Bump commons-configuration2 from 2.7 to 2.8.0
Bumps commons-configuration2 from 2.7 to 2.8.0.

---
updated-dependencies:
- dependency-name: org.apache.commons:commons-configuration2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-05 21:43:46 +00:00
Tim Donohue
0679fb9703 Update to oclc-harvester2 v1.0.0 and remove xalan 2022-08-05 16:20:25 -05:00
Tim Donohue
91131d9966 Merge pull request #8410 from atmire/w2p-92917_Fix-trusted-IP-ranges_Contribute_PR
proxies.trusted.ipranges fixes
2022-08-05 08:16:33 -05:00
Ben Bosman
227597417b simplify to avoid code duplication 2022-08-04 18:13:14 +02:00
ammanabrolua
16b2353b6f Updated code after first review 2022-08-04 15:31:53 +02:00
Tim Donohue
43b441c4c1 Merge pull request #8407 from DSpace/dependabot/maven/dspace-api/com.amazonaws-aws-java-sdk-s3-1.12.261
Bump aws-java-sdk-s3 from 1.12.116 to 1.12.261 in /dspace-api
2022-08-03 16:38:12 -05:00
Luca Giamminonni
3316aefde4 [CST-6152] Minor changes 2022-08-03 17:28:24 +02:00
Luca Giamminonni
bfb0736ab7 [CST-6152] Password add operation refactoring to include challenge in the value 2022-08-03 17:09:09 +02:00
Luca Giamminonni
edfa9145e7 Merge remote-tracking branch '4science-bitbucket/main' into CST-6152 2022-08-03 16:12:17 +02:00
Luca Giamminonni
505544232d [CST-6108] Removed not used javadoc parameter 2022-08-03 16:06:37 +02:00
Luca Giamminonni
e3528dc098 [CST-6108] Refactoring of ValidatePasswordService 2022-08-03 15:18:40 +02:00
Tim Donohue
68d7508c0f Merge pull request #8400 from atmire/w2p-84011_Fix-originalSubmitterAssignAction_7.x
Fix claimed user on `AssignOriginalSubmitterAction`
2022-08-02 12:03:44 -05:00
Tim Donohue
10afbe7100 Merge pull request #8422 from 4Science/main-8419
Workflow's steps doesn't preserve order
2022-08-02 11:31:07 -05:00
Tim Donohue
2f34e93e0d Merge pull request #8321 from mwoodiupui/8320
Address many long-standing LGTM complaints
2022-08-02 11:29:05 -05:00
Mark H. Wood
89acc8b13b Address requested changes. 2022-08-02 10:04:40 -04:00
Mark H. Wood
77d344a8c7 Merge branch 'main' into 8320 2022-08-02 09:48:58 -04:00
Tim Donohue
cc45de7da1 Merge pull request #2468 from mwoodiupui/DS-4289
[DS-4289] SAF exporter does not write the 'collections' file
2022-08-01 13:43:40 -05:00
Mark H. Wood
8613b278e5 Merge pull request #8421 from kshepherd/fix_abstractcondition_services
Ensure Local Filter services are autowired
2022-07-29 10:45:10 -04:00
Kim Shepherd
b48fa9ea8c #8421 - Remove unused import 2022-07-29 12:00:39 +12:00
Kim Shepherd
73276839e1 #8421 - Set services for constructed (unwired) conditions in unit tests 2022-07-29 11:29:48 +12:00
kshepherd
d1e7bd1b21 Merge pull request #8433 from dataquest-dev/maven-build-speed-up
maven build speed
2022-07-29 10:54:10 +12:00
Kim Shepherd
d10a153ad1 #8421 - Remove explicit service instantiation 2022-07-29 10:49:11 +12:00
Tim Donohue
4d4f129523 Merge pull request #2469 from mwoodiupui/DS-4300
[DS-4300] Optionally apply given Handles when importing community/collection structure
2022-07-28 10:02:05 -05:00
MajoBerger
b4f8e7d69d maven build speed 2022-07-28 07:26:45 +02:00
Tim Donohue
13e5809474 Merge pull request #8383 from 4Science/CST-6201
OAI Import errors when indexing without -c option
2022-07-27 14:37:43 -05:00
Vincenzo Mecca
18ae327996 [DURACOM-70] [#8357] Applied Change Requests
fix:
	- Removed typo;
	- Removed method inside `ItemBuilder`;
feat:
	- Added multiple routes to `HdlResolverRestController`:
	    * `/resolve/`;
	    * `/listhandles/`;
	    * `/listprefixes/`;
	- Added ITs for these new routes.
2022-07-26 18:47:39 +02:00
Toni Prieto
30b8dff95e Merge branch 'strip-diacritics-browse-item' of github.com:toniprieto/DSpace into strip-diacritics-browse-item 2022-07-26 14:05:39 +02:00
Toni Prieto
ca483e2435 Correct comments 2022-07-26 14:04:12 +02:00
Toni Prieto
7159563605 Add test for browsing by title with diacritics 2022-07-26 14:00:21 +02:00
Toni Prieto
77e42631e1 Ignore diacritics in browse by title 2022-07-26 12:10:52 +02:00
corrado lombardi
946ffa998d [CST-6448] checkstyle fix 2022-07-26 09:02:22 +02:00
corrado lombardi
d604ad888b [CST-6448] Pagination handling in /objects endpoint response 2022-07-25 19:09:25 +02:00
Vincenzo Mecca
949796b288 [DS-8419] JavaDoc on Matcher 2022-07-25 11:07:07 +02:00
Vincenzo Mecca
060727ba14 [DS-8419] WorkFlow steps preserve order
fix:
	- Replaced HashMap with LinkedHashMap, to preserve order.
feat:
	- New test to assert steps order;
	- New matcher for check step.
2022-07-25 11:06:56 +02:00
Kim Shepherd
e6620dc88f ensure item and collection services are autowired
(previously disabled due to some unit test conflicts?)
2022-07-25 15:51:30 +12:00
Michael Spalti
323867dd56 Removed unused import. 2022-07-22 14:03:49 -07:00
Michael Spalti
d11e3814d4 Using batch edit mode. 2022-07-22 12:16:07 -07:00
Andrea Bollini
ad7d7e2c83 port #2634 to the main 2022-07-21 18:05:41 +02:00
Michael Spalti
d392d93e29 Uncache the item. 2022-07-19 10:36:47 -07:00
dependabot[bot]
c0fa5ac403 Bump aws-java-sdk-s3 from 1.12.116 to 1.12.261 in /dspace-api
Bumps [aws-java-sdk-s3](https://github.com/aws/aws-sdk-java) from 1.12.116 to 1.12.261.
- [Release notes](https://github.com/aws/aws-sdk-java/releases)
- [Changelog](https://github.com/aws/aws-sdk-java/blob/master/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-java/compare/1.12.116...1.12.261)

---
updated-dependencies:
- dependency-name: com.amazonaws:aws-java-sdk-s3
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-15 21:06:46 +00:00
Mark H. Wood
953f37d4b2 Test with a community with handle not specified. #2469 2022-07-15 11:12:42 -04:00
Mark H. Wood
f8594abf5f Add spot-check for a Collection handle. #2469 2022-07-15 10:38:20 -04:00
Yura Bondarenko
e2216dcc50 Merge tag 'dspace-7.2' into w2p-93108_Bitstream-name-missing-on-statistics-page_7.2
[maven-release-plugin] copy for tag dspace-7.2
2022-07-15 15:18:52 +02:00
Michael Spalti
44ae8c0464 Minor test modification. 2022-07-14 11:05:56 -07:00
Michael Spalti
d5c9c86b11 Updated config file. 2022-07-14 10:52:56 -07:00
Michael Spalti
f6635c6262 Adds new IIIF config paramenter that excludes bundles from TOC generation. 2022-07-14 10:36:29 -07:00
Michael Spalti
84375b0499 Omit "iiif" bundle from toc ranges. 2022-07-14 10:36:29 -07:00
Mark H. Wood
87144496b2 Remove commented-out code. #2469 2022-07-14 11:49:31 -04:00
Yura Bondarenko
3185578d72 93108: Cover usage report point labels in ITs 2022-07-14 15:26:32 +02:00
Yura Bondarenko
2a2214d4c5 93108: Fix id/label mismatch in Bitstream download usage report points 2022-07-14 14:10:13 +02:00
ammanabrolua
5145c5b64d Merge branch 'DSpace:main' into main 2022-07-14 13:10:50 +02:00
Mykhaylo
fd1eec0aad [CST-6108] updated documentation 2022-07-14 12:48:09 +02:00
ammanabrolua
41ac87d42f resolve LGTM alert 2022-07-14 11:52:17 +02:00
ammanabrolua
449dfe0eb0 fixed logic 2022-07-14 10:30:05 +02:00
Tim Donohue
31f706042f Merge pull request #8366 from atmire/w2p-92174_fix-issues-with-test-OpenUrlServiceImplTest-7.2
92174: Refactor OpenUrlServiceImplTest to avoid making http requests
2022-07-13 16:37:11 -05:00
Tim Donohue
59e8c66243 Merge pull request #8361 from atmire/w2p-92174_issue-8360_replace-new-operator-with-autowire
Replace new operator with autowire
2022-07-13 16:13:06 -05:00
Mark H. Wood
41e1d8506b Clean up more warnings. #8320 2022-07-13 16:49:18 -04:00
Mark H. Wood
e9313acd24 Clean up a bunch of warnings. #8320 2022-07-13 14:03:42 -04:00
Mark H. Wood
023fc6a29c Merge branch 'main' into 8320 2022-07-13 12:17:35 -04:00
Mark H. Wood
b0316b4f74 Clean up all recommendations, plus scads of missing Javascript semicolons. 2022-07-13 12:01:51 -04:00
Mykhaylo
9ef9a26ac2 [CST-6108] tests to Validate password robustness 2022-07-13 17:56:48 +02:00
Mykhaylo
5bd8b68200 [CST-6108] Implementation to validate password strength 2022-07-13 17:55:48 +02:00
ammanabrolua
b0a04ce1d0 removed comments and changed flag expression 2022-07-13 15:00:24 +02:00
ammanabrolua
84e6be5bb3 added --help option and fixed code to reflect review 2022-07-13 14:39:23 +02:00
Yura Bondarenko
188cecc0b4 84011: Fix AssignOriginalSubmitterAction claimed user 2022-07-13 13:24:28 +02:00
ammanabrolua
93912118fd added --help option 2022-07-12 20:56:30 +02:00
Yura Bondarenko
93a1ef4809 Merge remote-tracking branch 'upstream/main' into w2p-92917_Fix-trusted-IP-ranges_Contribute_PR 2022-07-12 09:40:09 +02:00
Michael Spalti
7953110c0b Uncaching bitstreams to improve performance. 2022-07-11 14:16:56 -07:00
Yura Bondarenko
01d5bf4f4a 92917: Support implicit ranges & update unit tests 2022-07-11 14:48:24 +02:00
Yura Bondarenko
36748cd27d 92917: Javadocs & minor fixes 2022-07-11 13:47:43 +02:00
Ben Bosman
f9d6091c2c Refactor IPTable 2022-07-11 11:59:23 +02:00
eskander
b5dfcab7ae [CST-6151] removed unused variable. 2022-07-04 15:28:59 +02:00
eskander
957f13f834 [CST-6151] can change password feature must return false if current user is logged in as another. 2022-07-04 15:27:22 +02:00
Tim Donohue
fb691719a3 Merge pull request #8391 from tdonohue/fix_8387
Enhance comments for dspace.server.url and dspace.ui.url to clarify usage
2022-07-01 14:04:05 -05:00
Tim Donohue
7ee727ee9d Enhance comments for dspace.server.url and dspace.ui.url 2022-07-01 12:14:10 -05:00
eskander
aafa2c7d25 [CST-6152] allow password change only if a challenge is resolved. 2022-07-01 14:04:23 +02:00
Vincenzo Mecca
904a643585 Merge remote-tracking branch 'origin/main' into main-duracom-69 2022-06-30 13:38:38 +02:00
Tim Donohue
f32d1ad0b0 Merge pull request #8382 from DSpace/Docker-README-Rewording
Clarify usage of Docker images
2022-06-28 09:47:30 -05:00
Tim Donohue
c1eb19e497 Update warning in other readme 2022-06-28 09:42:41 -05:00
emanuele
1fa7049b7d [CST-6201] fixed checkstyle violations 2022-06-28 16:42:26 +02:00
Tim Donohue
ecb853cea5 Clarify usage of Docker images 2022-06-28 09:39:25 -05:00
emanuele
d1019740db [CST-6201] implemented solr cursors to avoid IndexOutOfBoundsException 2022-06-28 16:19:18 +02:00
emanuele
115460b94d [CST-6201] added NPE checks in getItemsWithPossibleChangesBefore method 2022-06-28 09:14:18 +02:00
Vincenzo Mecca
3646716607 Merge remote-tracking branch 'bit-bucket/main' into main-duracom-70 2022-06-27 15:08:15 +02:00
Vincenzo Mecca
083ce8586f Merge remote-tracking branch 'bit-bucket/main' into main-duracom-70 2022-06-27 15:03:37 +02:00
Tim Donohue
c532d410a2 [maven-release-plugin] prepare for next development iteration 2022-06-24 12:11:54 -05:00
Tim Donohue
bbdff34806 [maven-release-plugin] prepare release dspace-7.3 2022-06-24 12:11:50 -05:00
Tim Donohue
9efff0bc0f Merge pull request #8374 from kshepherd/dspace7x_file_separator_fix
Use platform file separator in SimpleMapConverterTest instead of '/'
2022-06-24 09:47:30 -05:00
Tim Donohue
b9e4cdb390 Merge pull request #8373 from 4Science/orcid_queue_desc
Improved orcid queue consumer description
2022-06-24 09:44:21 -05:00
Luca Giamminonni
3148ff502b Improved orcid queue consumer description 2022-06-24 11:23:39 +02:00
Kim Shepherd
1ee4205703 Use platform file separator in SimpleMapConverterTest instead of '/' 2022-06-24 18:55:15 +12:00
Tim Donohue
bd171f3220 Update LICENSES_THIRD_PARTY for 7.3 2022-06-23 17:07:57 -05:00
Vincenzo Mecca
6d46995698 Merge remote-tracking branch 'origin/main' into main-duracom-70
Conflicts:
	dspace-api/src/test/java/org/dspace/builder/ItemBuilder.java
2022-06-23 15:54:30 +02:00
Tim Donohue
1111459550 Merge pull request #8370 from tdonohue/docker_builds_no_transfer
Ensure all automated CI / Docker builds use `--no-transfer-progress` maven flag
2022-06-22 16:52:44 -05:00
Tim Donohue
4aab8f0cb7 Ensure all automated builds use --no-transfer-progress maven flag 2022-06-22 15:38:20 -05:00
Tim Donohue
a8f4b080ba Merge pull request #8268 from 4Science/CST-5799
Porting of OrcidPublicationDataProvider
2022-06-22 14:38:18 -05:00
Tim Donohue
bf8bc79590 Merge pull request #8368 from tdonohue/fix_ITs
Fix consistent cleanup failure in CsvSearchExportIT
2022-06-22 14:24:59 -05:00
Tim Donohue
f66d1633ed Minor improvement. Only delete the "metadata-export-search" processes we can find. 2022-06-22 13:35:06 -05:00
Tim Donohue
6f4fa1225b Fix IT by cleaning up all processes not just last one, as the last one may not be the one just created. 2022-06-22 13:25:10 -05:00
Luca Giamminonni
0f488de52a [CST-5799] Handled search with unknown ORCID 2022-06-22 17:06:28 +02:00
Luca Giamminonni
6fc1a0f22f Merge remote-tracking branch '4science-bitbucket/main' into CST-5799 2022-06-22 16:36:43 +02:00
Tim Donohue
0e165d6d3c Merge pull request #8364 from 4Science/fix-relation-versioning-flyway
Rename flyway migration scripts for relation versioning according to our convention
2022-06-22 08:47:23 -05:00
Tim Donohue
c5d7ec001b Merge pull request #8266 from 4Science/CST-5587
Orcid queue and synchronization
2022-06-22 08:33:39 -05:00
Luca Giamminonni
9ceb70a6ad Merge branch 'CST-5587' into CST-5799 2022-06-22 11:53:07 +02:00
Luca Giamminonni
26409809a5 [CST-5799] Minor improvements on map converter files 2022-06-22 11:52:39 +02:00
Luca Giamminonni
655241204f [CST-5587] Disabled orcidqueueconsumer by default 2022-06-21 17:25:31 +02:00
Luca Giamminonni
0133ee4c11 [CST-5587] Improved javadocs and comments 2022-06-21 17:25:15 +02:00
Vincenzo Mecca
0f3114745b Merge remote-tracking branch 'bit-bucket/main-duracom-69' into main-duracom-69 2022-06-21 15:33:21 +02:00
Vincenzo Mecca
687d5ca216 [DURACOM-69] Refacored common methods
ref: Introduced abstract common class with utility methods
2022-06-21 15:11:50 +02:00
Vincenzo Mecca
589ddd1a0d [DURACOM-70] Resolved change requests
JavaDoc description on HdlResolverRestController
Replaced Gson with Jackson
Added exception logging and rethrowing
2022-06-21 11:58:54 +02:00
Bruno Roemers
711e50f3b1 92174: Refactor OpenUrlServiceImplTest to avoid making http requests 2022-06-21 11:58:42 +02:00
Luca Giamminonni
5f8728eef2 Merge branch 'CST-5587' into CST-5799 2022-06-21 11:04:54 +02:00
Luca Giamminonni
e86d98919a [CST-5587] Added default value for Work and Funding type 2022-06-20 19:04:43 +02:00
Luca Giamminonni
d13b966aea [CST-5587] Fixed OrcidQueueConsumerIT tests 2022-06-20 18:11:13 +02:00
Luca Giamminonni
c351ae310f [CST-5587] Fixed submission-forms.xml 2022-06-20 17:52:40 +02:00
Luca Giamminonni
681edb81a3 [CST-5587] Removed OpenAIRE CERIF types 2022-06-20 17:50:15 +02:00
Luca Giamminonni
0936dc6a5f [CST-5587] Removed not used property 2022-06-20 17:06:08 +02:00
Luca Giamminonni
9c99117818 [CST-5587] Removed changes in OpenUrlServiceImplTest 2022-06-20 17:01:58 +02:00
Luca Giamminonni
42b4baeb32 [CST-5587] Improved default message during orcid bulk push 2022-06-20 16:46:59 +02:00
Luca Giamminonni
1865e784be [CST-5587] Added error log if an error occurs during orcid synchronization 2022-06-20 16:43:34 +02:00
Luca Giamminonni
ceab63ce79 [CST-5587] Removed not used methods 2022-06-20 16:43:00 +02:00
Luca Giamminonni
9ffb0b6047 [CST-5587] Fixed compilation error 2022-06-20 16:11:48 +02:00
Luca Giamminonni
680e96fda3 [CST-5587] Moved org.dspace.app.orcid and org.dspace.app.profile into org.dspace.orcid and org.dspace.profile 2022-06-20 16:02:01 +02:00
Luca Giamminonni
3e82a766d7 [CST-5587] Fixed OpenUrlServiceImplTest test 2022-06-20 15:24:45 +02:00
Luca Giamminonni
18573ff054 [CST-5587] Various improvements 2022-06-20 15:00:14 +02:00
Andrea Bollini
0761bc8ccf Rename flyway migration scripts for relation versioning according to our convention 2022-06-20 14:52:10 +02:00
Francesco Pio Scognamiglio
8fb2f09726 [CST-5699] force to use template to populate dspace.entity.type metadata 2022-06-20 13:27:43 +02:00
Bruno Roemers
c1dd080157 92174: Replace new operator with autowire
Fixes issue 8360.
2022-06-20 11:38:33 +02:00
Francesco Pio Scognamiglio
e882ae75b4 [CST-5699] Merge branch 'main' into CST-5699 2022-06-20 09:01:41 +02:00
Luca Giamminonni
318764fcff Merge branch 'CST-5587' into CST-5799 2022-06-17 17:00:57 +02:00
Luca Giamminonni
258c9a1b4d [CST-5587] Disabled orcid synchronization by default 2022-06-17 17:00:22 +02:00
Luca Giamminonni
ef5a9c2b6d [CST-5799] Removed unused param from javadoc 2022-06-17 16:57:01 +02:00
Luca Giamminonni
7471b0bd3d [CST-5799] Fixed ExternalSourcesRestControllerIT test 2022-06-17 15:02:15 +02:00
Luca Giamminonni
77796ea0b7 [CST-5799] Added ORCID id validation in OrcidPublicationDataProvider 2022-06-17 14:00:35 +02:00
Luca Giamminonni
7828190bd8 [CST-5799] Fixed OrcidPublicationDataProviderIT tests 2022-06-17 14:00:18 +02:00
Luca Giamminonni
7b816b6150 Merge branch 'CST-5587' into CST-5799 2022-06-17 13:35:10 +02:00
Luca Giamminonni
9f4cee5dbc [CST-5587] Fixed compilation errors 2022-06-17 13:34:49 +02:00
Luca Giamminonni
c9ce57334b Merge remote-tracking branch '4science-bitbucket/main' into CST-5587 2022-06-17 13:28:31 +02:00
Luca Giamminonni
c8498eb30e Merge remote-tracking branch '4science-bitbucket/main' into CST-5799 2022-06-17 13:27:12 +02:00
Luca Giamminonni
c940fbe743 Merge branch 'CST-5587' into CST-5799 2022-06-17 13:21:07 +02:00
Vincenzo Mecca
b2dca9ff6a Merged main into main-duracom-69 2022-06-17 10:37:05 +00:00
Vincenzo Mecca
b350ef8720 [DURACOM-69] Added UnitTest
feat: Added FunctionalUtils that uses Functional Interfaces and declares some utilities
fix & imp: S3BitStoreService fixed some issues and refactored code
test: Added S3BitStoreServiceTest for missing UnitTest
2022-06-17 12:35:04 +02:00
benbosman
3fa31f5e2a Merge pull request #8265 from atmire/feature-relationship-versioning-contribution
Feature: Entity / relationship versioning
2022-06-17 11:48:05 +02:00
Francesco Pio Scognamiglio
68416def97 [CST-5699] Merge branch 'main' into CST-5699 2022-06-17 11:37:06 +02:00
Bruno Roemers
3404c074d3 Merge branch 'main' into feature-relationship-versioning-contribution 2022-06-17 10:13:21 +02:00
Tim Donohue
6bd3a38538 Merge pull request #8267 from atmire/w2p-90830_issue-8125_Import-items-stale-in-discovery
Prevent imported items to be considered stale in discovery
2022-06-16 15:40:28 -05:00
Tim Donohue
14bf0a71ec Merge pull request #8310 from atmire/w2p-91356_detached-bitstream-moved-to-new-bundle-remains-deleted_upstream-latest
When a bitstream is removed from one bundle and added to another, the bitstream should NOT be marked as deleted
2022-06-16 15:37:46 -05:00
Tim Donohue
b3a3d68f0c Merge pull request #8235 from 4Science/CST-5303-live-import
Migrate extra DSpace-CRIS "Live Import" sources to DSpace (Scopus, WOS, PubMedEurope, CiNii)
2022-06-16 15:36:45 -05:00
Tim Donohue
31323baa41 Merge pull request #8354 from 4Science/CST-5755_sql_version_fix
Updated process2groups Flyway migration file names
2022-06-16 14:03:50 -05:00
Tim Donohue
004ad03d64 Merge pull request #8350 from tdonohue/fix_oai_harvesting
Fix OAI Harvesting by restoring Xalan (required by OCLC OAI Harvester 2 codebase)
2022-06-16 13:42:33 -05:00
benbosman
e50724c95a Export Metadata (CSV) from Search Results (#8037)
* [task 84826] adding a method to get an iterator of items found to the SearchService

* [task 84826] making the command line script for the search export

* [task 84826] test for the rest endpoint for the search csv export script

* [task 84826] test for the case of exporting based on a search query

* [task 84826] attempt at limiting the scope in which the search is happening

* [task 84826] limiting the scope of the search export and implementing more options

* [task 84826] implementing feedback + adding forgotten test file

* [task 85895] improving filters in metadata export search

* [task 86023] made code more readable

* [task 86023] allowing more than 1 filter to be applied

* checkstyle fixes

* 86307: Move DiscoverQueryBuilder to DSpace API

* 86307: Fix spring issue

* removing autowired in dspace-api querybuilder

* using querybuilder to create a query

* creating the querybuilder using servicemanager

* [task 87993] bugfix in MetadataExportSearch

* Revert "removing autowired in dspace-api querybuilder"

This reverts commit 252ef24765.

* checkstyle fixes

* [task 88304] added javadocs

* [task 88304] restoring authentication earlier so tests run authenticated

* implemented feedback

* Remove comment

* [task 90900] extended test suite

* [task 90900] checkstyle fixes

* [task 90900] changed location of file save for MetadataExportSearch

* [task 90900] checkstyle fix

* [task 90900] used jackson databind instead of json

* [task 90900] removed accidentally added spaces

* [wip] [task 90900] adding tests for fail scenarios

* [task 90900] adding tests for fail scenarios

* [task 90900] used jackson databind instead of json

* [task 90900] removed accidentally added spaces

* [wip] [task 90900] adding tests for fail scenarios

* [task 90900] adding tests for fail scenarios

* [task 90900] deleted accidentily added file

* specified file location for export file from cli

* checkstyle fixes

* [task 91781] implemented feedback

* setting export dir differently in tests

* trying another export dir folder

* saving export in a location outside of dspace

* [task 91781] used same export dir as metadataexportit

* [task 91781] added debug printing

* [task 91781] added debug printing

* [task 91781] added debug printing

* [task 91781] changed prints to logs

* [task 91781] more debug info

* [task 91781] more debug info

* [task 91781] more debug info

* TEMP: Assert script success/failure

* TEMP: Handled exception is not a failure

* TEMP: Maybe a workaround for DiscoveryIT failures

* Revert "TEMP: Maybe a workaround for DiscoveryIT failures"

This reverts commit 7b1ebcf13a.

* TEMP: Confirm that MetadataExportSearchIT knocks out DiscoveryIT now

* TEMP: Initialize services in setup() instead of inline

* TEMP: Don't share runnable handler between tests

* TEMP: Use SearchService in test context before script context

* [task 91781] making search service available in the class

* checkstyle fixes

* [task 91781] ignoring MetadataExportSearchIT

* [task 91781] specifying export file name in rest script run

* [task 91781] switching the sort order

Co-authored-by: Joost <joost.fock@atmire.com>
Co-authored-by: Yana De Pauw <yana@atmire.com>
Co-authored-by: Yura Bondarenko <yura.bondarenko@atmire.com>
2022-06-16 13:32:10 -05:00
corrado lombardi
b1ada1b1b6 [CST-5755] renamed sql migration file names with correct version number 2022-06-16 19:44:18 +02:00
Tim Donohue
538f295a45 Merge pull request #8263 from 4Science/CST-5669
Authentication, link and unlink with ORCID
2022-06-16 11:34:23 -05:00
Luca Giamminonni
592cc63985 [CST-5587] Added Orcid country validation 2022-06-16 17:51:57 +02:00
Tim Donohue
f53368011c Merge pull request #8340 from mspalti/iiif-cors-policy
Changed default cors policy for IIIF endpoints.
2022-06-16 08:49:39 -05:00
Luca Giamminonni
5e0121b85b [CST-5587] Fixed OrcidEntityFactoryServiceIT test 2022-06-16 14:26:03 +02:00
Bruno Roemers
7f9404024a Merge branch 'w2p-91356_detached-bitstream-moved-to-new-bundle-remains-deleted_upstream-ds-7.0' into w2p-91356_detached-bitstream-moved-to-new-bundle-remains-deleted_upstream-latest 2022-06-16 13:36:18 +02:00
Bruno Roemers
0159ce0315 91356: Add comment (feedback) 2022-06-16 13:35:22 +02:00
Luca Giamminonni
87eee7892e [CST-5587] Added property to enable/disable orcid synchronization, orcid synchronization configuration refactoring 2022-06-16 13:14:46 +02:00
Mykhaylo
8922acd024 Merge branch 'main' into CST-5303-live-import 2022-06-16 13:08:18 +02:00
Mykhaylo
d01a89ca16 [CST-5303] removed SimpleMapConverter 2022-06-16 13:06:12 +02:00
Luca Giamminonni
791a2441ff Merge branch 'CST-5669' into CST-5587 2022-06-16 12:39:07 +02:00
Luca Giamminonni
8b3ab2427d [DSC-403] Fixed S3 use relative path property name 2022-06-16 11:05:35 +02:00
Mykhaylo
e7e45be3f3 refactored s3bitStore 2022-06-16 11:05:19 +02:00
Mykhaylo
f5f8867a09 added support to use relative path in S3BitStore 2022-06-16 11:04:58 +02:00
Andrea Bollini
4468fccdcd DSC-403 Porting to DSpace-CRIS 7 of the IAM support for S3 2022-06-16 10:58:00 +02:00
Luca Giamminonni
ce6145d800 [CST-5587] Added automatic orcid queue recalculation after settings update 2022-06-15 18:12:30 +02:00
Mykhaylo
54b4092320 [CST-5303] implemented community feedback 2022-06-15 17:19:53 +02:00
Vincenzo Mecca
d4fb343f1e [DSC-611] [DURACOM-70] fix: JavaDoc & Header 2022-06-15 14:47:52 +02:00
Vincenzo Mecca
ed03b107db feature: Added handle in ItemBuilder
Partial porting of [CST-2501] for withHandle method in ItemBuilder
2022-06-15 14:39:13 +02:00
Luca Giamminonni
e88a67d5f1 [CST-5669] Improved linkProfile javadoc 2022-06-15 14:04:51 +02:00
Mykhaylo
ff144bffef [CST-5303] minor fix 2022-06-15 12:46:45 +02:00
Mykhaylo
3f05c142d3 [CST-5303] refactoring CiNii 2022-06-15 12:36:37 +02:00
Mykhaylo
e40a464561 [CST-5303] refactored PubmedEurope 2022-06-15 12:36:00 +02:00
Luca Giamminonni
566ec1ac07 [CST-5669] Fixed OrcidLoginFilterIT test 2022-06-15 11:55:39 +02:00
Luca Giamminonni
4129d3850d [CST-5669] Minor improvements 2022-06-15 11:48:49 +02:00
Vincenzo Mecca
e12a626192 [DSC-611] [DURACOM-70] feature: Handle resolver
New REST service for handle resolver
2022-06-15 11:24:14 +02:00
Vincenzo Mecca
135a24df83 feature: DSC-611 - First Integration Test Class 2022-06-15 11:23:42 +02:00
Vincenzo Mecca
7f626577b6 Merged main into main-duracom-70 2022-06-15 09:16:54 +00:00
Tim Donohue
5bb55ebb5e Merge pull request #8297 from 4Science/CST-5755_save_special_groups_in_process
Save special groups in process
2022-06-14 15:43:10 -05:00
Luca Giamminonni
0720e5b68d [CST-5669] Disconnect profile from ORCID during profile's soft deletion 2022-06-14 17:48:06 +02:00
Luca Giamminonni
11b896424c [CST-5669] Returns 422 in case of invalid authorization code during ORCID connection 2022-06-14 16:41:30 +02:00
Luca Giamminonni
fc323830a0 [CST-5669] Minor OrcidClientException refactoring 2022-06-14 16:11:21 +02:00
Luca Giamminonni
990d05903f [CST-5669] Added link profile test case when the user has not a profile 2022-06-14 15:48:49 +02:00
Luca Giamminonni
c76aa8da66 [CST-5669] Improved ResearcherProfileAddOrcidOperation javadoc 2022-06-14 15:05:53 +02:00
Luca Giamminonni
28eca550fc [CST-5669] Fixed checkstyle warning 2022-06-14 14:48:23 +02:00
Luca Giamminonni
03cb9e3cf1 [CST-5669] Addressed community feedbacks 2022-06-14 13:42:00 +02:00
Mykhaylo
0ef2d4e626 [CST-5303] refactored tests of WOS 2022-06-14 13:41:26 +02:00
Mykhaylo
53a881806c [CST-5303] fix WOS 2022-06-14 13:31:44 +02:00
Luca Giamminonni
1adeca5b4c [CST-5669] Improved Orcid link with already existing profile 2022-06-14 12:59:31 +02:00
Tim Donohue
5d5c150936 Merge pull request #8341 from DSpace/dependabot/maven/com.google.oauth-client-google-oauth-client-1.33.3
Bump google-oauth-client from 1.32.1 to 1.33.3
2022-06-13 16:55:29 -05:00
Tim Donohue
385fbe98a8 Xalan is required by OCLC OAI Harvester 2 codebase 2022-06-13 11:55:49 -05:00
Kristof De Langhe
39524c76ed Merge branch 'w2p-90830_issue-8125_Import-items-stale-in-discovery_7.0' into w2p-90830_issue-8125_Import-items-stale-in-discovery 2022-06-13 13:28:04 +02:00
Kristof De Langhe
7362f9f2fb 92188: Atomically update database_status instead of reindexing entire document 2022-06-13 13:24:40 +02:00
Mykhaylo
a3ca2badf4 Merge branch 'main' into CST-5303-live-import 2022-06-13 09:39:37 +02:00
Tim Donohue
86596dc2cb Add exclusion to fix dependency convergence issues 2022-06-10 16:45:31 -05:00
Tim Donohue
74001e1dd8 Merge pull request #8335 from 4Science/CST-5997-LiveImportFrom-Pubmed-NotWorking
Pubmed query not working
2022-06-10 16:28:51 -05:00
Luca Giamminonni
8f1aa722c5 [CST-5799] Changes after community feedbacks 2022-06-10 18:23:36 +02:00
Luca Giamminonni
b0bca4a055 [CST-5799] Fixed compilation errors 2022-06-10 17:51:53 +02:00
Luca Giamminonni
bec50786de Merge branch 'CST-5587' into CST-5799 2022-06-10 17:09:51 +02:00
Luca Giamminonni
755505cd9a [CST-5587] Added tests for SimpleMapConverter 2022-06-10 16:30:06 +02:00
Tim Donohue
589babe6f4 Merge pull request #8334 from atmire/w2p-88835_try-catch-IndexFactoryImpl
Catch exception when writing document to solr core and log it
2022-06-10 08:53:09 -05:00
Bruno Roemers
c1e99b1b7a Merge branch 'main' into feature-relationship-versioning-contribution 2022-06-10 13:25:00 +02:00
Luca Giamminonni
c77350c253 [CST-5587] Fixed LGTM alerts 2022-06-10 12:55:43 +02:00
Luca Giamminonni
bc7d6a8a70 [CST-5587] Removed affiliation's validation (not migrated on dspace) 2022-06-10 12:49:29 +02:00
Luca Giamminonni
a1c9e7e9f9 Merge remote-tracking branch '4science-bitbucket/main' into CST-5587 2022-06-10 12:31:59 +02:00
Luca Giamminonni
577e96180a [CST-5669] Improved orcid.disconnection.allowed-users comment 2022-06-10 12:26:15 +02:00
Mykhaylo
4b59b12cd7 [CST-5997] updated exception message 2022-06-10 12:14:42 +02:00
Bruno Roemers
f62279efa4 Merge branch 'feature-relationship-versioning_discover-7.2' into feature-relationship-versioning-contribution 2022-06-10 12:06:11 +02:00
Luca Giamminonni
3660ec2cfa [CST-5669] Added OrcidAuthentication configuration on local.cfg.EXAMPLE 2022-06-10 11:59:06 +02:00
Bruno Roemers
b535020c15 92097: Update scope notes for relation.* and relation.*.latestForDiscovery metadata fields 2022-06-10 11:27:33 +02:00
Mykhaylo
f114cfbdd0 [CST-5303] fix failed tests 2022-06-10 09:35:14 +02:00
dependabot[bot]
35ebce1548 Bump google-oauth-client from 1.32.1 to 1.33.3
Bumps [google-oauth-client](https://github.com/googleapis/google-oauth-java-client) from 1.32.1 to 1.33.3.
- [Release notes](https://github.com/googleapis/google-oauth-java-client/releases)
- [Changelog](https://github.com/googleapis/google-oauth-java-client/blob/main/CHANGELOG.md)
- [Commits](https://github.com/googleapis/google-oauth-java-client/compare/v1.32.1...v1.33.3)

---
updated-dependencies:
- dependency-name: com.google.oauth-client:google-oauth-client
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-10 00:42:16 +00:00
Mykhaylo
97933131e2 [CST-5303] update scopus 2022-06-09 23:32:05 +02:00
Tim Donohue
bdc299e1b2 Merge pull request #8324 from 4Science/CST-5855
Cst-5855 custom resource policies are duplicated if multiple upload configuration share the same access conditions
2022-06-09 15:31:31 -05:00
Michael Spalti
d441a6c836 Changed default cors policy for IIIF endpoints. 2022-06-09 10:40:49 -07:00
Luca Giamminonni
23fd0bb920 [CST-5669] Reverted context.turnOffAuthorisationSystem() removal 2022-06-09 18:29:43 +02:00
Luca Giamminonni
f193701cff [CST-5669] Removed check on first name and last name during ORCID authentication 2022-06-09 18:14:43 +02:00
Luca Giamminonni
003321df4f [CST-5669] Removed context.turnOffAuthorisationSystem in OrcidSynchronizationServiceImpl 2022-06-09 17:58:41 +02:00
Luca Giamminonni
dc5ef4844b Merge remote-tracking branch '4science-bitbucket/main' into CST-5669 2022-06-09 17:45:28 +02:00
Tim Donohue
f9a38cab41 Merge pull request #8232 from 4Science/CST-5306
Researcher profile REST repository
2022-06-09 10:07:08 -05:00
Jens Vannerum
24a43dee8c 88835: Removed unnecessary brackets 2022-06-09 16:18:30 +02:00
Mykhaylo
8c7e049802 [CST-5303] minor update 2022-06-09 15:48:20 +02:00
Mykhaylo
b16780d816 [CST-5303] refactoring WOS 2022-06-09 15:09:18 +02:00
Mykhaylo
3f57305529 Merge branch 'main' into CST-5303-live-import 2022-06-09 10:06:24 +02:00
Jens Vannerum
66b976bd5f 88835: Improved logging message 2022-06-09 10:05:46 +02:00
Mykhaylo
f7f15df8d5 Merge branch 'main' into CST-5997-LiveImportFrom-Pubmed-NotWorking 2022-06-09 09:32:38 +02:00
Toni Prieto
f20d2ca300 Ignore diacritics in browse by title 2022-06-08 23:48:29 +02:00
Tim Donohue
b66a806235 Merge pull request #8316 from tdonohue/minor_spring_update
Minor update to latest Spring / Spring Boot / Spring Security.
2022-06-08 15:27:16 -05:00
Tim Donohue
196a5bfeb2 Merge pull request #8238 from 4Science/CST-5303-live-import-4PR
Migrate extra DSpace-CRIS "Live Import" sources to DSpace (EPO & ADS)
2022-06-08 12:24:34 -05:00
Mykhaylo
d8ffa6cdb9 move the buildLink method to ExternalSourceEntryHalLinkFactory 2022-06-08 18:10:55 +02:00
emanuele
139640606a [CST-5855] added missing annotation 2022-06-08 18:01:57 +02:00
ballarinie
83b641c1c5 Merge branch 'main' into CST-5855 2022-06-08 17:51:09 +02:00
emanuele
1c9b684395 [CST-5855] minor fixes 2022-06-08 17:41:02 +02:00
Mykhaylo
89de1fdb41 [CST-5997] fix misspelled 2022-06-08 17:38:49 +02:00
Mykhaylo
8ffb4dd6c6 [CST-5303] refactored scopus live import integration 2022-06-08 17:29:51 +02:00
Giuseppe Digilio
a3ed88fa8f Merge branch 'main' into CST-5306 2022-06-08 16:59:33 +02:00
Tim Donohue
e108f11379 Merge pull request #8271 from 4Science/CST-5269-Sherpa-Romeo
Sherpa-Romeo Integration
2022-06-08 09:17:55 -05:00
Tim Donohue
be71908b2c Merge pull request #8166 from 4Science/CST-5288
Introduced Spring boot actuators
2022-06-08 09:10:52 -05:00
Jens Vannerum
d09b0c60a1 88835: Feedback 2022-06-08 15:38:15 +02:00
Mykhaylo
e1c6146162 [CST-5997] minor fix 2022-06-08 14:32:52 +02:00
Mykhaylo
1de78d5e66 Merge branch 'main' into CST-5997-LiveImportFrom-Pubmed-NotWorking 2022-06-08 13:16:16 +02:00
Mykhaylo
99875b307d [CST-5997] removed unused mock bean 2022-06-08 12:48:24 +02:00
Mykhaylo
cbd468ea0e [CST-5997] added possibility to re-try request to PubMed if responce is 500 2022-06-08 11:02:25 +02:00
Tim Donohue
0e461d546a Merge pull request #8314 from 4Science/CST-5756_relationship_type_embedding
[CST-5756] Embedding of RelationshipType in Relationship resource
2022-06-07 16:58:51 -05:00
Tim Donohue
eae165e928 Merge pull request #8309 from 4Science/CST-5680
Fixed bitstream content download error when using special groups
2022-06-07 15:59:59 -05:00
Mykhaylo
84a51fac2a [CST-5303] added 'none' to supported entity types 2022-06-07 17:30:15 +02:00
Luca Giamminonni
8712a48a6c [CST-5587] Added project and orgunit relation in submission form 2022-06-07 14:47:29 +02:00
Luca Giamminonni
9f6ff8f33b Merge remote-tracking branch '4science-bitbucket/main' into CST-5587 2022-06-07 14:37:42 +02:00
Mykhaylo
5f5c3fe2a3 Merge branch 'main' into CST-5303-live-import-4PR 2022-06-07 13:14:10 +02:00
Mykhaylo
b6a54d75b3 [CST-5303] Implemented community feedbacks 2022-06-07 12:42:59 +02:00
Luca Giamminonni
eb8b2546ce [CST-5669] Fixed LGTM warnings 2022-06-07 12:35:00 +02:00
Mykhaylo
11767f5d37 [CST-5303] fixed link builder of external sources 2022-06-07 00:05:30 +02:00
Andrea Bollini
4954358c53 Improve javadoc for SherpaCacheLogging 2022-06-06 14:58:33 -06:00
Mykhaylo
2aff1f610c [CST-5269] added comment to explene exclusion in pom.xml 2022-06-06 21:41:13 +02:00
Luca Giamminonni
ab0fbcc9fe [CST-5669] Added redirect on ORCID login error 2022-06-06 18:07:35 +02:00
Mykhaylo
dc0aeb847a [CST-5997] refactored pubmed live import service 2022-06-06 16:26:50 +02:00
Luca Giamminonni
00031a0dd6 Merge remote-tracking branch '4science-bitbucket/main' into CST-5669 2022-06-06 15:28:10 +02:00
Luca Giamminonni
b801c0c69f [CST-5306] Added email and write policy on created researcher profile 2022-06-06 15:14:40 +02:00
Tim Donohue
16e364615c Merge pull request #8303 from atmire/fix-getname-issues-main
Overwrite getName usage in applicable services & missing log statements
2022-06-03 16:53:49 -05:00
Tim Donohue
f5eac46ede Merge pull request #8323 from 4Science/CST-5675
Fix OAI page unstyled when '/' is missing at the end of the URL
2022-06-03 15:56:43 -05:00
Ben Bosman
cdac9db9d7 Merge remote-tracking branch 'origin/feature-relationship-versioning_discover-7.2' into feature-relationship-versioning-contribution 2022-06-02 14:29:04 +02:00
Mykhaylo
0935581836 minor update 2022-06-01 16:40:16 +02:00
Bruno Roemers
c21ac4bde0 91354: Exclude workspace and workflow items from being indexed during index rebuild 2022-06-01 16:37:17 +02:00
Mykhaylo
d3b467cdb2 [CST-5269] refactored embargo data model 2022-06-01 15:54:39 +02:00
Bruno Roemers
0f268d0ebd 91354: Prove ItemDAOImpl#findAllRegularItems needs changes 2022-06-01 15:08:53 +02:00
Bruno Roemers
acc968f1ce 91354: Fix test_forceReindexAfterNewVersionInWorkspace
Re-enable commit d549e6e58a
2022-05-31 17:44:40 +02:00
Mykhaylo
805cd7ae6b [CST-5303] refactored tests 2022-05-31 17:43:27 +02:00
Bruno Roemers
60c8faf234 91354: Prove that changes in commit d549e6e58a were necessary 2022-05-31 17:41:37 +02:00
Bruno Roemers
8d9304a6f7 91354: Complete test_rebuildIndexAllVersionsShouldStillBePresentInSolrCore 2022-05-31 16:26:45 +02:00
Francesco Pio Scognamiglio
f9d01b96f8 [CST-5699] add integration tests on zip with bitstream and zip with relationships file 2022-05-31 16:20:01 +02:00
Mykhaylo
3a1dfa69e3 [CST-5303] removed duplicate services 2022-05-31 15:37:51 +02:00
Jurgen Mamani
be353c5301 [CST-5755] Added changes 2022-05-31 15:09:37 +02:00
Jurgen Mamani
c09a8d097d [CST-5755] Revert back List to Set change 2022-05-31 15:09:33 +02:00
Jurgen Mamani
efe3e1d36d [CST-5755] Refactoring based on feedback from PR 2022-05-31 15:09:30 +02:00
Mykhaylo
32e178418c [CST-5303] refactoring 2022-05-31 14:25:53 +02:00
Bruno Roemers
b0482bcdd8 91354: WIP: basic fix for reindexing older versions of items 2022-05-31 14:10:51 +02:00
Bruno Roemers
ea8b4f4896 91354: Prove that index rebuild is broken 2022-05-31 14:08:57 +02:00
Mykhaylo
64f1b7e30b [cst-5303] fix failed tests 2022-05-31 11:50:07 +02:00
Mykhaylo
d8aec0ce67 Merge branch 'main' into CST-5303-live-import 2022-05-31 00:23:24 +02:00
Mykhaylo
8e794fdc33 [CST-5303] fix double encode 2022-05-30 17:01:11 +02:00
Luca Giamminonni
e3ac2f90da [CST-5306] Improved claim tests 2022-05-30 12:37:58 +02:00
Mykhaylo
4a19246a5d [cst-5303] update tests 2022-05-30 12:11:07 +02:00
emanuele
53ecb9bf06 CST-5855 adjusted javadoc and removed unnecessary comments 2022-05-30 11:59:42 +02:00
Mykhaylo
b8e269a477 [CST-5303] Implement community feedbacks 2022-05-30 11:38:54 +02:00
Stefano Maffei
b5ee25030e [CST-5675] fixes in OAI Integration Tests 2022-05-30 10:48:20 +02:00
Francesco Pio Scognamiglio
a5c4031cfe [CST-5699] minor fix on spurious javadoc params 2022-05-30 09:10:15 +02:00
Mark H. Wood
c7c174ccf6 Merge branch 'main' into LGTM 2022-05-27 14:13:57 -04:00
Mark H. Wood
a956472684 Satisfy checkstyle. #8304 2022-05-27 12:59:44 -04:00
Mark H. Wood
8fb948d6a8 Devolve authorization to the strategy classes. Add tests. #8304 2022-05-27 12:24:49 -04:00
Stefano Maffei
d014b07d8f [CST-5675] Fixes oai page unstylized when '/' is missing at the end of the URL 2022-05-27 18:24:13 +02:00
Tim Donohue
60f7bf0559 Merge pull request #8315 from tdonohue/disable_multiarch_for_prs
Docker Fixes: Ensure multiple architecture build is disabled for PRs
2022-05-27 09:05:00 -05:00
emanuele
6fd1f0e3a4 CST-5855 fixed bitstream access conditions duplication error and added ITs 2022-05-27 16:01:42 +02:00
Francesco Pio Scognamiglio
36ab086721 Merge branch 'main' into CST-5699 2022-05-27 14:44:46 +02:00
Francesco Pio Scognamiglio
e1e599a047 [CST-5699] fix to manage relationships by metadata_relation file on SAF import; clean integration tests 2022-05-27 14:11:13 +02:00
Tim Donohue
c589462983 Minor update to latest Spring / Spring Boot / Spring Security. Other minor POM dependency cleanup 2022-05-26 17:12:05 -05:00
Tim Donohue
3699125f94 Only build PRs in AMD64, as a simple sanity check 2022-05-26 16:46:31 -05:00
Mykhaylo
e5f39723bf fix failed tests 2022-05-26 18:56:34 +02:00
Mykhaylo
f607571837 [cst-5303] fix metadata 2022-05-26 18:16:50 +02:00
corrado lombardi
aabcf78db3 [CST-5756] updated documentation 2022-05-26 17:54:57 +02:00
Mykhaylo
ed07cece6b Merge branch 'main' into CST-5303-live-import-4PR 2022-05-26 17:10:20 +02:00
Luca Giamminonni
1a6ba75369 Merge remote-tracking branch '4science-bitbucket/main' into CST-5587 2022-05-26 15:59:04 +02:00
Luca Giamminonni
4574a72fb3 [CST-5587] Minor improvements 2022-05-26 15:58:19 +02:00
corrado lombardi
5218a25523 [CST-5756] Embedding of RelationshipType in Relationship resource 2022-05-26 13:46:21 +02:00
Luca Giamminonni
d6675c1060 Merge remote-tracking branch '4science-bitbucket/main' into CST-5306 2022-05-26 10:15:43 +02:00
Luca Giamminonni
72d25917eb [CST-5306] Added automatic claim test 2022-05-26 10:14:46 +02:00
Tim Donohue
e5f316c9ad Merge pull request #8296 from the-library-code/TLC-254_type-bind-fixes
Fix type bind validation to support fields configured more than once
2022-05-25 17:09:22 -05:00
Tim Donohue
dbaa20f345 Merge pull request #8285 from 4Science/CST-5673
Cst-5673 implement patch operations for action and policyType attributes
2022-05-25 14:32:10 -05:00
Tim Donohue
a671838e50 Merge pull request #8236 from 4Science/CST-5303-LiveImport-3PR
Migrate extra DSpace-CRIS "Live Import" sources to DSpace (SciELO)
2022-05-25 13:43:06 -05:00
Francesco Pio Scognamiglio
75e9604a6e [CST-5699] add integration test for relationships functionality 2022-05-25 19:45:35 +02:00
Ben Bosman
e91593abdb Merge remote-tracking branch 'origin/feature-relationship-versioning_discover-7.2' into feature-relationship-versioning-contribution 2022-05-25 17:53:09 +02:00
Tim Donohue
aff0e199bc Merge pull request #8300 from tdonohue/deprecate_oracle
Add deprecation notice for Oracle Support to 7.3
2022-05-25 10:48:17 -05:00
Francesco Pio Scognamiglio
4a96d9fc1c [CST-5699] minor fix to manage collections and relationships files when the contents file is missing 2022-05-25 17:06:59 +02:00
Bruno Roemers
6257b386b3 91680: Fix NPE 2022-05-25 16:57:30 +02:00
Mykhaylo
f445309d07 Merge branch 'main' into CST-5269-Sherpa-Romeo 2022-05-25 16:30:25 +02:00
Mykhaylo
680beae1b5 Merge branch 'main' into CST-5303-LiveImport-3PR 2022-05-25 16:24:57 +02:00
Mykhaylo
56d010e0d1 [CST-5303] inject missing field 2022-05-25 16:22:52 +02:00
Tim Donohue
074aa7c3d7 Merge pull request #8305 from atmire/test-multiplatform-docker-build
Add support for linux/arm64 platform to docker build
2022-05-25 08:29:05 -05:00
Bruno Roemers
dd843c4646 91680: Verify unrelated metadata does not affect item metadata place changes 2022-05-25 15:14:51 +02:00
ballarinie
79c4a4c847 Merge branch 'main' into CST-5673 2022-05-25 14:24:26 +02:00
Bruno Roemers
30e17894d6 91680: Verify that relationship place changes don't affect other relationships 2022-05-25 13:58:32 +02:00
Ben Bosman
ef010fcc91 Merge branch 'feature-relationship-versioning_discover-7.2' into feature-relationship-versioning-contribution 2022-05-25 13:25:56 +02:00
Luca Giamminonni
1c563e6b20 [CST-5680] Improved BitstreamRestControllerIT.restrictedSpecialGroupBitstreamTest test 2022-05-25 13:01:54 +02:00
Luca Giamminonni
da14dca46c [CST-5680] Fixed bitstream content download error using special groups 2022-05-25 12:46:38 +02:00
emanuele
9be74166dd CST-5673 tests now use the predefined eperson object 2022-05-25 12:41:56 +02:00
Bruno Roemers
0edfbc9fae 91680: Remove versioning.block.entity property
Versioning of DSpace entities is now properly supported,
so from now on it is possible to create/edit versions of any item,
regardless of whether it's an entity or not.
2022-05-25 12:15:12 +02:00
Bruno Roemers
3a5766a5d2 91680: Refactor: move entity type getters to itemService 2022-05-25 12:13:50 +02:00
Bruno Roemers
a028b4130f 91680: Rename RelationshipVersioningUtils to RelationshipVersioningTestUtils 2022-05-25 12:07:39 +02:00
Bruno Roemers
79a55fa1e4 91680: Add scope notes to relation.* and relation.*.latestForDiscovery metadata values 2022-05-25 12:05:42 +02:00
Bruno Roemers
15eff6f7d7 91680: Remove ItemBuilder#withEntityType 2022-05-25 12:04:18 +02:00
Bruno Roemers
92214cdfcf 91680: Inherit entity type from collection in ItemServiceTest 2022-05-25 12:01:36 +02:00
Bruno Roemers
7de999a389 91680: Add clarifying comments to RelationshipServiceImplPlaceTest 2022-05-25 12:00:27 +02:00
Bruno Roemers
9ece4d363f 91680: Remove duplicate comment 2022-05-25 11:58:32 +02:00
Bruno Roemers
63afa07e27 91680: Use log4j2 placeholders where possible 2022-05-25 11:58:29 +02:00
Bruno Roemers
f9b0274ead 88675: Finish test VersioningWithRelationshipsTest#test_virtualMetadataPreserved 2022-05-25 11:58:25 +02:00
emanuele
ae6cc69c38 CST-5855 changed findApplyResourcePolicy method to accept a single UploadConfiguration) 2022-05-25 09:59:55 +02:00
Francesco Pio Scognamiglio
504f7fecf3 [CST-5699] add integration tests for import and export via SAF 2022-05-25 09:34:13 +02:00
Francesco Pio Scognamiglio
3443bd5d48 [CST-5699] add scripts for import and export via SAF 2022-05-25 09:33:38 +02:00
Kim Shepherd
e0534a5d96 [TLC-254] Moved shared code to DCInputSet, new Unit Test for sub config 2022-05-25 12:24:47 +12:00
Kim Shepherd
e08fa2ec31 Dockerfile.test and docker-compose: expose port 8000, set JDWP java opts
This allows a remote JVM debugger to be connected to port 8000 on the
dspace docker container (test environment).
This may need a documentation note to warn against running the supplied
docker-compose / Dockerfile.test config in production -- already a good
warning but made more important now that the JVM can be exposed to a
debugger for reading memory...
2022-05-25 10:40:18 +12:00
Tim Donohue
f062abdcb2 Merge pull request #8287 from 4Science/CST-5673-AllowToDoGroupAndEpersonPatchingOfResourcepolicy
Allow to do group/eperson patching of a resourcepolicy
2022-05-24 17:20:55 -05:00
Tim Donohue
df93b79d13 Merge pull request #8286 from atmire/w2p-90948_More-informative-error-for-Workflow-group-delete
Add custom exception for deleting Group with pending tasks
2022-05-24 16:45:58 -05:00
Art Lowel
0d4d2a85cb remove linux/arm/v7 as that isn't supported by maven:3-openjdk-11-slim 2022-05-24 17:59:35 +02:00
Art Lowel
2d0078c64e add support for multiple platforms to docker build 2022-05-24 17:54:01 +02:00
Jens Vannerum
177d4424db Overwrite getName usage in applicable services
- Added two useful log statements
2022-05-24 14:36:26 +02:00
emanuele
7371854cb1 Merge branch 'CST-5673' of https://bitbucket.org/4Science/dspace-cris into CST-5673 2022-05-24 10:36:30 +02:00
emanuele
749030d739 CST-5673 fixed ClassCastException and failing tests 2022-05-24 10:34:37 +02:00
Yura Bondarenko
738cdeca3d 90948: Make Spring include error messages in error responses 2022-05-23 14:49:52 +02:00
Bruno Roemers
06ad077a1e Merge branch 'main' into w2p-91356_detached-bitstream-moved-to-new-bundle-remains-deleted_upstream-latest 2022-05-23 14:49:23 +02:00
Bruno Roemers
bc2b53b9c5 91356: Fix tests 2022-05-23 14:46:52 +02:00
Bruno Roemers
3916d58222 91356: Prove that bitstream is still marked as deleted after adding to bundle 2022-05-23 14:31:13 +02:00
emanuele
a20baecc71 CST-5855 added IT to prove bug existance 2022-05-23 14:26:14 +02:00
Mykhaylo
7072e235ad Merge branch 'main' into CST-5673-AllowToDoGroupAndEpersonPatchingOfResourcepolicy 2022-05-23 10:55:56 +02:00
Mykhaylo
4befdc5509 Merge branch 'main' into CST-5303-LiveImport-3PR 2022-05-23 09:48:41 +02:00
Kim Shepherd
8f70299f0c [TLC-254] update submission ITs to reflect new elements/pages in cfg 2022-05-23 15:16:36 +12:00
Tim Donohue
358ddc98ed Add deprecation notice for Oracle to logs, dspace database info, READMEs and configs. 2022-05-20 15:09:27 -05:00
Luca Giamminonni
7780bf3bd8 Merge branch 'main' into CST-5669 2022-05-20 16:04:08 +02:00
Luca Giamminonni
3fca001cc7 Merge branch 'main' into CST-5587 2022-05-20 15:55:33 +02:00
Luca Giamminonni
126736fed4 [CST-5587] Minor improvements 2022-05-20 15:40:22 +02:00
Ben Bosman
bcb5918edc Merge branch 'feature-relationship-versioning__discovery' into feature-relationship-versioning-contribution 2022-05-20 09:35:52 +02:00
Kim Shepherd
886e5e8beb [TLC-254] revert accidental change introduced to test sub forms 2022-05-20 15:17:35 +12:00
Kim Shepherd
e7c18f8b98 [TLC-254] type bind qualdrop fixes 2022-05-20 14:29:41 +12:00
Kim Shepherd
28f7f5855f [TLC-254] Small checkstyle fix 2022-05-20 11:40:39 +12:00
Mykhaylo
055aff7158 [CST-5673] added missing tests with eperson&anonymous users 2022-05-19 22:58:43 +02:00
Tim Donohue
4e04dfd8d5 Merge pull request #8276 from 4Science/CST-5736
Include special groups in the authn status endpoint
2022-05-19 15:24:12 -05:00
Tim Donohue
0674403bc3 Merge pull request #8237 from 4Science/CST-5303-LiveImport-2PR
Migrate extra DSpace-CRIS "Live Import" sources to DSpace (CrossRef & VuFind)
2022-05-19 14:58:35 -05:00
Luca Giamminonni
c53dd7f79e [CST-5306] Added email check on ResearcherProfileService claim 2022-05-19 18:19:57 +02:00
Luca Giamminonni
30b35ac33a [CST-5669] Fixed tests 2022-05-19 15:49:18 +02:00
corrado lombardi
13b2aa0936 [CST-5755] removed commented code 2022-05-19 15:26:19 +02:00
corrado lombardi
7de7ba26ce [CST-5755] removed Gson usage and small code refactoring 2022-05-19 15:26:17 +02:00
corrado lombardi
cb0a6651f7 Merge branch 'main' into CST-5755_save_special_groups_in_process 2022-05-19 15:13:35 +02:00
Luca Giamminonni
8e01245fd1 [CST-5669] Configured ORCID sandbox 2022-05-19 15:12:43 +02:00
Luca Giamminonni
f71a3f067f [CST-5306] Allow claim only if email matches 2022-05-19 13:33:41 +02:00
Kim Shepherd
771d70049a [TLC-254] Better fix for 'required' conflict, ITs added
There were some logic issues with required vs non-required
for multiple inputs, and with qualdrop fields.
Simplified some of the qualdrop handling in MetadataValidation.

Added an Integration test to test a form that specifically
configures two dc.identifier.isbn inputs bound to two types
and has one required, one not.
2022-05-19 17:11:53 +12:00
Andrea Bollini
b76917eb45 Remove commented out code 2022-05-19 00:34:01 +02:00
Andrea Bollini
86df96ff57 Revert useless null check 2022-05-19 00:33:42 +02:00
Luca Giamminonni
18c8b91a55 [CST-5587] Code improvements 2022-05-18 17:52:03 +02:00
Kristof De Langhe
02632f79aa 90830: PR feedback 2 - comment fixes 2022-05-18 14:55:20 +02:00
Kristof De Langhe
de0e14e3a0 90830: PR feedback 2 - comment fixes 2022-05-18 14:53:45 +02:00
Luca Giamminonni
f131fd4865 [CST-5669] Fixed OrcidTokenBuilder 2022-05-18 12:25:10 +02:00
Luca Giamminonni
798e7bc63a [CST-5587] Refactoring after OrcidToken entity introduction 2022-05-18 12:24:02 +02:00
Yura Bondarenko
a4a7130f96 90948: Add IT for delete workflow group 422 error 2022-05-18 11:13:48 +02:00
Luca Giamminonni
db691b7e52 Merge branch 'CST-5669' into CST-5587 2022-05-18 11:07:07 +02:00
Luca Giamminonni
093524bcfd [CST-5288] Improved health status comment 2022-05-18 10:07:24 +02:00
Kim Shepherd
0066417b69 [TLC-254] fix issue where vals stripped fields are cfg'd more than once
If a field like dc.title.subtitle is configured multiple times in one
form with different rules for different type binding, when the validation
encounters the input config that is *not* bound for the doc type, it will
strip all metadata values even though the same field is allowed for this
type elsewhere in the form. This commit should fix this by constructing
a lookup map first, though it does not have a way to rigorously enforce
specific rule conflicts like repeatable=true and repeatable=false for
the same type, and so on.
2022-05-18 13:44:47 +12:00
Bruno Roemers
d549e6e58a 91354: Skip items in workspace/workflow when determining latest version while indexing 2022-05-17 18:50:34 +02:00
Bruno Roemers
226662a9dd 91354: Add extra checks to DiscoveryVersioningIT 2022-05-17 18:46:14 +02:00
Ben Bosman
19564a9e23 Merge remote-tracking branch 'origin/feature-relationship-versioning__discovery' into feature-relationship-versioning-contribution 2022-05-17 17:41:44 +02:00
Luca Giamminonni
d4f2dbb3e6 [CST-5288] Set 200 as http status for down and out_of_service health status 2022-05-17 15:21:25 +02:00
Bruno Roemers
43dcc3bc15 91390: Fix tests (3) 2022-05-17 14:29:31 +02:00
Bruno Roemers
54f5a14e7a 91390: Fix tests (2) 2022-05-17 11:47:01 +02:00
Luca Giamminonni
ad4f1d8b0d Merge branch 'CST-5306' into CST-5669 2022-05-17 10:32:09 +02:00
Luca Giamminonni
fd7e8a202d [CST-5306] Removed getFullName from ResearcherProfile 2022-05-17 10:20:35 +02:00
Mykhaylo
d43d3e2ee7 [CST-5673] request to update group/eperson must be in PUT 2022-05-17 09:28:35 +02:00
Mykhaylo
b5aec58549 Merge branch 'main' into CST-5269-Sherpa-Romeo 2022-05-16 23:17:17 +02:00
Mykhaylo
dc100eb5b8 [CST-5269] added missing JavaDoc 2022-05-16 23:15:39 +02:00
Bruno Roemers
27f796dee5 91390: Fix tests 2022-05-16 20:55:28 +02:00
Bruno Roemers
52a6920e13 91390: Revert changes to interface RelationshipMetadataService 2022-05-16 18:48:40 +02:00
Luca Giamminonni
f90359411f [CST-5669] Added OrcidToken entity to store orcid access token 2022-05-16 18:42:17 +02:00
Bruno Roemers
71cc97aa39 91390: Move class ItemUuidAndRelationshipId to separate file 2022-05-16 18:39:05 +02:00
Bruno Roemers
3fe4ae4a33 91390: Add support for tilted relationships to relation.*.latestForDiscovery 2022-05-16 18:32:59 +02:00
Luca Giamminonni
d82c6f9ee8 Revert "[CST-5669] Set orcid access token as hardcoded hidden metadata fields"
This reverts commit 4afa62a4c0.
2022-05-16 15:44:28 +02:00
Luca Giamminonni
3031dce00c Merge branch 'CST-5306' into CST-5669 2022-05-16 15:38:53 +02:00
Luca Giamminonni
d532829e73 [CST-5306] Added security check in EPersonAuthority 2022-05-16 15:30:17 +02:00
Mykhaylo
9a539bc9cc Merge branch 'main' into CST-5303-LiveImport-2PR 2022-05-16 14:49:18 +02:00
Mykhaylo
63179395ff [CST-5303] added unit tests for DoiCheck utility class 2022-05-16 14:47:28 +02:00
Luca Giamminonni
5a0b9ea456 [CST-5306] Improved CanClaimItemFeatureIT tests 2022-05-16 13:41:50 +02:00
Luca Giamminonni
2c80e1ee47 [CST-5306] Improved ResearcherProfileServiceImpl and ResearcherProfileRestRepositoryIT tests 2022-05-16 13:29:51 +02:00
Luca Giamminonni
493810c1d2 Merge remote-tracking branch '4science-bitbucket/main' into CST-5306 2022-05-16 12:54:01 +02:00
Mykhaylo
cff9ff9f30 [CST-5303] fix metadata field 2022-05-16 10:56:22 +02:00
Nathan Buckingham
30f923a080 OpenSearch RSS more robust handles Com/Coll as well as more search params (#8064)
* w2p-85140 Add sort and scope to opensearch to allow it to give proper results for rss feed

* w2p-86403 Removed legacy Config and changed default sort also revert community and collection in rss feeds

* remove unecessary dspace.cfg lines

* opensearch configuration needed

* w2p-86403 Fix discovery query grabbing non items in search result for opensearch

* w2p-86403 Change sort direction

* Change date accessioned_dt and discoveryConfig

* revert defaulting on rest side allow angular to handle defaulting

Co-authored-by: Nathan Buckingham <nathan.buckingham@atmire.com>
2022-05-13 14:25:01 -05:00
Bruno Roemers
b82814c088 88675: Add relation.*.latestForDiscovery metadata values to items 2022-05-13 19:14:32 +02:00
Bruno Roemers
bc740d299e 88675: Modify test for relation.*.latestForDiscovery metadata 2022-05-13 18:14:58 +02:00
Luca Giamminonni
e22e53cc25 [CST-5669] Improved OrcidLoginFilter 2022-05-13 16:52:40 +02:00
Kristof De Langhe
7e3ebd02df Merge branch 'w2p-90830_issue-8125_Import-items-stale-in-discovery_7.0' into w2p-90830_issue-8125_Import-items-stale-in-discovery 2022-05-13 12:50:37 +02:00
Kristof De Langhe
2649bea614 90830: Feedback + cron scheduler 2022-05-13 12:48:09 +02:00
Mykhaylo
38ef693a5b [CST-5303] fix bug with decoded doi 2022-05-13 00:46:21 +02:00
Mykhaylo
2813bb1eb1 Merge branch 'main' into CST-5673-AllowToDoGroupAndEpersonPatchingOfResourcepolicy 2022-05-12 17:16:54 +02:00
Mykhaylo
b947e2cfc2 [CST-5673] added missing tests 2022-05-12 17:14:37 +02:00
Bruno Roemers
b4087889f9 90946: Trigger reindex in VersioningConsumer when latest status is updated 2022-05-12 16:32:27 +02:00
Mykhaylo
0c377fd08a fix NullPointerException 2022-05-12 16:10:13 +02:00
Luca Giamminonni
4afa62a4c0 [CST-5669] Set orcid access token as hardcoded hidden metadata fields 2022-05-12 15:39:09 +02:00
Bruno Roemers
32fc45f515 90946: Remove force reindex from test 2022-05-12 15:11:55 +02:00
Bruno Roemers
86ab1ed9fd 90946: Finish test to confirm that items are reindexed in VersioningConsumer 2022-05-12 15:05:11 +02:00
Luca Giamminonni
21da1b4292 [CST-5669] Minor improvements 2022-05-12 13:54:31 +02:00
Mykhaylo
4ab106628a [CST-5303] fix bug null JsonNode 2022-05-12 13:46:11 +02:00
Mykhaylo
ce78d5fc1a [CST-5303] "none" entityType is also supported 2022-05-12 12:51:27 +02:00
Mykhaylo
b4e17f8d65 [CST-5303] fix problem in log with empty JsonNode 2022-05-12 12:48:42 +02:00
Ben Bosman
4243007c77 Merge branch 'feature-relationship-versioning__discovery' into feature-relationship-versioning-contribution 2022-05-12 11:37:13 +02:00
Author Name
421a907dac added some missing tests 2022-05-12 10:17:43 +02:00
corrado lombardi
309c710ca7 [CST-5755] used POJO with proper setter for groups, updated javadoc of ProcessService.create method, refactoring of test code 2022-05-12 08:47:08 +02:00
Mykhaylo
4dccad858a minor fix 2022-05-11 19:20:35 +02:00
Bruno Roemers
d634002ad8 90946: WIP: Write test to confirm that items are reindexed in VersioningConsumer 2022-05-11 19:08:11 +02:00
Mykhaylo
73e4cd1d29 [CST-5303] refactored SimpleMapConverter 2022-05-11 18:17:43 +02:00
Mykhaylo
d69f85ce6e fix javaDoc 2022-05-11 18:16:25 +02:00
Mykhaylo
510209eae6 [CST-5303] removed PLACEHOLDER_PARENT_METADATA_VALUE 2022-05-11 17:10:01 +02:00
Bruno Roemers
5ebfa5fa5a 90946: Move test utils to separate class for use in multiple test classes 2022-05-11 17:06:35 +02:00
Luca Giamminonni
4bfe3f58f9 [CST-5669] Improved javadoc 2022-05-11 16:27:57 +02:00
Mykhaylo
de4ffdf67b Merge branch 'main' into CST-5303-live-import 2022-05-11 16:27:49 +02:00
Mykhaylo
a436639ca7 [CST-5303] added missing JavaDoc 2022-05-11 16:23:22 +02:00
Mykhaylo
9c2c9132bb [CST-5303] refactoring of ADS & EPO services 2022-05-11 13:33:06 +02:00
Luca Giamminonni
a71ee59bba [CST-5288] Removed version check on InfoEndpointIT 2022-05-11 12:04:25 +02:00
Luca Giamminonni
223ba1b440 Merge branch 'CST-5587' into CST-5799 2022-05-11 11:04:02 +02:00
Luca Giamminonni
bb60c7d200 Merge branch 'CST-5669' into CST-5587 2022-05-11 11:02:32 +02:00
Luca Giamminonni
d6f34bcf90 Merge branch 'CST-5306' into CST-5669 2022-05-11 11:00:32 +02:00
Luca Giamminonni
6a10980f51 Merge remote-tracking branch '4science-bitbucket/main' into CST-5288 2022-05-11 10:55:42 +02:00
Luca Giamminonni
332a4ae3bd Merge remote-tracking branch '4science-bitbucket/main' into CST-5306 2022-05-11 10:53:46 +02:00
Mykhaylo
5101173abd Merge branch 'main' into CST-5303-live-import-4PR 2022-05-11 09:42:11 +02:00
Mykhaylo
102a4a51b8 Merge branch 'main' into CST-5303-LiveImport-3PR 2022-05-10 18:50:39 +02:00
Mykhaylo
851ba184f7 [CST-5303] Implement community feedbacks for Scielo provider 2022-05-10 18:46:44 +02:00
Bruno Roemers
97fdc3477c Merge branch 'feature-relationship-versioning__discovery__bug-in-workspaceItemService' into feature-relationship-versioning__discovery 2022-05-10 17:42:48 +02:00
Tim Donohue
f6ea75b4c3 Merge pull request #8175 from the-library-code/TLC-254_type_bind_d72
Type-bind for submission input (port from DSpace-CRIS 7)
2022-05-10 10:05:01 -05:00
Tim Donohue
f676f951fe Merge pull request #8247 from nibou230/access-status
Basic implementation for the access status badges
2022-05-10 10:00:34 -05:00
Mykhaylo
3f01c4bc1c Merge branch 'main' into CST-5303-LiveImport-3PR 2022-05-10 16:24:45 +02:00
Mykhaylo
149393b06d [CST-5303] refactored tests 2022-05-10 16:16:16 +02:00
Luca Giamminonni
d669ecba6b [CST-5669] Fix tests 2022-05-10 12:59:52 +02:00
Mykhaylo
78a36136e2 fix failed test 2022-05-10 12:33:27 +02:00
Mykhaylo
c490f28c4d [CST-5303] refactored crossref & vufind json processors 2022-05-10 10:50:59 +02:00
Bruno Roemers
09872a7491 Merge branch 'feature-relationship-versioning__discovery__bug-in-workspaceItemService' into feature-relationship-versioning__discovery 2022-05-09 18:08:47 +02:00
Bruno Roemers
bbaf433c78 90945: Test all *-relationships discovery configs 2022-05-09 17:59:20 +02:00
Bruno Roemers
3b30bec14f 90945: Add tests for *-relationships discovery configs
Copy-pasted the existing tests as baseline
2022-05-09 17:26:25 +02:00
Bruno Roemers
ea712fa175 90945: Remove latestVersion:true from *-relationships discovery configs 2022-05-09 17:18:44 +02:00
Bruno Roemers
f24671dd59 90945: Add *-relationships discovery configs
Copy-pasted the existing discovery configs as baseline
2022-05-09 17:11:32 +02:00
Bruno Roemers
f36d0377ce 90945: Fix MetadataImportIT 2022-05-09 16:45:04 +02:00
Luca Giamminonni
7b49fbe661 [CST-5288] Info endpoint improvements 2022-05-09 16:22:39 +02:00
Bruno Roemers
e2e31446f4 90945: Attempt to fix tests 2022-05-09 15:47:03 +02:00
Luca Giamminonni
fe181398d0 Merge remote-tracking branch '4science-bitbucket/main' into CST-5288 2022-05-09 15:17:40 +02:00
Luca Giamminonni
a19d31da67 [CST-5669] Minor changes 2022-05-09 13:41:03 +02:00
Bruno Roemers
e072ab2920 90945: Prevent (re)adding collection entity type during new version creation 2022-05-09 12:14:53 +02:00
Bruno Roemers
6b925723ad 90945: Prove collection entity type is (re)added during new version creation 2022-05-09 12:13:03 +02:00
Bruno Roemers
8448fcf062 90945: Fix dspace.entity.type = <blank> on new items 2022-05-09 11:39:28 +02:00
Bruno Roemers
d39f4ae83f 90945: Prove that empty dspace.entity.type is stored on new items
I observed that whenever a collection is created via the GUI in DSpace,
it has dspace.entity.type = <blank> as metadata value.
That metadata value is copied to all new items in the collection.
An empty dspace.entity.type metadata value on an item does not make sense.
2022-05-09 11:34:17 +02:00
Mykhaylo
160a726505 refactoring of crossref & vufind json contributors 2022-05-06 18:50:14 +02:00
Mykhaylo
7e5c706748 removed json-smart dependency 2022-05-06 18:47:52 +02:00
Tim Donohue
8f515c7b1f Merge pull request #8284 from alanorth/port-DS-4271-to-7x
DS-4271: Replace brackets with double quotes in SolrServiceImpl
2022-05-06 11:45:16 -05:00
Tim Donohue
60f3de0a00 Merge pull request #8283 from mwoodiupui/8278
Add documentation to request_item.author email template; remove unused templates
2022-05-06 11:21:49 -05:00
Luca Giamminonni
92e8a2fb25 [CST-5669] Fixed orcid page 2022-05-06 16:50:44 +02:00
Bruno Roemers
fde932a853 90945: Index latestVersion as boolean (solr) 2022-05-06 16:22:57 +02:00
Luca Giamminonni
d3146da1a3 [CST-5587] Fixed tests 2022-05-06 15:56:58 +02:00
Bruno Roemers
75f426b6e6 90945: Index older versions of items 2022-05-06 14:48:31 +02:00
Bruno Roemers
5e3523fc77 90945: Fix tests 2022-05-06 13:27:34 +02:00
Luca Giamminonni
69bb9501b6 [CST-5587] Improved orcid queue consumer 2022-05-06 12:36:43 +02:00
Luca Giamminonni
c8dceefaea [CST-5306] Disable researcher profile by default 2022-05-06 11:17:52 +02:00
Kim Shepherd
1abf906db8 [TLC-254] Make type bind config dynamic, fix test comments 2022-05-06 15:43:15 +12:00
nibou230
e9b61f327c Renamed the access status Builder to Helper 2022-05-05 15:05:38 -04:00
nibou230
34350dd468 Add the PreAuthorize attribute to getAccessStatus 2022-05-05 14:00:45 -04:00
Luca Giamminonni
3228c6a3c2 [CST-5306] Removed ShowClaimItemFeature, added EPersonAuthorityIT tests, improved researcher profile's collection search 2022-05-05 17:47:37 +02:00
Yura Bondarenko
78c57a110d Fix exception message i18n key mismatch 2022-05-05 16:48:30 +02:00
Mark H. Wood
2fdc8d66ab Merge branch 'main' into DS-4300 to correct merge conflicts. 2022-05-05 09:54:38 -04:00
Mykhaylo
333b41cc0e Merge branch 'main' into CST-5303-LiveImport-2PR 2022-05-05 12:46:37 +02:00
Mykhaylo
8027d6e8a5 Merge branch 'main' into CST-5303-live-import 2022-05-05 11:54:25 +02:00
emanuele
971977c668 CST-5673 checkstyle fix 2022-05-05 11:37:26 +02:00
Bruno Roemers
55b38656bb 90945: WIP: Prove that old versions don't appear in solr (before changes) and don't appear in discovery 2022-05-05 11:34:22 +02:00
Alan Orth
a585b16b1a dspace-api: Replace brackets with double quotes in SolrServiceImpl
Port of GitHub PR #2543 from DSpace 6.x to DSpace 7.x, originally
by @jonas-atmire.

Resolves DS-4271 (GitHub Issue #7611).
2022-05-05 10:06:14 +03:00
Mark H. Wood
e724ea2602 Add documentation to request_item.author email template; remove unused templates. 2022-05-04 13:07:38 -04:00
emanuele
101e854fee CST-5673 implemented patch operation and ITs for action and policyType attributes 2022-05-04 17:27:17 +02:00
Mykhaylo
9de1ecd058 [CST-5673] implemented controller to allow patching of eperson/group on resourcepolicy 2022-05-04 15:51:17 +02:00
Mykhaylo
630c53e8f3 [CST-5673] added tests for eperson/group replace of resourcepolicy 2022-05-04 15:48:50 +02:00
Bruno Roemers
d119d842f8 Merge branch 'main' into feature-relationship-versioning-contribution 2022-05-04 11:46:28 +02:00
Kim Shepherd
78e187e6a8 [TLC-254] Expose type bind field config with REST 2022-05-04 15:26:32 +12:00
Luca Giamminonni
3b64e1761f [CST-5306] Improvements 2022-05-03 16:33:38 +02:00
benbosman
9e654f7635 Merge pull request #195 from atmire/feature-relationship-versioning
Feature relationship versioning
2022-05-03 12:37:04 +02:00
Bruno Roemers
57ff9639f3 90902: Finish test_placeRecalculationAfterDelete_complex 2022-05-03 12:00:15 +02:00
Luca Giamminonni
ba6fab1f88 [CST-5288] Added admin security check on info endpoint 2022-05-02 19:01:36 +02:00
Luca Giamminonni
3ce8838e00 [CST-5288] Fix actuators issues 2022-05-02 18:38:34 +02:00
Bruno Roemers
312eddbfdc 90902: WIP: Write test test_placeRecalculationAfterDelete_complex 2022-05-02 18:13:48 +02:00
Mykhaylo
7d3b646110 [CST-5303] refactored and added JavaDoc to CrossRef and VuFind services 2022-05-02 17:03:47 +02:00
Bruno Roemers
786ca5d617 90902: Bump Apache Commons Lang3 from version 3.7 to 3.12.0
This makes available new interfaces such as FailableConsumer, etc.
2022-05-02 16:18:15 +02:00
Kristof De Langhe
ffaa7ded6f Merge branch 'w2p-90830_issue-8125_Import-items-stale-in-discovery_7.0' into w2p-90830_issue-8125_Import-items-stale-in-discovery 2022-05-02 15:54:53 +02:00
Kristof De Langhe
36d6087860 90830: test scripts config fix 2022-05-02 14:36:31 +02:00
Kristof De Langhe
5c82443930 Merge branch 'w2p-90830_issue-8125_Import-items-stale-in-discovery_7.0' into w2p-90830_issue-8125_Import-items-stale-in-discovery 2022-05-02 13:56:15 +02:00
Kristof De Langhe
baf715aa1c 90830: predb solr status test cases 2022-05-02 13:55:48 +02:00
Giuseppe Digilio
9841c576c8 [CST-5288] Fix issue after alignment with main branch 2022-05-02 12:06:36 +02:00
Giuseppe Digilio
c27df5320b Merge branch 'main' into CST-5288 2022-05-02 11:50:51 +02:00
Andrea Bollini
3724c2c341 Fix ContextTest as special groups are now unordered set 2022-04-29 22:13:33 +02:00
Tim Donohue
a235551fab Merge pull request #8259 from tdonohue/update_outdated_dependencies
Remove Google Gson, replacing with Jackson Databind.  Upgrade Jackson Databind
2022-04-29 14:09:42 -05:00
Andrea Bollini
3e33fa6b22 Fix checkstyle, double list of some special groups 2022-04-29 20:07:51 +02:00
Tim Donohue
a1b6bcc427 More null safety checks to avoid any NPEs 2022-04-29 12:34:34 -05:00
Tim Donohue
d49f69d28c Merge pull request #8245 from 4Science/CST-5718
IIIF manifest and canvas cache eviction is asynchronous and could led to unexpected responses
2022-04-29 12:03:34 -05:00
Tim Donohue
dcec76eff0 Merge pull request #8260 from toniprieto/cc-section-not-loading
Fix Creative Commons step not loading
2022-04-29 11:39:06 -05:00
Andrea Bollini
ebc7304a53 Fix special groups link implementation 2022-04-29 18:21:44 +02:00
Tim Donohue
4b2c259f5d Merge pull request #8269 from tdonohue/use_saxon
Revert changes to OAI-PMH TransformerFactory initialization. It MUST use Saxon
2022-04-29 11:08:30 -05:00
Bruno Roemers
d17fd6456a 90902: Found and fixed bug in test_placeRecalculationAfterDelete 2022-04-29 16:03:16 +02:00
Mykhaylo
681b56f30c [CST-5269] move iiif cache loggers into dspace-api progect 2022-04-29 12:35:59 +02:00
Luca Giamminonni
adff85732a [CST-5799] Fixed ExternalSourcesRestControllerIT test 2022-04-29 12:04:09 +02:00
Luca Giamminonni
54bb303ed3 Merge branch 'CST-5587' into CST-5799 2022-04-29 12:03:04 +02:00
Luca Giamminonni
c292361d58 [CST-5587] Fixed SubmissionFormsControllerIT tests 2022-04-29 12:02:38 +02:00
Mykhaylo
8c60342ad9 [CST-5269] put together sherpa and iiif cache config 2022-04-29 11:47:03 +02:00
Luca Giamminonni
a7a49c81c6 [CST-5669] Fixed ResearcherProfileRestRepositoryIT tests 2022-04-29 11:15:21 +02:00
Mykhaylo
154eaed262 [CST-5269] fix checkstyle 2022-04-29 10:39:02 +02:00
Jurgen Mamani
7dc4aaa0d4 [CST-5755] Refactoring 2022-04-29 10:30:19 +02:00
Yura Bondarenko
c00cdd4d0d 90948: Add custom exception for deleting Group with pending tasks 2022-04-29 10:00:56 +02:00
Andrea Bollini
3777bfc14b Add some javadoc 2022-04-29 09:47:07 +02:00
Andrea Bollini
77e4306938 Remove unnecessary changes 2022-04-29 09:46:21 +02:00
Andrea Bollini
42f86a7b3e Cleanup logging dependencies 2022-04-29 09:31:44 +02:00
Andrea Bollini
53105792b0 Merge branch 'main' of https://github.com/DSpace/DSpace into CST-5269-Sherpa-Romeo 2022-04-29 09:04:11 +02:00
Jurgen Mamani
9b14fe59bd [CST-5755] Renamed db scripts 2022-04-29 08:59:28 +02:00
Tim Donohue
93bba45f80 Revert changes to OAI-PMH TransformerFactory initialization. MUST use Saxon 2022-04-28 16:30:26 -05:00
Tim Donohue
6dbb2e7690 Add null checks to avoid any NPEs 2022-04-28 14:05:05 -05:00
Tim Donohue
9edccd8abf Merge pull request #8258 from tdonohue/xml_parsing_cleanup
Remove Xalan & Xerces as direct dependencies of dspace-api
2022-04-28 13:46:29 -05:00
emanuele
f83fbc4921 CST-5736 LinkRepository bugfix 2022-04-28 19:02:56 +02:00
Mykhaylo
a1117bbbf1 [CST-5269] added tests for sherpa policy submission section 2022-04-28 18:13:54 +02:00
Tim Donohue
a5627b7ba9 Merge pull request #8264 from kshepherd/version-builder-log4j
log4j v1 -> v2 for VersionBuilder
2022-04-28 11:10:42 -05:00
Luca Giamminonni
58694eaed8 [CST-5669] Fixed compilation issue 2022-04-28 17:24:38 +02:00
emanuele
72c1248be6 CST-5736 removed comments 2022-04-28 16:12:11 +02:00
emanuele
c947a689ac CST-5736 AuthenticationRestController refactoring 2022-04-28 16:09:11 +02:00
Luca Giamminonni
424bdf8348 [CST-5799] Porting of OrcidPublicationDataProvider 2022-04-28 15:57:13 +02:00
Jurgen Mamani
416c2dd56a [CST-5755] Ported tests for process 2022-04-28 15:15:46 +02:00
Jurgen Mamani
e4a4b913b9 [CST-5755] Ported process special group tracking 2022-04-28 14:17:15 +02:00
Mykhaylo
f51cf97f8b [CST-5269] fix failed tests 2022-04-28 13:41:33 +02:00
Luca Giamminonni
d6b66c95f0 [CST-5587] Fixed orcid tests 2022-04-28 12:26:12 +02:00
Marie Verdonck
5d8aa354ea 90830: issue 8125 - fixes after merge main 2022-04-28 12:10:04 +02:00
Marie Verdonck
bdc59583fa Merge branch 'main' into w2p-90830_issue-8125_Import-items-stale-in-discovery
# Conflicts:
#	dspace/config/spring/api/scripts.xml
2022-04-28 12:09:08 +02:00
Marie Verdonck
77fee75304 90830: issue 8125 - add status to all newly added items 2022-04-28 12:06:30 +02:00
Mykhaylo
5743ebaf84 [CST-5269] refactored sherpa policy step 2022-04-28 10:46:01 +02:00
Kim Shepherd
eca7d1e08d log4j v1 -> v2 for VersionBuilder 2022-04-28 08:24:44 +12:00
Luca Giamminonni
535b36be97 [CST-5587] Fixed orcid queue tests 2022-04-27 18:43:14 +02:00
Luca Giamminonni
50274d31c9 [CST-5587] Fixed PlainMetadataSignatureGeneratorIT tests 2022-04-27 17:23:01 +02:00
Luca Giamminonni
5b4130fbc7 [CST-5587] Orcid queue and history migration 2022-04-27 16:55:46 +02:00
Bruno Roemers
e9596cfff8 90881: Fix test test_placeRecalculationNoUseForPlace 2022-04-27 14:32:23 +02:00
emanuele
467d372b9e CST-5736 added /status/specialGroups method and test 2022-04-27 13:11:49 +02:00
Luca Giamminonni
e726cc459f Merge branch 'CST-5669' into CST-5588 2022-04-27 11:48:52 +02:00
Luca Giamminonni
949dd0d0d8 Merge branch 'CST-5306' into CST-5669 2022-04-27 11:38:37 +02:00
Kim Shepherd
de9455f6d8 [TLC-254] Obtain context properly in MetadataValidation 2022-04-27 19:15:26 +12:00
Kim Shepherd
53b4415408 [TLC-254] Update type bind ITs to reflect validation changes 2022-04-27 16:20:55 +12:00
Kim Shepherd
06e119c974 [TLC-254] Use of context for just narrow type bind cases 2022-04-27 16:20:26 +12:00
Kim Shepherd
892464971a [TLC-254] fix accidental codestyle violation in new import 2022-04-27 14:49:09 +12:00
Kim Shepherd
0adf10751c [TLC-254] fix accidental codestyle violation in new import 2022-04-27 14:33:35 +12:00
Kim Shepherd
655524301e [TLC-254] Remove old type-bound values from workspace items at deposit
This is also done at DescrbeStep getData() but if an item was saved
while it had a valid type for the given field, the validation method
also needs to remove it from the workspace item.
2022-04-27 14:11:35 +12:00
Tim Donohue
ba8af538b8 Address feedback in WordHighlightSolrSearch 2022-04-26 16:07:47 -05:00
Kim Shepherd
0adcd94ea9 [TLC-254] Add ITs to ensure values for non-bound types don't persist 2022-04-26 14:13:29 +12:00
Kim Shepherd
0572f94d77 [TLC-254] Simplify validation test skip 2022-04-26 11:18:04 +12:00
Kim Shepherd
1cb03c0063 [TLC-254] If type bind doesn't allow a field, remove from data 2022-04-26 11:17:40 +12:00
Kim Shepherd
0d43fb4a8d [TLC-254] Fix typeBind JSON path test and add opposite test 2022-04-26 11:16:55 +12:00
Kim Shepherd
fd535c34f4 [TLC-254] Fix typeBind JSON path test 2022-04-25 16:54:37 +12:00
Kim Shepherd
160c3c072c [TLC-254] Rebase main (merges to MetadataValidation) 2022-04-25 15:41:01 +12:00
Kim Shepherd
9d0b5cde14 [TLC-254] Rebase main (merges to MetadataValidation) 2022-04-25 15:40:12 +12:00
Kim Shepherd
71b7fa19f4 [TLC-254] Integration test (including changing matcher methods) for type bind 2022-04-25 15:40:12 +12:00
Kim Shepherd
5de4e803e1 [TLC-254] Make item type field configurable for type bind (default dc.type) 2022-04-25 15:40:12 +12:00
Kim Shepherd
ac4bf5d618 [TLC-254] Rebase to main (merge metadatavalidation) 2022-04-25 15:39:52 +12:00
Mykhaylo
a4b07a9f0a [CST-5303] added JavaDocs 2022-04-22 18:28:13 +02:00
Luca Giamminonni
effc9547f1 [CST-5306] Fixed eperson_claims discovery configuration 2022-04-22 16:04:04 +02:00
Luca Giamminonni
3cd3cd9a70 [CST-5306] Added eperson_claims discovery configuration to find all claimable profiles 2022-04-22 15:53:54 +02:00
Luca Giamminonni
131455f757 [CST-5306] Expose researcher-profile.entity-type 2022-04-22 15:29:21 +02:00
Mykhaylo
347561afeb [CST-5269] refactored sherpaPolicy step 2022-04-22 14:47:34 +02:00
Luca Giamminonni
ee6cf3d60c [CST-5306] Improvements on ResearcherProfileRestRepository 2022-04-22 14:32:20 +02:00
Mykhaylo
31bd3861d2 [CST-5269] fix failed test 2022-04-22 12:47:38 +02:00
Luca Giamminonni
626775347b Merge remote-tracking branch '4science-bitbucket/main' into CST-5306 2022-04-22 10:10:09 +02:00
Luca Giamminonni
cb4152566e Merge branch 'main' into CST-5306 2022-04-22 10:06:54 +02:00
Tim Donohue
365827ce92 Merge pull request #8257 from 4Science/CST-5760
License validator enabled
2022-04-21 16:39:56 -05:00
Mykhaylo
a1d619979e [CST-5269] configured sherpa service in submission 2022-04-21 22:24:46 +02:00
Mykhaylo
2dedb4014b [CST-5303] added JavaDoc and minor refactoring 2022-04-21 22:02:54 +02:00
nibou230
845a552911 Fix for calls from the administration (workflow) 2022-04-21 14:45:14 -04:00
nibou230
3de5886ba9 Fix in case the group can't be retrieved 2022-04-21 14:45:13 -04:00
nibou230
0fd11c0e51 Fixes integration tests 2022-04-21 14:45:13 -04:00
nibou230
daa0617384 Moved the status endpoint to a LinkRepository 2022-04-21 14:45:13 -04:00
nibou230
8bb23ab9ef Fixes the LGTM alerts. 2022-04-21 14:45:13 -04:00
nibou230
785a4d6ed8 Basic implementation for the access status badges 2022-04-21 14:45:13 -04:00
Bruno Roemers
5e5e99b446 88599: Add extra javadocs 2022-04-21 15:40:26 +02:00
Tim Donohue
3253e6dd7b Stop forcing specific TransformerFactory implementation. 2022-04-20 13:21:35 -05:00
Tim Donohue
db1f8061d7 Remove Xalan direct dependency. Migrate code to Javax.xml.xpath parsing tools 2022-04-20 12:34:29 -05:00
Corrado Lombardi
fd99c86430 [CST-5760] updated test items with license granted 2022-04-20 16:55:10 +02:00
Toni Prieto
b2a3ef60cf Fix test for CCLicense operations. The cclicense section should exist but with all properties set to null 2022-04-20 16:21:53 +02:00
Toni Prieto
22ac0d9950 Fix nullpointerexception converting CC RDF bitstream 2022-04-20 16:20:45 +02:00
Tim Donohue
a9edca7f55 Merge pull request #8240 from tdonohue/fix_8239
Fix PATCH of resource policy end date when start date is null
2022-04-20 09:05:10 -05:00
Corrado Lombardi
b5b7206288 [CST-5760] typo fix 2022-04-20 15:28:57 +02:00
Corrado Lombardi
9843b72a86 [CST-5760] LicenseValidation bean instrumented so that license is validated during submission, tests expectations updated accordingly 2022-04-20 15:09:27 +02:00
Corrado Lombardi
50bb8456ea [CST-5760] validate method instance returns its own list of errors, having them in a field might lead to pre-populated lists returning wrong information 2022-04-20 15:06:55 +02:00
Kristof De Langhe
238aead2bd 90830: Checkstyle fixes 2022-04-20 13:50:38 +02:00
Kristof De Langhe
80158aadfe 90830: Issue 8125: Import items stale in discovery 2022-04-20 13:21:35 +02:00
Tim Donohue
564cc25a8b Merge pull request #8252 from atmire/w2p-90263_issue-8205_no-embargoed-files-on-google-scholar-meta-tag
IT demonstrating REST doesn't include Google Scholar Meta Tag citation_pdf_url for embargoed files
2022-04-19 17:12:25 -05:00
Tim Donohue
21c855882a Upgrade Jackson and Jackson-Databind 2022-04-19 16:30:36 -05:00
Marie Verdonck
9abb132271 Merge branch 'main' into w2p-90263_issue-8205_no-embargoed-files-on-google-scholar-meta-tag 2022-04-19 23:02:52 +02:00
Tim Donohue
11faeefe95 Remove Gson, replacing with Jackson. Remove unused DataTermsFacet & unused code in WordHighlightSolrSearch 2022-04-19 16:00:01 -05:00
Tim Donohue
248c175063 Merge pull request #2631 from mwoodiupui/DS-4410
[DS-4410] New email template sent to a newly-registered user.
2022-04-19 13:06:30 -05:00
Kristof De Langhe
0ae13fe0fb 90830: Issue 8125: Import items stale in discovery - intermediate commit 2022-04-19 17:45:59 +02:00
Ben Bosman
6308f5b488 Creating test_placeRecalculationNoUseForPlace (has bug in code) 2022-04-19 16:37:02 +02:00
Ben Bosman
dfa036ff8c Adding support for max cardinality
Fixing test_placeRecalculationAfterDelete
Creating test_placeRecalculationNoUseForPlace (WIP)
2022-04-19 15:12:10 +02:00
Ben Bosman
753350958c Adding support for max cardinality
Fixing test_placeRecalculationAfterDelete (WIP)
2022-04-19 14:34:23 +02:00
Ben Bosman
40b8f63ca7 Disabling incorrect test until it's determined what it should actually do 2022-04-19 12:21:45 +02:00
Tim Donohue
3a96e64d17 Merge pull request #8207 from atmire/w2p-88141_scripts-and-processes-bug-7992
Fix Scripts and Processes bug #7992
2022-04-13 11:18:57 -05:00
Tim Donohue
f8f31cb73a Merge pull request #8194 from atmire/issue-8140_create-citation-page-once_main
IT for file download so IS is closed & refactor file download with citation/cover page
2022-04-13 11:18:11 -05:00
eskander
1c5e89d4a4 [CST-5588] ORCID settings (REST) . 2022-04-13 13:30:07 +02:00
Bruno Roemers
4ec934f4ce 88675: WIP: Test relation.isAuthorOfPublication 2022-04-12 18:50:48 +02:00
Corrado Lombardi
fbf0b33076 [DSC-557] evictAllValues invalidates cache 2022-04-12 17:30:36 +02:00
Corrado Lombardi
1a4c0428e1 used evictIfPresent to guarantee immediate cache eviction effect 2022-04-12 17:29:24 +02:00
Bruno Roemers
c4bb77d1e4 88675: Fix NPE 2022-04-12 15:36:49 +02:00
Bruno Roemers
a9025d68bf 88675: Fix checkstyle issues 2022-04-12 14:40:26 +02:00
eskander
035940018f [CST-5669] ORCID Authorizations (REST) . 2022-04-12 11:06:59 +02:00
Marie Verdonck
2408aa9fc4 90263: Issue 8205: Test to check GoogleMetadata contains no citation_pdf_url for embargoed files 2022-04-11 17:07:27 +02:00
Mykhaylo
da0a23519d Merge branch 'main' into CST-5340-OpenAIREFundingDataProvider 2022-04-11 14:58:28 +02:00
Mykhaylo
13b147a691 [CST-5340] refactored OpenAIREFundingData provider 2022-04-11 14:53:35 +02:00
Bruno Roemers
91aca5dc25 88675: Finish test test_virtualMetadataPreserved 2022-04-08 19:27:45 +02:00
Tim Donohue
527f5eea2a Add test for replace EndDate. Fix typos in other test method names 2022-04-08 12:15:32 -05:00
Luca Giamminonni
afa86658c9 [CST-5669] Migrated OrcidRestController 2022-04-08 18:27:00 +02:00
Luca Giamminonni
3b153db00c [CST-5308] Migrate OrcidAuthenticationBean 2022-04-08 18:23:23 +02:00
Bruno Roemers
611f5a8fa3 88675: Use static imports for LatestVersionStatus 2022-04-08 17:43:25 +02:00
Tim Donohue
d17141442d Merge pull request #8215 from tdonohue/update_spring_dependencies
Upgrade Spring Dependences & HAL Browser
2022-04-08 10:38:17 -05:00
Bruno Roemers
fea034d4c9 88599: Set virtual metadata "useForPlace = true" for test_placeRecalculationAfterDelete 2022-04-08 17:12:15 +02:00
Bruno Roemers
44a491993d 88599: WIP: Write test_placeRecalculationAfterDelete 2022-04-08 16:30:13 +02:00
Yana De Pauw
aa62178f95 Fix checkstyle issue 2022-04-08 15:10:31 +03:00
Yana De Pauw
6c1c2915c3 88141: Fix issue with the mock script test 2022-04-08 14:24:01 +03:00
Yana De Pauw
e7cc945f92 88141: Update script converter comment and clean up setType(boolean) 2022-04-08 11:46:07 +03:00
Bruno Roemers
ef87d0cbf5 88599: BUGFIX: Opposite side needs to be latest in order to set own side to non-latest
Otherwise an error occurs
2022-04-08 01:12:11 +02:00
Bruno Roemers
b9c1f90ab8 88599: BUGFIX: Compare relationship types by id 2022-04-08 00:40:39 +02:00
Bruno Roemers
f0a2c37011 88599: Move utils to RelationshipVersioningUtils class 2022-04-08 00:25:26 +02:00
Luca Giamminonni
55106c2351 [CST-5288] Added Order to the VersionInfoContributor 2022-04-07 19:13:26 +02:00
Luca Giamminonni
89f2a61f5a [CST-5288] Moved all spring boot actuator configurations in actuator.cfg 2022-04-07 19:05:15 +02:00
Ben Bosman
2f56bca9b9 Verifying failing test 2022-04-07 11:17:33 +02:00
Tim Donohue
6a37400c97 Fix typo. Should check if StartDate not null 2022-04-06 13:58:53 -05:00
Tim Donohue
7d8ec90c42 Merge pull request #8210 from atmire/browse-by-prefix-filter
Items browse prefix filter
2022-04-06 12:15:52 -05:00
Ben Bosman
805394ee85 Extra docs
Test with multiple relationships
2022-04-06 18:46:51 +02:00
Mykhaylo
b5af1177a2 [CST-5303] fix failed tests 2022-04-06 12:44:33 +02:00
Mykhaylo
ee5078f93e [CST-5303] refactoring of wos live import 2022-04-06 12:22:27 +02:00
Antoine Snyers
67c3ca20bc Remove commented code 2022-04-06 10:51:52 +02:00
Mykhaylo
7b7f3a0d30 [CST-5303] fix logging for Epo 2022-04-06 10:50:25 +02:00
Mykhaylo
1ceae4f389 [CST-5303] added dependency to extract metadata from Json response 2022-04-06 10:40:07 +02:00
Mykhaylo
97b8a4c727 [CST-5303] fix logging 2022-04-06 10:36:27 +02:00
Mykhaylo
76d2703720 [CST-5303] added dependency to extract metadata from Json response 2022-04-06 10:35:50 +02:00
Mykhaylo
1a40d1f460 Merge branch 'main' into CST-5303-LiveImport-2PR 2022-04-06 10:03:47 +02:00
Mykhaylo
e2fac38146 [CST-5303] added tests for vuFind live import service 2022-04-06 10:00:06 +02:00
Mykhaylo
61287b9e83 [CST-5303] fix access url 2022-04-06 09:59:09 +02:00
Mykhaylo
491ed1c3a4 [CST-5303] fix logging 2022-04-06 02:38:04 +02:00
Mykhaylo
3a91f035f6 Merge branch 'main' into CST-5303-live-import-4PR 2022-04-06 02:35:52 +02:00
Mykhaylo
3456138e85 [CST-5303] fix logging 2022-04-06 02:33:41 +02:00
Mykhaylo
988a8c9335 [CST-5303] fix logging 2022-04-06 02:23:48 +02:00
Mykhaylo
761831403f Merge branch 'main' into CST-5303-LiveImport-3PR 2022-04-06 02:03:44 +02:00
Mykhaylo
8bc4997bf5 Merge branch 'main' into CST-5303-live-import 2022-04-06 02:00:38 +02:00
Mykhaylo
c40339e113 [CST-5303] added tests for epo and ads live import services 2022-04-06 01:49:22 +02:00
Mykhaylo
cee8601c86 [CST-5303] porting of ads and epo live import services 2022-04-06 01:48:24 +02:00
Bruno Roemers
5755ebc3e2 88599: WIP: Write test test_placeRecalculationAfterDelete 2022-04-05 20:20:39 +02:00
Antoine Snyers
3ee7ff139d Remove commented code 2022-04-05 10:56:05 +02:00
Tim Donohue
af168718c6 Cleanup depedencies in dspace-rest after rebase to fix deprecated REST API issues 2022-04-04 17:18:26 -05:00
Tim Donohue
5663698ef1 Minor cleanup after rebase 2022-04-04 17:18:17 -05:00
Tim Donohue
4dc1767074 Update to latest version of Spring & Spring Boot 2022-04-04 17:18:17 -05:00
Tim Donohue
0ac74f2e1d Pull in jsoneditor.js via WebJars as well. Remove from codebase 2022-04-04 17:18:17 -05:00
Tim Donohue
2ac1f982d2 Upgrade Hal Browser dependencies / vendor libraries to latest versions 2022-04-04 17:18:17 -05:00
Tim Donohue
cfa9f01a47 Upgrade Hal Browser to Bootstrap 4 based on https://github.com/mikekelly/hal-browser/pull/102 . Also add CustomPostForm script from Spring Data REST v3.3.x 2022-04-04 17:18:17 -05:00
Tim Donohue
92687252ce Remove unnecessary config / annotation after Spring upgrades 2022-04-04 17:18:17 -05:00
Tim Donohue
7a11d0d605 Replace Spring Data REST HAL Browser with HAL Browser from WebJars 2022-04-04 17:18:17 -05:00
Tim Donohue
54f2c5c661 Minor updates to Spring dependencies 2022-04-04 17:18:17 -05:00
Tim Donohue
88cea74e43 Fix test by ensuring InputStream is closed immediately after usage. Refactor try/finally to support that. 2022-04-04 17:18:17 -05:00
Tim Donohue
51591047d2 All multipart/form-data ITs should use multipart(), not post() or fileUpload() 2022-04-04 11:32:09 -05:00
Tim Donohue
0311aeb45c Ensure files are not required for scripts endpoint. Tests already prove they are not required, but not set that way in controller. 2022-04-04 11:32:09 -05:00
Tim Donohue
9e25e1d43e Remove duplicative slash "/" in RequestMapping which caused test failures 2022-04-04 11:32:09 -05:00
Tim Donohue
5ea14a8637 Add missing UTF-8 charset to tests 2022-04-04 11:32:09 -05:00
Tim Donohue
7d396434c2 Fix UTF-8 encoding issues in Spring Boot by updating config names 2022-04-04 11:32:09 -05:00
Tim Donohue
24f674d92b Minor fix to test. ContentType now includes charset. 2022-04-04 11:32:09 -05:00
Tim Donohue
d8e4a569d6 Fix circular reference errors in beans. Use @Lazy annotation for beans which must be loaded later / on first use. 2022-04-04 11:32:09 -05:00
Tim Donohue
3a01dbe0a2 Upgrade to latest Spring Boot, Solr & Postgres. Minor code fixes/dependency updates to get everything to compile 2022-04-04 11:32:04 -05:00
Tim Donohue
9fbde47cf6 Merge pull request #8227 from tdonohue/use_tika
Migrate from POI to Tika for Text Extraction. Remove unused Solr-Cell
2022-04-04 11:09:13 -05:00
Tim Donohue
b5876852d9 Resolve feedback. Ensure errors are re-thrown & fix comment. 2022-04-04 10:28:04 -05:00
Tim Donohue
9ef561a5d0 Switch to System.err.format & correct spacing in error messages. 2022-04-04 10:19:35 -05:00
Tim Donohue
476fe7220d Minor fix to BitstreamFormatRestRepositoryIT after adding new format (CSV) 2022-04-04 10:19:35 -05:00
Tim Donohue
f02d8ab04a Add test files for major text-based formats & test to verify all are indexable. Also add CSV to list of formats & include it. 2022-04-04 10:19:35 -05:00
Tim Donohue
e9e4cdbaac Fix dependencies in overlay modules so that example ITs pass 2022-04-04 10:19:35 -05:00
Tim Donohue
b86adf35e2 Remove duplicative dependency. This was in POM twice. 2022-04-04 10:19:35 -05:00
Tim Donohue
508883bec8 Replace format specific POI filters with TikaTextExtractionFilter 2022-04-04 10:19:35 -05:00
Tim Donohue
a0438e51ad Remove old version of XMLBeans. We don't use it directly and Tika brings in a new version 2022-04-04 10:19:35 -05:00
Tim Donohue
e49a1d86af Fix compilation issues. Old log4j v1 update to v2 2022-04-04 10:19:35 -05:00
Tim Donohue
b894071c16 Switch to SolrJ & Solr-Core. We don't actually use Solr-Cell. Upgrade Tika dependencies 2022-04-04 10:19:35 -05:00
Tim Donohue
84ffe9db9e Upgrade Apache POI 2022-04-04 10:19:35 -05:00
Tim Donohue
c7a8e1b3b5 Update to latest Solr to prove it doesn't break SWORDv2 2022-04-04 10:19:34 -05:00
Tim Donohue
cde5101e53 Merge pull request #8195 from tdonohue/upgrade_h2
Upgrade H2, Hibernate and Flyway
2022-04-04 09:38:36 -05:00
Mykhaylo
f5a1f2f9d8 [CST-5303] added tests for cinii live import service 2022-04-04 16:20:06 +02:00
Mykhaylo
6cecbbcdb9 [CST-5303] porting of cinii live import service 2022-04-04 16:19:56 +02:00
Mykhaylo
a829cb9fec [CST-5303] fix failed test 2022-04-04 16:19:47 +02:00
Mykhaylo
9cde585afc [CST-5303] porting of wos 2022-04-04 16:19:35 +02:00
Mykhaylo
d2f62939f8 [CST-5303] added test for pubmedeurope 2022-04-04 16:18:47 +02:00
Mykhaylo
55faacb168 [CST-5303] porting pubmed live import 2022-04-04 16:18:39 +02:00
Mykhaylo
bebe3d7bfe [CST-5303] fix tests 2022-04-04 16:18:28 +02:00
Mykhaylo
9bca9e21e1 [CST-5303] added tests for scopus live import service 2022-04-04 16:18:13 +02:00
Mykhaylo
d60567617b [CST-5303] porting of scopus live import services 2022-04-04 16:11:20 +02:00
Mykhaylo
2bb9883b88 [CST-5303] implemented http live import client 2022-04-04 16:09:17 +02:00
eskander
fb31905ed5 [CST-5534] canSynchronizeWithORCID Authorization feature. 2022-04-04 15:58:06 +02:00
Mykhaylo
dea0564201 [CST-5303] added tests for Scielo live import service 2022-04-04 15:03:35 +02:00
Mykhaylo
e0913ccc5c [CST-5303] porting of Scielo live import service 2022-04-04 15:02:29 +02:00
Luca Giamminonni
06b4b21921 [CST-5306] Minor improvements in ResearcherProfileServiceImpl 2022-04-04 12:04:51 +02:00
Luca Giamminonni
a8ab3b4ad4 Merge remote-tracking branch '4science-bitbucket/main' into CST-5306 2022-04-04 11:28:48 +02:00
Mykhaylo
cb44a8cf15 [CST-5303] porting of VuFind live import service 2022-04-04 09:56:15 +02:00
Mykhaylo
181bdd04d1 [CST-5303] porting of CrossRef live import service 2022-04-02 13:13:38 +02:00
Mykhaylo
5d0bf51d5a [CST-5303] added tests for CrossRef live import service 2022-04-02 13:12:25 +02:00
Mykhaylo
1050d02a97 refactored live import client and some utils class 2022-04-02 13:11:11 +02:00
Tim Donohue
8ee4d9f9ab [maven-release-plugin] prepare for next development iteration 2022-04-01 09:21:58 -05:00
Tim Donohue
e8b92088f1 [maven-release-plugin] prepare release dspace-7.2.1 2022-04-01 09:21:54 -05:00
Tim Donohue
fe9d22a4f6 Change to snapshot version 2022-04-01 09:07:33 -05:00
Tim Donohue
f863866183 Update to Spring v5.2.20. Requires also explicitly specifying version of spring-context-support to avoid dependency convergence issues. 2022-03-31 13:20:28 -05:00
eskander
f8e8866f75 [CST-5306] Migrate Researcher Profile (REST).
- added new four test functions for claim profile.
- formatting the code.
- removed unused classes.
2022-03-31 18:19:32 +02:00
Tim Donohue
efb3869817 Merge pull request #8178 from tdonohue/default_auth_server
Enable default value for `solr.authority.server`
2022-03-31 09:59:25 -05:00
Mark H. Wood
33e501086a Merge branch 'main' into DS-4300 2022-03-31 08:08:46 -04:00
Tim Donohue
b4915868dd Entity Types now come back in a different order. Updating pagination tests based on new ordering 2022-03-30 14:26:39 -05:00
Tim Donohue
967e36af7a Fix Item & Bundle tests which check order of results. H2 2.x + Hibernate 5.x returns results ordered by UUID when unspecified. 2022-03-30 14:26:39 -05:00
Tim Donohue
62c0e28f54 Remove custom Postgres Dialect. Replace with DatabaseAwareLobType 2022-03-30 14:26:39 -05:00
Tim Donohue
57b19fa71a Bug fix, ensure Solr container is *shutdown* when destroyed 2022-03-30 14:26:39 -05:00
Tim Donohue
c4ad834a8a Cleanup IT logs by loading beans by name. Add note to application.properties on how to enable debug logs 2022-03-30 14:26:39 -05:00
Tim Donohue
0595eeddbb Tiny stability fix to test (fails on Windows). Remove newline from string comparison 2022-03-30 14:26:39 -05:00
Tim Donohue
531fc8acda Upgrade to Flyway 8.4.4 2022-03-30 14:26:38 -05:00
Tim Donohue
5a046dca13 Fix incorrect StringUtils import 2022-03-30 14:26:38 -05:00
Tim Donohue
a35a6d4a28 Upgrade to Flyway 8.2.x to support h2 v2 2022-03-30 14:26:38 -05:00
Tim Donohue
70f85edf9e Upgrade to h2 v2.x. Requires also updating to Hibernate 5.6.x 2022-03-30 14:26:34 -05:00
eskander
d4f95a31bd [CST-5306] Migrate Researcher Profile (REST).
added ClaimItemFeature.
2022-03-30 17:02:28 +02:00
Luca Giamminonni
95ba7d805b [CST-5288] Fixed CORS configuration for actuator endpoints 2022-03-30 16:29:52 +02:00
Tim Donohue
c15de2a01e Merge pull request #8222 from tdonohue/jdom_update
Update to JDOM2. Remove Axiom from dspace-api (replace with JDOM2)
2022-03-30 09:08:17 -05:00
Luca Giamminonni
3210d9ce38 [CST-5288] Add CorsMapping for actuator endpoint 2022-03-30 13:19:07 +02:00
Luca Giamminonni
c25bdd1222 [CST-5306] Migrate Researcher Profile (REST) . 2022-03-30 12:49:53 +02:00
Luca Giamminonni
6a1cdd6e2d [CST-5306] Migrate Researcher Profile (REST) 2022-03-30 12:48:54 +02:00
Bruno Roemers
c4c8a4bc07 88599: Update expected places 2022-03-30 02:15:32 +02:00
Mark H. Wood
0e98044e95 [DS-4300] Test with specified handles enabled. 2022-03-29 16:06:22 -04:00
Mark H. Wood
2f437b7018 [DS-4300] Refactor for testability. 2022-03-29 16:05:48 -04:00
Mark H. Wood
b29fbbc7f8 Merge remote-tracking branch 'upstream/main' into DS-4300 2022-03-29 14:28:20 -04:00
Mark H. Wood
2312724f5e [DS-3951] Add tests for new strategy classes. 2022-03-28 13:51:38 -04:00
Mark H. Wood
bd80b0e4c7 [DS-3951] Fix another missed usage. 2022-03-28 10:56:37 -04:00
Mark H. Wood
758b02f65c [DS-3951] A new class needs to understand multiple recipients. 2022-03-25 17:00:04 -04:00
Mark H. Wood
f04e26374d Merge branch 'main' into DS-3951 2022-03-25 16:35:29 -04:00
Tim Donohue
036bcac702 Merge pull request #8224 from mwoodiupui/8192
Update deprecated Velocity configuration keys
2022-03-25 14:55:26 -05:00
Tim Donohue
1d39af6a01 Merge pull request #8221 from atmire/w2p-88773-Issue_8023_Bitstream_download_filename_lose_non-latin_characters
Bitstream download filename lose non-latin characters
2022-03-25 14:21:58 -05:00
Bruno Roemers
97a9c70579 88599: WIP: Fix place algorithm 2022-03-25 19:43:53 +01:00
Mykhaylo
af21d54f97 [CST-5303] implemented http live import client 2022-03-25 17:09:06 +01:00
Mykhaylo
7ab43a5596 Merge remote-tracking branch 'tdonohue/jdom_update' into CST-5303-LiveImport 2022-03-25 16:56:20 +01:00
Luca Giamminonni
bf7ef19322 [CST-5288] Disabled solr oai core health indicator during tests 2022-03-25 13:10:41 +01:00
Luca Giamminonni
a24f75cc08 [CST-5288] Fixed GeoIpHealthIndicatorTest 2022-03-25 11:44:24 +01:00
Luca Giamminonni
ba7750a8a0 [CST-5288] Improved info actuator 2022-03-25 11:24:31 +01:00
Tim Donohue
4a719a88dc Merge pull request #8217 from mwoodiupui/8213
Rename Hibernate caches as suggested by Hibernate.
2022-03-24 16:56:19 -05:00
Mark H. Wood
6f78c0b8ba Update to Velocity 2.3. #8192 2022-03-24 12:58:14 -04:00
Mark H. Wood
488fffce56 Update deprecated Velocity configuration keys. #8192 2022-03-24 12:10:50 -04:00
Tim Donohue
5f66bda96e Merge pull request #3312 from mwoodiupui/DS-4478-7x
[DS-4478] Optionally list all values of an array property
2022-03-24 09:24:52 -05:00
Luca Giamminonni
cc23600fe9 [CST-5288] Improved health actuator 2022-03-24 14:00:32 +01:00
Luca Giamminonni
ca917cb70a Merge remote-tracking branch '4science-bitbucket/main' into CST-5288 2022-03-24 12:56:26 +01:00
Bruno Roemers
aa77b0a3bb 88675: WIP: Test virtual metadata on new version 2022-03-23 23:20:22 +01:00
Bruno Roemers
aeac1ee1ea 88675: Fix place of opposite item 2022-03-23 22:37:00 +01:00
Tim Donohue
f5516ecc10 Merge pull request #8170 from tdonohue/update_test_data
Update Docker compose scripts to point at new Entities data
2022-03-23 09:37:43 -05:00
Tim Donohue
8ed314f608 Remove Axiom from dspace-api, replacing it with JDOM2 2022-03-22 17:24:59 -05:00
Tim Donohue
27fdab0dfb Upgrade Rome to avoid pulling in old version of JDOM 2022-03-22 14:03:47 -05:00
Tim Donohue
d6df493080 Fix broken tests by replacing JDOMXPath with XPathFactory 2022-03-22 14:03:47 -05:00
Tim Donohue
ae25c67064 Update to JDOM2. Also replaced deprecated XPath with new XPathFactory 2022-03-22 14:03:47 -05:00
Bruno Roemers
d55935c197 88629: Fix ItemServiceImpl#rawDelete 2022-03-22 11:25:15 +01:00
Bruno Roemers
0d148abf11 88629: Prove that ItemServiceImpl#rawDelete is broken 2022-03-22 11:24:41 +01:00
Samuel
85bbcf3dc8 taskid 88773 #8023 Bitstream download filename lose non-latin characters 2022-03-22 10:42:48 +01:00
Tim Donohue
2e4489e4bb Merge pull request #8212 from tdonohue/fix_8211
Fix GoogleBitstreamComparator to return 0 when equal
2022-03-21 09:30:30 -05:00
Mark H. Wood
bdf83c73a6 Add tests for use of '--first'. #3312 2022-03-21 09:54:07 -04:00
Bruno Roemers
46d9ba91bc 88599: Test metadata and relationship place when creating new version of item 2022-03-21 10:30:37 +01:00
Bruno Roemers
1fcff89007 88595: Set versioning.block.entity = false 2022-03-18 01:32:56 +01:00
Tim Donohue
87eb2b890d Merge pull request #8146 from mwoodiupui/8099
Converge all use of EHcache to v3
2022-03-16 16:06:36 -05:00
Bruno Roemers
f3ff9af3e2 88061: Clarify VersioningConsumer with extra comments 2022-03-16 17:58:59 +01:00
Mark H. Wood
c0aee566a0 Oops, fix the tests to understand the new options. #3312 2022-03-16 12:08:10 -04:00
Mark H. Wood
7e0becf666 Replace --all with opposite --first, default off, as requested. [DS-4478] #3312 2022-03-16 11:50:22 -04:00
Bruno Roemers
9288a18c4f 88061: Verify modified relationships on new version of item before item install 2022-03-16 15:21:14 +01:00
Mark H. Wood
77b00cea7e Rename Hibernate caches as suggested by Hibernate. #8213 2022-03-16 09:17:07 -04:00
Tim Donohue
df5ed298af Merge pull request #2474 from mwoodiupui/DS-4118
[DS-4118] change_password and register emails have hardcoded sample addresses
2022-03-15 13:22:41 -05:00
Mark H. Wood
b316cb1cec Remove all traces of disk cache to eliminate cache directory collisions. #8099 2022-03-15 14:03:51 -04:00
Mark H. Wood
585f7c67a9 Move helpdesk email settings up with other emails, as requested. [DS-4118] #2474 2022-03-15 13:39:38 -04:00
Tim Donohue
3fc4131cb2 Fix compare by returning 0 when bitstreams are "equal" in size & priority 2022-03-15 11:03:43 -05:00
Bruno Roemers
135c6e6ec0 88196: Modify tests to verify that place recalculation does NOT matter 2022-03-14 18:16:31 +01:00
Antoine Snyers
ca17ebf338 Update code 2022-03-14 16:04:02 +01:00
Antoine Snyers
23d537f5d9 Update code 2022-03-14 12:30:00 +01:00
Antoine Snyers
30c6271d3a Merge remote-tracking branch 'remotes/upstream/main' into browse-by-prefix-filter 2022-03-14 12:22:59 +01:00
Bruno Roemers
efd5b8e9a0 Merge remote-tracking branch 'worldbank-7/w2p-86592_Fix-relationship-place-issues_Community-contrib' into feature-relationship-versioning 2022-03-11 16:35:28 +01:00
Bruno Roemers
df07d1abf1 88196: Avoid SQL constraint violation in test 2022-03-11 16:27:08 +01:00
Bruno Roemers
d31f6834c8 88196: WIP: Test place of metadata in new version (implementation needs fix) 2022-03-11 15:10:26 +01:00
Bruno Roemers
938f1bab52 88196: BUGFIX: Auto-assign place in RelationshipBuilder 2022-03-11 11:24:04 +01:00
Bruno Roemers
f6b72787de 88196: WIP: Test order of plain and virtual metadata (after relationship versioning) 2022-03-10 20:00:22 +01:00
Bruno Roemers
f75d680ce3 88061: Test relationship support of VersioningConsumer 2022-03-10 19:26:35 +01:00
Tim Donohue
c78435f8b1 Merge pull request #8149 from mwoodiupui/8148
DSpaceApiExceptionControllerAdvice should always log the exception message and location
2022-03-10 10:10:22 -06:00
Antoine Snyers
87e3fdef98 Adjust tests to expect filtering instead of jumping 2022-03-10 10:05:40 +01:00
Bruno Roemers
0b9b16a14a 88061: Implement relationship latest version status change (untested) 2022-03-09 19:37:10 +01:00
Antoine Snyers
4d8a81d3bd Filter browse-by-item lists instead of jumping to prefix 2022-03-09 14:35:00 +01:00
Bruno Roemers
020ebbd3d1 88061: Refactor VersioningConsumer 2022-03-09 10:55:09 +01:00
Yana De Pauw
2d7a52dc00 88141: Scripts and processes bug #7992 2022-03-08 13:24:53 +01:00
Bruno Roemers
204d9f0047 88146: Fix tests 2022-03-08 11:57:07 +01:00
Tim Donohue
2e4f920d24 Move "solr.authority.server" to solrauthority.cfg 2022-03-07 15:03:18 -06:00
Bruno Roemers
b142601c62 88056: Filter relationship metadata by class instance instead of authority key 2022-03-07 14:17:26 +01:00
Marie Verdonck
5dc382e88e Merge remote-tracking branch 'dspace-origin/main' into issue-8140_create-citation-page-once_main 2022-03-07 12:54:44 +01:00
Marie Verdonck
696fcae777 87994: Refactor reset file after retrieved & only put in byteArray if with coverpage 2022-03-07 12:54:18 +01:00
Bruno Roemers
85b2752565 88146: Bugfix: Add excludeTilted to RelationshipDAO#countByItem, add note to docs 2022-03-04 17:31:04 +01:00
Bruno Roemers
272fd35535 88056: Copy relationships when creating new version of item 2022-03-04 16:13:49 +01:00
Bruno Roemers
b912769580 88056: Bugfix: do not copy virtual metadata to new version of items 2022-03-04 16:10:42 +01:00
Bruno Roemers
e783576476 88051: Fix unnecessary stubbing exception 2022-03-03 14:35:04 +01:00
Bruno Roemers
fb4eb05e5d 88051: Fix tests 2022-03-03 10:29:32 +01:00
Tim Donohue
e24431413c Merge pull request #8180 from atmire/w2p-87624_Issue-rp_patches
Fix for resource policy end date add patch not working
2022-03-02 15:56:09 -06:00
Tim Donohue
18e4fed9ed Enable default value for solr.authority.server 2022-03-02 14:15:58 -06:00
Bruno Roemers
0b31955f83 88051: Write tests for excludeNonLatest flag 2022-03-02 16:44:59 +01:00
Bruno Roemers
85d05e6ea8 88051: Fix tests 2022-03-02 13:48:50 +01:00
Bruno Roemers
a5f0c03a27 88051: Support filtering non-latest relationships 2022-03-02 00:58:32 +01:00
Bruno Roemers
d0aab90ffc 88049: Add latest_version_status column to relationship table 2022-03-01 02:30:41 +01:00
Antoine Snyers
3f9506e623 Prevent creating the citation page twice 2022-02-28 09:54:03 +01:00
Antoine Snyers
87d91c75bb Add ITs to verify all streams from retrieve() are closed 2022-02-25 15:44:29 +01:00
Tim Donohue
2d8ca5c64d Merge pull request #8137 from DSpace/dependabot/maven/xerces-xercesImpl-2.12.2
Bump xercesImpl from 2.12.0 to 2.12.2
2022-02-24 15:15:27 -06:00
Tim Donohue
f12f223fd4 Merge pull request #8172 from DSpace/dependabot/maven/org.postgresql-postgresql-42.3.3
Bump postgresql from 42.2.25 to 42.3.3
2022-02-24 15:12:29 -06:00
dependabot[bot]
85a3dd6ff1 Bump xercesImpl from 2.12.0 to 2.12.2
Bumps xercesImpl from 2.12.0 to 2.12.2.

---
updated-dependencies:
- dependency-name: xerces:xercesImpl
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-24 20:46:43 +00:00
Tim Donohue
fa40d42791 Merge pull request #8147 from mwoodiupui/8129
Prefix Solr core names to facilitate multiple DSpace instances on a single Solr instance
2022-02-24 12:42:04 -06:00
Mark H. Wood
e261e1ce43 Add core prefix property to local.cfg.EXAMPLE #8129 2022-02-21 09:59:14 -05:00
Mark H. Wood
73b927d663 Document that more than one HTTP status can be configured for tracing. #8148 2022-02-21 09:52:19 -05:00
Marie Verdonck
6790ee157e 87624: Fix issue with ADD patch on RP.endDate 2022-02-18 11:29:07 +01:00
Marie Verdonck
6bea8e83b4 87624: IT demonstrating issue with ADD patch on RP.endDate 2022-02-18 11:29:07 +01:00
Tim Donohue
f9b438dfc8 Merge pull request #8165 from atmire/w2p-87384_Fix-null-metadata-values-being-added
Fix Null metadata values being added
2022-02-17 14:47:58 -06:00
Tim Donohue
912677327f Merge pull request #3354 from mwoodiupui/3287
Make DOI resolver URL stem configurable
2022-02-17 12:21:50 -06:00
Tim Donohue
0f586fdead Merge pull request #8174 from tuub/dspace-dspace-#8167
Fix DSpace/DSpace#8167 XSD for controlled vocabulary
2022-02-17 11:19:15 -06:00
Martin Walk
42233cbfe0 Fix DSpace/DSpace#8167 XSD for controlled vocabulary
Require attribute id for nodes.
2022-02-16 16:48:33 +01:00
dependabot[bot]
8debe3cb60 Bump postgresql from 42.2.25 to 42.3.3
Bumps [postgresql](https://github.com/pgjdbc/pgjdbc) from 42.2.25 to 42.3.3.
- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)
- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.2.25...REL42.3.3)

---
updated-dependencies:
- dependency-name: org.postgresql:postgresql
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-16 01:19:23 +00:00
Mark H. Wood
c4a6fcbf19 Remove outdated exclusion. #8099
Also add some missing direct dependencies.  I thought these were
causing a problem, which in fact came from an old version of httpcore,
but we need these anyway.
2022-02-15 13:25:36 -05:00
Tim Donohue
09a51c664a Merge pull request #8163 from hzafar/8055_dspace6_item_moves
Adds check for whether source and target collections are the same
2022-02-15 09:44:47 -06:00
Tim Donohue
a95faed6d4 Merge pull request #8162 from 4Science/CST-5251
Improved builder's cleanup to avoid consumers executions
2022-02-14 16:38:12 -06:00
Tim Donohue
c5786a0b0f Merge pull request #8160 from mspalti/shib_auth_modification
Removes ShibAuthentication session dependency for special groups.
2022-02-14 16:30:38 -06:00
Huma Zafar
8c44a95c7b Adds check for whether source and target collections are the same when moving an item. (#8055) 2022-02-14 14:19:09 -05:00
Mark H. Wood
8ca0a1f2f7 Move configuration from Spring to 'dspace.cfg'. #8148 2022-02-14 14:09:33 -05:00
Tim Donohue
f058d123cf Update Docker compose scripts to point at new Entities data & do a full reindex after loading assetstore. 2022-02-14 12:49:32 -06:00
Tim Donohue
baea61e1b6 Merge pull request #8156 from toniprieto/change-group-name
Changing the name of a group should not recalculate group2groupcache table
2022-02-14 12:47:26 -06:00
Luca Giamminonni
a6fa1f17f7 [CST-5288] Made the actuator security configuration dynamic 2022-02-14 16:35:54 +01:00
Luca Giamminonni
980359a0a9 [CST-5288] Added custom health indicator to check GeoIP configuration status 2022-02-14 13:44:45 +01:00
Luca Giamminonni
e4857c0b1d [CST-5288] Introduced spring boot actuators 2022-02-11 18:34:25 +01:00
Luca Giamminonni
56896c3bb6 [CST-5251] Improved missing builder's cleanup 2022-02-11 16:34:02 +01:00
Yana De Pauw
eaac8a6324 87384: Fix Null metadata values being added #2 2022-02-11 10:43:56 +01:00
Michael Spalti
1c2200aacd Added required request attribute. 2022-02-10 14:41:33 -08:00
Michael Spalti
6671d67894 Removes session dependency when accessing special groups. 2022-02-10 12:06:05 -08:00
Luca Giamminonni
35179b535e [CST-5251] Improved builder's cleanup to avoid consumers executions 2022-02-10 16:11:07 +01:00
Toni Prieto
f05c6ac140 Add call to setMetadataModified() when the name of group is changed to trigger MODIFY_METADATA event 2022-02-09 14:09:32 +01:00
Mark H. Wood
ab9133fb7a Make the list of ERROR HTTP status codes configurable. #8148 2022-02-08 14:46:01 -05:00
Tim Donohue
579d926e95 Merge pull request #8153 from the-library-code/DS-8152
Remove unneccessary second Context in RDFConsumer
2022-02-08 09:47:26 -06:00
Pascal-Nicolas Becker
dcd434ded0 Remove unneccessary second Context in RDFConsumer
fixes #8152
2022-02-07 23:36:02 +01:00
Mark H. Wood
dde3bad906 Defend against null exception. #8148 2022-02-07 15:18:45 -05:00
Tim Donohue
18c524170a [maven-release-plugin] prepare for next development iteration 2022-02-03 13:14:11 -06:00
Tim Donohue
122924af82 [maven-release-plugin] prepare release dspace-7.2 2022-02-03 13:14:08 -06:00
Tim Donohue
8470899fd6 Update LICENSES_THIRD_PARTY for 7.2 release 2022-02-03 12:04:00 -06:00
Mark H. Wood
ef0adf5f9b First cut at better exception logging. #8148 2022-02-03 11:25:57 -05:00
Mark H. Wood
f36ce778fb Invent 'solr.multicorePrefix' to distinguish multiple DSpace instances running against a single Solr instance. #8129 2022-02-03 08:48:33 -05:00
Mark H. Wood
c0d98d30bc Merge remote-tracking branch 'upstream/main' into 8099 2022-02-02 12:25:31 -05:00
Mark H. Wood
09591dc6ff Rewrite Hibernate Ehcache configuration for v3. #8099
Also fix incorrectly-used Spring-style <property> elements in hibernate.cfg.xml
2022-02-02 12:09:24 -05:00
Mark H. Wood
5c5025cd6d Rip out the unused CachingService. $8099 2022-02-02 12:08:11 -05:00
Tim Donohue
41a21043f1 Merge pull request #8145 from DSpace/dependabot/maven/org.postgresql-postgresql-42.2.25
Bump postgresql from 42.2.24 to 42.2.25
2022-02-02 08:40:39 -06:00
dependabot[bot]
cf107087ec Bump postgresql from 42.2.24 to 42.2.25
Bumps [postgresql](https://github.com/pgjdbc/pgjdbc) from 42.2.24 to 42.2.25.
- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)
- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.2.24...REL42.2.25)

---
updated-dependencies:
- dependency-name: org.postgresql:postgresql
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-02 00:05:47 +00:00
Tim Donohue
1be54376ac Merge pull request #8047 from mspalti/dynamic-default-dims
Dynamic IIIF canvas dimensions
2022-02-01 09:58:14 -06:00
Yura Bondarenko
9664296af6 86201: Fix RelationshipService place handling
Correctly take into account the place of other Relationships and/or MDVs when creating/modifying/deleting Relationships
Simplify RelationshipService public API to avoid having to call updatePlaceInRelationship explicitly
Additional tests to cover issues with the previous implementation
2022-02-01 14:53:18 +01:00
Tim Donohue
1c92e54ddb Merge pull request #8104 from tdonohue/jdk_17
Add support for Java / JDK 17 (latest LTS release)
2022-01-31 14:17:46 -06:00
Michael Spalti
c58a8b9537 Updated iiif config. 2022-01-31 12:15:24 -08:00
Tim Donohue
96326dfde5 Update Dockerfiles to support either JDK11 or JDK17 (default is JDK11). Instructions in README 2022-01-31 11:15:18 -06:00
Tim Donohue
6bb2261d70 Revert to only running tests for JDK 11 2022-01-31 11:15:18 -06:00
Tim Donohue
c6404c860d Add nicer name for each build in matrix 2022-01-31 11:15:18 -06:00
Tim Donohue
0c448c732d Update CI build process to include both JDK 11 and 17 2022-01-31 11:15:18 -06:00
Tim Donohue
d928f84779 Fix bugs reported by errorprone after it was upgraded 2022-01-31 11:15:18 -06:00
Tim Donohue
c15d9307f9 Update errorprone and mockito-inline to support Java 17 2022-01-31 11:15:18 -06:00
Tim Donohue
adbcbb9b0d Merge pull request #8091 from 4Science/CST-4505-EmbargoItemMetadata
Embargo Item Metadata
2022-01-31 11:13:26 -06:00
Tim Donohue
0881d3a7dc Merge pull request #8088 from hardyoyo/port-oidc-auth-plugin-from-dspace-cris
Port OIDC (OpenID Connect) auth plugin from DSpace-CRIS
2022-01-31 08:50:06 -06:00
Toni Prieto
dab8b2b9f8 Changing the name of a group should not recalculate group2groupcache table 2022-01-30 16:45:05 +01:00
Michael Spalti
1724a09213 Merge branch 'main' into dynamic-default-dims 2022-01-29 10:46:40 -08:00
Tim Donohue
c671850784 Merge pull request #8142 from hardyoyo/8138-fix-sql-in-itemDAOImpl.java
8138 Fix SQL/HQL in itemDAOImpl.java
2022-01-28 14:20:32 -06:00
Tim Donohue
4c28d5f32b Merge pull request #8015 from mspalti/iiif-item-import
IIIF Options for item import (SAF)
2022-01-28 14:18:20 -06:00
Mykhaylo
69fa1f9480 removed duplication check 2022-01-28 20:27:38 +01:00
Mykhaylo
294045d760 refactored AccessConditionConfigurationService 2022-01-28 20:17:24 +01:00
Hardy Pottinger
372ee07b2f 8138 Fix SQL/HQL in itemDAOImpl.java 2022-01-28 13:00:32 -06:00
Tim Donohue
b9eb825669 Merge pull request #8141 from hardyoyo/8134-fix-requestitem-helpdesk-strategy-example
8134 - Fix the example requestiem helpdesk strategy example
2022-01-28 12:59:26 -06:00
Hardy Pottinger
e593e90dfb 8134 - Fix the example requestiem helpdesk strategy example
- Add autowire-candidate='true' to the example in requestitem config, as
per suggestion from @bbranan.

fixes #8134
2022-01-28 12:20:13 -06:00
Hardy Pottinger
14a961b386 Fix example OIDC line in local.cfg.EXAMPLE, wrong case! 2022-01-28 11:24:47 -06:00
Mykhaylo
d74b85e901 added java doc 2022-01-28 18:15:34 +01:00
Mark H. Wood
1599aea886 Begin moving CachingService to Ehcache v3 # 8099 2022-01-28 09:48:57 -05:00
Mark H. Wood
530d69bad8 Switch Hibernate to JCache #8099 2022-01-28 09:47:02 -05:00
Michael Spalti
19aa7ca53e Added REMOVED event to canvas cache logger config. 2022-01-27 20:35:15 -08:00
Tim Donohue
2e3c4f033d Merge pull request #8113 from atmire/bitstream-download-inputstream-leak
File downloads don't close inputstreams when cached fix
2022-01-27 16:37:38 -06:00
Tim Donohue
e8b4fdf337 Merge pull request #8090 from 4Science/CST-4874-Feedback
Feedback form - rest part
2022-01-27 15:12:43 -06:00
Hardy Pottinger
ddbaabcbb5 Requested changes
- only warn about failure to find a matching ePerson if canSelfRegister
is false
- tell LGTMbot everything is fine with the redirect
- remove comments about nonexistent ORCID login code
2022-01-27 10:57:54 -06:00
Michael Spalti
ecf24b54f1 Fixed dimension cache. 2022-01-26 14:35:08 -08:00
Mykhaylo
87a338b0fd added test to verify correct inheritance of access condition 2022-01-26 17:27:07 +01:00
Kevin Van de Velde
42cae867db Move the citation generation in a single method again 2022-01-26 16:02:49 +01:00
Hardy Pottinger
b0ce61d3fe Rename OidcAuthenticationFilter to OidcLoginFilter, as per request 2022-01-25 17:00:50 -06:00
Michael Spalti
0579b7d99c Added config for updating default dimension for all images w/o metadata. 2022-01-25 13:25:11 -08:00
Michael Spalti
fbe1b55edd Updated cache logging. 2022-01-25 10:33:58 -08:00
Michael Spalti
346d041f7e Bitstream cache. 2022-01-25 09:46:24 -08:00
Michael Spalti
abf198037a Shared image server query service 2022-01-25 09:20:19 -08:00
Mykhaylo
34d9dbadd2 minor fix 2022-01-25 18:15:09 +01:00
Mykhaylo
b83291748a fix inherit of policies in submission 2022-01-25 17:48:49 +01:00
Michael Spalti
3ef96ba30c Merge branch 'main' into dynamic-default-dims 2022-01-24 17:18:45 -08:00
Michael Spalti
6ede71866a Using updated constants in shared utils. 2022-01-24 16:54:14 -08:00
Michael Spalti
7abdf17e06 Merge branch 'main' into iiif-item-import 2022-01-24 15:42:37 -08:00
Tim Donohue
750426988b Merge pull request #8022 from astrowq/dev/new-date-format
fix an error when harvesting arXiv OAI-PMH
2022-01-24 14:15:21 -06:00
Hardy Pottinger
23e93ff285 Fix checkstyle error introduced by VScode's 'organize imports' suggestion 2022-01-24 13:19:22 -06:00
Hardy Pottinger
0c1c2defcf Add validation to OIDC redirect, based on suggestion from LGTMbot, code copied from Shibboleth, at the suggestion of @tdonohue 2022-01-24 13:17:14 -06:00
Hardy Pottinger
e504597ee2 Fix checkstyle errors 2022-01-24 12:35:44 -06:00
Tim Donohue
170209723c Merge pull request #8074 from mspalti/image-dimension-task
IIIF canvas dimension task
2022-01-24 12:01:46 -06:00
Hardy Pottinger
7c944d5eb5 Requested change: Add logging for no such user and canSelfRegister=false 2022-01-21 17:17:17 -06:00
Hardy Pottinger
3a04b92c80 Requested changes
- Add sane fall-back defaults for OIDC, where possible.
- Improve error logging for missing properties
- Include authentication-oidc.cfg in dspace.cfg
- Add configuration examples for OIDC to local.cfg-EXAMPLE
- Improve authentication-oidc.cfg with sane defaults and more comments
2022-01-21 16:57:47 -06:00
Hardy Pottinger
e6012b0ef7 Add missing isUsed override to OidcAuthentication code. 2022-01-21 13:45:08 -06:00
Hardy Pottinger
e8aa946963 Iron out some checkstyle wrinkles 2022-01-21 13:45:08 -06:00
Hardy Pottinger
3c03a67c75 Revise call to create new DSpaceAuthentication
- Borrow the invocation of DSpaceAuthentication from the Shib plugin
- Also borrow the comment explaining it from the Shib plugin
2022-01-21 13:45:08 -06:00
Hardy Pottinger
b2a24301b9 Disable DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES
- Makes OIDC authentication sturdier: implementations can and do differ
slightly, an unknown property should not prevent authentication
2022-01-21 13:45:08 -06:00
Hardy Pottinger
99c8ad991f Remove unusued DSpace-CRIS services in core-services.xml 2022-01-21 13:45:08 -06:00
Hardy Pottinger
2987fc2f9a Suggested changes from Luca Giamminonni: remove ORCID AuthN 2022-01-21 13:45:08 -06:00
Hardy Pottinger
d2a13527ff Add OrcidAuthenticationFiler 2022-01-21 13:45:07 -06:00
Hardy Pottinger
61d65d1e74 Ignoring jenv .java-version files 2022-01-21 13:45:07 -06:00
Hardy Pottinger
2d05ff392c Add missing util: ThrowingSupplier 2022-01-21 13:45:07 -06:00
Luca Giamminonni
1d89538cb1 [DSC-196] Fix tests 2022-01-21 13:45:07 -06:00
Luca Giamminonni
6521564d71 [DSC-196] Porting of OpenID authentication provider 2022-01-21 13:45:07 -06:00
Michael W Spalti
46f4d37d73 Merge branch 'main' into image-dimension-task 2022-01-20 18:18:36 -08:00
Michael W Spalti
53cb1505f4 Modified CLI and renamed packages. 2022-01-20 17:50:24 -08:00
Tim Donohue
79c7ab77b1 Merge pull request #8122 from atmire/Index-InProgressSubmission-depending-on-type
Workspace/Workflow only discovery configuration isn't working
2022-01-20 16:16:33 -06:00
Tim Donohue
903ccc5136 Merge pull request #8127 from tdonohue/fix_docker_compose
Docker-Compose Environment variables must be strings or numbers, not booleans
2022-01-20 15:55:30 -06:00
Tim Donohue
17ba8f5621 Environment variables must be strings or numbers, not booleans 2022-01-20 14:13:11 -06:00
Tim Donohue
169055f62a Merge pull request #8117 from atmire/w2p-85525_pr-fix-qdccrosswalk-test
Refactor QDCCrosswalkTest to avoid config errors
2022-01-20 11:00:26 -06:00
Tim Donohue
c89c43e3da Merge pull request #8124 from atmire/javax-mail-update
Javax mail update
2022-01-20 10:44:00 -06:00
Kevin Van de Velde
a15478178d Removing duplicate Null check 2022-01-20 16:56:06 +01:00
Kevin Van de Velde
f6d94f199b Merge branch 'main' into javax-mail-update 2022-01-20 14:10:37 +01:00
Kevin Van de Velde
5396216aa8 Logging exception when sending emails fails in the workflow 2022-01-20 14:09:29 +01:00
Kevin Van de Velde
f6a0fcb64b [Ticket: 918] Email issues fix 2022-01-20 13:58:58 +01:00
Tim Donohue
d49721a41b Merge pull request #8076 from atmire/w2p-85542_filtermedia-process
Filtermedia process
2022-01-19 13:10:30 -06:00
Kevin Van de Velde
441c62239a Fix inputstream connection leak when downloading files: Bugfix for cover pages so that the correct file size is used 2022-01-19 13:23:02 +01:00
Mykhaylo
5bbe4430bf removed flush method 2022-01-19 10:26:49 +01:00
Michael Spalti
618db16b31 Multiple updates. 2022-01-18 16:59:37 -08:00
Tim Donohue
bdd521a9b0 Merge pull request #8118 from atmire/w2p-85525_pr-use-lenient-stubbing-in-MockSolrLoggerServiceImpl
Use lenient stubbing in MockSolrLoggerServiceImpl
2022-01-18 11:36:51 -06:00
Tim Donohue
964b132dd1 Merge pull request #8116 from mspalti/iiif-dispatcher-fix
Minor dispatcher fix for bitstreams that have no parent
2022-01-18 11:35:57 -06:00
Tim Donohue
da8ddca1bc Merge pull request #8093 from 4Science/CST-4981-Statistics
fix statistics rest permission evaluator to allow only administrators when access is restricted to this role
2022-01-18 11:01:43 -06:00
Yana De Pauw
0c8ee5da3c 85542: Tweak to error logging 2022-01-18 14:55:28 +01:00
Yana De Pauw
8f7fc0d5ca 85542: Add more logging for rest process call 2022-01-18 13:54:59 +01:00
Mykhaylo
e380a98a33 fix test and add new one 2022-01-18 12:53:21 +01:00
Mykhaylo
7048406534 fix failed tests 2022-01-18 11:05:40 +01:00
Mykhaylo
dc31ae3358 Implement community feedbacks 2022-01-18 09:27:07 +01:00
Mykhaylo
9ab2d7ab07 Implement community feedbacks 2022-01-17 17:31:25 +01:00
Bruno Roemers
7974ea1bfa 85525: fix tests: use lenient stubbing in MockSolrLoggerServiceImpl 2022-01-17 11:50:03 +01:00
Bruno Roemers
fa937acbae 85525: Fix tests (faulty QDCCrosswalk) 2022-01-17 11:46:52 +01:00
Michael Spalti
7a8f538dcd Check for bundles. 2022-01-14 16:27:42 -08:00
Michael Spalti
ac01b4b0b3 Update manifestService after rebase. 2022-01-14 16:00:59 -08:00
Michael Spalti
192494fa57 Fixed IT. 2022-01-14 15:05:34 -08:00
Michael Spalti
299015529c Added javadocs. 2022-01-14 15:05:34 -08:00
Michael Spalti
b749df9868 Update default height and width values using the iiif image server. 2022-01-14 15:03:36 -08:00
Michael Spalti
fb0d37b35e Refactored util package 2022-01-14 11:35:32 -08:00
Michael Spalti
b74dce1170 Import shared constants into IIIFUtils. 2022-01-14 10:57:29 -08:00
Kevin Van de Velde
82cdf48987 Fix inputstream connection leak when downloading files 2022-01-14 13:10:10 +01:00
Michael Spalti
206d98e54d Multiple updates. 2022-01-13 16:14:42 -08:00
Kristof De Langhe
8cab68763b Index InProgressSubmission depending on type 2022-01-13 17:12:46 +01:00
Tim Donohue
5064352ddf Merge pull request #8049 from mspalti/toc-update
Corrects viewingHint omission and refactors services.
2022-01-13 09:46:23 -06:00
Tim Donohue
0a368e27e0 Merge pull request #8110 from tdonohue/fix_oai_cli
Fix OAI cli commands by replacing autowired with servicefactory call
2022-01-13 08:24:20 -06:00
Tim Donohue
62f4f44125 Fix OAI cli commands by replacing autowired with servicefactory call 2022-01-12 17:02:59 -06:00
Tim Donohue
93265465d9 Merge pull request #8107 from DSpace/dependabot/maven/dspace-api/io.netty-netty-codec-4.1.68.Final
Bump netty-codec from 4.1.53.Final to 4.1.68.Final in /dspace-api
2022-01-12 11:22:18 -06:00
Tim Donohue
19c4d75cd2 Sync up other io.netty dependencies to 4.1.68.Final 2022-01-12 10:24:24 -06:00
Tim Donohue
d0bc89fef4 Merge pull request #8108 from tdonohue/dont_swallow_exceptions
Ensure SubmissionService doesn't swallow root exceptions
2022-01-12 09:41:26 -06:00
Tim Donohue
947552fc34 Add missing space 2022-01-12 09:00:24 -06:00
Corrado Lombardi
a6a74463b0 updated messages in exceptions thrown when feedback recipient is disabled and when mandatory fields are missing 2022-01-12 13:09:29 +01:00
Corrado Lombardi
189d9a60b9 improved documentation and used x-correlation-id instead of session id 2022-01-12 13:08:41 +01:00
Tim Donohue
a1c6754c54 Ensure SubmissionService doesn't swallow caused by exceptions 2022-01-11 16:56:22 -06:00
dependabot[bot]
57a3541e90 Bump netty-codec from 4.1.53.Final to 4.1.68.Final in /dspace-api
Bumps [netty-codec](https://github.com/netty/netty) from 4.1.53.Final to 4.1.68.Final.
- [Release notes](https://github.com/netty/netty/releases)
- [Commits](https://github.com/netty/netty/compare/netty-4.1.53.Final...netty-4.1.68.Final)

---
updated-dependencies:
- dependency-name: io.netty:netty-codec
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-11 22:17:11 +00:00
Tim Donohue
611b015e45 Merge pull request #7987 from mwoodiupui/7986
Use a connection pool for communication with Solr
2022-01-11 16:16:42 -06:00
Tim Donohue
c6b6ca6c0f Merge pull request #2172 from KingKrimmson/DS-3981_Improve_IndexClient_Usage_master
DS-3981 Improve IndexClient usage & options
2022-01-11 15:11:00 -06:00
Tim Donohue
95295bfec3 Merge pull request #8028 from jvribell/main
Oracle migration error
2022-01-11 10:52:13 -06:00
Tim Donohue
7f8fa23a47 Merge pull request #8101 from tdonohue/fix_log4j_configs
Log4j v2 : switch to %X{var} syntax instead of $${ctx:var}
2022-01-10 10:11:58 -06:00
Mykhaylo
2bc035db4a Merge branch 'main' into CST-4505-EmbargoItemMetadata 2022-01-10 17:09:14 +01:00
Tim Donohue
3ab421c41e Merge pull request #8100 from tdonohue/expose_versioning_property
Expose 'versioning.item.history.include.submitter' via configuration endpoint
2022-01-10 10:02:15 -06:00
Tim Donohue
fa5a97e375 Merge pull request #8054 from pongtawat/fix-log-rollover
Fix sample log rollover config
2022-01-06 14:16:34 -06:00
Mark H. Wood
edba8a2811 More documentation. Note that DSpace restart is required for configuration changes. 2022-01-06 11:33:38 -05:00
Mark H. Wood
8358e300c4 Correct the names of configuration properties set by tests. #7986 2022-01-06 11:32:38 -05:00
Tim Donohue
ea8eb01a25 Merge pull request #8102 from tdonohue/speed_up_IPMatcherTest
Speed up IPMatcherTest (by testing fewer IPs) & enable rerun flakey tests in CI
2022-01-06 08:37:46 -06:00
Tim Donohue
e6bf1100fc Enable rerunning flakey tests in CI environment. 2022-01-05 17:03:18 -06:00
Tim Donohue
0c6c07e9cf Increase increment to drastically speed test (and test fewer IPs) 2022-01-05 16:29:26 -06:00
Tim Donohue
316864bb53 Switch to %X{var} syntax instead of $${ctx:var} 2022-01-05 14:41:14 -06:00
Tim Donohue
fcc9f045a2 Merge pull request #8077 from atmire/w2p-85840_qualdrop-values-mandatory-flag
Qualdrop values not play well with mandatory flag
2022-01-05 14:05:12 -06:00
Tim Donohue
fa4acf0e84 Merge pull request #8097 from tdonohue/increase_test_timeout
Increase test timeout for MetadataFieldPerformanceTest.testManyMetadataAdds()
2022-01-05 13:29:23 -06:00
Tim Donohue
9b1b4c1f76 Correct description based on UI implementation 2022-01-05 12:21:13 -06:00
Tim Donohue
7b4287aa6d Expose submitter versioning setting for #1385 2022-01-05 12:12:57 -06:00
Corrado Lombardi
24355b7a1a [CST-4981] statistics usage restricted to admin via configuration 2022-01-05 15:14:54 +01:00
Tim Donohue
db32b48784 Merge pull request #8075 from atmire/w2p-86897_Issue-8042_If-workflow-user-rejects-own-submitted-item-becomes-uneditable
If a workflow user rejects an item that they submitted, the item becomes uneditable
2022-01-04 16:25:33 -06:00
Tim Donohue
d14b5ceb2d Merge pull request #8098 from tdonohue/identifier_logs_cleanup
Make IdentifierService code less "noisy" in the logs
2022-01-04 16:04:23 -06:00
Tim Donohue
102f285f6a Fix overactive logging when lookup(context, dso) method is called 2022-01-04 13:58:26 -06:00
Tim Donohue
99fe85b608 Remove noisy/duplicative debug logging about identifiers (clutters our test environment logs) 2022-01-04 13:58:20 -06:00
Tim Donohue
c214e6c041 Log adding of a new metadatavalue (we already log updates & deletes, but not adds) 2022-01-04 13:57:23 -06:00
Tim Donohue
ee7b1df187 Increase test's max duration per call by 0.1 ms 2022-01-04 13:57:10 -06:00
Corrado Lombardi
7618a1e0db [CST-4981] default statistics visibility to users with READ permissions, to preserve current default behavior 2022-01-04 18:19:56 +01:00
Tim Donohue
e9204416db Merge pull request #8050 from atmire/w2p-85276_Store-and-retrieve-the-Authentication-method-in-the-JWT
Ensure Shibboleth user cannot change their password
2022-01-04 10:08:45 -06:00
Tim Donohue
6aaabb2dd3 Merge pull request #8092 from tdonohue/docker_runtime_configs
Update docker-compose scripts to use environment variables (to align with runtime configs)
2022-01-04 09:34:28 -06:00
Tim Donohue
252e9c24ae Merge pull request #8096 from DSpace/log4j-update-2.17.1
Fixes New Log4j Remote Code Execution Bug
2022-01-04 09:21:04 -06:00
Kevin Van de Velde
e3dbf3832a XmlWorkflowServiceIT adding a "restoreAuthSystemState()" to reinstate the authentication system prior to performing the tests 2022-01-04 11:36:25 +01:00
Paulo Graça
746413dea1 Fixes New Remote Code Execution Bug
«Apache has released another Log4j version, 2.17.1 fixing a newly discovered remote code execution (RCE) vulnerability in 2.17.0, tracked as CVE-2021-44832. Prior to today, 2.17.0 was the most recent version of Log4j and deemed the safest release to upgrade to, but that advice has now evolved.»
https://www.bleepingcomputer.com/news/security/log4j-2171-out-now-fixes-new-remote-code-execution-bug/
https://checkmarx.com/blog/cve-2021-44832-apache-log4j-2-17-0-arbitrary-code-execution-via-jdbcappender-datasource-element/
2022-01-03 12:13:12 +00:00
Mykhaylo
d97f58d96c fix bug 2021-12-27 19:13:46 +01:00
Mykhaylo
5d59373ff4 Merge branch 'CST-4505-EmbargoItemMetadata' of https://github.com/4Science/DSpace into CST-4505-EmbargoItemMetadata 2021-12-27 19:00:31 +01:00
Mykhaylo
1995300e1d Merge branch 'main' into CST-4505-EmbargoItemMetadata 2021-12-27 18:58:35 +01:00
Mykhaylo
819de05373 added tests to prove the bug 2021-12-27 18:52:49 +01:00
Ben Bosman
af0ead1a70 Removing session dependency 2021-12-24 11:49:02 +01:00
Tim Donohue
82a8ae80ad Minor correction to README 2021-12-23 13:57:22 -06:00
Tim Donohue
618aed6cde Remove Docker-specific local.cfg files. Instead mount [src]/dspace/config/ to Docker containers 2021-12-23 13:29:30 -06:00
Tim Donohue
2f467d1e5e Cleanup Dockerfiles and remove references to Docker-specific local.cfg 2021-12-23 12:50:51 -06:00
Giuseppe Digilio
ae4cbe6278 [CST-4505] Add access condition step definition to item-submission.xml 2021-12-23 19:21:31 +01:00
Tim Donohue
18515b1c9a Update docker-compose scripts to use env variables (align with runtime configs for UI) 2021-12-23 11:44:02 -06:00
jose vicente ribelles aguilar
8c1dcb2072 Update V7.0_2019.07.31__Retrieval_of_name_variant.sql
fix oracle slq sintax
2021-12-23 13:53:30 +01:00
Yana De Pauw
19371747aa 86163: Feedback on Shibboleth changes 2021-12-22 17:44:54 +01:00
Tim Donohue
75b6d67a47 Merge pull request #8089 from J4bbi/google-deprecated
Tag GoogleRecorderEventListener as deprecated
2021-12-22 09:40:02 -06:00
Tim Donohue
16e7758b82 Add comment on what to use instead 2021-12-22 09:05:21 -06:00
Tim Donohue
b0885612e4 Merge pull request #8046 from 4Science/context_improvements
Fixed context's mode handling to improve performances
2021-12-22 08:32:56 -06:00
Hrafn Malmquist
e0ff0d1032 Tag GoogleRecorderEventListener as deprecated 2021-12-22 00:31:30 +00:00
Tim Donohue
6dfcb62eb6 Merge pull request #8068 from atmire/dspace-angular-issue-852-BrowseBy_list_are_statically_configured
dspace-angular issue 852 BrowseBy list are statically configured
2021-12-21 14:13:18 -06:00
Corrado Lombardi
76827e46c4 removed TODO 2021-12-21 15:17:25 +01:00
Mykhaylo
38cce09590 added tests with statistics visible to all 2021-12-21 12:32:47 +01:00
Mykhaylo
ce125148bb refactored security plugin 2021-12-21 12:31:10 +01:00
Tim Donohue
f3e2c28021 Merge pull request #8084 from tdonohue/rename_LICENSE.header
Rename LICENSE_HEADER to LICENSE.header and update all references
2021-12-20 14:19:54 -06:00
Tim Donohue
d5caa24b50 Rename LICENSE_HEADER to LICENSE.header and update all references 2021-12-20 12:19:24 -06:00
Tim Donohue
b0a704b962 Merge pull request #8082 from atmire/w2p-84277_test-case-install-item-expects-wrong-exception
test case in InstallItemTest expects wrong Exception to be thrown
2021-12-20 11:18:22 -06:00
Mykhaylo
d426f449ac fix bug with array access conditions in add patch operation 2021-12-20 18:18:09 +01:00
Mykhaylo
166f84f16d added test to prove bug with array access conditions 2021-12-20 18:17:17 +01:00
Mykhaylo
4dd22eb5f6 fix failed tests 2021-12-20 15:06:49 +01:00
Mykhaylo
f75bdc4818 refactored statistics UsageRepor security plugin 2021-12-20 15:06:28 +01:00
Mykhaylo
f7d02da935 rename feature 2021-12-20 14:59:22 +01:00
Andrea Bollini
dbede2b246 Bumps log4j dependency from 2.16.0 to 2.17.0 2021-12-18 12:16:18 +01:00
Tim Donohue
7ff8592c39 Merge pull request #8067 from CICBA/fix_starts_with_in_findSubmitAuthorized
Fix findSubmitAuthorized endpoint to support queries by starts with
2021-12-17 10:14:15 -06:00
April Herron
b8a81ac824 DS-3981 Improve IndexClient usage & options 2021-12-16 15:08:24 -05:00
Mykhaylo
665c4942b1 changed discoverable property to make it more readable 2021-12-16 18:36:58 +01:00
Kevin Van de Velde
b24f97ac49 Merge branch 'DSpace:main' into w2p-85840_qualdrop-values-mandatory-flag 2021-12-16 15:04:34 +01:00
Kevin Van de Velde
27283a1eb2 Making default qualdrop non mandatory again 2021-12-16 15:04:10 +01:00
Yana De Pauw
fedda887f9 Merge remote-tracking branch 'upstream/main' into w2p-85542_filtermedia-process 2021-12-16 14:45:10 +01:00
Mykhaylo
7f42095f19 added config hal link to SubmissionAccessOption rest object and refactored converter 2021-12-16 13:28:10 +01:00
Kevin Van de Velde
bb05a7948a Merge branch 'DSpace:main' into w2p-86897_Issue-8042_If-workflow-user-rejects-own-submitted-item-becomes-uneditable 2021-12-16 12:06:25 +01:00
Michael Spalti
455429ce6a Multiple updates to configs, processing classes and shared utils. 2021-12-15 18:55:54 -08:00
Tim Donohue
ff8e002bbc Merge pull request #8057 from atmire/w2p-82428_irus-patch-performance
IRUS patch performance improvements by adding a timeout
2021-12-15 16:10:42 -06:00
Nathan Buckingham
5ae5398b99 Change to use constant instead of string md5 2021-12-15 14:19:24 -05:00
Tim Donohue
ff329fe907 Merge pull request #8051 from mwoodiupui/8018
Rely on https handle.net urls instead of http ones
2021-12-15 12:23:08 -06:00
Michael Spalti
980a8a4115 Merge branch 'image-dimension-task' of https://github.com/mspalti/DSpace into image-dimension-task 2021-12-15 09:24:11 -08:00
Mykhaylo
a617ef8bc0 refactoring 2021-12-15 16:15:56 +01:00
Marie Verdonck
012b215827 85897: Issue#8042: Fix for if workflow user rejects an item they submitted, they can bow edit the item that was rejected again 2021-12-15 14:53:55 +01:00
Marie Verdonck
c5743c9bae 85897: Issue#8042: IT demonstrating that if workflow user rejects an item they submitted, they can't edit the item that was rejected anymore 2021-12-15 14:53:01 +01:00
Mykhaylo
881dd059cc changed category of endpoint from core to tools 2021-12-15 11:41:31 +01:00
Mykhaylo
4a095695fb Merge branch 'main' into CST-4874-Feedback 2021-12-15 11:18:20 +01:00
Andrea Bollini
bedcccc42f Merge pull request #8070 from DSpace/dependabot/maven/org.apache.logging.log4j-log4j-api-2.16.0
Bump log4j2 from 2.15.0 to 2.16.0
2021-12-15 10:05:10 +01:00
Michael W Spalti
aa0840668a IT update. 2021-12-14 16:39:47 -08:00
Michael W Spalti
0407751fc2 Moved commit to CLI class. 2021-12-14 16:39:08 -08:00
Michael W Spalti
e459ab2e34 Refactored to use dspace-api utility class shared with CLI tool. 2021-12-14 16:03:53 -08:00
Michael W Spalti
3d9a9a19d6 Various updates plus IT. 2021-12-14 16:03:17 -08:00
Mykhaylo
8fdcb294fa refactoring 2021-12-14 23:20:53 +01:00
dependabot[bot]
2a2b24387a Bump log4j-api from 2.15.0 to 2.16.0
Bumps log4j-api from 2.15.0 to 2.16.0.

---
updated-dependencies:
- dependency-name: org.apache.logging.log4j:log4j-api
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-14 20:36:04 +00:00
Mykhaylo
003aea5252 add default configuration for access condition section 2021-12-14 18:45:37 +01:00
Mykhaylo
2d06ee892e Merge branch 'main' into CST-4505-EmbargoItemMetadata 2021-12-14 18:20:13 +01:00
Mykhaylo
293a9a0083 added tests for replace operations 2021-12-14 18:14:58 +01:00
Mykhaylo
24a2f8c2e4 implemented replace operation for access condition in submission 2021-12-14 18:14:28 +01:00
Michael Spalti
e07f562469 Added added service for image formats not supported by ImageIO (jp2) 2021-12-14 08:54:23 -08:00
Michael Spalti
a009a24474 Added more options. 2021-12-14 08:54:23 -08:00
Michael Spalti
0695d4f449 Initial work on bitstream IIIF processor. 2021-12-14 08:54:23 -08:00
Michael Spalti
f13bb90a07 Added collection metadata check for iiif enabled. 2021-12-14 08:54:23 -08:00
Tim Donohue
6c00689fb8 Merge pull request #8044 from 4Science/CST-4882
[CST-4882] The search loads indefinitely if the written query is invalid
2021-12-14 10:38:53 -06:00
Tim Donohue
5b04c1e118 Merge pull request #8069 from tdonohue/update_docker_deps
Update dependencies in Dockerfiles
2021-12-14 09:46:48 -06:00
Joost
3ce83c0087 adapted submissionDefinitionsControllerIT to expect the qualdroptest submission definition 2021-12-14 16:01:51 +01:00
Nathan Buckingham
b7fa187589 fix up white space and unsused import 2021-12-14 09:28:42 -05:00
Mykhaylo
e76e1a23e6 fix failed tests 2021-12-14 15:19:39 +01:00
Mykhaylo
f8626ca541 added tests 2021-12-14 13:42:51 +01:00
Mykhaylo
a85f4e69b9 implemented patch operations for AccessConditions in submission 2021-12-14 13:42:15 +01:00
Joost
0db4fadbfa adapted submissionFormsControllerIT to be aware of the extra form for qualdrop tests 2021-12-14 13:40:16 +01:00
Joost
f7efc8ec41 [task 85840] implementation of different requirement check for qualdrops in input forms 2021-12-14 12:00:17 +01:00
Joost
e0af26180f [task 85840] test for required qualdrops 2021-12-14 10:51:24 +01:00
Mykhaylo
420f661a5b refactoring 2021-12-14 09:14:25 +01:00
Mykhaylo
f919986bdb implemented remove patch operation for workspaceitem-data-access endpoint 2021-12-13 23:54:15 +01:00
Tim Donohue
85c7252ab9 Update dependencies in Docker. 2021-12-13 16:35:40 -06:00
Nathan Buckingham
2992660267 Add comment explaining ETag 2021-12-13 16:35:40 -05:00
Mykhaylo
c4bbd2e6e0 added tests for SubmissionAccessOptions endpoint 2021-12-13 22:34:55 +01:00
Mykhaylo
aaffe5ca80 implemented SubmissionAccessOptions endpoint 2021-12-13 22:32:58 +01:00
Nathan Buckingham
6c5e568543 S3 calculated md5 and store bitstream md5 on Multipart upload 2021-12-13 16:18:16 -05:00
Tim Donohue
be07bd7b37 Update Sonatype settings. Increase timeout to 10mins. Disable autoclose 2021-12-13 15:05:17 -06:00
Joost
28f6b310cc [task 85840] trying to link a test to a required input field 2021-12-13 21:52:51 +01:00
Yana De Pauw
8fef43a782 85542: Fixes to script repository ITs 2021-12-13 14:46:03 +01:00
Yana De Pauw
2b671158be 85542: Add filter-media to test scripts 2021-12-13 13:34:05 +01:00
Michael Spalti
34a200b8c8 Added added service for image formats not supported by ImageIO (jp2) 2021-12-10 17:14:17 -08:00
Mark H. Wood
f7335716a6 Merge branch 'main' into 7986 2021-12-10 15:09:45 -05:00
Mark H. Wood
171245a144 Autowire with 'id' not <qualifier>: @Named doesn't find qualifiers. #7986 2021-12-10 14:36:22 -05:00
Mark H. Wood
e27a109789 Generalize HttpConnectionPoolService for multiple instances with separate configuration.
This removes Solr-specific configuration property names from the otherwise
general service implementation by adding a bean property to specify a
configuration property prefix.
2021-12-10 11:50:28 -05:00
Mark H. Wood
fc5d3bcd17 Clarify the need to manage dependencies for mockserver. #7986 2021-12-10 11:48:57 -05:00
Davide Negretti
6381644eee [CST-4882] Error handling improved 2021-12-10 17:29:14 +01:00
Tim Donohue
9ba2402023 Merge pull request #8065 from DSpace/dependabot/maven/org.apache.logging.log4j-log4j-core-2.15.0
Bump log4j-core from 2.13.3 to 2.15.0
2021-12-10 09:04:28 -06:00
Santiago Tettamanti
f837bee878 Fix findSubmitAuthorized endpoint to support queries by starts with 2021-12-10 11:24:28 -03:00
dependabot[bot]
98b79d436e Bump log4j-core from 2.13.3 to 2.15.0
Bumps log4j-core from 2.13.3 to 2.15.0.

---
updated-dependencies:
- dependency-name: org.apache.logging.log4j:log4j-core
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-10 01:03:33 +00:00
Michael Spalti
bdbba6d323 Added more options. 2021-12-09 13:05:17 -08:00
Tim Donohue
396525a5f3 Merge pull request #8025 from atmire/MDV_starting_index_migration
Add migration to fix metadatavalue.place
2021-12-09 15:04:08 -06:00
Michael Spalti
c405195680 Initial work on bitstream IIIF processor. 2021-12-09 12:52:55 -08:00
Tim Donohue
1dea1adf1e Merge pull request #8045 from atmire/Avoid-incorrect-sort-entities
Avoid incorrect sort
2021-12-09 12:14:06 -06:00
Davide Negretti
cc15f414b3 [CST-4882] System.out.println() removed 2021-12-09 15:39:31 +01:00
Tim Donohue
fd57b235db Merge pull request #8061 from tdonohue/license_cleanup
Cleanup our LICENSE file so GitHub can detect our BSD license
2021-12-08 16:43:37 -06:00
Tim Donohue
300bcaa1da Add to README 2021-12-08 16:42:19 -06:00
Tim Donohue
0a04bc739d Minor license formatting cleanup to allow GitHub to recognize our BSD 3-Clause License. Move third-party licenses notice to NOTICE file. 2021-12-08 16:33:20 -06:00
Nathan Buckingham
0b95376e5d w2p-85808 S3Bitstore uses TransferManager to allow large file transfer 2021-12-08 16:47:41 -05:00
Tim Donohue
3e4b8d8a32 Merge pull request #8059 from tdonohue/disable_docker_action_on_forks
Disable Docker image build action on forked repos & on non-maintenance branches
2021-12-08 15:13:52 -06:00
Tim Donohue
4875e2c4d6 Limit branches/tags to ones starting with "dspace-", as that's our standard release/maintenance branch format 2021-12-08 14:37:42 -06:00
Tim Donohue
adb41116db Disable docker action on forked repos. Only run for 'dspace/dspace' 2021-12-08 14:22:15 -06:00
Tim Donohue
312b9d88de Merge pull request #8058 from tdonohue/docker_github_action
Add GitHub action to build Docker images and push to DockerHub
2021-12-08 12:38:29 -06:00
Samuel
a17e340059 dspace-angular issue 852 BrowseBy list are statically configured 2021-12-08 17:55:42 +01:00
Tim Donohue
d74c347808 Cleanup. Turn off 'latest' tag. Ensure -test image suffixes all tags with -test. 2021-12-08 09:38:25 -06:00
Yana De Pauw
03b3470166 85542: Turn filter-media into a scripts and processes script 2021-12-08 13:14:51 +01:00
Tim Donohue
6f92ff4d34 Remove unnecessary Java steps 2021-12-07 16:38:03 -06:00
Tim Donohue
588829c6de Update to latest version of codecov-action 2021-12-07 16:34:20 -06:00
Tim Donohue
7db5826070 Minor updates to Docker README 2021-12-07 16:25:27 -06:00
Tim Donohue
2a040a35ad Create GitHub action to build all DSpace Docker images 2021-12-07 15:11:36 -06:00
Tim Donohue
0af0361660 Minor updates to build action 2021-12-07 15:11:36 -06:00
Joost
22e9512384 checkstyle fixes 2021-12-06 17:05:37 +01:00
Pongtawat C
9c988c3653 Fix sample log rollover config 2021-12-06 21:30:50 +07:00
Joost
99ed35ceed added javadoc and made getRequestConfig protected 2021-12-06 11:51:07 +01:00
Yana De Pauw
78013143ef Merge remote-tracking branch 'upstream/main' into w2p-85276_Store-and-retrieve-the-Authentication-method-in-the-JWT 2021-12-06 10:07:14 +01:00
Mark H. Wood
160f0221e7 Fixed default, configured Handle URL stem to use https: #8018
Also tidied logging and commentary.
2021-12-03 16:07:57 -05:00
Tim Donohue
c1d8303041 Merge pull request #8030 from tdonohue/fix_it_logging
Fix Integration Test logging so that it works and uses log4j2
2021-12-03 11:40:02 -06:00
Yana De Pauw
c74e769d24 85427: Blocking change password if the method is not password 2021-12-03 17:20:13 +01:00
Mykhaylo
3a600e930a refactoring tests 2021-12-03 17:05:27 +01:00
Mykhaylo
96b66fe7ff refactoring FeedbackRestRepository 2021-12-03 17:05:08 +01:00
Joost
0f162d803c [task 82428] added a test to verify whether a timeout is being set 2021-12-03 14:06:01 +01:00
Mykhaylo
b4da463479 added tests for canSendFeedback feature 2021-12-03 13:33:23 +01:00
Mykhaylo
8a5df44104 implemented canSendFeedback feature 2021-12-03 13:32:54 +01:00
Mykhaylo
61bbf3840d added tests 2021-12-03 13:32:12 +01:00
Mykhaylo
6e5b9634a3 implemented feedback endpoint 2021-12-03 13:31:53 +01:00
Michael Spalti
3559be50c4 Added collection metadata check for iiif enabled. 2021-12-02 16:30:04 -08:00
Tim Donohue
b27e167fab Merge pull request #7967 from DSpace/dependabot/maven/com.google.oauth-client-google-oauth-client-1.32.1
Bump google-oauth-client from 1.23.0 to 1.32.1
2021-12-02 16:27:19 -06:00
dependabot[bot]
ec9d81b218 Bump google-oauth-client from 1.23.0 to 1.32.1
Bumps [google-oauth-client](https://github.com/googleapis/google-oauth-java-client) from 1.23.0 to 1.32.1.
- [Release notes](https://github.com/googleapis/google-oauth-java-client/releases)
- [Changelog](https://github.com/googleapis/google-oauth-java-client/blob/master/CHANGELOG.md)
- [Commits](https://github.com/googleapis/google-oauth-java-client/compare/1.23.0...v1.32.1)

---
updated-dependencies:
- dependency-name: com.google.oauth-client:google-oauth-client
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-02 21:04:45 +00:00
Tim Donohue
8f06ba0de0 Merge pull request #8034 from PabloDeAlbu/fix_metadavalidation_if_isAuthorityControlled
Fix condition for metadata validation if is Authority Controlled
2021-12-02 15:03:24 -06:00
Tim Donohue
db1a520e3d Add sample debug logging for REST API 2021-12-02 14:45:07 -06:00
Tim Donohue
1c31a3a7c5 Add debug logging to auth process 2021-12-02 14:45:03 -06:00
Tim Donohue
84bdb8bc20 Fix incorrect comments 2021-12-02 12:31:12 -06:00
Tim Donohue
4c87bded7d Fix test logging so that it also uses Log4j2 & sends logs to failsafe, etc 2021-12-02 12:31:12 -06:00
Tim Donohue
c61d47e6d7 Merge pull request #8031 from tdonohue/fix_unstable_its
Fix unstable / randomly failing IT methods in AuthenticationRestControllerIT
2021-12-02 11:37:45 -06:00
Tim Donohue
1146d6ec14 Fix unstable tests by checking for JWT equality claim by claim, since a one second difference in expiration date can change entire JWT. 2021-12-02 10:49:13 -06:00
Tim Donohue
b4249dbc0d Ensure "Bearer " prefix always removed from Authorization header 2021-12-02 10:47:39 -06:00
Tim Donohue
083539754b Merge pull request #8032 from tdonohue/fix_ShibAuth_behavior
Fix issue where Shibboleth Authentication was creating two temporary Auth Cookies
2021-12-02 10:28:35 -06:00
Yana De Pauw
d2eee535f0 85149: Fix Sword password login 2021-12-02 13:16:05 +01:00
Yana De Pauw
b430db3790 85276: Fix checkstyle issues85276: Fix checkstyle issues85276: Fix checkstyle issues85276: Fix checkstyle issues85276: Fix checkstyle issues85276: Fix checkstyle issues85276: Fix checkstyle issues85276: Fix checkstyle issues 2021-12-02 12:46:00 +01:00
Yana De Pauw
3e0bfcc0e6 85277: "Feature" to determine whether you can edit your password 2021-12-02 11:59:39 +01:00
Michael Spalti
a39b509773 Minor changes to comments. 2021-12-01 16:46:55 -08:00
Michael Spalti
e02b13ab19 Updated processOptions for iiif.
Updated processContentsFile.

Style check fix.
2021-12-01 16:46:55 -08:00
Michael Spalti
83cf4299bf Updated ITs to check viewing hint. 2021-12-01 13:00:46 -08:00
Michael Spalti
17adfa0a80 Minor updates. 2021-12-01 13:00:26 -08:00
Michael Spalti
543317f54c More refactoring. 2021-12-01 12:15:17 -08:00
Michael Spalti
7ba9894d8e Fixed bundle ranges. 2021-12-01 12:15:17 -08:00
Michael Spalti
6b5ae6f528 Updates to range processing including view hint. 2021-12-01 12:15:17 -08:00
Yana De Pauw
16e704a285 85276: Store and retrieve the Authentication method in the JWT 2021-12-01 15:33:13 +01:00
Luca Giamminonni
651ecbf458 Fixed tests context mode 2021-11-29 18:52:03 +01:00
Luca Giamminonni
33a07d2f14 Fix tests 2021-11-29 18:06:45 +01:00
Luca Giamminonni
c2494db11a Fixed context's mode handling to improve performances 2021-11-29 17:13:31 +01:00
Yura Bondarenko
e37fd1df8f 85137: Add H2 migration 2021-11-26 14:20:05 +01:00
Yura Bondarenko
2939ae0a16 85137: Add Oracle migration 2021-11-26 14:20:05 +01:00
Yura Bondarenko
9df531299b Add migration to fix MDV place 2021-11-26 14:20:05 +01:00
Ben Bosman
f179436284 Avoid incorrect sort 2021-11-26 12:12:24 +01:00
Davide Negretti
831dc21c94 [CST-4882] Code cleanup 2021-11-25 19:40:38 +01:00
Davide Negretti
800eeff984 [CST-4882] Return 422 instead of 500 when solr query is not valid 2021-11-25 19:22:47 +01:00
Joost
8e62c0496c [task 82428] setting a timeout on calls to IRUS 2021-11-25 15:33:23 +01:00
Tim Donohue
dcfa74a2c3 Merge pull request #8040 from clairtonluz/patch-1
Upgrade aws-java-sdk-s3 version to avoid exception on start "Socket n…
2021-11-24 08:43:00 -06:00
Clairton Luz
7fca858260 Upgrade aws-java-sdk-s3 version to avoid exception on start "Socket not created by this factory"
Current docker imagem `dspace/dspace:dspace-7.1` when enable s3Store into bitstore.xml throw exception  when start application beacause of the current version of `aws-java-sdk-s3` is incompatible with java 11. So I upgrade version to resolve the problem.
2021-11-24 08:55:42 -03:00
Mark H. Wood
c462415a64 Add unit test. #7986 2021-11-23 14:44:10 -05:00
Mark H. Wood
23b0ae1c4d Make connection maximum lifetime configurable. #7986 2021-11-23 14:42:59 -05:00
Mark H. Wood
de9d1a8cd8 Initialize correctly. More generous pool defaults. 2021-11-23 14:42:59 -05:00
Mark H. Wood
5855850cd1 Make pool service injectable. 2021-11-23 14:42:59 -05:00
Mark H. Wood
bb8d3d853a Define pool configuration properties 2021-11-23 14:42:59 -05:00
Mark H. Wood
070b611814 First attempt at a single pool of HTTP connections for Solr. 2021-11-23 14:42:59 -05:00
William Welling
1db8e382d5 chown app directory during dependency images build (#8035) 2021-11-23 11:04:51 -06:00
pablo
b7f07da8a2 Fix condition for metadata validation if is Authority Controlled 2021-11-23 09:00:37 -03:00
Tim Donohue
5fe021d28d Merge pull request #8038 from 4Science/fix-entity-type-test
Fixed InitializeEntitiesIT destroy method to not delete none entity type
2021-11-22 12:40:47 -06:00
Luca Giamminonni
d2430193b1 Improved InitializeEntitiesIT destroy method to not delete none entity type 2021-11-22 18:02:47 +01:00
Tim Donohue
7fda074543 Merge pull request #7994 from mwoodiupui/7988
Ensure that a mapped Item is exported only once.
2021-11-11 16:16:24 -06:00
Tim Donohue
e01ec94881 Remove ShibbolethRestController and move code into ShibbolethLoginFilter. 2021-11-11 13:51:28 -06:00
Tim Donohue
21549d0198 Rename ShibbolethAuthenticationFilter to ShibbolethLoginFilter 2021-11-11 13:51:28 -06:00
Tim Donohue
a4eda30103 Remove unused parameters from several auth related methods. 2021-11-11 13:51:28 -06:00
Tim Donohue
a4a00a8949 Refactor DSpaceAuthentication object to make it clearer when user is authenticated and when they are not. Fix a few usages in code 2021-11-11 13:45:08 -06:00
jose vicente ribelles aguilar
e3ea3626cb Update V7.0_2019.11.13__relationship_type_copy_left_right.sql
Error Message:
ORA-00984: column not allowed here.

No BOOLEAN type in ORACLE.
2021-11-09 11:35:41 +01:00
jose vicente ribelles aguilar
0361ed59fe Update V7.0_2018.04.16__dspace-entities.sql
shorten identifiers to less than 30 characters
2021-11-09 10:32:36 +01:00
jose vicente ribelles aguilar
e0fc4fe345 Update V7.0_2018.04.16__dspace-entities.sql
no type uuid. Change uuid for raw(16)
2021-11-09 10:26:50 +01:00
jose vicente ribelles aguilar
d61e98cf32 Update V7.0_2019.07.31__Retrieval_of_name_variant.sql
Specify length. Use VARCHAR2 instead of VARCHAR
2021-11-09 10:22:14 +01:00
astrowq
13eb4a4587 simple code refactoring 2021-11-05 19:08:00 +01:00
astrowq
b1b08b21c6 fix the date parsing error with the format "yyyy-mm-dd" 2021-11-05 19:08:00 +01:00
Tim Donohue
ae6f795f20 Merge pull request #8026 from DSpace/fix_8016
Fix two ITs for stability (PackagerIT.destroy() and RelationshipTypeRestControllerIT.findAllEntityTypes)
2021-11-05 12:44:48 -05:00
Tim Donohue
4c23431d40 Add missing @Override 2021-11-05 11:07:49 -05:00
Tim Donohue
b990d75d9e Fix a recently broken IT by including "none" entity type 2021-11-05 10:19:25 -05:00
Tim Donohue
b242d20055 Fix IT by ensuring it calls super.destroy() 2021-11-04 16:45:30 -05:00
Tim Donohue
e297d98095 [maven-release-plugin] prepare for next development iteration 2021-10-28 13:49:02 -05:00
Tim Donohue
c2e31d08ef [maven-release-plugin] prepare release dspace-7.1 2021-10-28 13:48:56 -05:00
Tim Donohue
f025e81713 Update LICENSES_THIRD_PARTY for v7.1 2021-10-28 10:26:53 -05:00
Tim Donohue
97d0a1f128 Merge pull request #8013 from 4Science/improve-handing-of-default-bitstream-read-policies
Improve handing of default bitstream read policies
2021-10-26 12:11:22 -05:00
Tim Donohue
c3bea16ab9 Merge pull request from GHSA-cf2j-vf36-c6w8
Default groups issue
2021-10-26 11:31:42 -05:00
Tim Donohue
f21b16c255 Merge pull request #8014 from 4Science/re-enableITtest
Re-enable IT test EntityTypeRestRepositoryIT#findAllByAuthorizedExternalSource
2021-10-25 17:17:32 -05:00
Mykhaylo
d3ba3b6c71 fix failed test 2021-10-25 21:30:39 +02:00
Andrea Bollini
16cf19bed0 IT to proof that DSpace/DSpace#7928 is solved 2021-10-25 19:03:57 +02:00
Andrea Bollini
277b499a5c Fix for GHSA-cf2j-vf36-c6w8 2021-10-25 19:01:36 +02:00
Tim Donohue
70ffeaac30 Merge pull request #7941 from 4Science/CST-4503-AddingNewRelationshipsInEditItem
Adding new Relationships in Edit Item is difficult for entities with many relationships - REST
2021-10-25 10:09:05 -05:00
Andrea Bollini
0de9680781 Add tests against permission escalation 2021-10-25 16:55:24 +02:00
Mykhaylo
7c10aeccbf minor fix 2021-10-25 16:19:27 +02:00
Mykhaylo
4b21327a8e Merge branch 'main' into improve-handing-of-default-bitstream-read-policies 2021-10-25 16:18:13 +02:00
Mykhaylo
c3eb1cfed6 refactoring 2021-10-25 16:13:01 +02:00
Tim Donohue
c9e36c8659 Merge pull request #8000 from tdonohue/iiif_docker
Add docker-compose script for IIIF server
2021-10-22 12:18:12 -05:00
Tim Donohue
dbb8ce726d Merge pull request #3210 from mspalti/iiif-endpoint
IIIF REST API
2021-10-22 12:16:58 -05:00
Mykhaylo
ee857f9412 add support to enable/disable append-mode of DefaultReadGroups via conf 2021-10-22 18:40:45 +02:00
Tim Donohue
b4ff0dcf06 Update docker-compose README with details of dspace-iiif 2021-10-22 11:28:08 -05:00
Tim Donohue
6c4aa01267 Merge pull request #2248 from KingKrimmson/DS-2904_Asynchronous_Google_Analytics
DS-2904 Asynchronous & Batch Google Analytics Reporting
2021-10-22 10:13:30 -05:00
Tim Donohue
b7f15ca20d Merge pull request #8001 from paulo-graca/openaire-funding-support-abstractexternaldataprovider
Openaire funding support abstractexternaldataprovider
2021-10-22 09:47:23 -05:00
Paulo Graça
0191bf1431 make adjustments to findExternalSourcesByEntityTypeTest 2021-10-22 11:41:58 +01:00
Paulo Graça
4022099bf9 Merge branch 'main' of https://github.com/DSpace/DSpace into openaire-funding-support-abstractexternaldataprovider 2021-10-22 08:53:22 +01:00
Michael W Spalti
0d9e2d317d Minor comment change. 2021-10-21 15:35:09 -07:00
Michael W Spalti
99230934a0 Removed unused property. 2021-10-21 14:30:06 -07:00
Michael W Spalti
c6565da35c Merge branch 'main' into iiif-endpoint 2021-10-21 14:07:47 -07:00
Tim Donohue
5eacdd169e Merge pull request #8009 from tdonohue/fix_compilation_errors
Fix main branch IT compilation errors after merging #7962
2021-10-21 15:58:43 -05:00
Tim Donohue
b6ec08746e Disable broken test temporarily 2021-10-21 15:00:53 -05:00
Tim Donohue
3e05832a38 Fix two fragile tests which broke whenever configs changed 2021-10-21 13:24:22 -05:00
Michael W Spalti
ddba1cc4e8 Merge branch 'main' into iiif-endpoint 2021-10-21 10:30:41 -07:00
Michael W Spalti
c4e5725bdd Unused import. 2021-10-21 10:08:45 -07:00
Tim Donohue
96c41ff022 Fix main branch IT compilation errors after merging #7962 2021-10-21 10:24:23 -05:00
Tim Donohue
0976f05f29 Merge pull request #7962 from 4Science/CST-4509-assignAnEntityTypeToCollection
Assign an entity type to collection
2021-10-21 10:05:29 -05:00
Michael W Spalti
0198efce69 Updated classes to call ContextUtil.obtainContext with HttpServletRequest objects. 2021-10-20 16:08:53 -07:00
Michael W Spalti
79c0a9662b Merge branch 'main' into iiif-endpoint 2021-10-20 15:55:27 -07:00
Michael W Spalti
33966cc4cb Unused import in test. 2021-10-20 15:38:55 -07:00
Michael W Spalti
c7c04db576 Optional iiif configuration and javadoc. 2021-10-20 15:06:47 -07:00
Tim Donohue
4e98a91c4b Merge pull request #3371 from 4Science/CST-4469-ItemVersioning
Item Versioning
2021-10-20 11:17:48 -05:00
Paulo Graça
736d1dbeaa change to extend openaire lookup from AbstractExternalDataProvider 2021-10-19 21:57:40 +01:00
Paulo Graça
0a0cf18c36 Merge branch 'CST-4509-assignAnEntityTypeToCollection' of https://github.com/4Science/DSpace into feature-issue2816-openaire-funding-external-lookup 2021-10-19 21:52:53 +01:00
Mykhaylo
fb2288e8a2 Merge branch 'main' into CST-4469-ItemVersioning 2021-10-19 18:45:49 +02:00
Tim Donohue
3573ebd505 Merge pull request #3365 from paulo-graca/feature-issue2816-openaire-funding-external-lookup
OpenAIRE funding external source feature
2021-10-19 09:13:47 -05:00
Tim Donohue
3fc06ef400 Merge pull request #2129 from mwoodiupui/DS-3952
[DS-3952] Expose Request Copy
2021-10-19 09:09:27 -05:00
Tim Donohue
84fdc9567c Add docker-compose script for IIIF server 2021-10-18 17:06:17 -05:00
Michael W Spalti
00cd727e0f Updated to a method signature. 2021-10-18 14:08:55 -07:00
April Herron
7764ccb00f DS-2904 GA Code cleanup 2021-10-18 14:13:51 -04:00
Mykhaylo
534a16254c minor update 2021-10-18 15:42:37 +02:00
Andrea Bollini
dfead9f29e Add attributions to the main iiif classes 2021-10-16 22:02:25 +02:00
Andrea Bollini
ca82a297c5 Fix consumer to avoid early initialization of the iiif cache evict service 2021-10-16 21:52:35 +02:00
Tim Donohue
6059a57aef Merge pull request #7999 from tdonohue/docker-solr-config-update
[Docker] Ensure any updated Solr configs are copied over to existing cores
2021-10-15 16:33:45 -05:00
Tim Donohue
7226e2d7c0 Merge pull request #7990 from paulo-graca/openaire-oai-bugfix-language
Openaire 4: oai bugfixes for language and publisher
2021-10-15 15:37:57 -05:00
Tim Donohue
e6b690a5f6 Merge pull request #7973 from abollini/performance-improvements
Performance improvements
2021-10-15 14:36:19 -05:00
Tim Donohue
08de317095 Merge pull request #7996 from atmire/find_all_top_communities_performance
Find all top communities performance improvements
2021-10-15 14:35:42 -05:00
Mykhaylo
e6cfdf7df6 Implement community feedbacks 2021-10-15 17:37:19 +02:00
Tim Donohue
9f1704f91f Ensure any updated Solr configs are copied over to running cores 2021-10-15 09:57:24 -05:00
Joost
8f23351758 [task 84277] ensuring the right exception is expected when multiple items with the same handle get installed 2021-10-15 15:56:03 +02:00
Michael Spalti
c30721b55a Adding rendering to manifest instead of sequence. 2021-10-14 13:58:28 -07:00
Michael Spalti
f19d01cb5c Added iiif consumer to default dispatcher. 2021-10-14 12:54:13 -07:00
Michael Spalti
138ae70a32 Docs update. 2021-10-14 12:53:39 -07:00
Michael Spalti
9a8ba86b5e Using dspace-api ContextUtil with iiif controller. 2021-10-14 12:52:10 -07:00
Tim Donohue
2255e91af1 Merge pull request #7955 from 4Science/CST-4507_multiple_authorizations
endpoint to find with a single call many authorizations for multiple objects and features
2021-10-14 10:19:48 -05:00
Paulo Graça
c4ffbe10be remove openaire API token placeholders 2021-10-14 12:52:02 +01:00
Marie Verdonck
a0e92a5f18 84100: Admin only files rights issue IT 2021-10-14 13:22:08 +02:00
Marie Verdonck
d6a9bca578 84100: Admin only files rights issue 2021-10-14 13:22:04 +02:00
Corrado Lombardi
3d3608cf48 [CST-4507] removed commented code 2021-10-14 12:59:57 +02:00
Paulo Graça
dec8e765b3 Merge branch 'feature-issue2816-openaire-funding-external-lookup' of github.com:paulo-graca/DSpace into feature-issue2816-openaire-funding-external-lookup 2021-10-14 11:54:47 +01:00
Paulo Graça
69f5b03073 Merge branch 'main' of https://github.com/DSpace/DSpace into feature-issue2816-openaire-funding-external-lookup 2021-10-14 11:06:28 +01:00
Mykhaylo
67ed399c7b added test to verify IllegalStateException 2021-10-14 11:39:28 +02:00
Ben Bosman
47a97b2b21 find all top communities performance 2021-10-14 10:40:00 +02:00
Michael Spalti
70de1bc61c Moved iiif to separate module. 2021-10-13 18:35:33 -07:00
Mark H. Wood
6bedbf09a4 Ensure that a mapped Item is exported only once. #7988 2021-10-13 14:26:52 -04:00
Michael W Spalti
3870e362c3 Javadoc for iiif interfaces. 2021-10-13 10:22:21 -07:00
Michael W Spalti
2f74887c8f Updated iiif configuation. 2021-10-13 10:05:00 -07:00
Mykhaylo
8e408adc5d Merge branch 'main' into CST-4469-ItemVersioning 2021-10-13 12:01:25 +02:00
Mykhaylo
81b5c294dc Merge branch 'main' into CST-4503-AddingNewRelationshipsInEditItem 2021-10-13 11:58:23 +02:00
Mykhaylo
b9b6f40c8b Merge branch 'main' into CST-4509-assignAnEntityTypeToCollection 2021-10-13 11:49:38 +02:00
Tim Donohue
d9d24427af Merge pull request #7952 from atmire/w2p-83661_Port-harvest-to-scripts-and-processes
Port harvest to scripts and processes
2021-10-12 16:18:24 -05:00
Tim Donohue
c224e9435d Merge pull request #7983 from 4Science/CST-4636-RelationshipTypeEmbeddingNotWorking
RelationshipType embedding not working
2021-10-12 09:29:18 -05:00
Mykhaylo
cbdebd3e97 fix LGTM notes 2021-10-11 16:08:06 +02:00
Yana De Pauw
61025c1c95 83707: Fix parameter types of harvest script config 2021-10-11 15:57:12 +02:00
Mykhaylo
980ac528a2 Implement community feedbacks 2021-10-11 15:07:08 +02:00
Paulo Graça
a1f8c34035 Merge branch 'main' of https://github.com/DSpace/DSpace into openaire-oai-bugfix-language 2021-10-11 13:19:39 +01:00
Paulo Graça
95b3b2816d fix issue 3102 2021-10-11 13:14:55 +01:00
Michael Spalti
40e3291988 Work on test for iiif cache consumer. 2021-10-08 12:38:14 -07:00
Tim Donohue
3259b134be Merge pull request #7976 from 4Science/ImpossibleToDeleteWrkflowGroupsMigratedFromApreviousDSpaceVersion
Impossible to delete workflow groups migrated from a previous DSpace version using the old legacy workflow
2021-10-08 14:32:55 -05:00
Mykhaylo
62917409a4 add JavaDoc 2021-10-08 15:06:21 +02:00
Joost
724ea77ef7 implementing feedback 2021-10-08 12:28:30 +02:00
Mykhaylo
df7231e6b6 restore the original tests 2021-10-08 11:45:10 +02:00
Mykhaylo
f0b60cf8ce fix failed test 2021-10-08 10:13:26 +02:00
Michael Spalti
5ecca8d905 Added iiif to default consumers. 2021-10-07 12:14:16 -07:00
Michael Spalti
f15a18254e Added component annotations.
Added comment.

Fixed import.
2021-10-07 12:13:27 -07:00
Michael Spalti
f92592846d Added "org.dspace.iiif" to component scan in ApplicationConfig. 2021-10-07 11:52:10 -07:00
Michael Spalti
cca91707b9 Updated event consumer. 2021-10-07 10:49:45 -07:00
Mykhaylo
df5976f51a Merge branch 'main' into CST-4509-assignAnEntityTypeToCollection 2021-10-07 19:19:02 +02:00
Mykhaylo
bc89365621 Implement community feedbacks 2021-10-07 19:09:20 +02:00
Tim Donohue
5da7853fc0 Merge pull request #7963 from tdonohue/fix_7196
REST API items resource returns items in non-deterministic order (main port)
2021-10-07 11:15:08 -05:00
Tim Donohue
78dd106182 Merge pull request #7979 from 4Science/CST-4659
Hint fixed for dc.type
2021-10-07 11:14:37 -05:00
Tim Donohue
5d91ff2564 Merge pull request #3329 from atmire/w2p-80200_Retain_UUIDs
Fix #3330: Retain UUIDs on packager restore
2021-10-07 11:12:08 -05:00
Tim Donohue
028df96e0d Merge pull request #3322 from tysonlt/import_relationships
Import relationships via SAF (Simple Archive Format)
2021-10-06 15:00:17 -05:00
Michael Spalti
cde623c344 Moved iiif event consumer to dspace-api. 2021-10-06 12:48:22 -07:00
Mark H. Wood
db72b43f0f [DS-3952] Don't allow accept/reject of a completed request. 2021-10-06 13:19:52 -04:00
Mark H. Wood
55beed65ba [DS-3952] Don't create a RequestItem until #build() is called. 2021-10-06 13:18:57 -04:00
Mykhaylo
47712ecde3 minor fix 2021-10-06 18:36:37 +02:00
Mykhaylo
0dfee17944 added tests 2021-10-06 17:45:43 +02:00
Mykhaylo
65dc9cbb14 converted RelationshipTypeRestController in link repository 2021-10-06 17:45:07 +02:00
Mark H. Wood
1dc4f629f2 [DS-3952] Identify OA request with approver, not requester. Document OA request template. 2021-10-06 11:31:21 -04:00
Davide Negretti
c516f9c856 [CST-4659] hint fixed for dc.type 2021-10-06 17:08:53 +02:00
tysonlt
486a509050 Merge branch 'DSpace:main' into import_relationships 2021-10-05 12:36:39 +11:00
Tyson Lloyd Thwaites
11bea56988 fixed checkstyle violation 2021-10-05 12:15:37 +11:00
Mykhaylo
8bdd1138eb implemented flyway script to delete deprecated columns 2021-10-04 16:24:42 +02:00
Tyson Lloyd Thwaites
00740cc021 don't attempt to create relationships in test mode 2021-10-04 14:40:29 +11:00
Tyson Lloyd Thwaites
c01f4c1ca0 Fix broken command-line collection arg 2021-10-04 14:04:24 +11:00
Tyson Lloyd Thwaites
93bdf9add6 Removed relationships flag 2021-10-04 14:03:29 +11:00
Michael Spalti
597cf4efb5 Configuration update. 2021-10-02 13:28:16 -07:00
Michael Spalti
7905e8cc25 Updated consumer. 2021-10-02 13:27:52 -07:00
Mykhaylo
6385df9779 minor fix 2021-10-02 12:33:47 +02:00
Michael Spalti
67012de266 Added comment to dspace.cfg. 2021-10-01 15:47:50 -07:00
Michael Spalti
26456121aa Completed consumer used to manage iiif cache. 2021-10-01 15:33:25 -07:00
Michael Spalti
efc9327cae Cache add. 2021-10-01 15:03:59 -07:00
Mark H. Wood
092cfc364c [DS-3952] Enable sending admin. request to open access to requested item. 2021-10-01 14:19:37 -04:00
Mark H. Wood
7e6326619d [DS-3952] Log Velocity errors. 2021-10-01 14:17:51 -04:00
Mark H. Wood
8cbdc100df [DS-3952] Use correct template for OA request. 2021-10-01 14:16:47 -04:00
Mark H. Wood
64f900fd95 Implement Open Access request message to admin.s for Item Request. 2021-10-01 10:43:20 -04:00
Tim Donohue
ff4b1b3675 Merge pull request #7948 from tdonohue/upgrade_postgres_flyway
Upgrade to latest PostgreSQL driver 42.2.x and Flyway 6.x
2021-10-01 09:40:57 -05:00
Tim Donohue
c91c7caf1a Update to Postgres JDBC driver 42.2.24 2021-09-30 16:49:23 -05:00
Andrea Bollini
969a29f89e Avoid to search current user by email 2021-09-30 21:13:12 +02:00
Andrea Bollini
3131c50e92 Reorder authz check to prioritize the cheaper ones 2021-09-30 21:10:40 +02:00
Mark H. Wood
5787be3dae [DS-3952] Proper test for wrong authenticated user. 2021-09-30 14:42:51 -04:00
Michael Spalti
71cbf70865 Excluding OtherContent bundle from bundles that can contain iiif image resources. 2021-09-30 11:07:45 -07:00
Michael Spalti
d1c31735f4 Fixed identifiers for range canvas references. 2021-09-30 11:06:29 -07:00
Mark H. Wood
af20f0b8d8 [DS-3952] Test successful PUT more thoroughly, add tests for bad PUTs. 2021-09-30 13:42:54 -04:00
Tim Donohue
9c5c21f66a Merge pull request #7947 from atmire/w2p-81832_Solr-Search-core-fix-index-Authority-Mdv-without-vocabulary-or-pairs-type
W2p 81832 solr search core fix index authority mdv without vocabulary or pairs type
2021-09-30 10:11:12 -05:00
Mark H. Wood
f715667f36 Merge branch 'DS-3952' of github.com:mwoodiupui/DSpace into DS-3952 2021-09-30 08:40:56 -04:00
Mark H. Wood
aa9880f0f5 [DS-3952] Adopt agreed-upon URL pattern for linking back from request email. 2021-09-30 08:39:36 -04:00
Corrado Lombardi
d88e4f4b6f [CST-4507] checkstyle fix 2021-09-30 12:44:44 +02:00
Mykhaylo
16d0059bcd add support to enable/disable the versioning features via conf 2021-09-30 12:40:33 +02:00
Corrado Lombardi
5e92a5374a [CST-4507] added mandatory parameters and some little improvements in tests readability 2021-09-30 12:16:01 +02:00
Corrado Lombardi
1cd0cc3c2a [CST-4507] little code refactoring and updated test behaviour 2021-09-30 09:54:10 +02:00
Mark H. Wood
1f15e032fb [DS-3952] Item request tokens should match 32 base-16 digits, not base-36. 2021-09-29 16:32:23 -04:00
Mark H. Wood
fb7fd3b279 [DS-3952] Make PUT return codes conform to contract. 2021-09-29 13:21:04 -04:00
Mykhaylo
61a9edfe05 restore latest test and fix the bug 2021-09-29 16:34:15 +02:00
Yana De Pauw
9148fc37d8 83795: Harvest script fixes 2021-09-29 15:57:34 +02:00
Mark H. Wood
d4da4eac1d Merge branch 'main' into DS-3952 2021-09-29 07:51:58 -04:00
Mykhaylo
3fe4e2d170 fix duplicate method 2021-09-29 13:36:45 +02:00
Mykhaylo
d6d2f27483 added javaDoc 2021-09-29 13:34:46 +02:00
Mykhaylo
330e3f5838 fix pagination bug and add the JavaDocs 2021-09-29 12:03:28 +02:00
Mykhaylo
9f237b1188 added test to prove pagination bug 2021-09-29 12:00:48 +02:00
Mykhaylo
bdbafee72c fix failed tests 2021-09-29 11:42:13 +02:00
Andrea Bollini
cb55947592 Merge branch 'iiif-endpoint' of https://github.com/mspalti/DSpace into iiif-endpoint 2021-09-29 10:06:13 +02:00
Michael Spalti
aa8c64f8ab Added todo notice to cache configuration class. 2021-09-28 16:09:30 -07:00
Michael Spalti
0c48606ebe Added null check in canvas service to prevent exception in iiif metadata model. 2021-09-28 16:00:03 -07:00
Andrea Bollini
ea61bc3b83 Add test to proof behavior with restricted items 2021-09-28 23:30:17 +02:00
Andrea Bollini
a41574dbdb fix locale setting in the obtainContext method 2021-09-28 23:12:58 +02:00
Tim Donohue
e5e4bbed5f Merge pull request #7954 from atmire/w2p-83695_Issue-3291_Scripts&processes-error-handling
Scripts & processes error handling
2021-09-28 13:37:31 -05:00
Tim Donohue
fb3e610a24 Merge pull request #7950 from mwoodiupui/7935
Replace now-ignored test log4j.properties files with log4j2-test.xml
2021-09-28 12:12:24 -05:00
Mykhaylo
f6e23f2061 Implement community feedbacks 2021-09-28 19:02:51 +02:00
Paulo Graça
267f24ecf0 fix indentation - 2nd try 2021-09-28 10:49:11 +01:00
Michael Spalti
327f800c5f Fixed lgtm alerts. 2021-09-27 16:22:59 -07:00
Michael Spalti
71eb1429e0 Merge branch 'main' into iiif-endpoint 2021-09-27 15:03:22 -07:00
Michael Spalti
a4a27f0795 More updates after merging PR#1. 2021-09-27 14:11:12 -07:00
Michael Spalti
9a5a5d636f Merge branch '4Science-pr' into iiif-endpoint 2021-09-27 11:49:30 -07:00
Michael Spalti
e42b9dff99 Minor iiif.cfg updates. 2021-09-27 11:07:02 -07:00
Michael Spalti
42d82cf322 Updated imports for style check. 2021-09-27 10:26:26 -07:00
Michael Spalti
fc3e68edba Search service update. 2021-09-27 10:26:07 -07:00
Michael Spalti
da4c5774e8 Added not implemented exception for search service. 2021-09-27 10:24:59 -07:00
Paulo Graça
7c9fb86c18 Merge branch 'main' of https://github.com/DSpace/DSpace into feature-issue2816-openaire-funding-external-lookup 2021-09-27 17:29:55 +01:00
Tim Donohue
b692b9e9dd Ensure ItemDAOImpl queries are all ordered by UUID 2021-09-27 11:00:08 -05:00
Mykhaylo
bc0805017f Merge branch 'main' into CST-4509-assignAnEntityTypeToCollection 2021-09-27 16:41:30 +02:00
Andrea Bollini
5aeead4fa4 Merge pull request #7949 from tdonohue/it_cleanup
Integration Test Cleanup
2021-09-27 16:15:05 +02:00
Andrea Bollini
21032f66a5 Finalize configuration via metadata refactoring and hierarchical range support 2021-09-26 22:59:38 +02:00
Michael Spalti
84ef661cfb Updated experimentatal search plugin support to use full package name. 2021-09-26 13:07:50 -07:00
Michael Spalti
a22fe26d2f Additional documentation in iiif.cfg file. 2021-09-26 13:07:04 -07:00
Michael Spalti
3252b541f8 Updated javadocs and changed generator interface. 2021-09-26 12:46:45 -07:00
Mykhaylo
cc1e031863 Merge branch 'main' into CST-4509-assignAnEntityTypeToCollection 2021-09-26 10:47:03 +02:00
April Herron
54af86d52a DS-2904 Asynchronous Google Analytics Reporting 2021-09-24 16:56:27 -04:00
Mark H. Wood
5bd3806753 Email tests must be unauthenticated.
Authenticated creation uses session user and ignores corresponding request
parameters.
2021-09-24 14:09:48 -04:00
Mark H. Wood
59befb62aa [DS-3952] Bitstream is optional if allfiles:true. Implement and test. 2021-09-24 13:18:59 -04:00
Andrea Bollini
5916f610b3 Fix range generation and improve basic structure test 2021-09-24 19:18:45 +02:00
Mykhaylo
d498882d6f fix failed tests 2021-09-24 18:22:42 +02:00
Mykhaylo
b750e1d250 fix failed tests 2021-09-24 17:39:06 +02:00
Paulo Graça
b250134c85 xml identation fixes 2021-09-24 16:27:12 +01:00
Mykhaylo
302370db72 update flyway script 2021-09-24 16:21:30 +02:00
Mykhaylo
d02dd47bb1 implemented flyway script to add new entity type 'unset' 2021-09-24 15:13:06 +02:00
Mykhaylo
7140d4ca5c fix failed tests 2021-09-24 13:08:55 +02:00
Mykhaylo
b2996ab784 fix failed tests 2021-09-24 12:47:51 +02:00
Mykhaylo
4a5546fa34 added supported entity types for external providers 2021-09-24 12:28:45 +02:00
Mykhaylo
23ad982a6e fix failed tests 2021-09-24 11:23:47 +02:00
Mark H. Wood
7ce6333ea4 Merge remote-tracking branch 'upstream/main' into DS-3952 2021-09-23 13:53:48 -04:00
Mark H. Wood
8531e22fd4 [DS-3952] Require authenticated PUT, authenticate PUT test, authorize test PUT. 2021-09-23 13:45:51 -04:00
Mark H. Wood
2b61176255 [DS-3952] New request mapping for 32-hex-digit item request tokens, so
requests are dispatchable.

Also remove some voluminous debugging output.
2021-09-23 13:42:36 -04:00
Mykhaylo
5c52a6926f Merge branch 'main' into CST-4469-ItemVersioning 2021-09-23 12:52:13 +02:00
Mykhaylo
dee324762b minor fix 2021-09-23 12:33:11 +02:00
Mark H. Wood
c484bec18f [DS-3952] Implement PUT to accept/deny item requests. Fix errors in IT. 2021-09-22 16:27:10 -04:00
Tim Donohue
4856acde2c RelationshipTypeBuilder is cleaning up more than it should. Place it after ItemBuilder cleanup so that Items are removed prior to RelationshipTypes 2021-09-22 14:39:12 -05:00
Tim Donohue
851161cfd9 General minor code cleanup in ITs 2021-09-22 14:37:15 -05:00
Tim Donohue
6ce49eb332 Fix AuthorizationFeatureServiceIT to extend AbstractControllerIntegrationTest 2021-09-22 14:37:14 -05:00
Tim Donohue
e6fce0778c Ensure CSVMetadataImportReferenceIT cleans up Items that it creates 2021-09-22 14:37:14 -05:00
Tim Donohue
e2a95c49c5 Merge pull request #3063 from mwoodiupui/3061
Fix many warnings from errorprone
2021-09-22 14:26:08 -05:00
Paulo Graça
ecd6510e21 changing mock usage externalservice 2021-09-22 20:16:11 +01:00
Nathan Buckingham
1f552683a7 Remove unecessary deletion 2021-09-22 14:57:24 -04:00
Paulo Graça
26068b0f20 adding openaire funding unit tests 2021-09-22 19:24:54 +01:00
Mykhaylo
84315b93a0 assigne collection entity type to item during submission proccess 2021-09-22 18:09:39 +02:00
Mykhaylo
82ff056681 implemented endpoint that is able to retrieve supported entity types provided an external provider and tests 2021-09-22 18:07:23 +02:00
Andrea Bollini
d25c74f001 Intermediate commit - refactoring to rely on metadata for feature activation and configuration 2021-09-22 18:00:29 +02:00
Corrado Lombardi
c7c7c37a2b [CST-4507] endpoint to find with a single call many authorizations for multiple objects and multiple features 2021-09-22 16:27:50 +02:00
Yura
cb40adaf43 83695: End REST process execution after handling exceptions 2021-09-22 14:33:09 +02:00
Paulo Graça
5366e433bd missing escaping query from getNumberOfResults 2021-09-22 11:30:57 +01:00
Paulo Graça
74e47841f4 add DSpace license 2021-09-22 11:30:05 +01:00
Paulo Graça
77048cbe1d checkstyle fixes 2021-09-22 10:12:54 +01:00
Paulo Graça
6b4261c469 checkstyle fixes 2021-09-22 10:06:56 +01:00
Mykhaylo
a3a1019db7 implemented entityType and externalSources end points and tests 2021-09-21 18:56:39 +02:00
Paulo Graça
812cf1fad5 Merge branch 'main' of https://github.com/DSpace/DSpace into feature-issue2816-openaire-funding-external-lookup 2021-09-21 16:40:59 +01:00
Paulo Graça
ded4f334ec adding integration tests 2021-09-21 16:37:59 +01:00
Mykhaylo
6433df2d9e implemented findSubmitAuthorizedByCommunityAndEntityType end point 2021-09-21 17:33:45 +02:00
Yana De Pauw
189ea97ffb 83661: Fix license issues 2021-09-21 14:47:33 +02:00
Yana De Pauw
ed29084ccb 83661: Port harvest script to scripts and processes 2021-09-21 13:14:14 +02:00
Tyson Lloyd Thwaites
ebd2b89272 Removed processRelationships property 2021-09-21 09:44:42 +10:00
Michael Spalti
09d8981227 Updated javadoc. 2021-09-20 13:59:29 -07:00
Mark H. Wood
e5b23db673 Replace now-ignored test log4j.properties files with log4j2-test.xml. [7935] 2021-09-20 10:54:29 -04:00
Mykhaylo
496bb35eea Implement community feedbacks 2021-09-20 16:37:43 +02:00
Andrea Bollini
276fe2297f Refactor the IIIFRestRepository to avoid inheritance from DSpaceRestRepository 2021-09-20 15:01:28 +02:00
Mark H. Wood
1b366f8b74 Address review comments: missed some isEmpty fixes. [#3061] 2021-09-20 08:55:11 -04:00
Mykhaylo
25cfa7c750 implemented findByEntityType collection end point 2021-09-20 10:00:30 +02:00
Mykhaylo
ef07aabbe1 added tests for findByEntity collection end point 2021-09-20 09:54:47 +02:00
Tim Donohue
ce0c211b57 Merge pull request #7945 from tdonohue/database_force_migrate
Add 'dspace database migrate force' to manually trigger Flyway Callbacks
2021-09-17 12:44:56 -05:00
Michael Spalti
bd6fea1318 Correction to iiif cors configuration. 2021-09-16 14:50:42 -07:00
Michael Spalti
facadf47df Moved default iiif configuration to iiif.cfg. 2021-09-16 14:28:43 -07:00
Tim Donohue
6f27b82aa6 Upgrade to latest PostgreSQL driver 42.2.x and Flyway 6.x 2021-09-16 16:19:38 -05:00
Michael Spalti
5ff3bed4e2 Fixed the canvas identifier in search annotions. 2021-09-16 14:06:14 -07:00
Mark H. Wood
9f463239d2 Address new LGTM alert for removed parameter. (#3061) 2021-09-16 13:23:48 -04:00
Tim Donohue
7ce2a95f6d Merge pull request #7934 from atmire/w2p-83338_Fix-MetadataValue-Move-Patch-operation-bugs
Fix metadata value move patch operation bugs
2021-09-16 11:19:12 -05:00
Mykhaylo
87040d154f fix canDeleteVersion feature bug and removed unused dependency 2021-09-16 17:04:18 +02:00
Mykhaylo
f80ad97d95 added test to show bug in canDeleteVersion feature 2021-09-16 17:01:28 +02:00
Nathan Buckingham
6696cb7c9c Make handle something that could never be ran into 2021-09-16 10:12:46 -04:00
Nathan Buckingham
a5103dbd39 Create setup and destory to cleanup items from test file 2021-09-16 10:00:36 -04:00
Mark H. Wood
106d37404b Fix incorrect merge. (#3061) 2021-09-16 08:41:42 -04:00
Mykhaylo
30e1b076f0 implemented management of entity type in item versioning 2021-09-16 12:35:19 +02:00
Mykhaylo
39bd3aceb5 added test to verify the correct functioning of versioning items with entity type 2021-09-16 12:15:19 +02:00
Michael Spalti
0affa79216 Removed remaining use of generator bean factories. 2021-09-15 16:30:42 -07:00
Michael Spalti
2539800955 Made the search service a configurable plugin. 2021-09-15 16:29:30 -07:00
Mark H. Wood
6013062a08 Merge remote-tracking branch 'upstream/main' into 3061 2021-09-15 16:18:18 -04:00
Tim Donohue
372b9e2ce6 Add 'dspace database migrate force' to manually trigger Flyway Callbacks 2021-09-15 14:33:25 -05:00
Mark H. Wood
66e6e50cab [DS-3952] Catch up with other development. 2021-09-15 15:08:37 -04:00
Mark H. Wood
49485d7667 Merge remote-tracking branch 'upstream/main' into DS-3952 2021-09-15 15:02:24 -04:00
Mark H. Wood
99036178f4 [DS-3952] Check user input for valid email, escape the rest to avoid XSS. 2021-09-15 14:33:01 -04:00
Paulo Graça
b254c8eeea change entry id to a base64 value. A workaround solution for issue #7944 2021-09-15 17:23:14 +01:00
Paulo Graça
db22657e74 Merge branch 'main' of https://github.com/DSpace/DSpace into feature-issue2816-openaire-funding-external-lookup 2021-09-15 16:40:59 +01:00
Nathan Buckingham
2fd4625a7e Rebased main 2021-09-14 14:13:38 -04:00
Mykhaylo
96db8d2afc added javaDocs 2021-09-14 18:29:14 +02:00
Davide Negretti
1a5b7475f4 fixed NPE on item retrieving 2021-09-14 16:21:33 +02:00
Nathan Buckingham
ad148b529e w2p-80200 Added auth comment also run tests again 2021-09-14 10:15:06 -04:00
Nathan Buckingham
fcf077c685 w2p-80200 Remove unecessary comment 2021-09-14 10:15:06 -04:00
Nathan Buckingham
829fc7d112 w2p-80200 Tests for no force export and fix to spy on authorize service 2021-09-14 10:15:04 -04:00
Nathan Buckingham
85cbd4b31f w2p-80200 submodule accidentally pushed 2021-09-14 10:12:43 -04:00
Nathan Buckingham
e1f798fd82 w2p-80200 Add new tests for each dspace object, cleaned up java docs and authrorization inside of create 2021-09-14 10:12:43 -04:00
Nathan Buckingham
cdeb22ed7b Make tests more concise and remove catch blocks 2021-09-14 10:12:43 -04:00
Nathan Buckingham
b24da56ca2 remove left over comment 2021-09-14 10:12:43 -04:00
Nathan Buckingham
22c9b76950 move to dspace-api 2021-09-14 10:12:43 -04:00
Nathan Buckingham
cc63bbe02d quick fix for Item not being initialized 2021-09-14 10:12:43 -04:00
Nathan Buckingham
f0ae18645d Test file for export and import of packager 2021-09-14 10:12:43 -04:00
Chris Wilper
80211961c0 w2p-80200 Begin IT for packager export/import with UUID support 2021-09-14 10:12:43 -04:00
Nathan Buckingham
72fab65012 w2p-80200 Retain UUIDs of DSpace objects when using packager 2021-09-14 10:12:34 -04:00
Mykhaylo
75b6acc9f3 fix pagination bug 2021-09-14 15:21:41 +02:00
Mykhaylo
341c0ae640 added test to verify correct pagination after deleting of version 2021-09-14 15:20:01 +02:00
Mykhaylo
8e50f17248 implemented CanEditVersion feature and tests to to verify proper functioning 2021-09-14 13:24:55 +02:00
Mykhaylo
5aa5485a9c implemented CanDeleteVersion feature and tests to to verify proper functioning 2021-09-14 13:14:30 +02:00
Tim Donohue
d04b8d3881 Merge pull request #7924 from bbranan/registration-email-logging
When sending a user registration email fails, allow the log statement to include full error details
2021-09-13 14:31:34 -05:00
Tim Donohue
4ecc7a1a9a Merge pull request #3357 from mwoodiupui/DS-4548
[DS-4548] Rename DSpace's LogManager to LogHelper.
2021-09-13 14:25:49 -05:00
Mykhaylo
cc62552481 minor fix 2021-09-13 19:11:03 +02:00
Mykhaylo
0b91b40f54 refactored canCreateVersion feature 2021-09-13 17:48:15 +02:00
Mykhaylo
cd053ab9ed added test to verify proper functioning of canCreateVersion feature 2021-09-13 17:47:38 +02:00
Mykhaylo
7cc4b1db77 fix javaDoc 2021-09-13 17:44:02 +02:00
Mykhaylo
4cc3693867 added security on item version link end point 2021-09-13 14:39:35 +02:00
Mykhaylo
c3274d1704 renamed service methods 2021-09-12 14:22:23 +02:00
Mykhaylo
7b3db9da4f added ORDER BY id to sql query 2021-09-11 15:15:00 +02:00
Mykhaylo
25377a639b fix pagination 2021-09-11 13:32:02 +02:00
Mykhaylo
bb020e623a added other tests 2021-09-11 12:51:06 +02:00
Tim Donohue
3150b3c954 Merge pull request #7938 from TexasDigitalLibrary/DS-3919-7x
DS-3919: rename identifier-service-test.xml to identifier-service.xml (7.x)
2021-09-10 16:55:45 -05:00
Mark H. Wood
edd310f536 Address Error Prone complaints about tests. (#3061) 2021-09-10 12:51:24 -04:00
Mark H. Wood
384d46348a Another batch of Error Prone fixes. (#3061) 2021-09-10 11:32:58 -04:00
Mykhaylo
03ad1684cc fix test 2021-09-10 13:21:29 +02:00
Mykhaylo
3e7892df88 refactored version history end point 2021-09-10 13:10:51 +02:00
Mykhaylo
bea710aac6 removed itemVersionHistory link 2021-09-10 12:54:14 +02:00
Mykhaylo
f843cfd26a refactored VersionBuilder 2021-09-10 12:49:51 +02:00
Tim Donohue
1358c9cb3d Merge pull request #7939 from TexasDigitalLibrary/DS-4562-7x
DS-4562: Change maxwait default to 10 seconds (7.x)
2021-09-09 16:04:35 -05:00
nwoodward
2000cdd56b Change maxwait default to 10 seconds 2021-09-09 12:40:32 -05:00
nwoodward
806572c86d rename identifier-service-test.xml to identifier-service.xml 2021-09-09 11:13:18 -05:00
Mark H. Wood
4b96106ea3 Merge remote-tracking branch 'upstream/main' into 3061 2021-09-08 15:52:33 -04:00
Mark H. Wood
948014646a Mention bitstream ID in exception for better debugging. (3061) 2021-09-08 15:40:44 -04:00
Mark H. Wood
20816f945e Log and continue instead of throwing exception when caller stack is empty. 2021-09-08 13:40:53 -04:00
Mark H. Wood
35e280019f Collections.EMPTY_LIST is immutable, possibly causing addBitstream to throw exception. 2021-09-08 13:35:46 -04:00
Mykhaylo
527f7e3658 removed deprecated tests of VersionHistory end point 2021-09-08 18:11:22 +02:00
Mykhaylo
e6c9652883 refactored VersionHistory end point 2021-09-08 18:09:12 +02:00
Tim Donohue
e3ca5b9234 Merge pull request #7933 from tdonohue/IT_fixes
Attempt to fix random ConcurrentModificationExceptions in ITs
2021-09-08 10:48:13 -05:00
Tim Donohue
a3e6ff1b1b Merge pull request #3352 from DSpace/dependabot/maven/org.apache.ant-ant-1.10.11
Bump ant from 1.10.9 to 1.10.11
2021-09-08 09:21:57 -05:00
Mykhaylo
80e34e5349 refactored tests of version end point 2021-09-08 15:36:39 +02:00
Mykhaylo
52bfcafca1 refactored versions end point 2021-09-08 15:35:48 +02:00
Tim Donohue
7e969e1669 Delete groups and people after Collections/Communities, as Comm/Coll groups must be cleaned up first. 2021-09-07 13:48:33 -05:00
Mark H. Wood
f3175d56d5 Merge branch 'main' into 3061 2021-09-07 14:30:20 -04:00
Tim Donohue
4644b1f18c Fix order of Builder cleanup. Ensure all Items are deleted *before* Collections or Communities. 2021-09-07 12:57:29 -05:00
Tim Donohue
77f59cba80 Merge pull request #7926 from 4Science/CST-4482-updateCollectionMetadataOrRemovingTheAdministratorGroupWillNotProduceSolrReindex
update collection metadata or removing the administrator group will not produce solr reindex
2021-09-07 12:56:30 -05:00
Tim Donohue
4f9e9bce7a Merge pull request #2698 from toniprieto/DS-4034-strip-diacritics-master
DS-4034 - The "first few letters" search doesn't work with diacritics (master port)
2021-09-07 12:52:07 -05:00
Tim Donohue
209f25e17c Merge pull request #7931 from alanorth/update-spider-agents
DS-4587: Update spider agents
2021-09-07 11:42:46 -05:00
Tim Donohue
93f4f0935f Merge pull request #3370 from mwoodiupui/3369
o.d.core.AbstractHibernateDAO#uniqueResult has useless pagination arguments
2021-09-07 11:39:42 -05:00
Yura Bondarenko
f0079d7555 83338: Fix moveMetadata index caching issue 2021-09-07 13:51:32 +02:00
Yura Bondarenko
4b23d89727 83338: Add ITs for DSO metadata move operations
This commit should confirm that there's an issue with multi-op metadata move PATCH requests: DSpaceObjectServiceImpl.moveMetadata doesn't keep track of the changed order & messes up subsequent moves
2021-09-07 13:27:17 +02:00
Mykhaylo
4d913ecf36 fix test 2021-09-07 12:34:56 +02:00
Paulo Graça
cb7e51d687 add support for funding source at openaire project form 2021-09-07 11:05:06 +01:00
Mykhaylo
eadadc05d7 fix test 2021-09-07 11:56:27 +02:00
Paulo Graça
70f7c8b5ab renaming properties and improve file documentation 2021-09-07 09:22:20 +01:00
Mykhaylo
e068e94f6d implemented search 'byItemsAndType' end point for RelationshipRest repository 2021-09-06 22:13:50 +02:00
Mykhaylo
5ac2c0325d added tests for search 'byItemsAndType' end point in RelationshipRest repository 2021-09-06 22:12:08 +02:00
Mykhaylo
ab7df25d0c implemented 'byEntityType' end point in RelationshipTypeRestRepository 2021-09-06 21:40:05 +02:00
Mykhaylo
5bb9fce3b6 added tests for RelationshipType 'byEntityType' end point 2021-09-06 21:38:37 +02:00
Paulo Graça
08857aecd2 renaming properties and improve file documentation 2021-09-06 18:11:10 +01:00
Paulo Graça
d8b7c97d86 Merge branch 'main' of https://github.com/DSpace/DSpace into feature-issue2816-openaire-funding-external-lookup 2021-09-06 18:09:22 +01:00
Paulo Graça
0f60fe85ec support openaire4 types registries by default 2021-09-06 18:07:18 +01:00
Paulo Graça
dc1fb643bd remove comment 2021-09-06 18:02:36 +01:00
Mark H. Wood
5fc0f595e6 Increase test coverage. (#2129) 2021-09-06 10:40:05 -04:00
Mark H. Wood
d61539eead Remove unused helper class. (#2129) 2021-09-06 10:38:48 -04:00
Michael Spalti
05ce413ab5 Removed unused import. 2021-09-05 13:41:18 -07:00
Michael Spalti
7f22c91dbc Minor fix in sequence and an implementation comment in the manifest service. 2021-09-05 13:38:50 -07:00
Michael Spalti
813f81b3bc Javadoc updates. 2021-09-04 21:03:06 -07:00
Michael Spalti
5b75e87c7d Fixed runaway sequence. 2021-09-04 18:14:00 -07:00
Michael Spalti
39298006fb Reverted manifest thumbnail image. 2021-09-04 17:34:12 -07:00
Michael Spalti
015f1f2ac9 Fixed IT. 2021-09-04 17:10:46 -07:00
Michael Spalti
618d72b4b9 Updated range and image services. 2021-09-04 17:10:00 -07:00
Michael Spalti
4e8c8769df Service boundary and model updates. 2021-09-04 16:12:09 -07:00
Alan Orth
930d1c8f53 DS-4588: fix case-insensitive spiderdetector test
We should not use the string "FirefOx" to test the validity of our
spider user agent patterns because it is not a valid user agent in
the first place. The Mozilla Firefox browser uses patterns such as
this:

Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0

The test currently matches the following regular expression:

^firefox$

In this case, if a client *did* connect with a single-word string
such as "Firefox" or "firefox" it would definitely be a non-human
user and we should not log a statistics hit.

If the goal of the test is to check *valid* human user agents aga-
inst case-insensitive regular expression matching, then we should
use the following:

mozilla/5.0 (x11; linux x86_64; rv:91.0) gecko/20100101 firefox/91.0

Ported from #3336 to main for DSpace 7.x.
2021-09-04 22:03:43 +03:00
Alan Orth
abad6116cb DS-4587: Update the spider user agent file
This updates the included spider user agent file to the latest from
the COUNTER-Robots project. DSpace's own copy is over five years old
and is missing a bunch of new patterns, which greatly decreases the
accuracy of the Solr usage statistics.

Port of #3333 to main for DSpace 7.x.

See: https://jira.lyrasis.org/browse/DS-4587
See: https://github.com/atmire/COUNTER-Robots/releases/tag/2021-07-05
2021-09-04 21:24:16 +03:00
Andrea Bollini
9dcf2344b4 Merge pull request #2789 from the-library-code/DS-4522_Logical_item_filtering
[DS-4522] Logical item filtering (with DOI implementation)
2021-09-04 08:35:45 +02:00
Michael Spalti
6931b3ef31 Minor comment update. 2021-09-03 14:11:08 -07:00
Mark H. Wood
9dd3026c05 Missing commit broke tests. Tighten up code, #2129 2021-09-03 16:58:06 -04:00
Michael Spalti
7f4f91e979 Updated IT. 2021-09-03 13:44:32 -07:00
Michael Spalti
08ea61f654 Code cleanup with comments and missing license header. 2021-09-03 13:43:16 -07:00
Michael Spalti
e431f1687a Merge branch 'main' into iiif-endpoint 2021-09-03 12:25:40 -07:00
Michael Spalti
3edc34c451 Mostly code improvements with one functional change in how the iiif bundle is chosen. 2021-09-03 12:22:00 -07:00
Tim Donohue
0c75cb1ce9 Merge pull request #7929 from TexasDigitalLibrary/DS-3643-7x
DS-3643: Use correct license on ingest (7.x)
2021-09-03 10:19:12 -05:00
nwoodward
4511b5e9e8 use correct license when one is not supplied 2021-09-03 09:06:33 -05:00
Yura Bondarenko
8e955a75a6 83338: Fix from/to indices 2021-09-03 15:40:12 +02:00
Tyson Lloyd Thwaites
ad0c19230d Abstract relationship lookup into RelationshipUtils 2021-09-03 17:11:47 +10:00
Tyson Lloyd Thwaites
db3d4ed374 always process relationships, less noisy output 2021-09-03 17:10:53 +10:00
Tyson Lloyd Thwaites
0fa5ef914f remove relationships option (always enabled) 2021-09-03 17:07:27 +10:00
Tyson Lloyd Thwaites
3512318ce1 fix checkstyle violations 2021-09-03 17:06:31 +10:00
Michael Spalti
28b4a5fcb3 Modified search service. 2021-09-02 14:21:47 -07:00
Tim Donohue
1123e0b700 Merge pull request #3364 from mwoodiupui/3363
Allow changing an EPerson's password through the CLI
2021-09-02 15:02:02 -05:00
Tim Donohue
f92669c704 Merge pull request #7925 from atmire/Fix-configuration-dependent-ITs
Fix configuration-dependent ITs
2021-09-02 14:59:46 -05:00
Mark H. Wood
76ea271ead Address feedback. #2129 2021-09-02 11:21:47 -04:00
Mykhaylo
981e224fea added event that allow to update solr document of collection and community 2021-09-02 09:55:28 +02:00
Tim Donohue
f7ad55af4c Merge pull request #2438 from the-library-code/DS-4260-dspace7
DS-4260: Remove non-existing command from oai harvester's help
2021-09-01 15:08:11 -05:00
Yura Bondarenko
653a2e7402 Make no assumptions about metadata registry in ITs 2021-09-01 16:10:08 +02:00
Yura Bondarenko
c9e4bb8106 Make no assumptions about configured scripts in ITs 2021-09-01 16:09:39 +02:00
Mykhaylo
16d8e3372b added tests to prove bug of updating collection metadata will not produce a solr reindex 2021-08-31 12:41:47 +02:00
Mark H. Wood
90a23a000a Fix mismatched getter, setter synchronization. 2021-08-30 16:56:09 -04:00
Mark H. Wood
674c3e2607 Remove unnecessary boxing, unread variables. 2021-08-30 16:54:48 -04:00
Bill Branan
c72a289cc8 Updates log statement to include full error details when attempt to send registration email fails
Also fixes a couple typos
2021-08-30 14:24:24 -04:00
Michael Spalti
4491837d54 Moved the iiif cors configuration to separate iiif.cfg config file. 2021-08-26 15:44:40 -07:00
Michael Spalti
cbd37eb722 Updated ITs to work with the new iiif endpoint. 2021-08-26 15:36:37 -07:00
Michael Spalti
0a8cdd5b59 Added logo url to iiif dspace configuration. 2021-08-25 16:07:24 -07:00
Michael Spalti
eff7e11daa Adding configurable log to manifest. 2021-08-25 15:52:26 -07:00
Mark H. Wood
134873c98a Replace array with Queue to avoid index-out-of-bounds, make neater. 2021-08-25 15:26:39 -04:00
Mark H. Wood
48d409d87d Formalize more option parsing. 2021-08-25 14:09:37 -04:00
Michael Spalti
f25b51ae65 Updated java docs. 2021-08-25 10:42:17 -07:00
Mark H. Wood
702a72ffab Replace handmade option parsing with Commons CLI to address LGTM array bounds complaints. 2021-08-25 12:58:27 -04:00
Mark H. Wood
81a7235432 Take up many IDE suggestions. 2021-08-25 10:33:50 -04:00
Mark H. Wood
5bc4d16175 [DS-3952] Add requested CORS, CSRF tests. Fix license header. 2021-08-25 10:10:50 -04:00
Mark H. Wood
6ca754ec6c [DS-3952] Check for required request attributes. 2021-08-25 07:48:15 -04:00
tysonlt
127e427bbe Changes requested in PR 3322 2021-08-25 11:45:20 +10:00
Michael W Spalti
7e02dbb882 Adding IIIF cors configuration. 2021-08-24 16:46:50 -07:00
Tim Donohue
7cb25c6121 Merge pull request #3335 from atmire/DS-3334
Update SWORD and SWORDv2 URL configuration construction
2021-08-24 11:49:36 -05:00
Mark H. Wood
d3c5f0473a Remove un-necessary IllegalArgumentException. #3363 2021-08-24 12:08:22 -04:00
Mark H. Wood
3ce4b592fc Add test for mismatch between password and confirmation. #3363 2021-08-24 11:45:06 -04:00
Mark H. Wood
8bed933d90 Clearer prompts, reject empty password, test for empty password. #3363 2021-08-24 09:40:09 -04:00
Mykhaylo
0816473c41 added check to avoide creating same versioning 2021-08-24 15:20:46 +02:00
Andrew Wood
cc1b1c314a Merge branch 'main' into DS-3334 2021-08-23 11:00:50 -04:00
Andrew Wood
032ffa6b41 DS-3335 Simplify sword url construction 2021-08-23 10:51:30 -04:00
Paulo Graça
16e621928a adding openAIREFunding valitation to IT 2021-08-23 12:05:45 +01:00
Paulo Graça
98015e469b adding openAIREFunding valitation to IT 2021-08-23 11:17:27 +01:00
Mark H. Wood
4da733baa7 Remove useless pagination arguments. #3369 2021-08-20 14:59:00 -04:00
Mykhaylo
fe4332e2ea fix failed tests 2021-08-19 17:55:55 +02:00
Mykhaylo
69e36e7037 implemented linked entities for versionhistory end point 2021-08-19 15:55:31 +02:00
Mykhaylo
bf80dc02f5 [CST-4469] extended versioning end point 2021-08-18 19:10:36 +02:00
Mark H. Wood
6f82111d75 [DS-3952] Address Checkstyle and NetBeans warnings. 2021-08-17 12:44:37 -04:00
Mark H. Wood
ab8499d17b [DS-3952] Don't require authorization. Test this properly. 2021-08-17 12:29:11 -04:00
Mark H. Wood
b59790a156 Add integration test for this feature only. #3363 2021-08-17 11:25:24 -04:00
Paulo Graça
653be5db00 new openaire funding external source feature 2021-08-17 11:44:04 +01:00
Mark H. Wood
dd40f5ff3c Add option to change user's password. #3363 2021-08-13 15:57:52 -04:00
Mark H. Wood
3f06c7e79c Document that EPerson's password, salt and algorithm setters are related. #3363 2021-08-13 15:56:26 -04:00
Mark H. Wood
f58519329e [DS-3952] Improve confusing debug log message. 2021-08-10 17:14:36 -04:00
Yura Bondarenko
6280b76355 81832: Surround getLabel/getVariant calls with try/catch 2021-08-10 09:54:20 +02:00
Yura Bondarenko
816ca59e4c 81832: Don't ignore author fields in discovery authority IT 2021-08-10 09:24:35 +02:00
Mark H. Wood
6926b49fab [DS-3952] Match ISO time zone properly. More informative message on failure. 2021-08-09 09:47:11 -04:00
Mark H. Wood
f435f933ad [DS-3952] Add auth token to request, and replace some deprecated matchers. 2021-08-09 09:27:21 -04:00
Mark H. Wood
8c7ba93913 [DS-3952] Fix incorrect request parameter names that I missed. 2021-08-09 09:26:19 -04:00
Mark H. Wood
c427a2e83f [DS-3952] Fix a broken test. Various cleanups. 2021-08-08 19:12:49 -04:00
Mark H. Wood
596df53d0a [DS-3952] Satisfy checkstyle and license plugins. 2021-08-08 14:51:22 -04:00
Mark H. Wood
8a3d23f2dd [DS-3952] More thorough Matcher, and new date matching. 2021-08-08 14:35:48 -04:00
Mark H. Wood
546efa1c8b [DS-3952] Move test back to integration, tidy, remove commented tests.
Making this one quick test into a unit test would take a lot of
stubbing and just isn't worth the effort.
2021-08-08 14:33:40 -04:00
Mark H. Wood
5f5bc3641e [DS-3952] Align property names with contract; implement POST rather than PUT. 2021-08-08 14:32:15 -04:00
Mark H. Wood
670e453286 [DS-3952] Move some tests from integration to unit testing. 2021-08-08 14:11:03 -04:00
Mark H. Wood
1e194db05b [DS-3952] Correct builder cleanup priority; remove remnant of old priority system. 2021-08-08 14:07:32 -04:00
Mark H. Wood
2fae54bfac [DS-3952] More SLF4J -> Log4Jv2 catch-up. 2021-08-08 14:06:42 -04:00
Mark H. Wood
ad4610d49f [DS-3952] Add RequestItemBuilder to the clean-up sequence. 2021-08-08 14:00:52 -04:00
Mark H. Wood
0ccfba6a1a [DS-3952] Catch up with switch to Log4J v2 -- replace SLF4J. 2021-08-08 13:58:42 -04:00
Mark H. Wood
f80546b6d7 [DS-3952] Remove unused setup/teardown; more documentation; correct assertion. 2021-08-08 13:58:38 -04:00
Mark H. Wood
09b066ca91 [DS-3952] Move request deletion from test to main. 2021-08-08 13:56:15 -04:00
Mark H. Wood
6fa5bf6548 [DS-3952] Drop dangling references that caused unfortunate coupling
with following test classes.
2021-08-08 13:54:54 -04:00
Mark H. Wood
c063434e01 [DS-3952] Fix what the tests say was broken. 2021-08-08 13:53:19 -04:00
Mark H. Wood
10dde35631 [DS-3952] Work around NPE problem in RequestItem: ensure that accept_request is set. 2021-08-08 13:40:18 -04:00
Mark H. Wood
a37c658931 [DS-3952] Debug the integration tests (unfinished). 2021-08-08 13:40:13 -04:00
Mark H. Wood
e1986ad678 [DS-3952] Switch to Spring proprietary annotations, and other cleanup. 2021-08-08 11:41:10 -04:00
Mark H. Wood
1b98d735df [DS-3952] Run test with full privileges. 2021-08-08 11:38:53 -04:00
Mark H. Wood
797e998739 [DS-3952] Use service from superclass, tighten code. 2021-08-08 11:38:53 -04:00
Mark H. Wood
fae1c5622d [DS-3952] AbstractBuilder should know about RequestItem since there is a builder for it now. 2021-08-08 11:38:46 -04:00
Mark H. Wood
1590e72f0f [DS-3952] Begin building integration tests. 2021-08-08 11:31:43 -04:00
Mark H. Wood
619e6d4eac [DS-3952] Throw a somewhat specific exception if we cannot store a request. 2021-08-08 11:10:00 -04:00
Mark H. Wood
7751b5c75f [DS-3952] Satisfy checkstyle again.
I think I have my IDE configured properly for this now.
2021-08-08 11:09:54 -04:00
Mark H. Wood
7e1bf53b40 [DS-3952] Replace standard @Inject with Spring-proprietary @Autowired for consistency. 2021-08-08 11:07:07 -04:00
Mark H. Wood
0a1babdb54 [DS-3952] First try at writability, untested. 2021-08-08 11:04:15 -04:00
Mark H. Wood
5048105cf6 [DS-3952] Conform better to established endpoint naming conventions. 2021-08-08 11:04:14 -04:00
Mark H. Wood
48dd36f165 [DS-3952] Conform to endpoint naming requirements. 2021-08-08 11:04:10 -04:00
Mark H. Wood
b3a40c198c [DS-3952] Use injected converters instead of creating ephemeral instances; rename methods for consistency with other REST code. 2021-08-08 11:02:41 -04:00
Mark H. Wood
de358067b8 [DS-3952] Fix style errors. 2021-08-08 10:55:05 -04:00
Mark H. Wood
16031a5637 [DS-3952] Better, fuller annotations; better documentation. 2021-08-08 10:52:46 -04:00
Mark H. Wood
8febfa479d [DS-3952] First attempt. It compiles. 2021-08-08 10:46:52 -04:00
Tim Donohue
d9a04c26fd Merge pull request #3360 from tdonohue/licenses_third_party_updates
Updates to LICENSES_THIRD_PARTY file after 7.0 release
2021-08-06 11:51:45 -05:00
Tim Donohue
9cf5687ceb More minor LICENSES_THIRD_PARTY cleanup 2021-08-06 11:11:11 -05:00
Tim Donohue
f68fb37530 Cleanup of LICENSES_THIRD_PARTY by improving grouping of licenses 2021-08-06 11:03:45 -05:00
Mark H. Wood
9d1f526a5a Fix other case of calling Pattern.matcher() twice. #3287 2021-08-05 13:55:21 -04:00
Mark H. Wood
ee82706708 [DS-4548] More Checkstyle fixes. 2021-08-04 15:13:51 -04:00
Mark H. Wood
453b0b2cdf [DS-4548] Fix test failure: break circular dependency between DSpacePermissionEvaluator and ConverterService.
Also fix missing versions in deprecated dspace-rest POM.
2021-08-04 14:59:56 -04:00
Mark H. Wood
7c42e17883 [DS-4548] Fix forgotten disabled dspace-rest subproject. 2021-08-04 13:06:05 -04:00
Mark H. Wood
f4b1e4b2ff [DS-4548] Satisfy Checkstyle. 2021-08-04 12:02:21 -04:00
Mark H. Wood
b43e5dfdd8 [DS-4548] Rename DSpace's LogManager to LogHelper. 2021-08-04 11:41:18 -04:00
Tim Donohue
68f38fcdff Merge pull request #3355 from tdonohue/minor_code_cleanup
Minor code cleanup: Remove references to BTE, XMLUI and JSPUI
2021-08-03 10:13:58 -05:00
Mark H. Wood
a8de4b3976 Satisfy checkstyle. #3287 2021-08-03 10:45:20 -04:00
Mark H. Wood
aa77a4277b Add commented default value to DSpace configuration. #3278
Tidy javadoc, make configuration default easier to find.
2021-08-03 10:21:18 -04:00
Mark H. Wood
83371b4483 Make the canonical DOI URL schema+authority configurable. #3287 2021-08-02 18:16:30 -04:00
Tim Donohue
377542697c Cleanup a few more instances of JSPUI/XMLUI 2021-08-02 16:56:33 -05:00
Tim Donohue
e6898ddf77 Minor code cleanup. Remove any references to BTE, XMLUI and JSPUI from 7.x codebase 2021-08-02 16:48:54 -05:00
Mark H. Wood
f41b91d9de Finish documenting DOIService. 2021-08-02 16:33:59 -04:00
dependabot[bot]
7e7bee02d2 Bump ant from 1.10.9 to 1.10.11
Bumps ant from 1.10.9 to 1.10.11.

---
updated-dependencies:
- dependency-name: org.apache.ant:ant
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-02 16:57:14 +00:00
Michael Spalti
03df905290 Removed unused import. 2021-08-01 17:10:41 -07:00
Michael Spalti
0f9686f756 Added missing license header. 2021-08-01 12:23:59 -07:00
Michael Spalti
8acbab766d Added 3rd party licenses. 2021-08-01 12:23:38 -07:00
Michael Spalti
faa34e4b42 Merge branch 'main' into iiif-endpoint 2021-07-30 14:41:29 -07:00
Tim Donohue
3d9df39231 [maven-release-plugin] prepare for next development iteration 2021-07-29 14:09:30 -05:00
Tim Donohue
69345ff3fc [maven-release-plugin] prepare release dspace-7.0 2021-07-29 14:09:20 -05:00
Tim Donohue
af6ce04ba7 Update LICENSE files. Update POM for latest dspace-api-lang 2021-07-29 12:05:06 -05:00
Tim Donohue
70fa6aea84 Updates to README for 7.0 2021-07-29 11:31:26 -05:00
Andrew Wood
fc8f12f198 DS-3334 Update SWORD and SWORDv2 URL configuration construction 2021-07-22 14:04:33 -04:00
Tim Donohue
5e4743779a Merge pull request #3311 from DSpace/dependabot/maven/org.eclipse.jetty-jetty-server-9.4.41.v20210516
Bump jetty-server from 9.4.38.v20210224 to 9.4.41.v20210516
2021-07-21 10:23:50 -05:00
Tim Donohue
61303cdd2c Merge pull request #3316 from DSpace/dependabot/maven/dspace-rest/org.springframework.security-spring-security-core-5.3.10.RELEASE
Bump spring-security-core from 5.3.9.RELEASE to 5.3.10.RELEASE in /dspace-rest
2021-07-21 09:56:40 -05:00
dependabot[bot]
3d0af1d6cb Bump jetty-server from 9.4.38.v20210224 to 9.4.41.v20210516
Bumps [jetty-server](https://github.com/eclipse/jetty.project) from 9.4.38.v20210224 to 9.4.41.v20210516.
- [Release notes](https://github.com/eclipse/jetty.project/releases)
- [Commits](https://github.com/eclipse/jetty.project/compare/jetty-9.4.38.v20210224...jetty-9.4.41.v20210516)

---
updated-dependencies:
- dependency-name: org.eclipse.jetty:jetty-server
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-21 14:13:23 +00:00
dependabot[bot]
685539ee76 Bump spring-security-core in /dspace-rest
Bumps [spring-security-core](https://github.com/spring-projects/spring-security) from 5.3.9.RELEASE to 5.3.10.RELEASE.
- [Release notes](https://github.com/spring-projects/spring-security/releases)
- [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc)
- [Commits](https://github.com/spring-projects/spring-security/compare/5.3.9.RELEASE...5.3.10.RELEASE)

---
updated-dependencies:
- dependency-name: org.springframework.security:spring-security-core
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-07-21 14:12:43 +00:00
Tim Donohue
dad5e0855f Merge pull request #3294 from atmire/w2p-79734_Search-endpoint-to-find-bitsreams-of-item
Search endpoint to find bitstreams with item handle and bitstream name or sequence
2021-07-21 09:09:56 -05:00
Tim Donohue
960dca862b Merge pull request #3303 from 4Science/issue-3244
Improve logging of REST request adding MDC
2021-07-20 09:48:49 -05:00
Tim Donohue
94e18cbf12 Merge pull request #3321 from tdonohue/fix_pagination_count
Fix `/api/core/items` endpoint's `totalElements` count to avoid empty pages at end
2021-07-16 13:34:24 -05:00
Tim Donohue
065514b5f3 Add tests to prove Workflow Items and Template Items are also not counted/listed 2021-07-16 12:15:20 -05:00
Tim Donohue
5030ccd38f Merge pull request #3318 from 4Science/CST-4385-CanManageMappingsFeaturesometimesDoesNotRespondAsExpected
CanManageMappingsFeature sometimes does not respond as expected
2021-07-15 15:14:02 -05:00
Tim Donohue
6f82c79d2c Merge pull request #3293 from atmire/w2p-79618_bugfix-access-control-section-is-visible-to-non-admin-users-1124
New authorization feature - canManageGroup
2021-07-15 13:18:34 -05:00
tysonlt
16ffffc3a7 fix checkstyle violations 2021-07-15 11:32:13 +10:00
Marie Verdonck
a4dabade79 PR#3293: Check if group com/col admin can access starts with COLLECTION_ or COMMUNITY_ 2021-07-14 19:49:03 +02:00
Marie Verdonck
1d97bdeae8 PR#3293: Comment pointing to #3323 & special group check altered to use group name instead of requiring DB query to retrieve group 2021-07-14 17:49:49 +02:00
Luca Giamminonni
813dd05b75 Added missing escape in log4j2.xml and added logging.server.include-after-request property 2021-07-14 11:51:02 +02:00
tysonlt
a81a6005c0 Merge branch 'import_relationships' of https://github.com/tysonlt/DSpace into import_relationships 2021-07-14 15:14:36 +10:00
tysonlt
a9f339724c tweak comments and progress message 2021-07-14 15:14:21 +10:00
tysonlt
c01eb80f12 Merge branch 'DSpace:main' into import_relationships 2021-07-14 13:36:41 +10:00
tysonlt
e53ed6151a lookup relationship by type, allow entity lookup by meta 2021-07-14 13:01:03 +10:00
Tim Donohue
29eb77d511 Merge pull request #3320 from DSpace/issue3319-openaire-orgunit-relation
replacing relation with isFundingAgencyOfProject
2021-07-13 14:56:34 -05:00
Marie Verdonck
a3b2f69c56 PR#3294: Stop search after first matching bitstream found 2021-07-13 21:49:07 +02:00
Marie Verdonck
88b13f2935 PR#3294: Unused services removed 2021-07-13 21:01:43 +02:00
Marie Verdonck
d22b1e7a1a PR#3294: Return first bitstream at /bitstreams/search/byItemHandle regardless on whether or not permission to view + IT adjusted 2021-07-13 20:49:34 +02:00
Luca Giamminonni
a18dfed6c4 Logs improvements 2021-07-13 16:32:39 +02:00
tysonlt
4972ee3f98 populate item map with skipped items 2021-07-13 14:54:48 +10:00
tysonlt
2455171a58 support multiple relationships of the same type 2021-07-13 14:06:47 +10:00
tysonlt
c35fba249a allow item lookup by uuid, handle, or import folder name 2021-07-13 13:33:18 +10:00
tysonlt
a1a77b5492 added support for 'relationships' manifest 2021-07-13 13:03:34 +10:00
Tim Donohue
025c7a8c78 Fix total to only include archived items. 2021-07-12 16:00:02 -05:00
Tim Donohue
b60b76d29e Add test to prove pagination total is incorrect when WorkspaceItem(s) exist. 2021-07-12 15:35:57 -05:00
Tim Donohue
bdbbb999b7 Merge pull request #3314 from tdonohue/minor_it_fixes
Minor improvements to AuthenticationRestControllerIT for integration test stability
2021-07-12 09:40:01 -05:00
Tim Donohue
0237d4a5b1 Merge pull request #3265 from 4Science/CST-4121-MakeDiscoveryMoreResilientToStaleObjects
Make discovery more resilient to stale objects
2021-07-12 08:46:46 -05:00
Kim Shepherd
75c93601f8 [DS-4522] Clean up unused import 2021-07-12 13:38:18 +12:00
Kim Shepherd
4d33fb706c [DS-4522] Add a metadata match test to test for field that item doesn't contain 2021-07-12 13:19:15 +12:00
Kim Shepherd
2e6552c0c9 [DS-4522] Refactor skipFilter Boolean -> boolean (primitive) as per review 2021-07-12 13:05:19 +12:00
Kim Shepherd
713469cd80 [DS-4522] Removed operator test null item references and comments as per review 2021-07-12 12:44:10 +12:00
Michael Spalti
851bca30e3 Merge branch 'main' into iiif-endpoint 2021-07-11 06:55:13 -07:00
Michael Spalti
44de2ec5a3 Added IIIF bundle to solr stats. 2021-07-11 06:54:03 -07:00
Michael Spalti
a203d942ee Updated info models. 2021-07-11 06:53:00 -07:00
Michael Spalti
cbcf8c305e Updated cache path. 2021-07-11 06:52:16 -07:00
Michael Spalti
0a01826c4e Updated cache config and renamed classes. 2021-07-11 06:50:17 -07:00
Paulo Graça
3f69a4452c replace funder name with the proper schema 2021-07-09 10:58:02 +01:00
Paulo Graça
1981f672a5 replacing relation with isFundingAgencyOfProject 2021-07-09 10:46:02 +01:00
Mykhaylo
d239e862a7 fix CanManageMappingsFeature 2021-07-06 12:32:09 +02:00
Mykhaylo
7ac940bb38 added test that prove wrong functionality of CanManageMappingsFeature 2021-07-06 12:19:09 +02:00
Bruno Roemers
a19464d395 79618: Add license header 2021-07-05 12:50:16 +02:00
Bruno Roemers
646378cf6f 79618: Implement ManageGroupFeature 2021-07-05 12:50:16 +02:00
Bruno Roemers
a1019e02d8 79618: Create ManageGroupFeatureIT 2021-07-05 12:50:16 +02:00
Bruno Roemers
2ac78607e9 79618: Add generics 2021-07-05 12:50:16 +02:00
Yana De Pauw
e0f4484bbe Add comment 2021-07-02 13:39:41 +02:00
Yana De Pauw
2907b6c11a Merge remote-tracking branch 'upstream/main' into w2p-79734_Search-endpoint-to-find-bitsreams-of-item 2021-07-02 13:22:41 +02:00
Tim Donohue
87bb9e44f0 Merge pull request #3309 from atmire/w2p-80217_Link-to-item-thumbnail
Add endpoints for Item/Bitstream thumbnails
2021-06-30 13:56:31 -05:00
Andrea Bollini
25b4a19272 Merge branch 'main' of https://github.com/DSpace/DSpace into issue-3244 2021-06-26 17:27:26 +02:00
Tim Donohue
0297874d7d Minor IT improvements for stability. Ensure each test which logs in also logs out at the end. 2021-06-25 11:53:15 -05:00
Tim Donohue
cbed1b4768 Merge pull request #3313 from tdonohue/fix_jaxb_error
Fix JAXB build errors by disabling package annotations.
2021-06-25 11:52:23 -05:00
Tim Donohue
a4ac12e616 Fix JAXB build errors by disabling package annotations. Also make sure these classes are annotated as @Generated 2021-06-25 11:15:34 -05:00
Mykhaylo
32223c3c2c Merge branch 'main' into CST-4121-MakeDiscoveryMoreResilientToStaleObjects 2021-06-25 13:22:32 +02:00
Yura Bondarenko
c8b98f4061 Remove stray comment 2021-06-25 08:12:03 +02:00
Yura Bondarenko
fc4f64982a 80218: Expand thumbnail endpoint ITs 2021-06-25 08:12:03 +02:00
Yura Bondarenko
ef070612fa 80218: Fix leftover 'item's in BitstreamThumbnailLinkRepository 2021-06-25 08:12:03 +02:00
Yura Bondarenko
2ab5f6edb7 80218: Add ITs for bitstream thumbnail endpoint 2021-06-25 08:12:03 +02:00
Yura Bondarenko
47536c007d 80218: Implement bitstream thumbnail endpoint 2021-06-25 08:12:03 +02:00
Yura Bondarenko
b5f49f87bf 80218: Add BitstreamService#getThumbnail 2021-06-25 08:12:03 +02:00
Yura Bondarenko
bb797f7822 80217: Add ITs for item thumbnail endpoint 2021-06-25 08:12:03 +02:00
Yura Bondarenko
b3abbb525d 80217: Implement item thumbnail endpoint 2021-06-25 08:12:03 +02:00
Tim Donohue
02f84b4727 Merge pull request #3308 from atmire/w2p-80239_PDFBoxThumbnail-fix
W2p 80239 pdf box thumbnail fix
2021-06-24 16:59:01 -05:00
Mark H. Wood
d02827019b [DS-4478] Ported from 6_x to main. 2021-06-24 13:46:01 -04:00
Mark H. Wood
c36a901170 Merge remote-tracking branch 'upstream/main' into DS-4118
Catch up with changes to Github checks.
2021-06-24 11:33:18 -04:00
Tim Donohue
b6c7c75711 Merge pull request #3301 from tdonohue/upload-test-logs
Update our GitHub CI settings to upload all test output to a downloadable artifact whenever a test failure occurs.
2021-06-24 10:32:09 -05:00
Mark H. Wood
d4dd979326 Merge remote-tracking branch 'upstream/main' into DS-4118 2021-06-24 11:31:32 -04:00
Tim Donohue
4d65a2bff2 Merge pull request #3157 from mwoodiupui/DS-2058-7x
Implement curation tasks for Configurable Workflow
2021-06-24 10:26:30 -05:00
Tim Donohue
508c231f65 Merge pull request #3307 from tdonohue/remove_cacheprovider
Remove unimplemented interface CacheProvider and all references to it
2021-06-23 16:39:02 -05:00
Mykhaylo
44a7d9bd95 Implement community feedbacks 2021-06-23 17:59:21 +02:00
Tim Donohue
b6c43ae295 Add warning for production 2021-06-23 10:54:37 -05:00
Tim Donohue
5e640d2bb8 Add warning about production 2021-06-23 10:53:47 -05:00
Mark H. Wood
d83c7b7151 [DS-2058] A little more documentation touch-up. 2021-06-23 11:16:17 -04:00
Mark H. Wood
53738acf0b [DS-2058] Improve documentation as requested. 2021-06-23 10:58:49 -04:00
Tim Donohue
0cfe4d0686 Merge pull request #3304 from tdonohue/search_scope_null
Searches without a scope can trigger "Invalid UUID" error from ScopeResolver
2021-06-23 09:43:36 -05:00
Tim Donohue
62d3b850d8 Remove unimplemented interface CacheProvider and all references to it 2021-06-22 17:02:40 -05:00
Tim Donohue
418911e890 Merge pull request #3295 from DSpace/dependabot/maven/org.apache.httpcomponents-httpclient-4.5.13
Bump httpclient from 4.5.1 to 4.5.13
2021-06-22 15:41:47 -05:00
Tim Donohue
9ecfe40f41 Properly handle a null scope 2021-06-22 08:52:56 -05:00
Yura Bondarenko
a0a4ff148f Merge branch 'main' into w2p-80239_PDFBoxThumbnail-fix 2021-06-22 10:41:31 +02:00
Andrea Bollini
69c0d9cfd2 Improve logging of REST request adding MDC 2021-06-21 22:52:48 +02:00
Tim Donohue
73c809aeaa Merge pull request #3264 from 4Science/CST-4122-ExposewWithdrawnItemsToAnonymousUsersFilteringOutTheMetadata
Need a way to identify withdrawn items via REST API
2021-06-21 14:43:10 -05:00
Tim Donohue
36aa148764 Merge pull request #3297 from tdonohue/make_thumbnails_larger
Increase default thumbnail size to match with UI display settings
2021-06-21 11:04:43 -05:00
Andrea Bollini
5714a5eeff Cleanup code and add IT for the case discovery.removestale.attempts = 0 2021-06-21 17:03:52 +02:00
Tim Donohue
863282f296 Merge pull request #3300 from atmire/w2p-78245_Bugfix-to-UsageReportRestPermissionEvaluatorPlugin
Bugfix to usage report rest permission evaluator plugin
2021-06-17 15:08:33 -05:00
Tim Donohue
36853f8bc2 Only create Artifacts if a test fails 2021-06-17 12:16:15 -05:00
Tim Donohue
2d0757679e Upload test reports to workflow artifact for easier debugging of issues. 2021-06-17 11:49:56 -05:00
Mykhaylo
ca9d6c4a0a added description about new permission type STATUS 2021-06-17 14:59:54 +02:00
Mykhaylo
c2d8e9c328 Merge branch 'main' into CST-4122-ExposewWithdrawnItemsToAnonymousUsersFilteringOutTheMetadata 2021-06-17 14:52:21 +02:00
Tim Donohue
77296d4848 Merge pull request #3271 from DSpace/dependabot/maven/dspace-rest/org.springframework.security-spring-security-web-5.3.9.RELEASE
Bump spring-security-web from 5.3.3.RELEASE to 5.3.9.RELEASE in /dspace-rest
2021-06-16 15:48:58 -05:00
Tim Donohue
a1816e2054 Merge pull request #3298 from DSpace/dependabot/maven/org.apache.pdfbox-pdfbox-2.0.24
Bump pdfbox from 2.0.15 to 2.0.24
2021-06-16 15:32:56 -05:00
Tim Donohue
ab0bfb54e5 Create a SECURITY.md to document security policies 2021-06-16 12:02:34 -05:00
Tim Donohue
a250efd99c Merge pull request #3288 from 4Science/DSC-74-CanNotSaveMoreThanOneBitstreamAccessConditionsDuringSubmission
Can't save more than one bitstream's access conditions during submission
2021-06-15 14:28:54 -05:00
dependabot[bot]
06653a2db5 Bump pdfbox from 2.0.15 to 2.0.24
Bumps pdfbox from 2.0.15 to 2.0.24.

---
updated-dependencies:
- dependency-name: org.apache.pdfbox:pdfbox
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-15 15:55:35 +00:00
Tim Donohue
9140161954 Increase default thumbnail size to match with UI settings 2021-06-14 15:12:11 -05:00
Tim Donohue
128ef676b4 Merge pull request #3277 from atmire/w2p-79369_fix-error-when-permanently-deleting-item-as-collection-admin
Delete item as collection admin & related issues
2021-06-11 15:40:12 -05:00
Tim Donohue
d72029a07c Merge pull request #2756 from 4Science/DS-4149_7-x
[DS-4149] porting XOAI additional indexer
2021-06-11 14:30:18 -05:00
Mark H. Wood
13787c3a48 [DS-2058] Tidy up for Checkstyle. 2021-06-08 19:36:43 -04:00
Mark H. Wood
34bdf090f1 [DS-2058] Test with the first non-default workflow as stated, not the last. 2021-06-08 16:31:18 -04:00
Mark H. Wood
cbabb94887 [DS-2058] Document the CollectionBuilder. 2021-06-08 16:30:14 -04:00
Mark H. Wood
bda2a992fa [DS-2058] Remove now-unused injected attribute. 2021-06-08 13:56:25 -04:00
Mark H. Wood
2eb9f5d865 [DS-2058] Remove a missed added attribute, once again unused.
Some harmless cleanups remain, contrary to previous commit's comment.
2021-06-08 13:52:54 -04:00
Mark H. Wood
771368c4e0 [DS-2058] Avoid index out of bounds when no tasks match.
Also remove incorrect unit test.
2021-06-08 13:22:03 -04:00
Mark H. Wood
9c22e707a4 [DS-2058] workflow-curation has a declared namespace now. 2021-06-08 12:42:33 -04:00
Mark H. Wood
79e5aa10d5 [DS-2058] Fix misbehavior that was found in testing. 2021-06-08 09:07:48 -04:00
Mark H. Wood
aacb052856 [DS-2058] Curator should not NPE if someone forgot to set a Reporter. 2021-06-08 09:06:15 -04:00
Mark H. Wood
b980585557 [DS-2058] Finish removing workflow curation test from dspace-server-webapp.
This should completely revert the changes made to this artifact for workflow
curation.
2021-06-08 09:04:23 -04:00
Mark H. Wood
2eea17c63b [DS-2058] Move workflow curation testing to dspace-api since it has no essential connection with REST.
This patch duplicates the Spring/JUnit initializer classes from
dspace-server-webapp.  We should share a single set.  Possibly they should
live in dspace-services where the fundamental Spring support is found.
2021-06-08 09:00:30 -04:00
Mark H. Wood
7cc969829d [DS-2058] MarkerTask should be in a curation tasks directory. 2021-06-07 13:52:01 -04:00
Mark H. Wood
d43d686f01 [DS-2058] Extend and improve documentation. 2021-06-04 14:23:13 -04:00
dependabot[bot]
5eb2c519f4 Bump httpclient from 4.5.1 to 4.5.13
Bumps httpclient from 4.5.1 to 4.5.13.

---
updated-dependencies:
- dependency-name: org.apache.httpcomponents:httpclient
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-03 23:55:36 +00:00
Tim Donohue
71fb39edc9 Merge pull request #3280 from atmire/DS-3230_Browse-by-author-broken-if-author-name-has-special-character
Values escaped in browse and discover links
2021-06-03 10:28:12 -05:00
Tim Donohue
c8d38799cc Merge pull request #3285 from DSpace/fix-license-bitstream-format-description
Update license Bitstream format description
2021-06-03 10:26:11 -05:00
Marie Verdonck
30ef02d14b 79734: IT fix publicItem-embargoBitstream & refactor to avoid reusing metadata_read access on bitstream check code 2021-06-03 09:39:06 +02:00
Yana De Pauw
6feb960881 79734: Search endpoint to find bitstreams of item with item handle and sequenceID or fileName - Issue #1147 2021-05-31 17:09:18 +02:00
Mykhaylo
4953b2d56f fix bug with multi accessCondition# 2021-05-28 13:42:55 +02:00
Mykhaylo
b0e0b21bba added test to prove bug with multi accessCondition 2021-05-28 13:41:16 +02:00
benbosman
ef0723b9cf Merge branch 'DSpace:main' into w2p-78245_Bugfix-to-UsageReportRestPermissionEvaluatorPlugin 2021-05-28 12:20:23 +02:00
Samuel
d38c2e01dc DS-3230 Browse by author broken if author name has special character - use generic test names 2021-05-28 11:21:20 +02:00
Tim Donohue
ebd54fffd0 Merge pull request #3273 from tdonohue/proxy_config
Add better support for http proxying to Spring Boot
2021-05-27 08:38:31 -05:00
yura bondarenko
68ca8e380d Update license Bitstream format description 2021-05-27 15:32:01 +02:00
Andrea Bollini
0ad13bdf5f Fix plugins retrieval and bitstreams url link (issue - 3284) 2021-05-27 00:08:09 +02:00
Andrea Bollini
abe4e6996a cleanup the generation of the oaire:licenseCondition element 2021-05-26 19:25:35 +02:00
Andrea Bollini
2d2a4a77b2 Merge branch 'main' of https://github.com/DSpace/DSpace into DS-4149_7-x 2021-05-26 18:19:49 +02:00
Tim Donohue
367a8ab621 Merge pull request #3283 from mwoodiupui/3282
UI/REST linkage configuration is too sensitive to details that should be insignificant.  #3282
2021-05-26 10:25:43 -05:00
Mark H. Wood
b217d85125 Warn not to put trailing slashes on service URI stems. #3282 2021-05-26 10:47:49 -04:00
Mark H. Wood
63883e4123 [DS-2058] WIP: new test for workflow curation. 2021-05-26 09:53:16 -04:00
Mark H. Wood
b45612cadc [DS-2058] Attempt to curate workflow tasks in *all* the right places.
Workflow curation should happen at entry to a step, *before* looking for
manual tasks to send to reviewers.

Previous refactoring has split the old code into two pieces, so duplicate
the curation code to cover entry to the workflow as well as advancement
between steps.
2021-05-26 09:49:29 -04:00
Mykhaylo
2a66d68a1a added READ permission 2021-05-26 00:07:19 +02:00
Mykhaylo
64a3cc4276 Merge branch 'main' into CST-4122-ExposewWithdrawnItemsToAnonymousUsersFilteringOutTheMetadata 2021-05-25 17:45:34 +02:00
Mykhaylo
ceab663828 refactored tests 2021-05-25 16:55:35 +02:00
Mykhaylo
f549e74917 added new DSpaceRestPermission value STATUS to manage withdrawn items 2021-05-25 16:53:44 +02:00
Tim Donohue
0f927d71e0 Merge pull request #3278 from atmire/w2p-79535_bugfix-add-index-discovery-command-to-help
Add commands from script service to CLI help
2021-05-24 16:41:40 -05:00
Mark H. Wood
6d387abcb2 [DS-2058] Write, improve documentation of workflow classes in hope of understanding them better.
I suspect that in org.dspace.xmlworkflow.state.Step the word "valid" means
"conditions for transition to a different step are satisfied" or, more
concisely, "completed".
2021-05-24 12:31:33 -04:00
Tim Donohue
6f8ec029ec Merge pull request #3276 from atmire/w2p-79371_Cannot-export-metadata-csv-from-collection
Export metadata script (-i) param accepts UUID
2021-05-24 11:22:33 -05:00
Mykhaylo
f089a5258c minor refactoring 2021-05-20 16:23:39 +02:00
Samuel
a1906e83b3 DS-3230 Browse by author broken if author name has special character - repair broken tests 2021-05-20 15:52:02 +02:00
Samuel
a47f8d9476 DS-3230 Browse by author broken if author name has special character - fix 2021-05-20 13:01:55 +02:00
Samuel
8795a568e6 DS-3230 Browse by author broken if author name has special character - add tests 2021-05-20 13:01:43 +02:00
Mykhaylo
10a420605f added test to prove functionality of new parameter that disables Solr to remove stale objects 2021-05-20 11:00:52 +02:00
Mykhaylo
b42576bc89 Implement community feedbacks 2021-05-20 10:55:17 +02:00
Bruno Roemers
8a00082fec 79535: Add commands from script service to CLI help 2021-05-19 12:53:03 +02:00
Mykhaylo
b37e113249 Merge branch 'main' into CST-4121-MakeDiscoveryMoreResilientToStaleObjects 2021-05-19 11:33:05 +02:00
Bruno Roemers
01f0eb8c74 79369: Revert to 404
Are the 401 and 403 with non-admin tokens expected?
2021-05-18 19:20:23 +02:00
Bruno Roemers
a44894b733 79369: Fix test that failed because commit a105b4a7e5
It seems that the original behavior of BundleServiceImpl#delete was buggy,
because the bitstreams were being deleted despite the ORIGINAL bundle of
the item still holding a reference to it.
2021-05-18 19:02:41 +02:00
Bruno Roemers
8bee98dc97 79369: Add deleteOneArchivedTestAsOtherCollectionAdmin
Also fixed a typo that was present in the upstream code.
TODO: check if the resulting status change is expected.
2021-05-17 17:26:27 +02:00
Bruno Roemers
b349c303f8 79369: Fix RelationshipDeleteRestRepositoryIT
Also added two new tests to check the abilities of collection admins.
2021-05-17 16:41:27 +02:00
Michael Spalti
0fad27535a Merge branch 'main' into iiif-endpoint 2021-05-16 16:33:15 -07:00
Michael Spalti
77bed7571c Added trackPages parameter to solr query that was introduced in solr-ocrhighlighing v 0.6.0.
This version was released 5 days ago and is not yet available via Maven.
2021-05-16 10:28:15 -07:00
Mark H. Wood
ff4689e777 [DS-2058] Create a namespace for workflow-curation so my IDE can validate curation configurations. 2021-05-16 13:01:48 -04:00
Mark H. Wood
785cd007b4 [DS-2058] Less restrictive, more nearly correct Handle regex for workflow configuration. 2021-05-15 07:23:24 -04:00
Mark H. Wood
80158fc875 [DS-2058] More documentation, small cleanups. 2021-05-15 07:19:29 -04:00
Mark H. Wood
1585bcb268 [DS-2058] Merge curation test workflow into main workflow test configuration. 2021-05-15 07:16:51 -04:00
Tim Donohue
d6b66dbaaa Enable server.forward-headers-strategy by default and move to application.properties 2021-05-13 14:27:18 -05:00
Mark H. Wood
0e0ce0479c [DS-2058] Rename message to match the class that uses it.
Also create a new message and stop using Workflow message in DSO classes.
2021-05-13 11:53:43 -04:00
Mark H. Wood
1ca945b6c6 [DS-2058] Javadoc fixes. 2021-05-13 11:51:34 -04:00
Mark H. Wood
b688bd0145 [DS-2058] Move test scaffolding from main to test resources. 2021-05-13 11:48:51 -04:00
Tim Donohue
3c1b90d603 Merge pull request #3266 from 4Science/CST-4123-RespondWith401InSteadThan403toInvalidOrExpiredJWT
If logged in through multiple devices, a logout results should result in a 401 on other devices.
2021-05-13 10:28:03 -05:00
Andrea Bollini
28ffbea276 Merge pull request #3268 from tdonohue/small_fix_to_hal_browser_login
HAL Browser fix: Ensure we check for CSRF changes after login failure.
2021-05-13 15:14:22 +02:00
Mykhaylo
92c22926ca Merge branch 'main' into CST-4123-RespondWith401InSteadThan403toInvalidOrExpiredJWT 2021-05-13 15:08:55 +02:00
Mykhaylo
46a5bc2cab fix comments 2021-05-13 12:50:22 +02:00
Marie Verdonck
a105b4a7e5 79369: Fix for collection admin item delete with bitstream 2021-05-12 23:50:37 +02:00
Tim Donohue
678a0daa29 Merge pull request #3267 from atmire/private-and-withdrawn-filters-in-administrative-search
Private and withdrawn filters in administrative search
2021-05-12 16:27:22 -05:00
Tim Donohue
2935c2acf1 Merge pull request #3270 from atmire/issue-3269_servicemanager-beanexception-logging
Fix #3269 by logging detail when Service Manager can't find a bean
2021-05-12 16:23:47 -05:00
Marie Verdonck
7ab5cefd8e 79371: log message fix & ITs for non-valid -i params 2021-05-12 23:12:20 +02:00
Peter Nijs
23e389432c 79371: Cannot export Metadata (CSV) from Collection #1132 2021-05-12 21:56:12 +02:00
Peter Nijs
845c938329 79371: Cannot export Metadata (CSV) from Collection #1132 2021-05-12 20:35:28 +02:00
Chris Wilper
0de72692a6 #3269 Log exception details 2021-05-12 13:03:47 -04:00
dependabot[bot]
45525dcd61 Bump spring-security-web in /dspace-rest
Bumps [spring-security-web](https://github.com/spring-projects/spring-security) from 5.3.3.RELEASE to 5.3.9.RELEASE.
- [Release notes](https://github.com/spring-projects/spring-security/releases)
- [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc)
- [Commits](https://github.com/spring-projects/spring-security/compare/5.3.3.RELEASE...5.3.9.RELEASE)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-12 00:18:38 +00:00
Mark H. Wood
dffe025a35 [DS-2058] Add missing license to new package-info file. 2021-05-11 17:59:32 -04:00
Mark H. Wood
37668dccc8 [DS-2058] Clarify doc commentary. 2021-05-11 17:48:52 -04:00
Bruno Roemers
db17c16dc5 79369: WIP: Test item delete by collection admin
issue: the collection admin is not yet able to delete any associated bitstreams.
2021-05-11 18:12:42 +02:00
Bruno Roemers
c375e13f52 79369: Allow collection admins to delete item 2021-05-11 17:21:10 +02:00
Chris Wilper
9435f70a79 #3269 Log detail when Service Manager can't find bean 2021-05-10 20:01:23 -04:00
Tim Donohue
3a3cdb0f61 Ensure we check for CSRF changes after login failure. 2021-05-10 10:10:51 -05:00
Marie Verdonck
9436f1c426 javadoc for new param -> nullable 2021-05-07 16:02:03 +02:00
Antoine Snyers
3ad67676c5 Fix LineLength errors 2021-05-07 13:31:11 +02:00
Antoine Snyers
f33bf28dd4 Handle null value for config 2021-05-07 13:04:18 +02:00
Antoine Snyers
edf4214e44 Filter on standard fields without appending _keyword
Related to https://github.com/DSpace/dspace-angular/issues/1115
2021-05-07 11:49:31 +02:00
Antoine Snyers
1719024796 Add test for Private/Withdrawn "equals" filters in Administrative Search
Related to https://github.com/DSpace/dspace-angular/issues/1115
2021-05-07 10:57:25 +02:00
Mykhaylo
752eee2a57 Merge branch 'main' into CST-4121-MakeDiscoveryMoreResilientToStaleObjects 2021-05-06 18:28:29 +02:00
Tim Donohue
0b3c52d4ee Merge pull request #3241 from 4Science/CST-4060-SortOptionsAreNotReportedInTheProperOrder
Sort options are not reported in the proper order
2021-05-05 10:46:31 -05:00
Mykhaylo
7c32468425 added a fix that able to delete stale objects 2021-05-05 12:58:26 +02:00
Mykhaylo
7435ba9480 added tests to verify stale objects 2021-05-05 12:51:10 +02:00
Michael Spalti
e226ba954b Correction to annotationlist generator. 2021-05-04 19:30:31 -07:00
Michael Spalti
62a815b92b Changed incorrect inheritance. 2021-05-04 16:48:52 -07:00
Tim Donohue
78a3b4bf7f Merge pull request #3252 from 4Science/CST-4088-EmbeddedListsDontHavePaginationOptionsInTheirSelfLink
Embedded lists don't have pagination options in their self link
2021-05-04 16:03:29 -05:00
Michael Spalti
4658b97ede Merge branch 'main' into iiif-endpoint 2021-05-04 10:15:11 -07:00
Mykhaylo
d99fb55df1 user that is not admin can not see metadata of withdrawn items 2021-05-04 19:01:13 +02:00
Tim Donohue
cd79605290 Merge pull request #3240 from 4Science/CST-4059-featuresForTheEditItemPage
Features endpoint - features for the edit item page
2021-05-04 09:24:08 -05:00
Mykhaylo
0f38a8d0c8 added implementation that allows to see withdrawn items to anonynous groups 2021-05-04 11:36:11 +02:00
Mykhaylo
c1710cd95d added tests for withdrawn item 2021-05-04 11:32:47 +02:00
Tim Donohue
92d9c14415 Merge pull request #3260 from 4Science/issue-3259
Mention the Safari issue with external IdP in the local.cfg.EXAMPLE
2021-05-03 09:27:14 -05:00
Mykhaylo
fc066d9c13 fix tests 2021-05-03 11:56:15 +02:00
Mykhaylo
011eed4072 respond with 401 instead than 403 to invalid or expired JWT tokens 2021-05-03 10:43:54 +02:00
Andrea Bollini
296381b0f0 Mention the Safari issue with external IdP in the local.cfg.EXAMPLE 2021-05-01 11:34:53 +02:00
Tim Donohue
338418b3c3 Merge pull request #3180 from DSpace/dependabot/maven/org.eclipse.jetty-jetty-server-9.4.38.v20210224
Bump jetty-server from 9.4.35.v20201120 to 9.4.38.v20210224
2021-04-30 12:15:18 -05:00
Tim Donohue
ed887e8041 Merge pull request #3254 from DSpace/dependabot/maven/jackson.version-2.12.3
Bump jackson.version from 2.10.2 to 2.12.3
2021-04-29 17:17:31 -05:00
Tim Donohue
e15ca48b93 Merge pull request #3255 from DSpace/fix-readme-installation-url
Update DS7 installation url
2021-04-29 14:09:15 -05:00
Paulo Graça
1adb3be2dc Update DS7 installation url 2021-04-29 16:29:04 +01:00
Tim Donohue
f16b9428d5 Merge pull request #3242 from tdonohue/fix_shibboleth_auth
Fix broken Shibboleth Authentication & enhance tests & comments
2021-04-29 10:14:04 -05:00
Mykhaylo
5a0e068094 removed duplicate value from sortFields list in personOrOrgunit bean and fix test 2021-04-29 17:05:37 +02:00
Tim Donohue
3d9bf88a84 Merge pull request #3251 from DSpace/dependabot/maven/commons-io-commons-io-2.7
Bump commons-io from 2.6 to 2.7
2021-04-28 17:02:53 -05:00
dependabot[bot]
8ce86d2b7b Bump jetty-server from 9.4.35.v20201120 to 9.4.38.v20210224
Bumps [jetty-server](https://github.com/eclipse/jetty.project) from 9.4.35.v20201120 to 9.4.38.v20210224.
- [Release notes](https://github.com/eclipse/jetty.project/releases)
- [Commits](https://github.com/eclipse/jetty.project/compare/jetty-9.4.35.v20201120...jetty-9.4.38.v20210224)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-28 21:42:08 +00:00
dependabot[bot]
1596d7c841 Bump jackson.version from 2.10.2 to 2.12.3
Bumps `jackson.version` from 2.10.2 to 2.12.3.

Updates `jackson-annotations` from 2.10.2 to 2.12.3
- [Release notes](https://github.com/FasterXML/jackson/releases)
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `jackson-core` from 2.10.2 to 2.12.3
- [Release notes](https://github.com/FasterXML/jackson-core/releases)
- [Commits](https://github.com/FasterXML/jackson-core/compare/jackson-core-2.10.2...jackson-core-2.12.3)

Updates `jackson-databind` from 2.10.2 to 2.12.3
- [Release notes](https://github.com/FasterXML/jackson/releases)
- [Commits](https://github.com/FasterXML/jackson/commits)

Updates `jackson-jaxrs-base` from 2.10.2 to 2.12.3
- [Release notes](https://github.com/FasterXML/jackson-jaxrs-providers/releases)
- [Commits](https://github.com/FasterXML/jackson-jaxrs-providers/compare/jackson-jaxrs-providers-2.10.2...jackson-jaxrs-providers-2.12.3)

Updates `jackson-jaxrs-json-provider` from 2.10.2 to 2.12.3

Updates `jackson-module-jaxb-annotations` from 2.10.2 to 2.12.3
- [Release notes](https://github.com/FasterXML/jackson-modules-base/releases)
- [Commits](https://github.com/FasterXML/jackson-modules-base/compare/jackson-modules-base-2.10.2...jackson-modules-base-2.12.3)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-28 21:37:48 +00:00
Tim Donohue
bd000cc674 Merge pull request #2713 from atmire/DS-4457_Default-mail-credentials-fix
DS-4457 Avoid smtp authentication by default
2021-04-28 15:13:45 -05:00
Tim Donohue
c3cbdd15fe Merge pull request #3239 from mspalti/working_dir
Fixed itemimport working dir configuration. #3163
2021-04-27 15:05:58 -05:00
Tim Donohue
db0297d5c4 Make ITs model exact behavior of UI/Hal Browser. This pointed out a flaw in codebase logic which is fixed in this commit. 2021-04-27 12:00:39 -05:00
Mykhaylo
7c7a6e26cb fix test 2021-04-27 12:43:16 +02:00
dependabot[bot]
d0455eb579 Bump commons-io from 2.6 to 2.7
Bumps commons-io from 2.6 to 2.7.

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-26 16:28:09 +00:00
Mykhaylo
ba8ada13e3 fixed self link of embedded pagination 2021-04-26 17:35:08 +02:00
Mykhaylo
cb2012caf1 added test to verify that embedded lists have pagination options in their self-link 2021-04-26 17:31:09 +02:00
Tim Donohue
ea7df3b3a6 Test fix. Verify Authorization Cookie cleared after one usage. 2021-04-23 17:04:37 -05:00
Tim Donohue
f93d1ec004 Refactor HAL Browser login logic to work more like Angular UI & also ensure there's always at least one GET so that CSRF works properly 2021-04-23 15:21:33 -05:00
Tim Donohue
e5c7e0029c Minor code refactoring. Ensure auth cookie invalidation resets CSRF token & that it happens immediately on first usage of cookie 2021-04-23 15:16:44 -05:00
Tim Donohue
015e4ff609 Fix bug and add a ton of code comments to better describe how Shibboleth auth works 2021-04-21 14:27:41 -05:00
Tim Donohue
11d32b4953 Enhance Shibboleth tests to be more accurate. Add (failing) tests to prove that CSRF Token is NOT being reset after Auth via Cookie 2021-04-21 14:10:16 -05:00
Mykhaylo
d4493b24d0 minor fix 2021-04-20 11:33:11 +02:00
Mykhaylo
4acdc4fb9f implemented canManageMappingsFeature/canManageRelationshipsFeature and tests 2021-04-20 10:11:33 +02:00
Mykhaylo
3d16fca646 added tests for CanManageBitstreamBundlesFeature 2021-04-19 15:21:50 +02:00
Michael Spalti
3c5a3668fb Fixed itemimport working dir configuration. #3163 2021-04-17 15:32:04 -07:00
Michael Spalti
e4a828a39c Trial implementation of manifest caching.
Fixed style errors.
2021-04-17 15:05:42 -07:00
Mykhaylo
6e536abfb2 implemented CanManageBitstreamBundlesFeature 2021-04-16 19:11:39 +02:00
Mykhaylo
601e4020d2 Merge branch 'main' into CST-4059-featuresForTheEditItemPage 2021-04-16 10:46:44 +02:00
Mykhaylo
7cba6b17ec fix test 2021-04-16 09:32:16 +02:00
Tim Donohue
16e7fc9127 [maven-release-plugin] prepare for next development iteration 2021-04-15 16:44:11 -05:00
Tim Donohue
02a301b530 [maven-release-plugin] prepare release dspace-7.0-beta5 2021-04-15 16:44:04 -05:00
Tim Donohue
12550d1d96 Merge pull request #3238 from tdonohue/remove_cardinalities
Update Entity relationship types to remove non-zero cardinalities
2021-04-15 16:18:39 -05:00
Tim Donohue
01a31b27b5 Remove any non-zero cardinalities from relationship types until they are handled properly 2021-04-15 14:50:06 -05:00
Michael Spalti
9372c677b6 Updated logger. 2021-04-15 12:07:39 -07:00
Michael Spalti
fb1f0678cc Merge branch 'main' into iiif-endpoint 2021-04-15 11:31:18 -07:00
Tim Donohue
065c6cab8a Merge pull request #3236 from 4Science/issue-3234
Exclude swagger-jersey-jaxrs as it would include old v1 jersey depenies
2021-04-15 13:21:44 -05:00
Tim Donohue
6b08e7004c Merge pull request #3237 from tdonohue/correct_update_sequences
Remove sequences which no longer exist from 'updatesequences' command
2021-04-15 13:20:16 -05:00
Michael Spalti
9f93443cdf Merge branch 'main' into iiif-endpoint 2021-04-15 10:56:54 -07:00
Tim Donohue
a84b859704 Remove sequences which no longer exist 2021-04-15 12:07:10 -05:00
Mykhaylo
fa9a851917 added tests 2021-04-15 18:58:24 +02:00
Mykhaylo
d1026cdca9 implemented CanCreateVersionFeature and CanManageVersionsFeature 2021-04-15 18:56:41 +02:00
Mykhaylo
470268429d minor fix in test 2021-04-15 18:54:20 +02:00
Mykhaylo
2655996f02 rename ViewVersionsFeature to CanSeeVersionsFeature 2021-04-15 18:52:08 +02:00
Andrea Bollini
0148e4ffd2 Exclude swagger-jersey-jaxrs as it would include old v1 jersey dependencies 2021-04-15 18:47:20 +02:00
Tim Donohue
bd8276b7db Merge pull request #3225 from tdonohue/update_test_data
Update links to Entities test data
2021-04-14 17:04:13 -05:00
Tim Donohue
fb35aee7f0 Update Entities DB link. Add code to auto-update item-submission.xml for Entities dataset. 2021-04-14 16:00:30 -05:00
Tim Donohue
8a872745b7 Update links to Entities test data 2021-04-14 15:08:13 -05:00
Tim Donohue
f013ba257d Merge pull request #3235 from tdonohue/docker_enable_rest_to_trust_host
Ensure a REST API running in Docker always trusts requests from the host machine
2021-04-14 11:47:05 -05:00
Tim Donohue
e606ea7b23 Define a specific Docker network subnet and trust it in the local.cfg 2021-04-14 09:21:34 -05:00
Mykhaylo
d54907f3dc fix test 2021-04-14 14:44:38 +02:00
Mykhaylo
980f284302 added InvalidSearchRequestException to handle the case with an invalid sort field 2021-04-14 13:22:41 +02:00
Mykhaylo
f598a44a51 Merge branch 'main' into CST-4060-SortOptionsAreNotReportedInTheProperOrder 2021-04-13 14:43:51 +02:00
Mykhaylo
faecd9ac4a fix test 2021-04-13 13:20:11 +02:00
Mykhaylo
5d81dfe301 added tests 2021-04-13 12:55:13 +02:00
Mykhaylo
3ec9839b65 fix unit tests 2021-04-13 12:54:15 +02:00
Mykhaylo
be19c2b09e refactored the structure of sort options 2021-04-13 12:49:29 +02:00
Tim Donohue
32668b534e Merge pull request #3224 from 4Science/CST-4039
Patch Add entire array with virtual values does not work
2021-04-12 15:34:25 -05:00
Tim Donohue
56ba18ddb1 Merge pull request #3232 from tdonohue/default_submission_configs
Update/Correct default Submission Configurations for Testathon & Final release
2021-04-12 12:00:48 -05:00
Tim Donohue
2f4e177544 Update default submission configs to disable Entities by default, but add examples for our demo Entities dataset 2021-04-09 11:56:42 -05:00
Yana De Pauw
7125b958c7 78245: Bugfix to UsageReportRestPermissionEvaluatorPlugin 2021-04-09 14:40:11 +02:00
Tim Donohue
10bfce5585 Merge pull request #3192 from mwoodiupui/3190
Replace new uses of Log4J v1 with v2.  Ban v1 artifacts.  #3190.
2021-04-08 14:49:49 -05:00
Tim Donohue
b40fb1164e Merge pull request #3212 from atmire/GH-3211_tika-parsers-dependency
Fix #3211 by depending directly on tika-parsers
2021-04-08 12:25:50 -05:00
Tim Donohue
abcf52c30a Merge pull request #3223 from atmire/w2p-78174_CSRF-short-lived-token-get-endpoint
CSRF short lived token GET endpoint
2021-04-08 12:22:15 -05:00
Tim Donohue
b3a8b6e199 Merge pull request #3222 from atmire/w2p-78021_index-collection-location-on-submission-items
Collection location is not indexed for in submission items
2021-04-07 17:05:22 -05:00
Tim Donohue
ba2d6002b1 Merge pull request #3134 from atmire/tilted_rels
Designate "tilted" relationships to improve performance
2021-04-07 16:43:02 -05:00
Mark H. Wood
c2c7567836 Add Log4J 1.2 shim to 2.x in dspace-server because XOAI needs it. #3190 2021-04-07 16:38:52 -04:00
Alessandro Martelli
047c2850ce Merge branch 'main' into CST-4039
# Conflicts:
#	dspace-server-webapp/src/main/java/org/dspace/app/rest/submit/factory/impl/ItemMetadataValueAddPatchOperation.java
2021-04-07 18:26:57 +02:00
Alessandro Martelli
5b90afab4e [CST-4039] Patch Add entire array with virtual values does not work 2021-04-07 18:21:31 +02:00
Alessandro Martelli
4d68fa4ad3 [CST-4039] Patch Add entire array with virtual values does not work 2021-04-07 16:47:27 +02:00
Tim Donohue
8f691a0af0 Merge pull request #3219 from tdonohue/lock_down_scripts
Restrict /api/system/scripts endpoint to admin-only
2021-04-07 09:34:11 -05:00
Mark H. Wood
e1e71855ea Merge branch 'main' into 3190 2021-04-07 10:12:28 -04:00
Mark H. Wood
88966a34e2 Merge remote-tracking branch 'upstream/main' into DS-2058-7x 2021-04-07 09:48:57 -04:00
Kevin Van de Velde
0ca07b1a9b Short lived token ip validation: Retrieve proper id for validation 2021-04-07 15:41:26 +02:00
Tim Donohue
997823c1dc Merge pull request #3189 from 4Science/removeBTE
Remove (deprecated) BTE Framework from 7.x codebase
2021-04-07 08:37:56 -05:00
Bruno Roemers
ee4e794298 78180: Rename ItemBuilder#withRelationshipType to withEntityType
Adapting to the changes in the latest upstream main branch.
2021-04-07 15:02:05 +02:00
Bruno Roemers
9a0ace4ce4 Merge branch 'main' into tilted_rels 2021-04-07 14:54:11 +02:00
Bruno Roemers
3393d6cc16 78206: Only allow access from trusted IPs 2021-04-07 14:37:17 +02:00
Bruno Roemers
9088eb0e78 78206: Make isRequestFromTrustedProxy public and add to interface 2021-04-07 11:42:44 +02:00
Bruno Roemers
cae3971459 Merge branch 'main' into w2p-78174_CSRF-short-lived-token-get-endpoint 2021-04-07 10:38:33 +02:00
Bruno Roemers
8785e5d56b 78180: Fix right tilted testIsOrgUnitOfPersonRelationshipMetadataViaREST 2021-04-07 10:30:38 +02:00
Bruno Roemers
c4e96713f0 78180: Create testIsOrgUnitOfPersonRelationshipMetadataViaREST 2021-04-07 10:28:38 +02:00
Bruno Roemers
b30a086361 78180: Rename to testIsAuthorOfPublicationRelationshipMetadataViaREST 2021-04-07 10:12:08 +02:00
Andrea Bollini
683cba643e Improve logging of date parsing issues 2021-04-07 10:02:52 +02:00
Andrea Bollini
101d4010fe Merge remote-tracking branch 'origin/main' into removeBTE 2021-04-07 10:02:22 +02:00
Bruno Roemers
a123acfea9 78021: Test that the owning collection is indexed on in-progress submissions 2021-04-06 19:04:44 +02:00
Bruno Roemers
08b80e7421 78180: WIP: Create RightTiltedRelationshipRestRepositoryIT 2021-04-06 18:54:09 +02:00
Bruno Roemers
7bcdfd8ae4 78180: Fix right tilted testGetJournalRelationshipMetadata 2021-04-06 18:43:17 +02:00
Tim Donohue
206f6bdc63 Merge pull request #3195 from 4Science/CST-3978
Added script to delete all metadata values
2021-04-06 11:38:05 -05:00
Bruno Roemers
1dcdf7e948 78180: Create RightTiltedRelationshipMetadataServiceIT and copy relevant methods for override 2021-04-06 18:29:22 +02:00
Alessandro Martelli
58d9f27b97 [CST-4039] Patch Add entire array with virtual values does not work
Created integration test
2021-04-06 18:18:30 +02:00
Bruno Roemers
44afde13ee 78180: Change signature of initJournalVolumeIssue 2021-04-06 18:16:01 +02:00
Bruno Roemers
0c118223d4 78180: Rename to LeftTiltedRelationship 2021-04-06 18:00:45 +02:00
Tim Donohue
cdc06a30dd Merge pull request #3171 from tdonohue/remove_ip_checks
Update IP-based security configurations to more sane defaults (now that CORS + CSRF are enabled)
2021-04-06 09:10:32 -05:00
Tim Donohue
5d9842762a Merge pull request #3186 from 4Science/issue-2891
Restoring sherpa and orcid support as authorities
2021-04-06 09:08:37 -05:00
Bruno Roemers
5433065c8e 78174: Move code from shortLivedToken() => shortLivedTokenResponse()
> If we ever make changes to the shortLivedToken() method itself this would affect the “shortLivedTokenViaGet()” method as well (which isn’t clear directly).
2021-04-06 11:49:25 +02:00
Bruno Roemers
5fd1c749c8 78021: Add collection to location list of in-progress submission solr document 2021-04-06 11:34:57 +02:00
Luca Giamminonni
7ba8b5900a Move bulkedit.allow-bulk-deletion property from dspace.cfg to bulkedit.cfg 2021-04-06 09:55:24 +02:00
Mark H. Wood
92548a0bfc [DS-2058] Satisfy Checkstyle 2021-04-05 19:47:02 -04:00
Mark H. Wood
80a6e2ced4 [DS-2058] Remove impossible tests of Curator state -- Curator is reset by service. 2021-04-05 16:55:47 -04:00
Michael Spalti
a82727b552 Removed unused import. 2021-04-05 10:16:09 -07:00
Michael Spalti
348a7d263e Corrected multi-word solr queries. 2021-04-04 11:53:09 -07:00
Mark H. Wood
7f94b91648 [DS-2058] Scrap integration test, make it a unit test, fake claimed tasks. 2021-04-04 10:38:26 -04:00
Michael Spalti
0efb145b8f Corrected dspace.entity.type metadata field name in utils. 2021-04-02 18:49:07 -07:00
Michael Spalti
8c3673e27e Added caching for manifests. 2021-04-02 15:20:52 -07:00
Michael Spalti
14ef8ab75b Using dspace.entity.type for iiif bundle lookup. 2021-04-02 15:12:28 -07:00
Michael Spalti
20a9c0a686 Updated IT for revised ItemBuilder. 2021-04-02 14:32:04 -07:00
Tim Donohue
eff51a5364 Merge pull request #3218 from mwoodiupui/3217
Proper Bean-like initialization of SherpaService
2021-04-02 14:14:19 -05:00
Mark H. Wood
9af1c06d11 [DS-2058] Failing attempt at an integration test. 2021-04-02 15:08:54 -04:00
Tim Donohue
f33a502c2f Ensure trim() happens before verifying IP address & correct test (this test correction fails without the code change) 2021-04-02 13:57:49 -05:00
Tim Donohue
ecfb338cbc Enhance tests of IPTable to prove it doesn't allow duplicates 2021-04-02 13:57:49 -05:00
Michael Spalti
136f0fcb5b Merge branch 'main' into iiif-endpoint 2021-04-02 10:12:59 -07:00
Michael Spalti
239de60178 Removed uncessary encoding of solr query. 2021-04-02 10:11:29 -07:00
Tim Donohue
f38d62d621 Restrict scripts endpoint to ADMIN for now as all scripts are currently Admin-only 2021-04-02 11:28:51 -05:00
Bruno Roemers
5596d4f48f 78174: Add endpoint GET /api/authn/shortlivedtokens 2021-04-02 18:26:56 +02:00
Mark H. Wood
3555cf2ef7 [DS-2058] Code cleanup, documentation. 2021-04-02 11:25:55 -04:00
Tim Donohue
7b0ed1bba8 Merge pull request #3183 from tdonohue/entity_type_storage
Rename / move 'relationship.type' metadata field to 'dspace.entity.type'
2021-04-02 09:22:17 -05:00
Mark H. Wood
e80937d625 [DS-2058] findTaskSet should *always* return a TaskSet. 2021-04-02 10:20:18 -04:00
Mark H. Wood
8a57cb0e4b [DS-2058] Catch up with removal of traditional workflow in main. 2021-04-02 10:17:44 -04:00
Mark H. Wood
d82f66b380 [DS-2058] Correct path to workflow curation configuration.
Also clean up an annoying typo in a comment.
2021-04-02 10:15:05 -04:00
Mark H. Wood
6e4b07f746 Proper initialization of SherpaService Bean. #3217 2021-04-01 16:57:38 -04:00
Tim Donohue
7b55ed8e2c Merge pull request #3148 from atmire/w2p-76284_issue-927---non-site-admin-edit-collection-authorization-group-REST
Getting 401 when Community or Collection Administrator tries to edit Collection Authorization Group
2021-04-01 13:47:03 -05:00
Raf Ponsaerts
6a66463f44 fix duplicate id 2021-04-01 16:28:37 +02:00
Raf Ponsaerts
4457bceace Merge remote-tracking branch 'dspace/main' into w2p-76284_issue-927---non-site-admin-edit-collection-authorization-group-REST 2021-04-01 16:28:09 +02:00
Mark H. Wood
774582ede1 Merge remote-tracking branch 'upstream/main' into DS-2058-7x 2021-04-01 09:59:36 -04:00
Raf Ponsaerts
e2564fbbfc Merge branch 'w2p-76284_issue-927---non-site-admin-edit-collection-authorization-group-REST' of https://github.com/atmire/DSpace into w2p-76284_issue-927---non-site-admin-edit-collection-authorization-group-REST 2021-04-01 15:57:11 +02:00
Mark H. Wood
9abfdcf097 [DS-2058] Supply more missing Javadoc 2021-04-01 09:49:34 -04:00
Raf Ponsaerts
2ac1a22515 fix tests 2021-04-01 15:21:57 +02:00
Andrea Bollini
ffcca497a8 Merge pull request #3160 from atmire/metadata-field-caching-hibernate-3-performance-test
Metadata field caching hibernate performance
2021-04-01 14:29:22 +02:00
Andrea Bollini
738bd7752d Merge pull request #3200 from atmire/w2p-77817_Index-mapped-items
Mapped Items not visible in Collection browse
2021-04-01 14:08:29 +02:00
Bruno Roemers
c498220296 78138: BUGFIX: Set tilted before virtual metadata is cached 2021-04-01 10:55:08 +02:00
Bruno Roemers
4648373cce Merge branch 'main' into tilted_rels 2021-04-01 10:20:07 +02:00
Bruno Roemers
c34aeb51d3 Revert "78138: Turn off test line that fails in multiple PRs"
This reverts commit 38bcd1da77.
2021-04-01 10:19:41 +02:00
Yura Bondarenko
e23f2980e0 77817: Add subject null check 2021-04-01 09:48:41 +02:00
Yura Bondarenko
9b748790c8 77817: Update mapped/unmapped Items in IndexEventConsumer 2021-04-01 09:44:39 +02:00
Yura Bondarenko
20dc0f6fbe Revert "77817: Mark item as modified when adding to/removing from collection"
This reverts commit d80d26db
2021-04-01 09:44:39 +02:00
Yura Bondarenko
5cd9cc7802 77817: Add integration tests 2021-04-01 09:44:39 +02:00
Yura Bondarenko
0597779b63 77817: Mark item as modified when adding to/removing from collection 2021-04-01 09:44:39 +02:00
Michael Spalti
a2929fa17b Removed word_highlighting solr core. 2021-03-31 18:54:50 -07:00
Tim Donohue
e7ce2f4383 Fix checkstyle 2021-03-31 18:12:52 -05:00
Tim Donohue
b3088fc0d3 Response to feedback. Add new proxies.trusted.include_ui_ip setting to determine whether UI IP lookup is done. More tests to prove it works 2021-03-31 17:32:02 -05:00
Tim Donohue
85062471d4 Fix bug by ensuring we only return IPv4 addresses at this time. Enhance tests in AnonymousAdditionalAuthorizationFilterIT to show it works with proxies on or off. 2021-03-31 15:36:39 -05:00
Tim Donohue
d9eea7abaa Enhance logging & comments regarding proxy settings 2021-03-31 15:36:38 -05:00
Tim Donohue
4016280c9e If trusted proxies are not configured, default to trusting UI's IP address 2021-03-31 15:36:38 -05:00
Tim Donohue
f2f7d127aa Upgrade Mockito & use "mockito-inline" to allow for mocking static methods 2021-03-31 15:36:38 -05:00
Tim Donohue
5ff6c04989 Copy CORS settings to local.cfg by default. Add test to prove CORS blocks authentication from untrusted origins 2021-03-31 15:36:33 -05:00
Tim Donohue
4efe92e23d Remove options to add IP address in JWT auth token. Fixes #2938 2021-03-31 15:34:39 -05:00
Tim Donohue
2af69dd077 Add Flyway migrations to move from relationship.type to dspace.entity.type 2021-03-31 15:07:03 -05:00
Tim Donohue
ee33a4935d Fixes to newly merged Google Scholar entity code in #3150 2021-03-31 15:07:02 -05:00
Tim Donohue
cdb59db8f5 Fix incorrect/failing test. Entity Type passed in CSV update MUST match entity type of the Item being updated. 2021-03-31 15:07:02 -05:00
Tim Donohue
9bf9c3037f Refactor tests, especially CsvImportIT to locate bug. No core logic is changed, just renaming methods/variables & adding a few more tests. 2021-03-31 15:06:58 -05:00
Tim Donohue
e88db03c51 Additional replacements where schema, element & qualifier were separate 2021-03-31 15:04:46 -05:00
Tim Donohue
4c0a38fb40 Rename / move 'relationship.type' metadata field to 'dspace.entity.type' 2021-03-31 15:01:45 -05:00
Tim Donohue
05b80bd941 Merge pull request #3213 from tdonohue/fix_failing_test
Refactor existing Metadata Schema & Field pagination tests to determine pagination dynamically
2021-03-31 14:47:48 -05:00
Tim Donohue
6c37c552c8 Merge pull request #3170 from atmire/w2p-77244_ItemMetadata-caching-bugfixes
Caching the item metadata for entities
2021-03-31 14:32:33 -05:00
Tim Donohue
5de643ba04 Merge pull request #3196 from 4Science/CST-3962
Item not indexed due to authority value not being in a controlled vocabulary
2021-03-31 14:24:55 -05:00
Tim Donohue
7b4f0c7f44 Determine metadata field count & pagination dynamically as well 2021-03-31 13:47:28 -05:00
Michael Spalti
2548eef9ae Removed unused import. 2021-03-31 11:38:15 -07:00
Michael Spalti
8fd05b1b16 Minor updates. 2021-03-31 11:01:07 -07:00
Tim Donohue
765a928fcd Merge pull request #3188 from 4Science/CST-3960-SearchLinksInFacetValuesDontContainTheConfiguration
Search links in facet values dont contain the configuration
2021-03-31 12:45:43 -05:00
Tim Donohue
b85b15f876 Fix test to determine number of schema in DB prior to checking pagination 2021-03-31 12:18:56 -05:00
Bruno Roemers
38bcd1da77 78138: Turn off test line that fails in multiple PRs 2021-03-31 15:05:02 +02:00
Bruno Roemers
4041635135 Merge branch 'main' into w2p-78138_update-tests-for-tilted-relationships 2021-03-31 14:19:36 +02:00
Bruno Roemers
0d3009d322 78138: Write test case testRelationshipMetadataViaREST 2021-03-31 13:57:41 +02:00
Raf Ponsaerts
63d21cd4f0 Partial refactor, still issues with infinite loops 2021-03-31 13:28:04 +02:00
Samuel
1b3ace654b taskid 78099 ItemMetadata caching test - feedback 2021-03-31 12:38:46 +02:00
Chris Wilper
f84b0dc9e0 #3211 Exclude tika-parsers dependencies we already use, but with different versions 2021-03-30 23:45:56 -04:00
Chris Wilper
ef62e22aa1 #3211 Change tika-core dependency to tika-parsers 2021-03-30 23:35:34 -04:00
Michael Spalti
4c9b029489 Merge branch 'iiif-endpoint' of https://github.com/mspalti/DSpace into iiif-endpoint 2021-03-30 17:43:25 -07:00
Michael Spalti
38f68abddb Minor updates to iiif services. 2021-03-30 17:36:44 -07:00
Michael Spalti
031cef8b45 Updated dspace.cfg to support iiif ITs 2021-03-30 17:35:46 -07:00
Michael Spalti
8d8e2172d0 Added word_highlighing solr core. 2021-03-30 08:07:52 -07:00
Michael Spalti
bf1451cfe0 Updated search service to use solr client libraries. 2021-03-30 08:07:52 -07:00
Michael Spalti
ec94740a9a Added exception to search service query. 2021-03-30 08:07:52 -07:00
Michael Spalti
82171dfa6a Updated dspace.cfg comment. 2021-03-30 08:07:52 -07:00
Michael Spalti
cb81aff432 Updated the image service thumbnail path. 2021-03-30 08:07:52 -07:00
Michael Spalti
952c3b603b Minor refactor manifest generator 2021-03-30 08:07:52 -07:00
Michael Spalti
4fcd6c1e41 Added sample iiif config to dspace.cfg 2021-03-30 08:07:52 -07:00
Michael Spalti
675e3c0b64 Added new method to the test BitstreamBuilder and moved iiif test package. 2021-03-30 08:07:52 -07:00
Michael Spalti
79bb86a5db Added integration tests. 2021-03-30 08:07:52 -07:00
Michael Spalti
6ed7bedaa9 Added iiif controller. 2021-03-30 08:07:52 -07:00
Michael Spalti
eaee79831b Added iiif repository. 2021-03-30 08:07:52 -07:00
Michael Spalti
ffdf6de26f Added iiif service and utility classes. 2021-03-30 08:07:52 -07:00
Michael Spalti
86bf766db1 Added classes for parsing the info.json object. 2021-03-30 08:07:52 -07:00
Michael Spalti
c746a9b43b Added factory for objectmapper. 2021-03-30 08:07:52 -07:00
Michael Spalti
8dea0807b7 Added iiif model generator classes. 2021-03-30 08:07:52 -07:00
Michael Spalti
0ea5f13498 Adding iiif-apis dependency 2021-03-30 08:07:52 -07:00
Peter Nijs
b663fb20ac 76284: Use primitive longs 2021-03-30 16:54:20 +02:00
Tim Donohue
34c1e82275 Merge pull request #3194 from atmire/w2p-77582_Issue-3113_Fix-item-handle-redirect
handle redirect for items not working - REST Implementation
2021-03-30 09:49:57 -05:00
Tim Donohue
a58257512e Merge pull request #3205 from atmire/1067-blank-qualifier
fix #1067 metadatafield with blank qualifier
2021-03-30 09:23:51 -05:00
Samuel
5d9ad392df taskid 78006 Test metadata field caching branch - PR 3160 - feedback 2021-03-30 15:06:59 +02:00
Andrea Bollini
a39e33b4c3 Add more information about the extraction step 2021-03-30 13:53:10 +02:00
Andrea Bollini
6c121659af Little javadoc cleanups 2021-03-30 13:46:36 +02:00
Andrea Bollini
18fb0ca50c Remove obsolete warnings and use of label on the server side (it is responsability of the UI) 2021-03-30 13:24:14 +02:00
Andrea Bollini
44be7c7a50 Rename Orcidv3 in a more meaningful way 2021-03-30 13:23:20 +02:00
Samuel
535f90e147 taskid 78099 ItemMetadata caching test 2021-03-30 10:42:16 +02:00
Samuel
c53c1f6909 taskid 78006 Test metadata field caching branch - PR 3160 2021-03-30 09:57:00 +02:00
Michael Spalti
8e1f0ca85b Updated search service to use solr client libraries. 2021-03-29 16:21:21 -07:00
Tim Donohue
d2386bc4ab Merge pull request #3208 from tubhh/LDAP_bugfix_groups
Corrects reading of configuration options in LDAPAuthentication
2021-03-29 11:29:27 -05:00
Raf Ponsaerts
46ea777250 Changed to primitive long for count methods in authorizeService 2021-03-29 10:21:53 +02:00
Yura Bondarenko
ec90374ff6 77582: Fix imports 2021-03-29 09:02:13 +02:00
Michael Spalti
47e835db0d Added exception to search service query. 2021-03-28 17:06:49 -07:00
Michael Spalti
b31d3ec98f Updated dspace.cfg comment. 2021-03-28 10:25:24 -07:00
yura bondarenko
01d47fb639 Add license header 2021-03-27 18:08:41 +01:00
Michael Spalti
256f89bbbe Updated the image service thumbnail path. 2021-03-26 17:45:40 -07:00
Michael Spalti
c39bd6c7c2 Minor refactor manifest generator 2021-03-26 16:37:45 -07:00
Michael Spalti
78c66f3fed Added sample iiif config to dspace.cfg 2021-03-26 16:36:54 -07:00
Tim Donohue
3560a74b34 Merge pull request #3209 from tdonohue/pin_postgres_in_Docker
Pin to Postgres 11 in Dockerfiles
2021-03-26 16:44:51 -05:00
Tim Donohue
9afe043fb7 Pin to Postgres 11 in Dockerfiles 2021-03-26 15:19:04 -05:00
Peter Nijs
dee67dcb2f 76284: non site admin edit collection authorization group REST feedback
- Merge AuthorizeSolrService into AuthorizeService
- PreAuthorize findAdminAuthorized methods
2021-03-26 17:39:38 +01:00
Yura Bondarenko
174225923a 77582: Add unit tests for HandleServiceImpl#parseHandle 2021-03-26 16:20:34 +01:00
Yura Bondarenko
a43e07f89a 77582: Rename formatHandle to parseHandle & add @Override 2021-03-26 16:20:11 +01:00
Luca Giamminonni
3f8c76dc3c Fix MetadataDeletionIT test 2021-03-26 15:46:13 +01:00
Luca Giamminonni
d421ac1b63 Added allow-bulk-deletion property to specify erasable fields via bulk deletion 2021-03-26 15:37:49 +01:00
Michael Spalti
a3a809ea6b Added new method to the test BitstreamBuilder and moved iiif test package. 2021-03-25 16:04:45 -07:00
Michael Spalti
fb72c2a4b5 Added integration tests. 2021-03-25 15:56:55 -07:00
Michael Spalti
1b6c770d23 Added iiif controller. 2021-03-25 15:54:34 -07:00
Michael Spalti
988b221e0d Added iiif repository. 2021-03-25 15:53:28 -07:00
Michael Spalti
1a6d3d4ee3 Added iiif service and utility classes. 2021-03-25 15:52:21 -07:00
Michael Spalti
1a353d4bd5 Added classes for parsing the info.json object. 2021-03-25 15:48:31 -07:00
Michael Spalti
dae544ac97 Added factory for objectmapper. 2021-03-25 15:47:15 -07:00
Michael Spalti
5ac85abc67 Added iiif model generator classes. 2021-03-25 15:44:02 -07:00
Michael Spalti
5c47af0578 Adding iiif-apis dependency 2021-03-25 15:20:06 -07:00
Tim Donohue
13d8ce6312 Merge pull request #3203 from tubhh/LDAP_bugfix
LDAP Authentication: use generic exception instead of special SQLException
2021-03-25 14:42:13 -05:00
Mykhaylo
1979a4d4fb Merge branch 'main' into CST-3960-SearchLinksInFacetValuesDontContainTheConfiguration 2021-03-25 17:05:20 +01:00
Mykhaylo
deec143f35 added tests 2021-03-25 16:51:37 +01:00
Tim Donohue
8f5c826781 Merge pull request #3198 from 4Science/CST-3980-WorkflowDiscoveryConfigurationQueryWithQueryParameterSetWithFreeTextReturnsNoResults
Workflow discovery configuration query with query parameter set with free text returns no results
2021-03-25 09:33:30 -05:00
Tim Donohue
c2108141ec Merge pull request #3206 from atmire/w2p-77810_Issue-3139_Log-REST-API-exceptions
Exceptions in DSpace 7 REST API producing log entries in DSpace log files
2021-03-25 09:26:01 -05:00
April Herron
258d0f66bd Comment fixes for tilted relationships 2021-03-25 09:38:18 -04:00
Mykhaylo
be44791006 Implement community feedbacks 2021-03-25 13:25:59 +01:00
Mykhaylo
92988b409e Merge branch 'main' into CST-3962 2021-03-25 13:20:51 +01:00
Andrea Bollini
d01ec35e69 Merge pull request #3126 from tdonohue/cleanup_solr_configs
Cleanup DSpace Solr Configs for v8 & update to Solr 8.8.1
2021-03-25 12:50:21 +01:00
Oliver Goldschmidt
2d069b019a fixes #3207: corrects reading of configuration options 2021-03-25 12:37:22 +01:00
Mykhaylo
a31383ce6f Implement community feedbacks 2021-03-25 11:47:25 +01:00
Oliver Goldschmidt
68d311ddd0 fixes style issue 2021-03-25 11:22:17 +01:00
Andrea Bollini
3b8677b994 Merge pull request #3176 from atmire/w2p-77228_Issue-2798-Missing-ITs-for-browse-by-authority-values
Missing ITs for browse by authority values fix
2021-03-25 11:14:43 +01:00
Oliver Goldschmidt
e4349db70c return to SQLException catch and testing for Nullpointers manually 2021-03-25 10:55:54 +01:00
Andrea Bollini
3b61bb1ed5 Community feedback 2021-03-24 21:28:17 +01:00
Andrea Bollini
37289b01c4 Code cleanup: remove unused submit code from dspace-api 2021-03-24 21:01:28 +01:00
Andrea Bollini
b11afd16f3 Mock the publication import service for testing 2021-03-24 20:57:42 +01:00
Andrea Bollini
e8ee8e5afb Fix misleading properties names for the CharacterSeparated provider 2021-03-24 17:16:33 +01:00
Samuel
01ff437b74 fix #1067 metadatafield with blank qualifier 2021-03-24 16:35:47 +01:00
Oliver Goldschmidt
ede3f11073 use generic exception instead of special SQLException 2021-03-24 14:24:48 +01:00
Andrea Bollini
ca70f69fb9 Make a common ancestor for the Listener and processing steps 2021-03-24 13:37:47 +01:00
Andrea Bollini
c62d06374e Cleanup submission code
Moved shared code among workspace and workflow repository to the submission service
introduced a base RestProcessingStep interface to be specialized among ListenerStep and AbstractRestProcessingStep (data processing)
removed retrieval of the Request from the service passing directly the http request that was available
added test to check the special case of steps that should be not exposed as panel (extract step)
2021-03-24 12:31:24 +01:00
Andrea Bollini
ee2f35b76e Fix type of the extract panel in the configuration 2021-03-24 11:54:00 +01:00
Andrea Bollini
847e104bb4 Switch to opencvs in the com.opencsv groupId 2021-03-24 11:52:54 +01:00
Kim Shepherd
713d91eaa2 [DS-4522] Clean up unused imports 2021-03-24 13:28:10 +13:00
Tim Donohue
e1478f6fdd Merge pull request #3191 from 4Science/CST-3961-CannotClaimPoolTasksCreatedBeforeYouWereAddedToAworkflowApprovalGroup
Cannot claim PoolTasks created before you were added to a workflow approval group
2021-03-23 08:59:56 -05:00
Kim Shepherd
3d609faf07 [DS-4522] Use more generic IdentifierNotApplicableException where applicable 2021-03-23 16:17:47 +13:00
Kim Shepherd
cc1f67734e [DS-4522] Refactor LogicalStatement.getResult() type to primitive boolean 2021-03-23 14:34:58 +13:00
Kim Shepherd
a3beda1a05 [DS-4522] Remove unused imports 2021-03-23 14:34:45 +13:00
Kim Shepherd
b51a894361 [DS-4522] Add unit tests for remaining conditions, fix service instantiation for tests 2021-03-23 13:52:02 +13:00
Tim Donohue
f4b5e9c26b Merge pull request #3168 from tdonohue/reduce_csrf_token_refreshing
Reduce frequency of CSRF Tokens being refreshed/reset
2021-03-22 10:07:04 -05:00
Tim Donohue
6b352ea45d Merge pull request #3166 from UoEMainLibrary/DS-4575-7
[DS-4575]  v.7 - Exposed more parameters for DBCP2
2021-03-22 09:12:41 -05:00
Tim Donohue
6653a5bdd7 Merge pull request #3164 from UoEMainLibrary/DS4574-7
[DS-4574] v. 7 - Upgrade DBCP2 dependency
2021-03-22 09:09:29 -05:00
Mykhaylo
0c6c1adc99 Merge branch 'main' into CST-3961-CannotClaimPoolTasksCreatedBeforeYouWereAddedToAworkflowApprovalGroup 2021-03-22 11:30:56 +01:00
Yura Bondarenko
03c8079be8 77810 - Log 5xx/4xx REST exceptions 2021-03-19 15:36:18 +01:00
Raf Ponsaerts
af226189e0 changed cleanup from general tests to after specific test 2021-03-19 10:57:00 +01:00
Tim Donohue
404b8281ee Enhance expectations in test. Document in comments why we send 2 cookies when CSRF token changes. 2021-03-18 16:05:25 -05:00
Tim Donohue
158d088fec Enhance/add JavaDocs to RestAuthenticationService 2021-03-18 16:05:25 -05:00
Tim Donohue
e0b9a488b5 Modify behavior to match tests. CSRF token only refreshes on login, logout or when sent via param. 2021-03-18 16:05:25 -05:00
Tim Donohue
e100063abc Add tests for expected behavior. CSRF token only refreshes on login, logout or when passed as a param. 2021-03-18 16:05:25 -05:00
Tim Donohue
2c4e7118e6 Merge pull request #3179 from Micheleboychuk/CST-3937-TheHALlinksForSearchEndpointsAreBrokenAndNamedInAninconsistentWay
The HAL links for search endpoints are broken and named in an inconsistent way
2021-03-18 15:48:31 -05:00
Mykhaylo
bc703129aa Revert "added item metadata in solr documets of pooltask/claimedkask"
This reverts commit 8a6fd61c99.
2021-03-18 18:40:25 +01:00
Mykhaylo
aed7ac23c6 Merge branch 'w2p-77593_workflow-items-item-metadata-indexing-issue' of https://github.com/atmire/DSpace into CST-3980-WorkflowDiscoveryConfigurationQueryWithQueryParameterSetWithFreeTextReturnsNoResults 2021-03-18 18:40:06 +01:00
Mykhaylo
8a6fd61c99 added item metadata in solr documets of pooltask/claimedkask 2021-03-18 16:47:18 +01:00
Mykhaylo
8e5c28572f added test that proves bug in discovery search with configuration = workflow 2021-03-18 16:40:04 +01:00
Raf Ponsaerts
17dd108381 changed test matching to reflect ordering 2021-03-18 13:48:20 +01:00
Mykhaylo
22457403b9 added javaDoc 2021-03-18 11:56:07 +01:00
Mykhaylo
4bf75e5a05 added fix where Item can't indexed due to authority value not being in a controlled vocabulary 2021-03-18 11:14:28 +01:00
Mykhaylo
b31cd04f52 added test that proves a bug where Item not indexed due to authority value not being in a controlled vocabulary 2021-03-18 11:11:59 +01:00
Luca Giamminonni
233202dbe4 MetadataDeletion script improvements 2021-03-17 15:22:14 +01:00
Luca Giamminonni
f6f501d37c Script to delete all the values of a specified metadata field 2021-03-17 14:51:33 +01:00
Raf Ponsaerts
7bacbe73d4 Fixed authorityKey in facet endpoint response and constructed a test for this 2021-03-17 12:42:47 +01:00
Mark H. Wood
dc487fd29d Replace new uses of Log4J v1 with v2. Ban v1 artifacts. #3190. 2021-03-17 06:04:49 -04:00
Mykhaylo
025864a149 added test that proves right functionality of workflow 2021-03-17 10:44:28 +01:00
Andrea Bollini
1cb6a2ffa0 Align test to the configuration 2021-03-17 09:32:08 +01:00
Andrea Bollini
d1f126b287 Fix dependencies for dspace-rest (legacy) 2021-03-16 22:30:02 +01:00
Andrea Bollini
49728a097e Fix checkstyle issue 2021-03-16 21:32:47 +01:00
Andrea Bollini
2eed442e06 Remove BTE and implement the metadata extraction step using the Live Import 2021-03-16 21:31:24 +01:00
Mykhaylo
3d37e1cb9b added a fix that able to add configuration in search links of facet values 2021-03-16 16:14:40 +01:00
Mykhaylo
3961503fbf added tests that prove search links in facet values don't contain the configuration 2021-03-16 16:09:28 +01:00
Raf Ponsaerts
dcaadba772 cleanup 2021-03-16 14:53:45 +01:00
Yura Bondarenko
315e29d2b1 77582: Add HandleService#formatHandle to strip prefixes from handle 2021-03-16 13:21:43 +01:00
Yura Bondarenko
f52cc59dde TEST PoolTask/ClaimedTask indexing 2021-03-16 11:26:25 +01:00
Andrea Bollini
96693199ca Remove Useless null check reported by LGTM 2021-03-16 10:29:39 +01:00
Andrea Bollini
2b31e5db8e Adapt findAll test to the new configuration 2021-03-16 10:09:49 +01:00
Kim Shepherd
0abee65424 [DS-4522] Add unit tests for Bitstream, InCollection, InCommunity, IsWithdrawn conds 2021-03-16 15:54:21 +13:00
Kim Shepherd
5a85309220 [DS-4522] Apply parameter, item, context checks as per PR review 2021-03-16 15:53:38 +13:00
Kim Shepherd
da844bc03d [DS-4522] Apply 'owning collection' fix to InCommunityCondition collection iteration 2021-03-16 15:53:07 +13:00
Kim Shepherd
a770e7996e [DS-4522] Apply bugfix to InCollectionCondition - better 'owning collection' check 2021-03-16 14:32:11 +13:00
Kim Shepherd
f74f4e3b18 [DS-4522] Remove fetchccdata.cfg include (accidentally kept during rebase vs main) 2021-03-16 13:50:06 +13:00
Kim Shepherd
692dbe7fad [DS-4522] Make LogicalStatementException unchecked as per PR review 2021-03-16 13:40:52 +13:00
Kim Shepherd
5096c66437 [DS-4522] Expand debug log message to explain what happens when filter service is null 2021-03-16 13:39:46 +13:00
Kim Shepherd
1bb5e35f04 [DS-4522] Refactor boolean canMint() to void checkMintable() as per PR review 2021-03-16 13:32:09 +13:00
Pascal-Nicolas Becker
6fbc4dbd6f DS-4522: Add missing license header 2021-03-16 13:25:30 +13:00
Kim Shepherd
4e70bce553 [DS-4522](main) Fix default configuration for curation task 2021-03-16 13:25:30 +13:00
Kim Shepherd
677623a1b7 [DS-4522](main) Unit tests for filters and DOI provider 2021-03-16 13:25:30 +13:00
Kim Shepherd
b049e65110 [DS-4522](main) Configuration (spring), providers and filters 2021-03-16 13:22:33 +13:00
Kim Shepherd
11d7b5b063 [DS-4522](main) RegisterDOI curation task (as CLI and UI control) 2021-03-16 13:19:09 +13:00
Kim Shepherd
d27dc96cbe [DS-4522](main) Item logical filters and DOI filtered provider 2021-03-16 13:19:09 +13:00
Andrea Bollini
3b3d9b9c47 Fix obvious mistake in the sherpa publisher query 2021-03-15 15:17:25 +01:00
Andrea Bollini
eb98243000 Fix sherpa response parsing issues 2021-03-15 15:17:25 +01:00
Andrea Bollini
85ea680140 Rename staff according to the current ORCID version 2021-03-15 15:17:05 +01:00
Andrea Bollini
070776557d Adapt orcid and sherpa authorities to the new APIs 2021-03-14 22:48:47 +01:00
Mark H. Wood
8541d3b05e Merge remote-tracking branch 'upstream/main' into DS-4300 2021-03-14 11:31:57 -04:00
Mark H. Wood
ea8ecdeff2 Merge remote-tracking branch 'upstream/main' into DS-4289 2021-03-14 11:16:38 -04:00
Mark H. Wood
5c6cd3eca3 [DS-3951] Update a newer test to cope with lists of recipients. 2021-03-13 20:22:05 -05:00
Andrea Bollini
78ea63ea91 Restoring Sherpa and ORCID authority classes and configuration 2021-03-13 22:51:03 +01:00
Mark H. Wood
80975dfd25 Merge remote-tracking branch 'upstream/main' into DS-3951 2021-03-13 14:53:16 -05:00
Mark H. Wood
80f2b7750d Merge remote-tracking branch 'upstream/main' into DS-4410 2021-03-13 08:30:59 -05:00
Tim Donohue
2b4f22be65 Merge pull request #3181 from 4Science/CST-3946-SearchPageResultNumberBug
Search page result number bug
2021-03-12 17:05:18 -06:00
Tim Donohue
55fafe75e0 Merge pull request #3178 from Micheleboychuk/CST-3544-CollectionResourceEndPointsDontIncludePaginationInformation
Collection resource end points dont include pagination information
2021-03-12 16:04:09 -06:00
Tim Donohue
c84a349039 Merge pull request #3150 from atmire/w2p-75924_Entitytypes-in-sitemaps
DS-4283: (Google Scholar) Provide Entity Type Label/Name as part of URL path
2021-03-12 12:19:30 -06:00
Hrafn Malmquist
75e3369d39 Clarify removeAbandoned, add reference to core-hibernate.xml 2021-03-12 09:59:45 +00:00
Mykhaylo
52a3df1243 Merge branch 'main' into CST-3937-TheHALlinksForSearchEndpointsAreBrokenAndNamedInAninconsistentWay 2021-03-11 11:32:41 +01:00
j4bbi
a49ebf4f38 Update Commons Pool2 dep to 2.9.0 2021-03-11 10:28:52 +00:00
Mykhaylo
66a8b1c7df added fix that able to delete solr record 2021-03-11 10:47:35 +01:00
Mykhaylo
6b87011377 added test that proves delete of solr record 2021-03-11 10:28:47 +01:00
Tim Donohue
1ddd052a40 Merge pull request #3054 from Micheleboychuk/CST-3539
Update claimedtasks and pooltasks to support reloading of workflow actions on individual WorkflowItems
2021-03-10 09:11:02 -06:00
Mykhaylo
559b267ca2 changed single name to plural name on search methods of HAL links 2021-03-10 10:44:01 +01:00
Mykhaylo
e6576e07cd added tests to prove right functionalicy of root search end points 2021-03-09 17:33:18 +01:00
Mykhaylo
65c84f0554 added check to model plural name for search methods 2021-03-09 16:30:04 +01:00
Mykhaylo
b153194348 fixed bug that hided pagination information in the self link 2021-03-09 13:16:44 +01:00
Mykhaylo
afef66b1b8 added tests that prove the correct links during the request with pagination information 2021-03-09 13:10:19 +01:00
Yura Bondarenko
ece20cf1d4 77228: Fix browse/facet authority IT cleanup 2021-03-09 09:44:54 +01:00
Tim Donohue
5956609b81 Merge pull request #3161 from tdonohue/cleanup_config_and_messages
Cleanup unused/unnecessary Configurations and messages for 7.0
2021-03-08 08:57:10 -06:00
Mykhaylo
5fc63dc140 Merge branch 'main' into CST-3539_rebased 2021-03-08 10:15:51 +01:00
Mark H. Wood
8912d9c9ea Add much missing javadoc. Elaborate or clarify quite a bit too. [DS-2058] 2021-03-05 17:12:04 -05:00
Tim Donohue
0cd1e1b636 Remove unused JSON request handlers 2021-03-05 15:28:25 -06:00
Tim Donohue
b3fbaa4b1d Rename to RegistryUpdater so that it comes alphabetically *after* GroupServiceInitializer as Flyway runs callbacks alphabetically 2021-03-05 16:12:49 -05:00
Tim Donohue
2f33245f57 Remove unused log.init.config 2021-03-05 15:02:35 -06:00
Tim Donohue
a8d99bba15 Address feedback. Restore a few settings which are still used 2021-03-05 14:57:39 -06:00
Yura Bondarenko
379dd2d8a7 77228: Fix line length 2021-03-05 16:55:41 +01:00
j4bbi
7fc96dc148 Exposed more parameters for DBCP2 2021-03-05 13:39:34 +00:00
Yura Bondarenko
0df65bfa9b 77228: Fix authority browse/facet IT side effects 2021-03-05 12:03:45 +01:00
Bruno Roemers
52e1aa9dce 77489: Fix test TiltedRelationshipMetadataServiceIT#testGetAuthorRelationshipMetadata 2021-03-05 11:32:20 +01:00
Bruno Roemers
6f7181de4c 77489: Copy #testGetAuthorRelationshipMetadata for override 2021-03-05 11:29:27 +01:00
Yura Bondarenko
fea0a3a896 77228: Fix line length 2021-03-05 10:19:38 +01:00
Yura Bondarenko
990ae7750b 77228: Implement authority vocabulary fix for facet IT 2021-03-05 08:59:58 +01:00
Bruno Roemers
bfcaa94c76 77489: Update RelationshipMetadataServiceIT#testGetAuthorRelationshipMetadata 2021-03-04 18:36:12 +01:00
Bruno Roemers
f7f8121aeb 77489: Create TiltedRelationshipMetadataServiceIT and override #initPublicationAuthor 2021-03-04 18:11:48 +01:00
Bruno Roemers
46266f894c 77489: Create TiltedRelationshipRestRepositoryIT 2021-03-04 17:55:13 +01:00
Bruno Roemers
62e41a4d1a Merge branch 'main' into w2p-77489_tilted-relationships-tests 2021-03-04 17:22:42 +01:00
Raf Ponsaerts
5f6ae856cd Fixed browse tests 2021-03-04 15:28:38 +01:00
Samuel
3fe194ae09 taskid 77244 ItemMetadata caching bugfixes 2021-03-02 18:27:22 +01:00
Peter Nijs
f2527d9f21 77318: Google Scholar for entities: feedback 2021-03-02 14:53:09 +01:00
Yura Bondarenko
a7db90c13a 77228: Add IT for subject facet with authority value
Doesn't pass ~ no Solr results @ DiscoveryRestController#getFacetValues
2021-03-01 17:48:51 +01:00
Yura Bondarenko
52f17c3f12 77228: Match facet value by subject 2021-03-01 17:48:51 +01:00
Yura Bondarenko
c5916b136c 77228: Add IT for browse by subject with authority values
Doesn't pass ~ no Solr results @ BroweEntryLinkRepository#listBrowseEntries
2021-03-01 17:48:51 +01:00
Yura Bondarenko
b089b179b7 77228: BrowseEntryResourceMatcher#matchBrowseEntry with authority value 2021-03-01 17:43:33 +01:00
Yura Bondarenko
b41ebf9c60 77228: Overload withSubject: authority & confidence parameters 2021-03-01 17:42:20 +01:00
Yura Bondarenko
7186d07e2b 77228: Implement MetadataAuthorityService#clearCache 2021-03-01 17:40:43 +01:00
Hrafn Malmquist
fc26de9dc4 Merge branch 'main' into DS4574-7 2021-02-28 01:09:26 +00:00
j4bbi
215d3c0325 Get rid of Java7, upgrade DBCP2 dependency 2021-02-28 00:59:56 +00:00
Tim Donohue
7b9e3d70bb Upgrade to Solr 8.8.1 (from 8.7) 2021-02-26 12:29:52 -06:00
Tim Donohue
575994fab1 Apply prior feedback on further config cleanup 2021-02-26 10:03:32 -06:00
Tim Donohue
3588be22aa Remove obsolete/default Solr configs. Add some inline comments 2021-02-26 09:56:37 -06:00
Tim Donohue
76e5b50564 Remove old perl script 2021-02-25 16:55:59 -06:00
Tim Donohue
bd6c6446fc Fix broken test by adding a default key in Messages.properties 2021-02-25 16:55:05 -06:00
Tim Donohue
04d6c4484f Remove ununsed messages from Messages.properties 2021-02-25 16:55:05 -06:00
Tim Donohue
4ce58631c4 Remove unused JSPUI classes. Cleanup comments to remove mentions of XMLUI or JSPUI or removed configs 2021-02-25 16:55:05 -06:00
Tim Donohue
a55acc2379 Cleanup ununsed configurations 2021-02-25 16:55:04 -06:00
Tim Donohue
2292d89a6a Merge pull request #3107 from paulo-graca/dspace-issue-3099
OAI OpenAIRE4: changes to related identifiers and alternative identifiers
2021-02-25 11:55:30 -06:00
Tim Donohue
5d8285dc61 Merge pull request #3020 from tdonohue/upgrade_guava
Upgrade to latest Guava (v30) and Solr (v8) to resolve security alerts
2021-02-25 11:52:00 -06:00
Tim Donohue
4394d4bcca Ensure InputStream is closed 2021-02-25 10:36:04 -06:00
Tim Donohue
781456fadb Upgrade Jetty to avoid security warnings from Snyk. Also fixes GitHub security alert 2021-02-25 10:36:04 -06:00
Tim Donohue
e33b323135 Remove our custom Docker container for Solr. It's unreliable with Solr v8, and all the examples show to use docker-compose directly with official image. 2021-02-25 10:36:04 -06:00
Tim Donohue
90050c18fa Minor refactors based on feedback 2021-02-25 10:36:04 -06:00
Tim Donohue
891544a49b Docker bug fix. Ensure new Solr v8 data directories are kept between Docker restarts. 2021-02-25 10:36:03 -06:00
Tim Donohue
ea0d139c73 Add explicit dependency on Apache Tika to avoid UnsatisfiedDependencyException warnings from Spring Boot during startup 2021-02-25 10:36:03 -06:00
Tim Donohue
ffb17f0664 Fix/Workaround for https://issues.apache.org/jira/browse/SOLR-12798 . Use Tika directly for parsing instead of ContentStreamUpdateRequest (which results in "URI is too large >8192" errors in Solr v8) 2021-02-25 10:36:03 -06:00
Tim Donohue
ee46611419 Update solrconfig.xml files for Solr v8 (also minor alignment correction) 2021-02-25 10:36:03 -06:00
Tim Donohue
44aa1025ba Update Docker for Solr v8 2021-02-25 10:36:03 -06:00
Tim Donohue
022b79cb5e Upgrade to Solr 8.7.0. Fix dependency convergence issues. Minor fix to MockSolrServer for Solr 8 compatibility 2021-02-25 10:36:03 -06:00
Tim Donohue
25b00647b9 Workaround https://issues.apache.org/jira/browse/SOLR-12858 by ensuring EmbeddedSolrServer always uses GET instead of POST 2021-02-25 10:36:02 -06:00
Tim Donohue
7cabcbabbc Rename to RegistryUpdater so that it comes alphabetically *after* GroupServiceInitializer as Flyway runs callbacks alphabetically 2021-02-25 10:36:02 -06:00
Tim Donohue
d22a70611c Minor cleanup. Comment correction. Remove commented out code 2021-02-25 10:36:02 -06:00
Tim Donohue
635d341469 Upgrade to latest guava. Remove/replace outdated Lyncode builders & test-support which used old guava version. 2021-02-25 10:36:02 -06:00
Peter Nijs
28567c8daa 77250: Revert code style changes 2021-02-25 12:16:02 +01:00
Tim Donohue
b0b2cd9a6e Merge pull request #3136 from atmire/w2p-74236-access-condition
Submission embargo fix by removing group select
2021-02-24 16:29:32 -06:00
Tim Donohue
cb0a9fe663 Merge pull request #3144 from atmire/w2p-76191_Remove-Traditional-Basic-Workflow-from-codebase-and-database
Remove Traditional/Basic Workflow from codebase and database
2021-02-24 16:20:08 -06:00
Samuel
b779b91e54 Remove Traditional/Basic Workflow from codebase and database - restore in-between layer 2021-02-24 15:31:29 +01:00
Samuel
a752f7638e Remove Traditional/Basic Workflow from codebase and database - fix checkstyle issues 2021-02-23 21:36:35 +01:00
Samuel
8306d30341 Remove Traditional/Basic Workflow from codebase and database - add TODO comment to Curation 2021-02-23 20:34:16 +01:00
Samuel
1dc0a815f2 Remove Traditional/Basic Workflow from codebase and database - rename Workflow to XmlWorkflow 2021-02-23 20:31:27 +01:00
Ben Bosman
f5043f15c3 The relationship metadata is created
Also add checks based on plain metadata only
2021-02-23 13:19:03 +01:00
Ben Bosman
ceec8433c8 Checkstyle 2021-02-23 12:45:38 +01:00
Ben Bosman
5715d7d377 Marking metadata as updated after changing the relationship place 2021-02-23 12:18:40 +01:00
Ben Bosman
79830641e2 Marking metadata as updated after adding a metadata value 2021-02-23 12:11:37 +01:00
Peter Nijs
b6e223553a 76284: Add graphical community/collection structure 2021-02-22 17:55:12 +01:00
Raf Ponsaerts
4daa15d1fe Refactored ManageGroupFeature functionality 2021-02-22 12:41:28 +01:00
Peter Nijs
941da71713 77166: Manual master merge fixes 2021-02-22 10:09:04 +01:00
Peter Nijs
ccd1ea6c8d Merge remote-tracking branch 'community/main' into w2p-75924_Entitytypes-in-sitemaps 2021-02-22 10:08:06 +01:00
Bruno Roemers
c88f67ea1d Merge branch 'main' into w2p-74236-access-condition
Resolve merge conflict for https://github.com/DSpace/DSpace/pull/3136
2021-02-22 08:55:34 +01:00
Tim Donohue
4c78fce9d7 Merge pull request #3151 from atmire/w2p-76715_Bitstream-format-read-rights
Bitstream format retrieval for restricted files
2021-02-19 14:43:28 -06:00
Ben Bosman
b44fdd2de4 JavaDocs 2021-02-19 17:48:01 +01:00
Ben Bosman
73f22a00f7 Testing metadata field performance 2021-02-19 17:05:18 +01:00
Tim Donohue
2e7a933f51 Merge pull request #3106 from paulo-graca/dspace-issue-3097
OAI OpenAIRE: addressing issue 3097 with access rights
2021-02-19 09:37:50 -06:00
Ben Bosman
11efc35cae Testing metadata field performance 2021-02-19 13:08:10 +01:00
Ben Bosman
392d817ea9 Merge branch 'metadata-field-caching-hibernate-3' into metadata-field-caching-hibernate-3-performance-test 2021-02-19 12:31:32 +01:00
Ben Bosman
ef58d629b0 Testing metadata field performance 2021-02-19 12:30:55 +01:00
Andrea Bollini
23bf97f0c8 Merge pull request #3153 from tdonohue/fix_partial_db_migrations
Fix ability to run partial migrations (i.e. ./dspace database migrate [version]) during PR testing
2021-02-19 09:55:10 +01:00
Tim Donohue
80c3f98447 Merge pull request #2773 from the-library-code/DS-3940_SHERPA_v2_API_master
DS-3940 SHERPA v2 API (main port)
2021-02-18 13:30:21 -06:00
Tim Donohue
fab51daada Merge pull request #3003 from atmire/w2p-71502_deleting-items-with-min-relationship
Deleting items with min relationship
2021-02-18 09:51:03 -06:00
Mark H. Wood
37d7e69e7b [DS-2058] Make <mapping taskset='none'/> valid by defining empty dummy taskset. 2021-02-17 12:50:53 -05:00
Mark H. Wood
0e64959f6f [DS-2058] Enable autowiring and point to the configuration document. 2021-02-17 12:49:18 -05:00
Mark H. Wood
6856899467 [DS-2058] Satisfy checkstyle. 2021-02-17 12:45:08 -05:00
Mark H. Wood
f1c1ac5cf1 Merge branch 'main' into DS-2058-7x 2021-02-16 15:33:56 -05:00
Mark H. Wood
4a1148130b [DS-2058] Port to 7x. Formalize parser. Add tests. 2021-02-16 14:33:56 -05:00
Tim Donohue
b2a5853f80 Merge pull request #3154 from tdonohue/hal_browser_csrf_fixes
Ensure HAL Browser is checking for CSRF token changes during error responses
2021-02-16 09:18:43 -06:00
Marie Verdonck
aca41ea8cc Merge branch 'dspace-origin-master' into w2p-71502_deleting-items-with-min-relationship
# Conflicts:
#	dspace-server-webapp/src/test/java/org/dspace/app/rest/ItemRestRepositoryIT.java
2021-02-15 21:39:02 +01:00
Raf Ponsaerts
825488071d Merge remote-tracking branch 'dspace/main' into w2p-76284_issue-927---non-site-admin-edit-collection-authorization-group-REST
Conflicts:
	dspace-server-webapp/src/test/java/org/dspace/app/rest/CollectionRestRepositoryIT.java
2021-02-15 15:18:46 +01:00
Paulo Graça
66cdc01349 deal with dc:identifier.* having multiple languages 2021-02-12 22:44:39 +00:00
Paulo Graça
0997b9645b comments improvement and fix dc.right processing 2021-02-12 19:49:23 +00:00
Tim Donohue
a58a1554d9 Merge pull request #3149 from 4Science/issue-3130
Deeper membership don't work due to group2groupcache be out of sync
2021-02-12 09:52:10 -06:00
Tim Donohue
9401902a14 Merge pull request #3105 from atmire/w2p-75404_self-links-contain-embeds
Self links contain embed params
2021-02-12 09:48:12 -06:00
Mark H. Wood
0a3851267f [DS-2058] Replace unwarranted assumptions about XML attribute order with named attributes 2021-02-12 10:31:38 -05:00
Mark H. Wood
a5dc6d1c34 [DS-2058] First cut at adding curation to Configurable Workflow 2021-02-12 10:31:33 -05:00
Tim Donohue
6850b8c023 Fix LGTM issue (unused variable) 2021-02-12 09:29:08 -06:00
Tim Donohue
0a54bf55cd Ensure HAL Browser is checking for CSRF token changes during error responses 2021-02-11 16:59:48 -06:00
Mark H. Wood
5cb853d92b Clean up some commentary 2021-02-11 16:42:02 -05:00
Tim Donohue
80f76b4e0a Fix ability to run partial migrations by disabling callbacks and reindex 2021-02-11 14:56:11 -06:00
Tim Donohue
7138d32eed Merge pull request #3114 from atmire/w2p-75465_change-to-embed-size
REST API changes to embed size
2021-02-11 12:57:02 -06:00
Tim Donohue
1a9df9c795 Merge pull request #3147 from tdonohue/fix_version_tag
Ensure REST API version is prepended with "DSpace"
2021-02-11 12:51:16 -06:00
Tim Donohue
1c85bed04c Merge pull request #3095 from mwoodiupui/3094
Improve IPv6 support
2021-02-11 08:44:33 -06:00
Ben Bosman
c592b6b4e4 Feedback on the PR 2021-02-11 11:15:31 +01:00
Ben Bosman
7d419b5efa Feedback on the PR 2021-02-11 11:03:39 +01:00
Andrea Bollini
bbea5d5488 #3130 fix group2groupcache issue in adding/removing subgroups via REST 2021-02-10 18:57:45 +01:00
Andrea Bollini
e310334dd4 #3130 Cleanup test and add check to proof the issue with the group2groupcache table 2021-02-10 18:56:27 +01:00
Tim Donohue
5f468770ff Merge pull request #3076 from atmire/feature-submission-forms-migration
Submission forms migration script
2021-02-10 11:19:22 -06:00
Ben Bosman
4f821ca417 Test hibernate level 1 cache 2021-02-10 15:22:33 +01:00
April Herron
06c39ad750 Implement tilted relationships to help improve performance 2021-02-10 09:20:15 -05:00
Yana De Pauw
5024f983f0 75465: Add support for multilevel embeds 2021-02-10 14:57:39 +01:00
Marie Verdonck
c03578321b PR #3076: item-submission.xml changes from #3081 in xsl transformation 2021-02-10 11:18:10 +01:00
Marie Verdonck
1e686495b2 74720: relative to absolute paths; comments & output files .migrated 2021-02-10 10:55:45 +01:00
Raf Ponsaerts
28b0f8f6cc Fixed checkstyle issues on SubmissionFormsMigration 2021-02-10 10:55:45 +01:00
Marie Verdonck
d9d68ab5e6 74720: Refactor temp file creation/deletion 2021-02-10 10:55:45 +01:00
Marie Verdonck
f3d38f7f26 74720: No more submission-forms-migrate script access via REST 2021-02-10 10:55:45 +01:00
Marie Verdonck
3ef0795ba3 74720: Create dummy DTD files for validation if not present in input dirs 2021-02-10 10:55:45 +01:00
Raf Ponsaerts
5117b63617 Minor change in order of steps in submission-process in submission-definitions 2021-02-10 10:55:45 +01:00
Marie Verdonck
0bbfc1ded5 74720: onebox => twobox in submission-forms (twobox no longer present in dspace7) 2021-02-10 10:55:45 +01:00
Marie Verdonck
f7c6bcfe9f 74720: submission-map (mapping collection-submissionProcess) from old input-forms.xml instead of item-submission.xml 2021-02-10 10:55:45 +01:00
Marie Verdonck
b0be29845d 74720: Add static steps license and upload &
add a step per form page from input-forms (static type submission-form; class DescribeStep)
2021-02-10 10:55:45 +01:00
Marie Verdonck
150c8452fd 74720: Migrate submission-process information 2021-02-10 10:55:45 +01:00
Raf Ponsaerts
ccdb4bf503 removed super from handler log calls in SubmissionFormsMigration 2021-02-10 10:55:44 +01:00
Marie Verdonck
b63643808d 74491: Feedback 2020-11-17 applied 2021-02-10 10:55:44 +01:00
Marie Verdonck
abc333bf9c 74491: Java script for transforming the xml files 2021-02-10 10:55:44 +01:00
Marie Verdonck
d239c95170 74490: item-submissions.xmml migration XSL; WIP 2021-02-10 10:55:44 +01:00
Yana De Pauw
529e8ac011 73214: Submission forms migrations #1 2021-02-10 10:55:44 +01:00
Yana De Pauw
055f68dadf 76682: Add more embed param support to self link exlusion 2021-02-10 09:04:02 +01:00
Yana De Pauw
efccc2a3f8 Merge branch 'w2p-75465_change-to-embed-size' into w2p-75404_self-links-contain-embeds 2021-02-10 08:24:05 +01:00
Mark H. Wood
c2a1287771 Restore Locale lost while merging with 'main'. #3094 2021-02-08 16:03:14 -05:00
Mark H. Wood
b00181016f Merge branch 'main' into 3094 2021-02-08 16:00:43 -05:00
Tim Donohue
d4c6bd7847 Merge pull request #3103 from tdonohue/reenable_csrf_protection
Enable Customized CSRF Protection in Spring Security for Server Webapp
2021-02-08 11:44:33 -06:00
Raf Ponsaerts
1f684b80e5 Merge branch 'w2p-76284_issue-927---non-site-admin-edit-collection-authorization-group-REST' of https://github.com/atmire/DSpace into w2p-76284_issue-927---non-site-admin-edit-collection-authorization-group-REST 2021-02-08 12:54:01 +01:00
Raf Ponsaerts
2055901867 Merge remote-tracking branch 'dspace/main' into w2p-76284_issue-927---non-site-admin-edit-collection-authorization-group-REST
Conflicts:
	dspace-api/src/main/java/org/dspace/discovery/SolrServiceResourceRestrictionPlugin.java
2021-02-08 12:53:38 +01:00
Peter Nijs
510ee70807 75924: Fixed style issues in GenerateSitemaps 2021-02-08 12:41:56 +01:00
Peter Nijs
c2bbdfcfb2 76284: Feedback 2021-02-05 17:28:37 +01:00
Peter Nijs
6fcaf1fcdd 76715: Bitstream format cannot be retrieved if you don't have read rights on the file 2021-02-05 12:50:29 +01:00
Tim Donohue
0b00229f49 Merge pull request #3146 from atmire/security-issue-discovery
[3116] Security issue in discovery
2021-02-04 15:19:33 -06:00
Tim Donohue
f39673b1cc Ensure version is prepended with "DSpace" so it can be used in UI as generator 2021-02-04 10:29:38 -06:00
Tim Donohue
7e3b1afef1 Merge pull request #2692 from atmire/DS-4440_GDPR_anonymize-statistics-feature
DS-4440 GDPR - Anonymize statistics feature
2021-02-04 10:11:35 -06:00
Tim Donohue
a1cbc3df02 Merge pull request #3142 from tdonohue/fix_journal_config
Fix bugs in default Journal Hierarchy submission configuration
2021-02-04 08:57:47 -06:00
Ben Bosman
994062b691 #3116 Security issue in discovery
Fix in discovery indexing
2021-02-04 13:57:51 +01:00
Ben Bosman
7515fb2075 #3116 Security issue in discovery
Fix in PreAuthorize (making sure it's not ignored)
2021-02-04 13:04:54 +01:00
Raf Ponsaerts
ed26f7494c Small refactor 2021-02-04 11:10:34 +01:00
Tim Donohue
ca0786a067 Merge pull request #3145 from DSpace/dependabot/maven/org.apache.ant-ant-1.10.9
Bump ant from 1.9.15 to 1.10.9
2021-02-03 14:52:27 -06:00
dependabot[bot]
d343fe7de9 Bump ant from 1.9.15 to 1.10.9
Bumps ant from 1.9.15 to 1.10.9.

Signed-off-by: dependabot[bot] <support@github.com>
2021-02-03 19:21:38 +00:00
Kevin Van de Velde
adc98563d7 Fixing issues with the latest main merge 2021-02-03 13:10:36 +01:00
Kevin Van de Velde
6e4a641ea5 Fixing issues with the latest main merge 2021-02-03 13:07:21 +01:00
Kevin Van de Velde
dbc0281771 Merge remote-tracking branch 'upstream/main' into w2p-76191_Remove-Traditional-Basic-Workflow-from-codebase-and-database 2021-02-03 13:04:46 +01:00
Tim Donohue
412794325a Fix bugs in default configuration 2021-02-02 14:06:39 -06:00
Samuel
ce196d33be DS-4440 GDPR - Anonymize statistics feature - move tests to dspace-api 2021-02-02 10:43:02 +01:00
Peter Nijs
d0aec95b28 76284: Issue 927: 401 Community or Collection Administrator editing Collection Authorization Group REST Implementation
- implement Community and Collection admin search
- implement the CollectionAdminFeature and CommunityAdminFeature Authorization feature
2021-02-02 10:27:05 +01:00
Tim Donohue
2943a78eea Merge pull request #3137 from 4Science/issue-3055-some-renaming
Issue 3055 some renaming
2021-02-01 11:43:01 -06:00
Yana De Pauw
389030a45d Add javadocs 2021-02-01 15:31:10 +01:00
benbosman
0e8cd8fa58 Merge pull request #59 from atmire/w2p-76575_IT-for-deleting-items-and-populating-virtual-md
W2p 76575 it for deleting items and populating virtual md
2021-02-01 15:03:22 +01:00
Tim Donohue
e2ce888b14 Merge pull request #3111 from mwoodiupui/3110
Fix puzzling incorrect failure to match dspace.server.url
2021-01-29 15:46:59 -06:00
Tim Donohue
d52f23860f Merge pull request #3132 from atmire/w2p-75451_improve-REST-error-messages
Improve REST Error message for specific errors
2021-01-29 15:18:03 -06:00
Andrea Bollini
d0e059f12b Rename unit test according to the name convention 2021-01-29 22:02:57 +01:00
Andrea Bollini
c938020226 Rename ITs according to the naming convention 2021-01-29 22:02:57 +01:00
Tim Donohue
3dd393e435 Merge pull request #3133 from 4Science/DS-4443_improvements
[DS-4443] delete solr record on workspaceitem deletion (updated PR)
2021-01-29 14:21:13 -06:00
Mark H. Wood
75aa37dfb6 Move exception case to a separate test method. #3094
This now properly shows that querying an IPv6 address does not raise an exception.
2021-01-29 13:54:37 -05:00
Marie Verdonck
e32fd1fc4c 76575: ITs for deleting items and populating virtual metadata 2021-01-29 17:23:49 +01:00
Tim Donohue
70253bc1bf Resolve feedback - Ensure DSpaceAccessDeniedHandler passes exception response handling to DSpaceApiExceptionControllerAdvice dynamically. 2021-01-29 10:02:21 -06:00
Andrea Bollini
f349e7f4ce Attempt to mitigate the issue 3055 2021-01-29 16:50:38 +01:00
Mark H. Wood
945ee9af76 Satisfy checkstyle. #3094 2021-01-29 10:37:14 -05:00
Marie Verdonck
be48c56cae Merge branch 'dspace-origin-master' into w2p-76575_IT-for-deleting-items-and-populating-virtual-md
# Conflicts:
#	dspace-api/src/main/java/org/dspace/content/RelationshipServiceImpl.java
#	dspace-server-webapp/src/test/java/org/dspace/app/rest/RelationshipRestRepositoryIT.java
2021-01-29 11:09:18 +01:00
Mark H. Wood
654412eb88 Add tests. #3094 2021-01-28 16:58:46 -05:00
Mark H. Wood
8d6318d3e9 Correct misleading method javadoc. #3110 2021-01-28 15:38:16 -05:00
Mark H. Wood
f9a527fd5c Address reviews. Fix reversed parameters. Compare path elements, not whole paths. #3110 2021-01-28 15:25:08 -05:00
Tim Donohue
8b3fc1f95f Merge pull request #3131 from atmire/entities-performance-improvement-relationshipservice
Entities performance improvement in RelationshipServiceImpl
2021-01-28 14:17:06 -06:00
Tim Donohue
a1639d5982 Merge pull request #3115 from tdonohue/author_as_onebox
Switch Author field to "onebox" to allow first/last name in single entry box.
2021-01-28 14:04:30 -06:00
Tim Donohue
ab4eec8119 Merge pull request #3098 from atmire/w2p-75361_Enforce-facet-filter-operator-is-valid-value
Enforce that facet "filter-operator" is a valid value
2021-01-28 14:02:19 -06:00
Ben Bosman
a58905d8ed Test metadata value cache 2021-01-28 15:10:10 +01:00
Ben Bosman
5524021089 Test metadata value cache 2021-01-28 14:41:09 +01:00
Ben Bosman
ad2bf1f66a Note that this was never implemented 2021-01-28 09:52:51 +01:00
Bruno Roemers
2cb50b7f42 74236: Update ITs 2021-01-27 17:12:32 +01:00
Bruno Roemers
b64711253a 74236: Remove obsolete bean and IT test 2021-01-27 16:58:45 +01:00
Bruno Roemers
2109a5878d 74236: BUGFIX: StartDateLimit and EndDateLimit are both maximum dates
They do not represent a range but are independent of each other.

Also removed obsolete field selectGroupName.
2021-01-27 16:58:23 +01:00
Andrea Bollini
f5aac1eefa Fix zombie workspaceitem in the solr index, improve ITs to cover all the scenarios 2021-01-27 16:43:44 +01:00
Raf Ponsaerts
a4d114670f Small refactor to comment and made a method private 2021-01-27 12:49:06 +01:00
Marie Verdonck
8fcec01d5d 76244: Feedback PR #3093 - Exceptions to match RestContract 2021-01-27 11:01:32 +01:00
Samuel
16ae96b4c3 taskid 76191 Remove Traditional/Basic Workflow from codebase and database 2021-01-27 06:41:16 +01:00
Andrea Bollini
0978aa6ca0 Merge remote-tracking branch 'atmire/DS-4443_delete-solr-record-on-workspaceitem-deletion' into DS-4443_improvements 2021-01-26 23:19:16 +01:00
Ben Bosman
fa90057203 Entities performance improvement in RelationshipServiceImpl
If there's no max on the relationships, don't bother trying to verify whether the max would be exceeded
Don't get virtual metadata for retrieving the relationship type
2021-01-26 15:04:15 +01:00
Bruno Roemers
8f7a67e1a5 74236: WIP: Write tests 2021-01-25 23:24:56 +01:00
Bruno Roemers
5f68a227da 74236: Implement boundary checks 2021-01-25 21:35:01 +01:00
Bruno Roemers
4a2152c482 76179: Move DateMathParser to dspace-api module
DateMathParser will be needed in AccessConditionOption, so this
change is needed to avoid a circular dependency
(dspace-api -> dspace-server-webapp).
2021-01-25 16:22:32 +01:00
Kim Shepherd
1d9b9c6c41 [DS-3940] Correct typo in ExternalSourcesRestControllerIT 2021-01-22 19:02:55 +13:00
Kim Shepherd
aa16ef7179 [DS-3940] Update ExternalSourcesRestControllerIT to count for new external sources 2021-01-22 16:57:09 +13:00
Kim Shepherd
8fc804a836 [DS-3940] Remove unused import in SHERPAv2JournalDataProvider 2021-01-22 16:10:16 +13:00
Kim Shepherd
fdabd643f0 [DS-3940] Additional javadoc, integration and unit tests, service refactor 2021-01-22 15:44:05 +13:00
Kim Shepherd
7b01dcf822 [DS-3940](main) Remove version label, getter, setter from PermittedVersion 2021-01-22 15:39:54 +13:00
Kim Shepherd
0f25bd96da [DS-3940](main) Log response body in HTTP errors, err msg in submit service 2021-01-22 15:39:54 +13:00
Kim Shepherd
038500b772 [DS-3940](main) Remove versionLabel from permittedVersion - just store key 2021-01-22 15:39:54 +13:00
Kim Shepherd
50612a8334 [DS-3940](main) Rethrow IOExceptions that are caught within main try block 2021-01-22 15:39:54 +13:00
Kim Shepherd
6bed089459 [DS-3940](main) Sanitise query string (bugfix for bad method name in Pub) 2021-01-22 15:39:54 +13:00
Kim Shepherd
b53d14eeae [DS-3940](main) Sanitise query strings for SHERPA v2 API calls 2021-01-22 15:39:54 +13:00
Kim Shepherd
43d7c20fd2 [DS-3940](main) Shift spring config to DSpace config service for providers 2021-01-22 15:39:54 +13:00
Kim Shepherd
a8bdc5f09a [DS-3940](main) Add basic javadoc for new SHERPA data classes 2021-01-22 15:39:54 +13:00
Kim Shepherd
1b40dff96a [DS-3940](main) Replace '200' with HttpStatus.SC_OK in data providers 2021-01-22 15:39:54 +13:00
Kim Shepherd
e2f38fb257 [DS-3940](master) Fixes for Checkstyle failures in unit tests
(imports, whitespace after catch)
2021-01-22 15:39:54 +13:00
Kim Shepherd
7fffe96a6a [DS-3940](master) Add license headers to unit test classes 2021-01-22 15:39:54 +13:00
Kim Shepherd
54ec03d0a1 [DS-3940](master) Ensure sherpa.romeo.apikey placeholder always exists
Spring bean configuration (external-sources.xml) requires the placeholder,
even if it is null, so this change reverts the commented out api key
introduced with other v2 refactor work
2021-01-22 15:39:54 +13:00
Kim Shepherd
0b10f1971b [DS-3940](master) Better handling of empty / null results in providers 2021-01-22 15:39:54 +13:00
Kim Shepherd
c2b2545f88 [DS-3940](master) Removal of legacy v1 SHERPA classes and data providers 2021-01-22 15:39:54 +13:00
Kim Shepherd
d14699b0da [DS-3940](master) Configuration changes for new API key, URL, external svcs 2021-01-22 15:38:30 +13:00
Kim Shepherd
6abb1d96f7 [DS-3940](master) Unit tests for SHERPAResponse, SHERPAPublisherResponse 2021-01-22 15:38:30 +13:00
Kim Shepherd
dcca10c91a [DS-3940](master) Refactor external providers for journals, publishers 2021-01-22 15:38:30 +13:00
Kim Shepherd
dd10104661 [DS-3940](master) Port base SHERPA v2 changes from 6.x version 2021-01-22 15:38:30 +13:00
Tim Donohue
12ffc78452 Merge pull request #3117 from atmire/w2p-76002_change-default-discovery-config
Correct use of Default Discovery configuration
2021-01-21 11:50:50 -06:00
Tim Donohue
b0a5b55ca1 Switch author field to onebox. Update DTD to allow regex in relation-field. Other minor changes 2021-01-21 11:41:55 -06:00
Bruno Roemers
890315d312 75451: Make user exposed error messages translatable 2021-01-21 15:16:40 +01:00
Marie Verdonck
9ffef90ced 76244: Feedback PR #3093 - Exceptions 2021-01-20 16:25:14 +01:00
Tim Donohue
5c2deae4d9 Merge pull request #3004 from atmire/entities-update-item-metadata-outside-rest
Entities update item metadata outside rest
2021-01-20 08:44:27 -06:00
Tim Donohue
5a3f68e87c Merge pull request #3109 from atmire/w2p-75240_Issue-943-External-sources-limited-based-on-metadata-field
Limit externalSources per metadata field
2021-01-20 08:42:31 -06:00
Raf Ponsaerts
9804110b04 Removed testing config remnant 2021-01-19 14:41:00 +01:00
Ben Bosman
2dee4bd87d w2p-74236 Disable group selection for bitstream resource policies during submission 2021-01-19 09:07:00 +01:00
Ben Bosman
ca2c537d01 w2p-74236 Disable group selection for bitstream resource policies during submission 2021-01-18 17:00:16 +01:00
Peter Nijs
a56c442b1f 75924: Sitemaps performance and lowercase entityTypes 2021-01-18 16:18:48 +01:00
Mykhaylo
cfa8b0348b added tests 2021-01-18 15:14:07 +01:00
Ben Bosman
567a9f0567 Verify the relationship is deleted
Status 404 is needed for a relationship which doesn't exist
2021-01-15 13:24:25 +01:00
Ben Bosman
564140b0c8 Merge remote-tracking branch 'community/main' into w2p-71502_deleting-items-with-min-relationship 2021-01-15 11:39:07 +01:00
Tim Donohue
7c8de66954 Merge pull request #3066 from atmire/74271-External-sources-query-param-issue
Removal of automatically added 'query' parameter for entries subpath
2021-01-14 08:43:44 -06:00
Kevin Van de Velde
31fc4cb023 Fixing the tests & the style issues 2021-01-14 13:35:05 +01:00
Bruno Roemers
ff5d1f6808 76002: Replace "site" with "default" in DiscoveryConfigurationService 2021-01-14 11:43:30 +01:00
Yana De Pauw
a9fe4ae1d1 75409: Delete solr record on workspaceitem deletion: Test feedback V2 2021-01-13 15:24:32 +01:00
Mark H. Wood
60a453a2c1 Merge branch '3110' of github.com:mwoodiupui/DSpace into 3110 2021-01-12 16:49:11 -05:00
Mark H. Wood
0b1789ad09 Extract paths from URLs to arrays before trimming leading elements. #3110
Let exception report its constructor arguments in its message.
More comment cleanup.
2021-01-12 16:40:56 -05:00
Marie Verdonck
b77b9949ee 75922: Feedback PR #3004 2021-01-12 17:22:18 +01:00
Raf Ponsaerts
d79b27f3a2 Added docs 2021-01-12 13:30:08 +01:00
Raf Ponsaerts
8ee63b4afc Small refactor 2021-01-12 13:27:41 +01:00
Tim Donohue
909d8caeee Merge pull request #3112 from kshepherd/DS-4452_bulkedit_ignore_v7
[DS-4452] Porting correct instantiation of default ignore fields (CSV…
2021-01-11 09:16:02 -06:00
Kim Shepherd
caee3862d9 [DS-4452] Porting correct instantiation of default ignore fields (CSV) from pr/2661 2021-01-11 13:06:53 +13:00
Tim Donohue
6747bbea92 Bug Fix: CSRF token should be reset after InvalidCsrfTokenException to allow for resyncing between client & server 2021-01-08 15:56:54 -06:00
Mark H. Wood
a5a84e1758 Merge branch 'main' into 3110 2021-01-08 15:52:21 -05:00
Mark H. Wood
751d7d5fdb Compare URLs in a way that recognizes URL structure, not as simple strings. #3110
Also improve readability of some commentary.
2021-01-08 15:37:36 -05:00
Bruno Roemers
e31491e00d 75451: TEST: verify last eperson in workflow group cannot be deleted 2021-01-08 12:57:37 +01:00
Bruno Roemers
1a1557079d 75451: TEST: verify EPersonNameNotProvidedException error message in response 2021-01-08 11:10:28 +01:00
Bruno Roemers
856b2c393b 75451: Update GroupRestRepositoryIT 2021-01-08 11:10:20 +01:00
Yana De Pauw
8d78b9ca09 75465: REST API Changes to embed size 2021-01-08 09:17:24 +01:00
Bruno Roemers
ea613aa72f 75451: Make error messages public
The messages can then be used in the integration tests,
instead of hardcoding the expected response.
2021-01-08 08:46:17 +01:00
Paulo Graça
1db63c9262 fix resolveFieldType for identifier element by forcing the first element 2021-01-07 15:33:12 +00:00
benbosman
54a844e033 Merge pull request #52 from atmire/w2p-75473-Test-to-verify-implicit-virtual-metadata-is-updated
W2p 75473 test to verify implicit virtual metadata is updated
2021-01-07 13:49:03 +01:00
Paulo Graça
43893124e5 also add support for oaire:file @accessRightsURI 2021-01-07 10:41:43 +00:00
Bruno Roemers
e5bc76af04 75451: Add JavaDoc and make error message private 2021-01-07 09:57:27 +01:00
Tim Donohue
b35a3f71be Update HAL browser to use DSPACE-XSRF-TOKEN header and store token in custom MyHalBrowserCsrfToken Cookie. Minor comment fixes to TokenRepo 2021-01-06 10:24:14 -06:00
Tim Donohue
acaa1dbc64 Require POST for logout. Update CSRFTokenRepository to no longer allow server token to be read by Javascript 2021-01-06 10:24:14 -06:00
Tim Donohue
126775c665 Update dspace-shibboleth docker settings to no longer overwrite Access-Control-Expose-Headers. Instead we'll use the ones from Tomcat. 2021-01-06 10:24:13 -06:00
Tim Donohue
d084358e70 Customize CsrfTokenRepository and CsrfAuthenticationStrategy to support cross domain CSRF protection. 2021-01-06 10:24:13 -06:00
Tim Donohue
30451676ab Ensure allowed origins never end in a slash. Otherwise, you can get CORS errors even if the URL is correct. 2021-01-06 10:24:12 -06:00
Tim Donohue
f6c095f296 Add comments to dspace.cfg describing Spring Boot proxy settings which may be applicable to sites using a proxy. I found this useful when testing SameSite cookies behind a HTTPS proxy. 2021-01-06 10:24:11 -06:00
Tim Donohue
d15e603d43 Add (custom) CSRF support to HAL Browser 2021-01-06 10:24:11 -06:00
Tim Donohue
901cf6e285 Fix possible XSS issue in Hal Browser. See https://github.com/mikekelly/hal-browser/pull/97 2021-01-06 10:24:11 -06:00
Tim Donohue
b6bf9a2fb3 Add in missing Builders to enable automated cleanup for these builders 2021-01-06 10:24:10 -06:00
Tim Donohue
55c47194f4 Cleanup WebSecurityConfiguration via reorg, adding comments & removing duplicative or unneeded default configs. 2021-01-06 10:24:10 -06:00
Tim Donohue
de58a6ca03 Reenable CSRF projection with recommended Angular settings 2021-01-06 10:24:10 -06:00
Marie Verdonck
4cab1633e8 75473: Test to verify implicit virtual metadata is updated +
fix for entity type match
2021-01-06 15:02:50 +01:00
Paulo Graça
4b13a11376 support for related identifiers and alternative identifiers 2021-01-06 13:10:53 +00:00
Bruno Roemers
679f2d64ed 75451: Add EPersonNameNotProvidedException and GroupNameNotProvidedException 2021-01-06 10:39:17 +01:00
Bruno Roemers
8cd6ddf0d8 75451: BUGFIX: Add missing license header 2021-01-06 08:56:25 +01:00
Bruno Roemers
c878293b99 75451: Show custom error message when removing last user from workflow group 2021-01-05 14:48:36 +01:00
Peter Nijs
1642a5598b 75469: entityType property in ItemRest is read only 2021-01-05 14:43:32 +01:00
Paulo Graça
42a6c2ae79 addressing issue 3097 2021-01-04 15:11:14 +00:00
Yana De Pauw
01bf6caf1e 75404: [Issue 3062] Self links contain embed params 2021-01-04 11:33:46 +01:00
Peter Nijs
a0a7226a43 75470: The sitemaps use a different URI dependent on the entity type 2020-12-30 13:52:39 +01:00
Peter Nijs
088bcb64ce 75469: The REST API should return the entitytype property 2020-12-29 13:26:19 +01:00
Ben Bosman
eb47a84e01 Docs indirect relationship discovery updates 2020-12-24 10:33:45 +01:00
Raf Ponsaerts
0927a3c6ba removed unused import 2020-12-23 15:10:29 +01:00
Kristof De Langhe
74d1561357 75240: ExternalSource for collection submit 2020-12-21 14:33:39 +01:00
Raf Ponsaerts
be5e2a8479 update config 2020-12-21 14:30:22 +01:00
Raf Ponsaerts
c2527e4909 Added config for a collection submit 2020-12-21 14:30:14 +01:00
Yana De Pauw
9d487e36c1 Merge remote-tracking branch 'upstream/main' into DS-4443_delete-solr-record-on-workspaceitem-deletion 2020-12-21 10:46:10 +01:00
Tim Donohue
250c87dc16 Merge pull request #3091 from tdonohue/shib_via_docker
Create Shibboleth Docker Scripts using samltest.id for easier development
2020-12-18 16:02:54 -06:00
Tim Donohue
4ecfa4454a Merge pull request #3084 from atmire/w2p-75135_ClassCastException-fix
Discovery event consumer throwing ClassCastException on WorkspaceItem creation fix
2020-12-17 10:39:42 -06:00
Tim Donohue
d9b5d4ed1f Merge pull request #3081 from atmire/w2p-74939_2786-fix-item-submission-xml-DTD
item-submission refactor to have different step xml tags
2020-12-17 08:52:31 -06:00
Ben Bosman
7b346e7584 Bugfix indirect relationship discovery updates 2020-12-17 15:46:38 +01:00
Ben Bosman
c4d4b18150 Bugfix indirect relationship discovery updates 2020-12-17 15:04:12 +01:00
Ben Bosman
b0efee2a49 Bugfix indirect relationship discovery updates 2020-12-17 14:44:23 +01:00
Ben Bosman
fbfc352768 Bugfix indirect relationship discovery updates 2020-12-17 13:24:12 +01:00
Ben Bosman
47888e7975 Bugfix indirect relationship discovery updates 2020-12-17 13:06:21 +01:00
Marie Verdonck
11ad719730 75361: Enforce that facet "filter-operator" is a valid value + IT 2020-12-17 12:45:09 +01:00
Ben Bosman
71cfab142c Bugfix indirect relationship discovery updates 2020-12-17 12:33:55 +01:00
Ben Bosman
ea24d6168c Bugfix indirect relationship discovery updates 2020-12-17 12:23:00 +01:00
Ben Bosman
1eaf75e1bd Merge remote-tracking branch 'community/main' into entities-update-item-metadata-outside-rest-v2 2020-12-17 12:05:27 +01:00
Ben Bosman
97feeecd95 Bugfix indirect relationship discovery updates 2020-12-17 11:41:02 +01:00
Ben Bosman
098b273a85 Bugfix indirect relationship discovery updates 2020-12-17 11:24:22 +01:00
Yana De Pauw
8cd404b6a7 75323: Delete solr record on workspaceitem deletion: Test feedback 2020-12-17 10:46:47 +01:00
Ben Bosman
e3b15bfa92 Bugfix indirect relationship discovery updates 2020-12-16 14:36:28 +01:00
Kristof De Langhe
0b06620210 75240: External sources for realtion-fields in submission 2020-12-16 11:46:55 +01:00
Mark H. Wood
dcd9d2e9a5 Work-around: treat IPv6 address as non-match, not format error. #3094
Also improve documentation.
This class should be reworked to properly support IPv6.
2020-12-15 13:50:11 -05:00
Mark H. Wood
12376df5e3 Better support IPv6 by using standard JRE lookup methods. #3094
Also avoid NPE when there is no current user.
2020-12-15 13:46:23 -05:00
Mykhaylo
3b5130c5a4 added new tests and fixed old 2020-12-15 11:39:39 +01:00
Mykhaylo
fd44faa3fc Implement community feedbacks 2020-12-15 11:37:18 +01:00
Tim Donohue
65be3a5eb6 Add instructions for using dspace-angular with Shibboleth as well 2020-12-14 11:27:11 -06:00
Tim Donohue
81ae880009 Add missing license headers & ignore .conf for license header check 2020-12-14 11:27:11 -06:00
Tim Donohue
33b7f064e1 Enhance docs and minor config corrections 2020-12-14 11:27:11 -06:00
Tim Donohue
4ee7caa168 Add attribute-map.xml for samltest.id and write more detailed instructions 2020-12-14 11:27:11 -06:00
Tim Donohue
29bece98db Update to allow Apache/Shibboleth Server Name to be passed via env variable 2020-12-14 11:27:11 -06:00
Tim Donohue
f91a48c1f6 Add AJP connector to both Apache and Tomcat. Add new docker compose for shib 2020-12-14 11:27:11 -06:00
Tim Donohue
600114536f Add Apache VHost with Shib settings 2020-12-14 11:27:10 -06:00
Tim Donohue
e9cf8697df Initial framework for dspace-shibboleth docker container 2020-12-14 11:27:10 -06:00
Tim Donohue
c1e97188f9 Merge pull request #3079 from atmire/3078-EntityTypeLabelRestController-GetByLabelImprove
3078 Change EntityTypeLabelRestController get by label to return REST…
2020-12-11 13:56:28 -06:00
Tim Donohue
ab39c6482f Merge pull request #3068 from atmire/74329-Internal-server-errors-for-external-sources
Fixing internal server errors for external sources
2020-12-11 12:48:44 -06:00
Tim Donohue
8cb504f88b Merge pull request #3086 from DSpace/paulo-graca-iso-openaire-bugfix
Addressing issue #3074
2020-12-10 16:39:54 -06:00
Paulo Graça
b00e472e38 Addressing issue #3074 2020-12-10 15:49:05 +00:00
Samuel
b8b6aa0f68 DS-4440 GDPR - Anonymize statistics feature - feedback 2020-12-10 14:12:53 +01:00
Samuel
6b84d20714 DS-4440 GDPR - Anonymize statistics feature - test feedback 2020-12-10 14:12:53 +01:00
Samuel
af32b8b56d DS-4440 GDPR - Anonymize statistics feature - fix test 2020-12-10 14:12:52 +01:00
Samuel
feb6ba6d18 DS-4440 GDPR - Anonymize statistics feature - remove shard support 2020-12-10 14:12:52 +01:00
Samuel
c287062090 DS-4440 GDPR - Anonymize statistics feature - add test 2020-12-10 14:12:52 +01:00
Samuel
b581d473ff Add SolrStatisticsCore and MockSolrStatisticsCore beans 2020-12-10 14:12:52 +01:00
Samuel
ebcd1fc6cf DS-4440 GDPR - Anonymize statistics feature - add typedocs 2020-12-10 14:12:24 +01:00
Samuel
fd0051091f DS-4440 GDPR - Anonymize statistics feature - fix checkstyle issue 2020-12-10 14:12:24 +01:00
Samuel
1f73d136f2 DS-4440 GDPR - Anonymize statistics feature - feedback: default configuration 2020-12-10 14:12:24 +01:00
Samuel
5e56e82656 DS-4440 GDPR - Anonymize statistics feature - feedback: default configuration & spelling tris 2020-12-10 14:12:24 +01:00
Samuel
b80b18466d DS-4440 GDPR - Anonymize statistics feature - feedback: default configuration & spelling bis 2020-12-10 14:12:24 +01:00
Samuel
d71472fcc3 DS-4440 GDPR - Anonymize statistics feature - feedback: default configuration & spelling 2020-12-10 14:12:24 +01:00
Samuel
10f38d3fe5 DS-4440 GDPR - Anonymize statistics feature - feedback 2020-12-10 14:12:24 +01:00
Samuel
810b9c3bbc DS-4440 GDPR - Anonymize statistics feature 2020-12-10 14:12:24 +01:00
Tim Donohue
a5fba06861 Merge pull request #3085 from tdonohue/fix_oai_bean_issues
Fix issues with OAI accidentally loading the wrong ConfigurationService
2020-12-09 16:16:32 -06:00
Tim Donohue
81ab838543 Fix issues with OAI accidentally loading the wrong ConfigurationService using Autowired 2020-12-09 15:48:43 -06:00
Tim Donohue
b3083a0e02 Merge pull request #3083 from tdonohue/fix_clean_index_bug
Fix bug in cleanIndex() where not all Solr fields were returned.
2020-12-08 16:49:29 -06:00
Tim Donohue
6bf55ec9ae Fix bug in cleanIndex where not all Solr fields were returned. Make countQuery separate 2020-12-08 16:06:50 -06:00
Kristof De Langhe
83f1daa735 75135: ClassCastException fix 2020-12-08 16:57:23 +01:00
Yana De Pauw
148af699f1 Merge remote-tracking branch 'upstream/main' into 74329-Internal-server-errors-for-external-sources 2020-12-08 14:29:22 +01:00
Mark H. Wood
c2c08b3109 Restore thread-safety to see if it is needed. #3061 2020-12-08 08:07:54 -05:00
Andrew Wood
7d1e86c693 3078 Change EntityTypeLabelRestController get by label to return REST resource 2020-12-07 16:28:09 -05:00
Mark H. Wood
ac29b3ec50 Merge branch 'main' into 3061 2020-12-07 10:50:58 -05:00
Tim Donohue
6e5605453e Merge pull request #2957 from mwoodiupui/#2956
Address many deprecation warnings
2020-12-07 08:54:55 -06:00
Raf Ponsaerts
487fc1f499 Used StringUtils instead of equals 2020-12-07 13:42:51 +01:00
Peter Nijs
efbc0c63c1 74939 2786: fix item-submission.xml DTD 2020-12-07 09:50:11 +01:00
Mykhaylo
87e454a815 Implement community feedbacks 2020-12-06 12:21:04 +01:00
Mykhaylo
40ec8d7076 changed type, from Integer to int 2020-12-06 12:17:26 +01:00
Mykhaylo
c8f5ca2789 refactored test, removing the double check 2020-12-06 12:17:03 +01:00
Mykhaylo
d9299e0039 added missing test 2020-12-06 12:16:38 +01:00
Mykhaylo
10ac8c91cb fixed search method of ClaimedTask endpoint 2020-12-06 12:16:20 +01:00
Mykhaylo
da9efdff6c fixed search method of Pooltask endpoint 2020-12-06 12:15:32 +01:00
Mykhaylo
f6e0712c49 added ITs to prove the functionality of search methods 2020-12-06 12:15:05 +01:00
Mykhaylo
170ea73144 fix failed test 2020-12-06 12:14:33 +01:00
Mykhaylo
86a6819dd8 fixed tests 2020-12-06 12:12:55 +01:00
Mykhaylo
ff436491fb implemented new methods as createAndReturn for claimedTask and search methods for ClaimedTask and PoolTask 2020-12-06 12:11:09 +01:00
Andrea Bollini
755f0732ae Merge pull request #3058 from tdonohue/site_initializer_bug
Fix obvious bug in SiteServiceInitializer
2020-12-04 22:45:12 +01:00
Tim Donohue
1f551dda36 Merge pull request #2746 from atmire/circular-entities
Entities related to Entities of the same type
2020-12-04 11:36:41 -06:00
Marie Verdonck
d70e121e93 74947: Adjusting HandleDAOImplTest suffixes since this fails in CI tests:
because of an existing Collection with the same handle already existing in test DB
(problem does not occur running all tests locally)
2020-12-04 13:21:21 +01:00
Marie Verdonck
c47bd37be3 74947: Missing cleanup after post relationship creation 2020-12-04 11:13:12 +01:00
Marie Verdonck
aa09fb1074 Merge branch 'master' into circular-entities 2020-12-04 10:23:30 +01:00
Andrea Bollini
0b8675202a Merge pull request #3067 from atmire/w2p-74727_Nullpointer-workflow-item-after-submitter-delete
NullPointerException occurs when accessing WorkflowItem after deleting the Submitter
2020-12-03 17:13:57 +01:00
Mark H. Wood
6c22807619 Merge branch 'main' into #2956 2020-12-02 08:30:47 -05:00
Tim Donohue
f9258e5f20 Merge pull request #3071 from atmire/w2p-74599_Remove-LCNameDataProvider
Remove LCNameDataProvider and config from DSpace 7 REST API
2020-12-01 16:26:48 -06:00
Tim Donohue
fa68780349 Fix obvious bug in SiteServiceInitializer 2020-12-01 15:56:02 -06:00
Mark H. Wood
bf4f5c5b5d Merge remote-tracking branch 'upstream/main' into #2956 2020-12-01 16:25:24 -05:00
Mark H. Wood
33907082e2 Address one more review comment. New unit test class to test it. 2020-12-01 16:19:25 -05:00
Tim Donohue
0c5e68c5e3 Merge pull request #3034 from 4Science/CSTPER-233
Community admin should also be considered a Collection admin
2020-12-01 14:18:03 -06:00
Tim Donohue
adff448a66 Merge pull request #3002 from atmire/w2p-72348_Support-itemService-getMetadata-with-virtual-md
Support itemService.getMetadata with virtual md field
2020-12-01 12:56:17 -06:00
Mark H. Wood
83bf65a407 Satisfy checkstyle. #2956 2020-11-30 19:50:13 -05:00
Mark H. Wood
8a38b7d51c Address review comments. #2956 2020-11-30 17:26:50 -05:00
Mark H. Wood
3e16c7ed9e Merge remote-tracking branch 'upstream/main' into #2956 2020-11-30 17:24:48 -05:00
Mark H. Wood
a036b99f1c Catch correct error for replaced class, to fix test errors. Satisfy checkstyle. #3061 2020-11-30 16:21:01 -05:00
Tim Donohue
e367e76958 Merge pull request #3073 from tdonohue/fix_dependency_issues
Fix dependency convergence issues (for javassist) on main branch
2020-11-30 13:30:04 -06:00
Tim Donohue
7ce144156e Fix dependency convergence issues & fix alignment (convert tabs to spaces) 2020-11-30 12:46:33 -06:00
Tim Donohue
e7a2cbc2c9 Merge pull request #2780 from 4Science/D4CRIS-952-orcidV3
Upgrade to the ORCID v3 API
2020-11-30 11:10:08 -06:00
Tim Donohue
1e979dc44b Merge pull request #3072 from DSpace/tdonohue-correct_build
Update build.yml to not limit by branch
2020-11-30 10:15:45 -06:00
Tim Donohue
9f8d848bf2 Update build.yml to not limit by branch 2020-11-30 09:45:40 -06:00
Raf Ponsaerts
7ce7e0a52d cleaned up the lcname.url property 2020-11-30 14:39:35 +01:00
Luca Giamminonni
79ee010a7a Added tests cleanup 2020-11-26 16:36:36 +01:00
Kristof De Langhe
bd765db12c 74599: Remove LCNameDataProvider 2020-11-26 11:35:05 +01:00
Ben Bosman
d1d7ef4bb9 Merge remote-tracking branch 'community/main' into w2p-74727_Nullpointer-workflow-item-after-submitter-delete 2020-11-26 10:03:11 +01:00
Tim Donohue
a77f908949 Update build status badge & link to builds 2020-11-25 17:04:49 -06:00
Mark H. Wood
ce4ca33346 Merge branch 'main' of github.com:mwoodiupui/DSpace into 3061 2020-11-25 16:55:08 -05:00
Tim Donohue
0e7daab59c Merge pull request #3060 from tdonohue/github_ci
Add CI to GitHub via Actions (based on Travis CI config)
2020-11-25 10:18:29 -06:00
Tim Donohue
463c473c2b Rename job to "tests". Space out steps for easier readability 2020-11-25 09:16:11 -06:00
Tim Donohue
c7d8a9b259 Revert to checkout@v1 per https://community.codecov.io/t/codecov-status-stuck-at-waiting-for-status-to-be-reported-on-github/341/40 2020-11-25 07:54:41 -06:00
Mark H. Wood
f6112babc3 More errorprone warnings. #3061 2020-11-24 20:22:06 -05:00
Tim Donohue
088c77bd1f Switch to using codecov bash script (more stable) 2020-11-24 17:06:43 -06:00
Tim Donohue
d58a69cb3f Delete Travis CI configuration 2020-11-24 13:39:56 -06:00
Tim Donohue
ac73d148f9 Rename ci.yml to build.yml. Tweak Codecov configs to wait for 2 builds to complete before sending back coverage notifications. 2020-11-24 13:39:56 -06:00
Tim Donohue
97a14fb5a0 Send coverage reports to Codecov. Move comments above each step. 2020-11-24 13:39:56 -06:00
Tim Donohue
fcb15583d9 Add CI to GitHub 2020-11-24 13:39:55 -06:00
Marie Verdonck
5654dc3668 Rename after refactor RelationshipMetadataServiceTest => RelationshipMetadataServiceIT since it now inherits from AbstractIT class 2020-11-24 19:15:25 +01:00
Mark H. Wood
ea15ca58fe Address review comments. #2956 2020-11-24 11:58:10 -05:00
Mark H. Wood
51f9e78fd2 Merge remote-tracking branch 'upstream/main' into #2956 2020-11-24 11:56:18 -05:00
Mark H. Wood
65f04fcec9 First batch of errorprone fixes. #3061 2020-11-24 10:55:08 -05:00
Yana De Pauw
e54928f512 74727: NullPointerException occurs when accessing WorkflowItem after deleting the Submitter 2020-11-24 14:24:57 +01:00
Andrea Bollini
a5faac1d61 Merge pull request #3048 from tdonohue/disable_stacktrace
Disable stacktrace in error responses by default. Document how to enable for development
2020-11-23 18:55:42 +01:00
Tim Donohue
e5d587428a Merge pull request #3018 from tdonohue/update_oai_bootstrap
Upgrade OAI-PMH to Bootstrap 4 (via WebJars)
2020-11-23 11:50:19 -06:00
Andrea Bollini
2a6834b6ab Merge pull request #3029 from tdonohue/dependency_cleanup
Cleanup unused POM dependencies & minor security updates
2020-11-23 17:21:26 +01:00
Tim Donohue
6b7b5ad8d8 Merge pull request #3046 from 4Science/CSTPER-221
Metadata identifier for Communities and Collections
2020-11-23 09:21:24 -06:00
Alessandro Martelli
639b63635b [CSTPER-221] Script Flyway to populate handle metadata
Sql placeholders replacement.
2020-11-23 09:52:59 +01:00
Tim Donohue
d166d97f7c Merge pull request #3009 from atmire/w2p-72494_export-script-output-travis-test
Refactor/remove custom MultipartFileSender to use Spring Boot Range requests
2020-11-20 15:10:04 -06:00
Tim Donohue
7f323265be Merge pull request #3041 from atmire/w2p-74274_Issue-2988_Cannot-reset-pw-eperson-created-in-admin-ui
Issue 2988: EPerson Password Replacement/addition with ADD Patch Operation instead of REPLACE
2020-11-20 14:31:06 -06:00
Tim Donohue
8eeafcf866 Merge pull request #3050 from Micheleboychuk/CST-3543
Fix pagination issue in a couple of search endpoints
2020-11-20 12:31:13 -06:00
Marie Verdonck
924b178dcf 74274: Refactor check success/failed authentication 2020-11-20 17:00:45 +01:00
Marie Verdonck
8e2e564b6d 74685: Refactor RelationshipMetadataServiceTest to use Builders 2020-11-20 14:52:02 +01:00
Tim Donohue
1c86aef51a Switch patch checks to informational only
Copied over from https://github.com/DSpace/dspace-angular/pull/953
2020-11-19 16:26:25 -06:00
Andrea Bollini
dfc5723723 Merge pull request #3051 from atmire/issue-3049_root-endpoint-self-link
Added self link to root endpoint
2020-11-19 18:17:41 +01:00
Tim Donohue
4b49095ff9 Merge pull request #3036 from atmire/w2p-71780_support-csv-import-person-schema
support CSV import to schema "person"
2020-11-19 08:50:16 -06:00
Yana De Pauw
c4ed63c7a4 Fix checkstyle issue 2020-11-19 15:39:08 +01:00
Yana De Pauw
a94b2e0f3b 74329: Add max starting index to ORCID 2020-11-19 15:23:11 +01:00
Raf Ponsaerts
03c21de0eb simplified itemservice.delete in MetadataImportIT 2020-11-19 09:44:45 +01:00
Raf Ponsaerts
c442545fc1 Merge remote-tracking branch 'dspace/main' into w2p-71780_support-csv-import-person-schema
Conflicts:
	dspace-api/src/test/java/org/dspace/app/bulkedit/MetadataImportIT.java
2020-11-19 09:44:19 +01:00
Yana De Pauw
1310d84e25 74329: [Issue 2981] Internal server errors when retrieving entries for externalsources 2020-11-19 09:41:57 +01:00
jonas-atmire
50703a0771 Reverting previous commit + clarification comment 2020-11-19 08:01:42 +01:00
Mark H. Wood
96742fe558 Satisfy Checkstyle. Small tidy-ups. #2956 2020-11-18 18:02:05 -05:00
Mark H. Wood
87cfac01d4 Replace deprecated JUnit and Mockito statics. #2956 2020-11-18 16:12:41 -05:00
Tim Donohue
496f18d4dd Merge pull request #3039 from atmire/w2p-74186_CSV-import-error-with-virtual-metadata-bugfix
CSV Import error with Virtual Metadata fix
2020-11-18 14:35:17 -06:00
Tim Donohue
b83b06f977 Merge pull request #3037 from atmire/csv-import-empty-value-support
Supporting CSV import removing values
2020-11-18 14:32:08 -06:00
Mark H. Wood
7d64bb6f71 Replace Class.getInstance(). #2956 2020-11-18 13:39:50 -05:00
Yana De Pauw
ac8ee7a8e6 74271: [Issue 2954] External Sources "entries" subpath should not include "query" parameter by default 2020-11-18 14:51:42 +01:00
Raf Ponsaerts
86d39a92f7 Re-added personMetadataImportTest in MetadataImportIT and deleted unused test params 2020-11-18 13:54:56 +01:00
Raf Ponsaerts
81c518cdeb Re-added the metadataImportRemovingValueTest in MetadataImportIT 2020-11-18 13:38:47 +01:00
Alessandro Martelli
65b69a2b29 [CSTPER-221] Script Flyway to populate handle metadata
Moved to sql files.
2020-11-18 10:52:27 +01:00
jonas-atmire
6dd048c68e Re-enabling of response.reset() method -> https://github.com/DSpace/DSpace/pull/3009#discussion_r525254104 2020-11-18 10:08:12 +01:00
Mark H. Wood
6d0c57fa3e Replace deprecated icu4j Normalizer with Normalizer2. #2956 2020-11-17 17:03:28 -05:00
Mark H. Wood
4afc33daef Satisfy checkstyle. 2020-11-17 16:22:33 -05:00
Mark H. Wood
e94911ba19 Replace deprecated setMetadata() that uses removed field names. #2956
Once upon a time, DSOs had dedicated fields for some metadata.  These were
moved into the Metadatavalue table long ago, but there were still methods
which used the old field names instead of proper MetadataField triplets.
2020-11-17 15:37:53 -05:00
Mark H. Wood
3e7ac5d935 Replace miscellaneous rarely-used deprecateds. [#2956] 2020-11-17 15:05:55 -05:00
Mark H. Wood
d77f6eef25 Replace deprecated org.apache.http.impl.client.DefaultHttpClient [#2956] 2020-11-17 15:05:55 -05:00
Mark H. Wood
7f53ab6bef Found a few more deprecated PosixParser, GnuParser, OptionBuilder. #2956 2020-11-17 15:05:51 -05:00
Mark H. Wood
6569089228 Remove deprecated setMetadata of CommunityService, CollectionService #2956
This introduces a new class:  a holder for metadata field names.
2020-11-17 13:53:49 -05:00
Mark H. Wood
f8221f54ce I missed one LocationUtils call. 2020-11-17 13:53:49 -05:00
Mark H. Wood
e08341faed Fix LGTM alert: pointless boxing. 2020-11-17 13:53:49 -05:00
Mark H. Wood
5838cfd9c7 Remove long-deprecated un-localized methods from LocationUtils. [#2956] 2020-11-17 13:53:49 -05:00
Mark H. Wood
22dcbf5481 Replace various deprecated PDFBox methods. [#2956] 2020-11-17 13:53:49 -05:00
Mark H. Wood
259bd4bcdd Fix anything that is documented @deprecated but not annotated @Deprecated. [#2956] 2020-11-17 13:53:49 -05:00
Mark H. Wood
0ade9e9978 Replace deprecated Class.newInstance(). [#2956] 2020-11-17 13:53:49 -05:00
Mark H. Wood
d5d3b55457 Replace deprecated constructors of boxed primitive types. [#2956] 2020-11-17 13:53:49 -05:00
Mark H. Wood
ff02474423 Fix broken test by catching an unexpected exception.
There must be an unchecked exception bubbling up through SolrServiceImpl#search.  Catching Exception (as before this PR) fixes the test failure.
2020-11-17 13:53:49 -05:00
Mark H. Wood
a5c1b780f6 Missed one more PosixParser. 2020-11-17 13:53:49 -05:00
Mark H. Wood
079bdb0e0d I missed a lot of deprecated PosixParser and OptionBuilder in the clutter of warnings (see?). 2020-11-17 13:53:49 -05:00
Mark H. Wood
47d32b72cd Better fix for configuration issue in c463b632dd24e0c017d88b36b2b6fa0f13d95fb1
Other code now depends on the 'id' of the curation script configuration bean,
so it can't be renamed.  Instead, remove the bean post processing code that
pokes 'dspace.cfg' properties into a bean which are prefixed with the bean's
'id', since nobody can remember why we do that and it causes subtle magical
problems.  It may be for Guice, which is no longer an option for DSpace.
2020-11-17 13:53:27 -05:00
Mark H. Wood
7ab6aed276 Remove deprecated getMetadata(Context, String) from CommunityService, CollectionService. 2020-11-17 13:46:10 -05:00
Mark H. Wood
8ee14c3abc Replace deprecated lang3.CharEncoding with nio.StandardCharsets. 2020-11-17 13:46:10 -05:00
Mark H. Wood
230cca287e Replace deprecated Xerces XML serializer with one from org.w3c.dom. 2020-11-17 13:46:10 -05:00
Mark H. Wood
00d9364f87 Replace deprecated Commons CLI PosixParser and OptionBuilder. 2020-11-17 13:46:10 -05:00
Mark H. Wood
34de00b47a Replace deprecated Commons Collections MultivalueMap. 2020-11-17 13:46:10 -05:00
Mark H. Wood
7395c5be8f Replace deprecated Spring @Required with @Autowired(required=true) 2020-11-17 13:46:06 -05:00
Mark H. Wood
95d0a2bf57 Remove long-deprecated ConfigurationManager. 2020-11-17 13:30:00 -05:00
Raf Ponsaerts
991ffa44a5 Altered root self link test to equals the exact url 2020-11-17 08:56:53 +01:00
Raf Ponsaerts
e51d15ebf5 Added self link to root endpoint 2020-11-13 16:24:26 +01:00
Mykhaylo
ec025828ff minor update of tests 2020-11-13 11:09:43 +01:00
Mykhaylo
a0af4b9e46 update tests 2020-11-12 11:14:07 +01:00
Raf Ponsaerts
ca653ea0b5 Merge remote-tracking branch 'dspace/main' into w2p-71780_support-csv-import-person-schema
Conflicts:
	dspace-api/src/test/java/org/dspace/app/bulkedit/MetadataImportTest.java
2020-11-12 11:11:23 +01:00
Raf Ponsaerts
be5836a707 Merge remote-tracking branch 'dspace/main' into csv-import-empty-value-support
Conflicts:
	dspace-api/src/test/java/org/dspace/app/bulkedit/MetadataImportTest.java
2020-11-12 11:11:00 +01:00
Raf Ponsaerts
70ff9eb718 Merge remote-tracking branch 'dspace/main' into csv-import-empty-value-support 2020-11-12 11:08:11 +01:00
Raf Ponsaerts
6c8eb146a6 Merge remote-tracking branch 'dspace/main' into w2p-71780_support-csv-import-person-schema 2020-11-12 11:07:40 +01:00
Mykhaylo
0f3186ce41 fixed wrong pagination of the search methods of ResourcePolicyRest endpoint 2020-11-11 17:01:31 +01:00
Mykhaylo
9746b5ea14 added tests that prove the wrong pagination of the search methods of ResourcePolicyRest endpoint 2020-11-11 17:00:18 +01:00
Mykhaylo
aeb6f941d3 fixed wrong pagination of the search method byMetadata of EPersonRest endpoint 2020-11-11 12:57:41 +01:00
Mykhaylo
b99f136aa3 added test that proves the wrong pagination of the search method byMetadata of EPersonRest endpoint 2020-11-11 12:55:43 +01:00
Mykhaylo
35b98db7a8 fixed wrong pagination of a search method byMetadata of GroupRest endpoint 2020-11-11 12:29:25 +01:00
Andrea Bollini
e2e13ebd06 Remove unnecessary changes and add more javadoc 2020-11-11 12:27:51 +01:00
Mykhaylo
50464dc216 added test that proves the wrong pagination of a search method of GroupRest endpoint 2020-11-11 12:26:18 +01:00
Mykhaylo
3960e57a1c fixed wrong pagination of collections 2020-11-11 11:52:25 +01:00
Mykhaylo
6f611e6868 added ITs that prove the wrong pagination of collections 2020-11-11 11:49:37 +01:00
Alessandro Martelli
e279cb3e05 [CSTPER-221] Script Flyway to populate handle metadata
Fixed Javadoc.
2020-11-11 09:28:47 +01:00
Tim Donohue
6ac06c8a23 Merge pull request #3038 from atmire/importing-new-csv-with-relationships
Importing new csv with relationships
2020-11-10 11:38:21 -06:00
Tim Donohue
4a8785b61e Disable stacktrace in error responses by default. Document how to enable. Cleanup of unused "server" settings 2020-11-10 11:01:03 -06:00
Raf Ponsaerts
a1cc44ebac Renamed MetadataImportTest to MetadataImportIT to better reflect that it is an Integration Test class 2020-11-10 14:43:53 +01:00
Alessandro Martelli
a0b5cf9075 [CSTPER-221] Fixed Unit tests 2020-11-09 17:13:22 +01:00
Alessandro Martelli
c84608e81f [CSTPER-221] Collection handle generation after creation 2020-11-09 17:06:29 +01:00
Alessandro Martelli
572a74afba [CSTPER-221] Script Flyway to populate handle metadata
For existing Collection/Community
2020-11-09 11:52:10 +01:00
Alessandro Martelli
dc08f36a94 [CSTPER-221] Fixed Authorization denied during subCommunity creation
We need to persist the newCommunity before adding the handle metadata
value. The failing test was
* CommunityRestRepositoryIT.createSubCommunityAuthorizedTest
2020-11-09 11:48:22 +01:00
Marie Verdonck
2c21703b5e Test for null value patch added back in 2020-11-09 11:39:31 +01:00
Tim Donohue
08163019fa Merge pull request #3026 from 4Science/CSTPER-212
Submission from external source rejected with 403
2020-11-06 12:29:00 -06:00
Tim Donohue
243c7b6387 Merge pull request #3042 from atmire/issue-irus-config-in-build-xml
IRUS property in build.xml when updating spiders
2020-11-06 09:53:35 -06:00
Raf Ponsaerts
c4fe9e6674 [Task 73179] added javadocs and cleaned up where necessary 2020-11-06 16:39:31 +01:00
Alessandro Martelli
ed01db6392 [CSTPER-221] MetadataConverter fixed 2020-11-06 15:55:10 +01:00
Alessandro Martelli
544828ae95 [CSTPER-212] Submission from external source rejected with 403
Test efficiency improvements.
2020-11-06 12:02:58 +01:00
Andrea Bollini
72f5ea3383 Merge pull request #3030 from atmire/Issue_2919_URI-Parameters-not-added-for-self-link
Uri parameters not added for self link
2020-11-06 08:50:05 +01:00
Andrea Bollini
9d52f01270 Solve dependencies convergence issues 2020-11-05 22:49:59 +01:00
Andrea Bollini
9d938a6282 Switch to the official orcid model maven artifact 2020-11-05 22:13:02 +01:00
Andrea Bollini
a8aab9d88b Improve ORCID testing via mock response 2020-11-05 22:10:29 +01:00
Andrea Bollini
e6000f6e5e Merge branch 'main' of https://github.com/DSpace/DSpace into D4CRIS-952-orcidV3 2020-11-05 15:49:41 +01:00
Raf Ponsaerts
2bec15c76c Made sure that IRUS properties can be read into build.xml when updating spiders 2020-11-05 13:43:39 +01:00
Tim Donohue
fb39eb49ce Merge pull request #3031 from atmire/w2p-74190_Bugfix-IRUS-Integration-Entities
Bugfix IRUS Integration with Entities
2020-11-04 13:09:59 -06:00
Jonas Van Goolen
0e296528de Update RestResourceControllerIT.java 2020-11-04 15:03:24 +01:00
Andrea Bollini
c0c2433a22 Merge pull request #3015 from tdonohue/more_lgtm_fixes
More fixes based on LGTM.com feedback
2020-11-04 12:50:38 +01:00
Raf Ponsaerts
2466731028 Rewrote the test class using builders 2020-11-03 16:38:30 +01:00
Alessandro Martelli
b878b0a7e0 [CSTPER-221] Minor changes and cleanup 2020-10-30 18:41:04 +01:00
Raf Ponsaerts
9d4151c22f deleting unused files 2020-10-30 11:13:26 +01:00
Raf Ponsaerts
eaa53c53b1 Rewrote MetadataImportTest with builders 2020-10-30 11:12:40 +01:00
Raf Ponsaerts
e33cc4735d Fixed imports for MetadataImportTest 2020-10-30 10:06:42 +01:00
Raf Ponsaerts
3df1ff5f70 [Task 71782] added test to the MetadataImport tests
Conflicts:
	dspace-api/src/test/java/org/dspace/app/bulkedit/MetadataImportTest.java
2020-10-30 10:06:04 +01:00
Raf Ponsaerts
27a6173360 [Task 71782] created support to check relationship.type metadata from the csv instead of the item which won't yet exist
Conflicts:
	dspace-api/src/test/java/org/dspace/app/bulkedit/MetadataImportTest.java
	dspace-api/src/test/resources/test-config.properties
2020-10-30 10:05:24 +01:00
Tim Donohue
cf5d52d60b Merge pull request #3013 from atmire/w2p-73986_Features-Endpoint---Usage-Statistics-Permissions-in-REST
Features Endpoint: Permissions to view stats, map items, see versions
2020-10-29 16:33:53 -05:00
Tim Donohue
481d69619c Merge pull request #3005 from atmire/w2p-73167_Edit-collection-permissions-in-REST-feature
Features endpoint: Edit Collection Permissions
2020-10-29 16:33:34 -05:00
Tim Donohue
ff9f59a14a Merge pull request #2993 from atmire/w2p-73207_Download-permission-features
Features endpoint: Download/RequestACopy features
2020-10-29 16:33:14 -05:00
Tim Donohue
5f74e7c434 Merge pull request #3021 from tdonohue/upgrade_commons_config
Upgrade to latest commons configuration & opencsv
2020-10-29 15:27:25 -05:00
Alessandro Martelli
28273ce292 [CSTPER-221] EZIDIdentifierProvider exclusions 2020-10-29 18:57:42 +01:00
Alessandro Martelli
ebab983618 [CSTPER-221] Validation check and MetadataConverter merge facility 2020-10-29 18:51:45 +01:00
Alessandro Martelli
b33cd12ddf [CSTPER-221] EZIDIdentifierProvider exclusions 2020-10-29 17:29:05 +01:00
Alessandro Martelli
d3c3d30c6c [CSTPER-221] Versioned handle populate metadata cleanup 2020-10-29 17:28:40 +01:00
Alessandro Martelli
e959d70cc7 [CSTPER-221] Reverted modifications to the register method 2020-10-29 16:50:44 +01:00
Alessandro Martelli
5968c9ce2a [CSTPER-221] Tests refined 2020-10-29 16:44:37 +01:00
Luca Giamminonni
d8d3aca995 Community admin should also be considered a Collection admin 2020-10-29 16:20:23 +01:00
Yana De Pauw
111a7d9148 Fix LGTM issue 2020-10-29 15:19:19 +01:00
jonas-atmire
8637378a89 Issue 2919 -> Checkstyle fix 2020-10-29 07:46:14 +01:00
jonas-atmire
dcfe58f104 Merge branch 'main' into Issue_2919_URI-Parameters-not-added-for-self-link 2020-10-28 20:33:23 +01:00
jonas-atmire
74f14540d1 Issue 2919 -> URI parameters not properly added for self-links 2020-10-28 20:32:17 +01:00
Marie Verdonck
ccb18daeb0 Git merge https://github.com/atmire/DSpace.git / master
* Conflict file: RelationshipRestRepositoryIT
2020-10-28 18:06:17 +01:00
Yana De Pauw
38e54ea21f 74190: Bugfix IRUS Integration Entities 2020-10-28 17:21:08 +01:00
Marie Verdonck
cd5be5b84f 74274: [Issue 2988]: EPersonPasswordReplaceOperation => AddOperation; eperson password can be added&replaced with this patch operation + test changes 2020-10-28 16:07:40 +01:00
Yana De Pauw
ea7d5d5b79 74186: CSV import error with virtual metadata bugfix 2020-10-28 12:29:31 +01:00
Tim Donohue
e5fec0ddf8 Minor updates to Jetty and log4j to solve security issues 2020-10-27 16:42:53 -05:00
Tim Donohue
1910c9e9ba Remove unused dependencies. Minor updates for dependency alignment 2020-10-27 16:42:34 -05:00
Alessandro Martelli
d8b7a78578 [CSTPER-221] RestMetadata applied without deleting existing ones. 2020-10-27 16:58:29 +01:00
Alessandro Martelli
2daad0b98c [CSTPER-221] DOI Collection/Community exclusion 2020-10-27 16:47:05 +01:00
Alessandro Martelli
b27d2ba322 [CSTPER-221] Handle Providers enhanced for Communities and Collections 2020-10-27 16:39:26 +01:00
Alessandro Martelli
36e6a44000 [CSTPER-221] CommunityRestRepository common code refactoring 2020-10-27 16:31:15 +01:00
Alessandro Martelli
1e54484ef5 [CSTPER-221] Integration Test
The creation of communities (toplevel and subcommunities) and the
creation of collections implies population of dc.identifier.uri
metatada.
We also prove that the logic doesn't affect the creation of other types
of entities (eperson).
2020-10-27 16:26:43 +01:00
Raf Ponsaerts
f90384dbbc Removed unnecessary config in test local.cfg 2020-10-27 13:12:22 +01:00
Raf Ponsaerts
6cdab6effd Rewrote MetadataImportTest and added a test for empty value support 2020-10-26 14:38:36 +01:00
Raf Ponsaerts
3905601e20 Merge remote-tracking branch 'dspace/main' into csv-import-empty-value-support 2020-10-26 13:28:54 +01:00
Raf Ponsaerts
2cbbbf95b3 Rewriting MetadataImportTest with builders 2020-10-26 13:27:47 +01:00
Raf Ponsaerts
86ddfc205c Merge remote-tracking branch 'dspace/main' into w2p-71780_support-csv-import-person-schema 2020-10-26 11:37:45 +01:00
Tim Donohue
ae02b261fc Merge pull request #2999 from atmire/cleanup-builder-cache-after-test
Cleaning up the cache of Builders after each test
2020-10-23 16:40:30 -05:00
Tim Donohue
86c2edcbb1 Merge pull request #3024 from atmire/w2p-74193_DSpace-version-in-root-endpoint
ROOT endpoint (/server) returns the version of DSpace
2020-10-23 16:35:53 -05:00
Alessandro Martelli
57417884ac [CSTPER-212] Submission from external source rejected with 403 2020-10-22 09:42:21 -04:00
Raf Ponsaerts
2a358bfd6f [Task 74193] altered the test for the DSpace Version on the root endpoint 2020-10-22 12:25:52 +02:00
Kristof De Langhe
e42acb9dde 74193: DSpace version in root endpoint 2020-10-22 11:18:29 +02:00
Tim Donohue
678f949350 Merge pull request #2966 from DSpace/dependabot/maven/org.apache.ant-ant-1.9.15
Bump ant from 1.9.1 to 1.9.15
2020-10-21 16:32:44 -05:00
Tim Donohue
22bcdf210c Upgrade to latest commons configuration & opencsv 2020-10-21 14:48:18 -05:00
Kevin Van de Velde
cc644e7c3f Removing unused imports 2020-10-21 15:50:44 +02:00
Kevin Van de Velde
a70e9ebf5b Enabling discovery consumer in the unit tests for the api 2020-10-21 14:02:00 +02:00
Tim Donohue
6c6b977d74 Upgrade to Bootstrap 4 (via WebJars). Cleanup unnecessary Bootstrap 3 cached files 2020-10-20 16:13:03 -05:00
Tim Donohue
89571fb289 Merge pull request #3000 from DSpace/dependabot/maven/junit-junit-4.13.1
Bump junit from 4.12 to 4.13.1
2020-10-20 10:44:32 -05:00
Tim Donohue
84c74590b8 Minor fix. Only call entry.getName() once. Store it after verifying it's valid. 2020-10-20 09:45:53 -05:00
Tim Donohue
967273fad2 Fix cross site scripting (XSS) issue by not returning "user" value 2020-10-19 16:45:58 -05:00
Tim Donohue
f973874143 Ignore two XXE warnings which are false positives. Notes inline to describe why 2020-10-19 16:43:38 -05:00
Tim Donohue
f4780dc35f Fix error where wrong variable was used. "info" was always null. 2020-10-19 16:17:32 -05:00
Tim Donohue
28f270afa4 Replace error message as doiRow was always null at this line of code 2020-10-19 16:17:22 -05:00
Tim Donohue
24054276a1 Add missing hashCode method (as equals exists) 2020-10-19 16:17:02 -05:00
Tim Donohue
786de19c5b Fix inconsistent synchronization of getter and setter in two places 2020-10-19 16:15:01 -05:00
Tim Donohue
b2c2c8e190 Fix information exposure through stack trace issue. Log error instead. 2020-10-19 16:14:49 -05:00
Tim Donohue
b6705da008 Refactor ItemImportServiceImpl to check for Zip entry location once around all code that uses it 2020-10-19 16:14:38 -05:00
Raf Ponsaerts
1ed4aaf87d fixed checkstyle 2020-10-16 12:57:50 +02:00
Raf Ponsaerts
4a2e41c5a0 Added additional tests to the FeatureITs 2020-10-16 11:04:20 +02:00
Tim Donohue
793ae8c0d5 Correct syntax for referencing related issues 2020-10-15 15:43:47 -05:00
Raf Ponsaerts
867aec4cd1 Refactor/remove custom MultipartFileSender to use Spring Boot Range requests 2020-10-15 18:31:04 +02:00
Peter Nijs
242ea65443 74062: Features Endpoint - Version Permissions in REST implementation 2020-10-15 17:13:43 +02:00
Peter Nijs
380ece2f2c 74059: Features Endpoint - Manage Mapped Item Permissions in REST implementation 2020-10-15 16:34:04 +02:00
Peter Nijs
cecb4846dc 74057: Features Endpoint - Search Statistics Permissions in REST 2020-10-15 15:30:50 +02:00
Peter Nijs
c6e50aef51 74055: Features Endpoint - Workflow Statistics Permissions in REST 2020-10-15 15:06:53 +02:00
Peter Nijs
c9463e2850 73986: Features Endpoint - Usage Statistics Permissions in REST 2020-10-14 15:39:03 +02:00
Peter Nijs
bddd4c4f9c 73178: Edit Collection Permissions in REST Feature Integration Tests - feedback 2020-10-14 15:35:26 +02:00
Ben Bosman
9895049a99 Merge remote-tracking branch 'community/main' into entities-update-item-metadata-outside-rest 2020-10-14 14:45:43 +02:00
Ben Bosman
f71a6ee5d5 Merge remote-tracking branch 'community/main' into w2p-71780_support-csv-import-person-schema
# Conflicts:
#	dspace-api/src/test/java/org/dspace/app/bulkedit/MetadataImportTest.java
2020-10-14 14:21:51 +02:00
Ben Bosman
9a8f81db44 Merge conflicts 2020-10-14 13:51:46 +02:00
Ben Bosman
cca43baea4 Merge remote-tracking branch 'community/main' into w2p-71502_deleting-items-with-min-relationship
# Conflicts:
#	dspace-api/src/test/java/org/dspace/builder/WorkspaceItemBuilder.java
#	dspace-server-webapp/src/test/java/org/dspace/app/rest/ItemRestRepositoryIT.java
#	dspace-server-webapp/src/test/java/org/dspace/app/rest/WorkspaceItemRestRepositoryIT.java
2020-10-14 13:47:08 +02:00
Ben Bosman
894ec569f1 Merge remote-tracking branch 'community/main' into w2p-72348_Support-itemService-getMetadata-with-virtual-md 2020-10-14 12:53:33 +02:00
Peter Nijs
04f4e1e234 73986: Features Endpoint - Usage Statistics Permissions in REST 2020-10-13 11:51:07 +02:00
dependabot[bot]
f3dbe75c15 Bump junit from 4.12 to 4.13.1
Bumps [junit](https://github.com/junit-team/junit4) from 4.12 to 4.13.1.
- [Release notes](https://github.com/junit-team/junit4/releases)
- [Changelog](https://github.com/junit-team/junit4/blob/main/doc/ReleaseNotes4.12.md)
- [Commits](https://github.com/junit-team/junit4/compare/r4.12...r4.13.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-10-12 19:59:25 +00:00
Raf Ponsaerts
e41b70cfe3 Added javadoc 2020-10-12 15:32:48 +02:00
Raf Ponsaerts
ce04f78703 Cleaning up the cache of Builders after each test has ran 2020-10-12 15:21:38 +02:00
Peter Nijs
d1ee2556f3 73178: Edit Collection Permissions in REST Feature Integration Tests
- add ManageWorkflowGroupFeature, ManageSubmitterGroupFeature, ManageAdminGroupFeature
2020-10-12 13:48:23 +02:00
Raf Ponsaerts
6295540e47 Small cleanup 2020-10-12 10:51:08 +02:00
Tim Donohue
01e61aedff Ensure 'rest' overlay module is released when -Drelease specified 2020-10-10 13:44:36 -05:00
Tim Donohue
c9b4c6b773 [maven-release-plugin] prepare for next development iteration 2020-10-10 12:09:24 -05:00
Tim Donohue
5be0009a3c [maven-release-plugin] prepare release dspace-7.0-beta4.1 2020-10-10 12:09:15 -05:00
Tim Donohue
7ac94a127c Revert "Always skip Javadoc generation for assembly & overlay modules"
This reverts commit 268cd585bc.
2020-10-10 11:59:20 -05:00
Tim Donohue
99c8d12dd9 [maven-release-plugin] prepare for next development iteration 2020-10-10 11:46:38 -05:00
Tim Donohue
63d1775eaa [maven-release-plugin] prepare release dspace-7.0-beta4.1 2020-10-10 11:46:29 -05:00
Tim Donohue
268cd585bc Always skip Javadoc generation for assembly & overlay modules 2020-10-10 11:30:46 -05:00
Tim Donohue
b9e1ec1081 Additional POM corrections 2020-10-10 10:38:29 -05:00
Tim Donohue
d23dab6917 One last POM needing version correction (see previous commit) 2020-10-10 10:30:39 -05:00
Tim Donohue
4e75b821df Correct versions in POMs under [src]/dspace/ after release. Make sure [src]/dspace/ is included in release as POMs MUST be updated 2020-10-10 10:26:53 -05:00
Tim Donohue
041a714d0e [maven-release-plugin] prepare for next development iteration 2020-10-09 16:48:00 -05:00
Peter Nijs
45fe8eec07 73168: Edit Collection Permissions in REST Feature Integration Tests - feedback 2020-10-09 16:58:38 +02:00
Kevin Van de Velde
53685eb101 Merge branch 'master' into DS-4443_delete-solr-record-on-workspaceitem-deletion 2020-10-09 09:02:21 +02:00
Peter Nijs
3e8eb3b3ec 73168: Edit Collection Permissions in REST Feature Integration Tests 2020-10-05 13:52:59 +02:00
Yana De Pauw
cd5c89dd68 73914: Implement feedback 2020-10-05 09:34:27 +02:00
Yana De Pauw
6ace62112f 73914: Features Endpoint - Download Permissions in REST - Feedback 2020-10-02 10:43:18 +02:00
Peter Nijs
367ce35b4a 73173: Edit Collection Permissions in REST Feature Implementation 2020-10-01 18:54:03 +02:00
Mykhaylo
850d93546a update test and OrcidRestConnector 2020-09-28 18:33:58 +02:00
Peter Nijs
4fb4c129a9 73167: Edit Collection Permissions in REST Feature Implementation 2020-09-28 13:55:53 +02:00
Mykhaylo
3a47781193 added pooling http cliente connection manager to send to ORCID 2020-09-28 10:30:32 +02:00
Yana De Pauw
61494f4291 73210: Finish Its for RequestCopyFeature and DownloadFeature 2020-09-28 10:14:16 +02:00
Yana De Pauw
c53e211ba5 173207: Implement tests for RequestCopyFeature part 1 2020-09-25 15:18:20 +02:00
Yana De Pauw
f8e32554e6 73207: Download Permissions in REST Feature Implementation 2020-09-25 11:44:50 +02:00
Yana De Pauw
1db90a596f 73207: Download Permissions in REST Feature Implementation 2020-09-25 11:19:01 +02:00
Mykhaylo
ba4d1c20f1 fix test 2020-09-25 10:47:25 +02:00
Mykhaylo
007c8f035d added missing bean 2020-09-25 10:45:31 +02:00
Mykhaylo
2ae8f0e9fa added mockito test to prove functionality of OrcidExternalSources 2020-09-24 18:55:37 +02:00
Mykhaylo
50efbd29bb added dependensy to use official artifact of orcid 2020-09-23 17:52:59 +02:00
Mykhaylo
fe41f58c51 Merge branch 'main' into D4CRIS-952-orcidV3-merge 2020-09-23 16:57:14 +02:00
dependabot[bot]
ea823190fd Bump ant from 1.9.1 to 1.9.15
Bumps ant from 1.9.1 to 1.9.15.

Signed-off-by: dependabot[bot] <support@github.com>
2020-09-14 18:18:24 +00:00
Raf Ponsaerts
0a1aa90cda [Task 71757] added mock configuration service to the test class 2020-09-14 15:39:03 +02:00
Ben Bosman
245af53f43 Merge remote-tracking branch 'origin/master' into entities-update-item-metadata-outside-rest 2020-09-10 15:47:25 +02:00
Kevin Van de Velde
b3413b1e2b Attempt to get the tests to work for the deletion of workspaceitems 2020-08-14 16:45:47 +02:00
Kevin Van de Velde
ccca5ded9f Merge remote-tracking branch 'upstream/main' into DS-4443_delete-solr-record-on-workspaceitem-deletion 2020-08-14 16:14:26 +02:00
Marie Verdonck
7677bd92e1 checkstyle 2020-08-05 16:03:59 +02:00
Marie Verdonck
0f069cc14c 72348: Fixes so getMetadata returns implicit virtual metadata 2020-08-05 15:16:54 +02:00
Marie Verdonck
1a818b304c 72348: Test getMetadata implicit virtual metadata 2020-08-05 15:12:19 +02:00
Mark H. Wood
d21b019c71 [DS-2670] Fix concompliance with new format rules. 2020-08-04 15:21:27 -04:00
Mark H. Wood
d84795b54f Merge branch 'main' into DS-2670 2020-08-04 15:17:11 -04:00
Mark H. Wood
2a9eb2048b [DS-4110] New email template sent to a newly-registered user. 2020-08-04 12:42:01 -04:00
Raf Ponsaerts
f492415bcc [Task 71780] added support for the person schema in the csv import and added a test for it 2020-07-13 11:48:21 +02:00
Raf Ponsaerts
b65ed11bdc [Task 71757] added configurable max amount on items and reverted testing change 2020-07-10 09:12:13 +02:00
Raf Ponsaerts
048381ef87 [Task 71757] added the virtual metadata looping and item updating in the uodateItemsInRelationship method 2020-07-09 16:01:22 +02:00
Raf Ponsaerts
0f433ed2ae [Task 71502] moved workspaceItemTest to the workspaceItemRestRepository 2020-06-26 11:17:40 +02:00
Raf Ponsaerts
2a63f0ff22 [Task 71502] added forceDelete method to the RelationshipService that won't check the cardinality of the relationships. Used this in the ItemService delete and added tests 2020-06-26 10:54:34 +02:00
Raf Ponsaerts
645f6b66c9 [Task 71502] implemented tests that prove that deleting an item with a relationship of min cardinality greater than 1 fails 2020-06-26 09:32:50 +02:00
Ben Bosman
612acbdc36 Entities features: update the item metadata on relationship create/delete also when not using REST
on update this is causing problems with the place changes
2020-06-25 18:10:16 +02:00
Ben Bosman
b39facf1d1 Entities features: update the item metadata on relationship create/update/delete also when not using REST 2020-06-25 17:27:52 +02:00
Ben Bosman
5ad45fe7b6 Entities features: update the item metadata on relationship create/update/delete also when not using REST 2020-06-25 15:37:02 +02:00
Andrea Bollini
e2f79861e3 Fix wrong name 2020-06-16 17:14:44 +02:00
Mykhaylo
d77c505a66 added ITs for ORCID 2020-06-16 16:27:27 +02:00
Andrea Bollini
2ffde8ec2c Minor cleanup 2020-06-16 11:35:48 +02:00
Pasquale Cavallo
ec348a63f1 Update ORCID to V3 2020-06-16 11:35:48 +02:00
Raf Ponsaerts
2a8fe67858 Trying Travis Tests 2020-05-12 13:24:56 +02:00
Raf Ponsaerts
2ff63a9a59 Testing Travis execution to find errors 2020-05-08 15:53:01 +02:00
Raf Ponsaerts
e2347e3971 Fixed the solr tests in dspace-api 2020-05-07 12:03:34 +02:00
Luigi Andrea Pascarelli
5dd25b1c0b [DS-4149] resolve checkstyle violations 2020-05-05 13:36:02 +02:00
Luigi Andrea Pascarelli
5238b4a5a1 [DS-4149] added licenseCondition element 2020-05-05 12:55:59 +02:00
Ben Bosman
14a91bfb38 support empty values in the CSV deleting the data 2020-05-05 09:42:59 +02:00
Raf Ponsaerts
247b965dd4 Reorder structure of DiscoveryIT#init method 2020-04-29 14:46:59 +02:00
Raf Ponsaerts
4913c5a9e9 [DS-4443] changed asserts to equals and fixed test run 2020-04-27 10:33:46 +02:00
Luigi Andrea Pascarelli
541eae4d37 [DS-4149] porting additional indexer OAI 2020-04-22 13:08:45 +02:00
Raf Ponsaerts
c7f6a46296 [Task 70419] fixed a bug where the RelationshipService creation did not check the max cardinality properly 2020-04-20 17:18:27 +02:00
benbosman
6c91e98f48 Merge pull request #19 from atmire/w2p-70401_count-queries-circular-entities
W2p 70401 count queries circular entities
2020-04-17 12:02:31 +02:00
Raf Ponsaerts
5bff87e4ee [Task 70401] fixed the RelationshipService#countByItemAndRelationshipType to keep the isLeft parameter into account 2020-04-16 09:42:04 +02:00
Raf Ponsaerts
85e3bd0c52 [Task 70401] adding failing IT to prove that count is wrong with parent and child OrgUnits in the findByLabel 2020-04-16 08:49:06 +02:00
Kevin Van de Velde
5638c631d7 Undoing some changes that aren't needed 2020-04-10 15:50:59 +02:00
Raf Ponsaerts
c88af9f2ce [Task 70231] Added orgUnit x orgUnit relationshiptype and test to prove the labels in a circular relationship 2020-04-09 14:08:59 +02:00
Ben Bosman
10b3b20292 Support for a relationship from type A to type A (parent/child of same type) 2020-04-06 14:00:44 +02:00
Raf Ponsaerts
935a2df27e [DS-4443] moved test to dspace-api. Succeeds in a single run, fails in full test run 2020-04-06 09:09:59 +02:00
Raf Ponsaerts
d5d1edffb4 [DS-4443] fixed the solr record deletion after workspaceitem removal and added a test for it 2020-04-03 11:11:58 +02:00
Chris Wilper
c0cb7a5f48 DS-4457 Avoid smtp authentication by default 2020-03-12 11:54:17 -04:00
Toni Prieto
8fb214c061 change import order 2020-03-02 18:46:55 +01:00
Toni Prieto
c2df412e94 Remove unused import 2020-03-02 18:02:50 +01:00
Toni Prieto
db09fac216 Add StripDiacritics to OrderFormat classes for author and text and normalize the starts_with param text submitted 2020-03-02 17:09:06 +01:00
Mark H. Wood
d1d3f4f73d [DS-4118] Make new helpdesk phone property optional and give it a better name. 2020-02-05 10:40:53 -05:00
Mark H. Wood
3441a0c9e2 [DS-4118] Don't require editing email templates at every site. 2019-07-26 11:50:22 -04:00
Mark H. Wood
a3f8503e9b [DS-4118] Use the correct leading character for a "set" directive 2019-07-26 11:27:37 -04:00
Mark H. Wood
e02d91122f [DS-4300] Add option to use provided Handles if any. 2019-07-15 12:41:13 -04:00
Mark H. Wood
d28c15dae3 [DS-4289] use a new method to write the 'contents' file. 2019-07-02 14:51:25 -04:00
Pascal-Nicolas Becker
36e04fba95 DS-4260: Remove non-existing command from oai harvester's help 2019-05-25 11:53:02 +02:00
Mark H. Wood
d6a8002a7c [DS-3951] Change request-copy recipient to a List; add strategies to list collection administrators and to combine other strategies. 2018-11-12 10:41:44 -05:00
Chris Herron
b7b7ef3f81 DS-3873 Limit the usage of PDFBoxThumbnail to PDFs 2018-07-17 14:02:31 -04:00
Mark H. Wood
d585b3a9f1 [DS-2670] First attempt 2017-10-11 11:43:16 -04:00
2624 changed files with 217929 additions and 70592 deletions

View File

@@ -17,10 +17,9 @@ coverage:
# Configuration for patch-level checks. This checks the relative coverage of the new PR code ONLY.
patch:
default:
# For each PR, make sure the coverage of the new code is within 1% of current overall coverage.
# We let 'patch' be more lenient as we only require *project* coverage to not drop significantly.
target: auto
threshold: 1%
# Enable informational mode, which just provides info to reviewers & always passes
# https://docs.codecov.io/docs/commit-status#section-informational
informational: true
# Turn PR comments "off". This feature adds the code coverage summary as a
# comment on each PR. See https://docs.codecov.io/docs/pull-request-comments

View File

@@ -6,6 +6,5 @@ dspace/modules/*/target/
Dockerfile.*
dspace/src/main/docker/dspace-postgres-pgcrypto
dspace/src/main/docker/dspace-postgres-pgcrypto-curl
dspace/src/main/docker/solr
dspace/src/main/docker/README.md
dspace/src/main/docker-compose/

118
.github/dependabot.yml vendored Normal file
View File

@@ -0,0 +1,118 @@
#-------------------
# DSpace's dependabot rules. Enables maven updates for all dependencies on a weekly basis
# for main and any maintenance branches. Security updates only apply to main.
#-------------------
version: 2
updates:
- package-ecosystem: "maven"
directory: "/"
schedule:
interval: "weekly"
# Allow up to 10 open PRs for dependencies
open-pull-requests-limit: 10
# Group together some upgrades in a single PR
groups:
# Group together all Build Tools in a single PR
build-tools:
applies-to: version-updates
patterns:
- "org.apache.maven.plugins:*"
- "*:*-maven-plugin"
- "*:maven-*-plugin"
- "com.github.spotbugs:spotbugs"
- "com.google.code.findbugs:*"
- "com.google.errorprone:*"
- "com.puppycrawl.tools:checkstyle"
- "org.sonatype.plugins:*"
exclude-patterns:
# Exclude anything from Spring, as that is in a separate group
- "org.springframework.*:*"
update-types:
- "minor"
- "patch"
test-tools:
applies-to: version-updates
patterns:
- "junit:*"
- "com.github.stefanbirker:system-rules"
- "com.h2database:*"
- "io.findify:s3mock*"
- "io.netty:*"
- "org.hamcrest:*"
- "org.mock-server:*"
- "org.mockito:*"
update-types:
- "minor"
- "patch"
# Group together all Apache Commons deps in a single PR
apache-commons:
applies-to: version-updates
patterns:
- "org.apache.commons:*"
- "commons-*:commons-*"
update-types:
- "minor"
- "patch"
# Group together all fasterxml deps in a single PR
fasterxml:
applies-to: version-updates
patterns:
- "com.fasterxml:*"
- "com.fasterxml.*:*"
update-types:
- "minor"
- "patch"
# Group together all Hibernate deps in a single PR
hibernate:
applies-to: version-updates
patterns:
- "org.hibernate.*:*"
update-types:
- "minor"
- "patch"
# Group together all Jakarta deps in a single PR
jakarta:
applies-to: version-updates
patterns:
- "jakarta.*:*"
- "org.eclipse.angus:jakarta.mail"
- "org.glassfish.jaxb:jaxb-runtime"
update-types:
- "minor"
- "patch"
# Group together all Google deps in a single PR
google-apis:
applies-to: version-updates
patterns:
- "com.google.apis:*"
- "com.google.api-client:*"
- "com.google.http-client:*"
- "com.google.oauth-client:*"
update-types:
- "minor"
- "patch"
# Group together all Spring deps in a single PR
spring:
applies-to: version-updates
patterns:
- "org.springframework:*"
- "org.springframework.*:*"
update-types:
- "minor"
- "patch"
# Group together all WebJARs deps in a single PR
webjars:
applies-to: version-updates
patterns:
- "org.webjars:*"
- "org.webjars.*:*"
update-types:
- "minor"
- "patch"
ignore:
# Don't try to auto-update any DSpace dependencies
- dependency-name: "org.dspace:*"
- dependency-name: "org.dspace.*:*"
# Ignore all major version updates for all dependencies. We'll only automate minor/patch updates.
- dependency-name: "*"
update-types: ["version-update:semver-major"]

View File

@@ -1,26 +0,0 @@
# This workflow runs whenever a new pull request is created
# TEMPORARILY DISABLED. Unfortunately this doesn't work for PRs created from forked repositories (which is how we tend to create PRs).
# There is no known workaround yet. See https://github.community/t/how-to-use-github-token-for-prs-from-forks/16818
name: Pull Request opened
# Only run for newly opened PRs against the "main" branch
on:
pull_request:
types: [opened]
branches:
- main
jobs:
automation:
runs-on: ubuntu-latest
steps:
# Assign the PR to whomever created it. This is useful for visualizing assignments on project boards
# See https://github.com/marketplace/actions/pull-request-assigner
- name: Assign PR to creator
uses: thomaseizinger/assign-pr-creator-action@v1.0.0
# Note, this authentication token is created automatically
# See: https://docs.github.com/en/actions/configuring-and-managing-workflows/authenticating-with-the-github_token
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
# Ignore errors. It is possible the PR was created by someone who cannot be assigned
continue-on-error: true

View File

@@ -1,7 +1,7 @@
## References
_Add references/links to any related issues or PRs. These may include:_
* Related to [REST Contract](https://github.com/DSpace/Rest7Contract) or an open REST Contract PR, if any
* Fixes [GitHub issue](https://github.com/DSpace/DSpace/issues), if any
* Fixes #`issue-number` (if this fixes an issue ticket)
* Related to DSpace/RestContract#`pr-number` (if a corresponding REST Contract PR exists)
## Description
Short summary of changes (1-2 sentences).
@@ -22,5 +22,7 @@ _This checklist provides a reminder of what we are going to look for when review
- [ ] My PR passes Checkstyle validation based on the [Code Style Guide](https://wiki.lyrasis.org/display/DSPACE/Code+Style+Guide).
- [ ] My PR includes Javadoc for _all new (or modified) public methods and classes_. It also includes Javadoc for large or complex private methods.
- [ ] My PR passes all tests and includes new/updated Unit or Integration Tests based on the [Code Testing Guide](https://wiki.lyrasis.org/display/DSPACE/Code+Testing+Guide).
- [ ] If my PR includes new, third-party dependencies (in any `pom.xml`), I've made sure their licenses align with the [DSpace BSD License](https://github.com/DSpace/DSpace/blob/main/LICENSE) based on the [Licensing of Contributions](https://wiki.lyrasis.org/display/DSPACE/Code+Contribution+Guidelines#CodeContributionGuidelines-LicensingofContributions) documentation.
- [ ] If my PR modifies the REST API, I've linked to the REST Contract page (or open PR) related to this change.
- [ ] If my PR includes new libraries/dependencies (in any `pom.xml`), I've made sure their licenses align with the [DSpace BSD License](https://github.com/DSpace/DSpace/blob/main/LICENSE) based on the [Licensing of Contributions](https://wiki.lyrasis.org/display/DSPACE/Code+Contribution+Guidelines#CodeContributionGuidelines-LicensingofContributions) documentation.
- [ ] If my PR modifies REST API endpoints, I've opened a separate [REST Contract](https://github.com/DSpace/RestContract/blob/main/README.md) PR related to this change.
- [ ] If my PR includes new configurations, I've provided basic technical documentation in the PR itself.
- [ ] If my PR fixes an issue ticket, I've [linked them together](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue).

112
.github/workflows/build.yml vendored Normal file
View File

@@ -0,0 +1,112 @@
# DSpace Continuous Integration/Build via GitHub Actions
# Concepts borrowed from
# https://docs.github.com/en/free-pro-team@latest/actions/guides/building-and-testing-java-with-maven
name: Build
# Run this Build for all pushes / PRs to current branch
on: [push, pull_request]
permissions:
contents: read # to fetch code (actions/checkout)
jobs:
tests:
runs-on: ubuntu-latest
env:
# Give Maven 1GB of memory to work with
MAVEN_OPTS: "-Xmx1024M"
strategy:
# Create a matrix of two separate configurations for Unit vs Integration Tests
# This will ensure those tasks are run in parallel
# Also specify version of Java to use (this can allow us to optionally run tests on multiple JDKs in future)
matrix:
include:
# NOTE: Unit Tests include deprecated REST API v6 (as it has unit tests)
# - surefire.rerunFailingTestsCount => try again for flakey tests, and keep track of/report on number of retries
- type: "Unit Tests"
java: 11
mvnflags: "-DskipUnitTests=false -Pdspace-rest -Dsurefire.rerunFailingTestsCount=2"
resultsdir: "**/target/surefire-reports/**"
# NOTE: ITs skip all code validation checks, as they are already done by Unit Test job.
# - enforcer.skip => Skip maven-enforcer-plugin rules
# - checkstyle.skip => Skip all checkstyle checks by maven-checkstyle-plugin
# - license.skip => Skip all license header checks by license-maven-plugin
# - xml.skip => Skip all XML/XSLT validation by xml-maven-plugin
# - failsafe.rerunFailingTestsCount => try again for flakey tests, and keep track of/report on number of retries
- type: "Integration Tests"
java: 11
mvnflags: "-DskipIntegrationTests=false -Denforcer.skip=true -Dcheckstyle.skip=true -Dlicense.skip=true -Dxml.skip=true -Dfailsafe.rerunFailingTestsCount=2"
resultsdir: "**/target/failsafe-reports/**"
# Do NOT exit immediately if one matrix job fails
# This ensures ITs continue running even if Unit Tests fail, or visa versa
fail-fast: false
name: Run ${{ matrix.type }}
# These are the actual CI steps to perform per job
steps:
# https://github.com/actions/checkout
- name: Checkout codebase
uses: actions/checkout@v4
# https://github.com/actions/setup-java
- name: Install JDK ${{ matrix.java }}
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.java }}
distribution: 'temurin'
cache: 'maven'
# Run parallel Maven builds based on the above 'strategy.matrix'
- name: Run Maven ${{ matrix.type }}
env:
TEST_FLAGS: ${{ matrix.mvnflags }}
run: mvn --no-transfer-progress -V install -P-assembly -Pcoverage-report $TEST_FLAGS
# If previous step failed, save results of tests to downloadable artifact for this job
# (This artifact is downloadable at the bottom of any job's summary page)
- name: Upload Results of ${{ matrix.type }} to Artifact
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.type }} results
path: ${{ matrix.resultsdir }}
# Upload code coverage report to artifact, so that it can be shared with the 'codecov' job (see below)
- name: Upload code coverage report to Artifact
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.type }} coverage report
path: 'dspace/target/site/jacoco-aggregate/jacoco.xml'
retention-days: 14
# Codecov upload is a separate job in order to allow us to restart this separate from the entire build/test
# job above. This is necessary because Codecov uploads seem to randomly fail at times.
# See https://community.codecov.com/t/upload-issues-unable-to-locate-build-via-github-actions-api/3954
codecov:
# Must run after 'tests' job above
needs: tests
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
# Download artifacts from previous 'tests' job
- name: Download coverage artifacts
uses: actions/download-artifact@v4
# Now attempt upload to Codecov using its action.
# NOTE: We use a retry action to retry the Codecov upload if it fails the first time.
#
# Retry action: https://github.com/marketplace/actions/retry-action
# Codecov action: https://github.com/codecov/codecov-action
- name: Upload coverage to Codecov.io
uses: Wandalen/wretry.action@v1.3.0
with:
action: codecov/codecov-action@v4
# Ensure codecov-action throws an error when it fails to upload
with: |
fail_ci_if_error: true
token: ${{ secrets.CODECOV_TOKEN }}
# Try re-running action 5 times max
attempt_limit: 5
# Run again in 30 seconds
attempt_delay: 30000

63
.github/workflows/codescan.yml vendored Normal file
View File

@@ -0,0 +1,63 @@
# DSpace CodeQL code scanning configuration for GitHub
# https://docs.github.com/en/code-security/code-scanning
#
# NOTE: Code scanning must be run separate from our default build.yml
# because CodeQL requires a fresh build with all tests *disabled*.
name: "Code Scanning"
# Run this code scan for all pushes / PRs to main or maintenance branches. Also run once a week.
on:
push:
branches:
- main
- 'dspace-**'
pull_request:
branches:
- main
- 'dspace-**'
# Don't run if PR is only updating static documentation
paths-ignore:
- '**/*.md'
- '**/*.txt'
schedule:
- cron: "37 0 * * 1"
jobs:
analyze:
name: Analyze Code
runs-on: ubuntu-latest
# Limit permissions of this GitHub action. Can only write to security-events
permissions:
actions: read
contents: read
security-events: write
steps:
# https://github.com/actions/checkout
- name: Checkout repository
uses: actions/checkout@v4
# https://github.com/actions/setup-java
- name: Install JDK
uses: actions/setup-java@v4
with:
java-version: 11
distribution: 'temurin'
# Initializes the CodeQL tools for scanning.
# https://github.com/github/codeql-action
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
# Codescan Javascript as well since a few JS files exist in REST API's interface
languages: java, javascript
# Autobuild attempts to build any compiled languages
# NOTE: Based on testing, this autobuild process works well for DSpace. A custom
# DSpace build w/caching (like in build.yml) was about the same speed as autobuild.
- name: Autobuild
uses: github/codeql-action/autobuild@v3
# Perform GitHub Code Scanning.
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3

261
.github/workflows/docker.yml vendored Normal file
View File

@@ -0,0 +1,261 @@
# DSpace Docker image build for hub.docker.com
name: Docker images
# Run this Build for all pushes to 'main' or maintenance branches, or tagged releases.
# Also run for PRs to ensure PR doesn't break Docker build process
# NOTE: uses "reusable-docker-build.yml" to actually build each of the Docker images.
on:
push:
branches:
- main
- 'dspace-**'
tags:
- 'dspace-**'
pull_request:
permissions:
contents: read # to fetch code (actions/checkout)
packages: write # to write images to GitHub Container Registry (GHCR)
jobs:
####################################################
# Build/Push the 'dspace/dspace-dependencies' image.
# This image is used by all other DSpace build jobs.
####################################################
dspace-dependencies:
# Ensure this job never runs on forked repos. It's only executed for 'dspace/dspace'
if: github.repository == 'dspace/dspace'
uses: ./.github/workflows/reusable-docker-build.yml
with:
build_id: dspace-dependencies
image_name: dspace/dspace-dependencies
dockerfile_path: ./Dockerfile.dependencies
secrets:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_ACCESS_TOKEN: ${{ secrets.DOCKER_ACCESS_TOKEN }}
#######################################
# Build/Push the 'dspace/dspace' image
#######################################
dspace:
# Ensure this job never runs on forked repos. It's only executed for 'dspace/dspace'
if: github.repository == 'dspace/dspace'
# Must run after 'dspace-dependencies' job above
needs: dspace-dependencies
uses: ./.github/workflows/reusable-docker-build.yml
with:
build_id: dspace-prod
image_name: dspace/dspace
dockerfile_path: ./Dockerfile
secrets:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_ACCESS_TOKEN: ${{ secrets.DOCKER_ACCESS_TOKEN }}
# Enable redeploy of sandbox & demo if the branch for this image matches the deployment branch of
# these sites as specified in reusable-docker-build.xml
REDEPLOY_SANDBOX_URL: ${{ secrets.REDEPLOY_SANDBOX_URL }}
REDEPLOY_DEMO_URL: ${{ secrets.REDEPLOY_DEMO_URL }}
#############################################################
# Build/Push the 'dspace/dspace' image ('-test' tag)
#############################################################
dspace-test:
# Ensure this job never runs on forked repos. It's only executed for 'dspace/dspace'
if: github.repository == 'dspace/dspace'
# Must run after 'dspace-dependencies' job above
needs: dspace-dependencies
uses: ./.github/workflows/reusable-docker-build.yml
with:
build_id: dspace-test
image_name: dspace/dspace
dockerfile_path: ./Dockerfile.test
# As this is a test/development image, its tags are all suffixed with "-test". Otherwise, it uses the same
# tagging logic as the primary 'dspace/dspace' image above.
tags_flavor: suffix=-test
secrets:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_ACCESS_TOKEN: ${{ secrets.DOCKER_ACCESS_TOKEN }}
###########################################
# Build/Push the 'dspace/dspace-cli' image
###########################################
dspace-cli:
# Ensure this job never runs on forked repos. It's only executed for 'dspace/dspace'
if: github.repository == 'dspace/dspace'
# Must run after 'dspace-dependencies' job above
needs: dspace-dependencies
uses: ./.github/workflows/reusable-docker-build.yml
with:
build_id: dspace-cli
image_name: dspace/dspace-cli
dockerfile_path: ./Dockerfile.cli
secrets:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_ACCESS_TOKEN: ${{ secrets.DOCKER_ACCESS_TOKEN }}
###########################################
# Build/Push the 'dspace/dspace-solr' image
###########################################
dspace-solr:
# Ensure this job never runs on forked repos. It's only executed for 'dspace/dspace'
if: github.repository == 'dspace/dspace'
uses: ./.github/workflows/reusable-docker-build.yml
with:
build_id: dspace-solr
image_name: dspace/dspace-solr
dockerfile_path: ./dspace/src/main/docker/dspace-solr/Dockerfile
# Must pass solrconfigs to the Dockerfile so that it can find the required Solr config files
dockerfile_additional_contexts: 'solrconfigs=./dspace/solr/'
secrets:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_ACCESS_TOKEN: ${{ secrets.DOCKER_ACCESS_TOKEN }}
# Enable redeploy of sandbox & demo SOLR instance whenever dspace-solr image changes for deployed branch.
# These URLs MUST use different secrets than 'dspace/dspace' image build above as they are deployed separately.
REDEPLOY_SANDBOX_URL: ${{ secrets.REDEPLOY_SANDBOX_SOLR_URL }}
REDEPLOY_DEMO_URL: ${{ secrets.REDEPLOY_DEMO_SOLR_URL }}
###########################################################
# Build/Push the 'dspace/dspace-postgres-pgcrypto' image
###########################################################
dspace-postgres-pgcrypto:
# Ensure this job never runs on forked repos. It's only executed for 'dspace/dspace'
if: github.repository == 'dspace/dspace'
uses: ./.github/workflows/reusable-docker-build.yml
with:
build_id: dspace-postgres-pgcrypto-prod
image_name: dspace/dspace-postgres-pgcrypto
# Must build out of subdirectory to have access to install script for pgcrypto.
# NOTE: this context will build the image based on the Dockerfile in the specified directory
dockerfile_context: ./dspace/src/main/docker/dspace-postgres-pgcrypto/
secrets:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_ACCESS_TOKEN: ${{ secrets.DOCKER_ACCESS_TOKEN }}
########################################################################
# Build/Push the 'dspace/dspace-postgres-pgcrypto' image (-loadsql tag)
########################################################################
dspace-postgres-pgcrypto-loadsql:
# Ensure this job never runs on forked repos. It's only executed for 'dspace/dspace'
if: github.repository == 'dspace/dspace'
uses: ./.github/workflows/reusable-docker-build.yml
with:
build_id: dspace-postgres-pgcrypto-loadsql
image_name: dspace/dspace-postgres-pgcrypto
# Must build out of subdirectory to have access to install script for pgcrypto.
# NOTE: this context will build the image based on the Dockerfile in the specified directory
dockerfile_context: ./dspace/src/main/docker/dspace-postgres-pgcrypto-curl/
# Suffix all tags with "-loadsql". Otherwise, it uses the same
# tagging logic as the primary 'dspace/dspace-postgres-pgcrypto' image above.
tags_flavor: suffix=-loadsql
secrets:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_ACCESS_TOKEN: ${{ secrets.DOCKER_ACCESS_TOKEN }}
#################################################################################
# Test Deployment via Docker to ensure newly built images are working properly
#################################################################################
docker-deploy:
# Ensure this job never runs on forked repos. It's only executed for 'dspace/dspace'
if: github.repository == 'dspace/dspace'
runs-on: ubuntu-latest
# Must run after all major images are built
needs: [dspace, dspace-test, dspace-cli, dspace-postgres-pgcrypto, dspace-solr]
env:
# Override defaults dspace.server.url because backend starts at http://127.0.0.1:8080
dspace__P__server__P__url: http://127.0.0.1:8080/server
# Enable all optional modules / controllers for this test deployment.
# This helps check for errors in deploying these modules via Spring Boot
iiif__P__enabled: true
oai__P__enabled: true
rdf__P__enabled: true
signposting__P__enabled: true
sword__D__server__P__enabled: true
swordv2__D__server__P__enabled: true
# If this is a PR against main (default branch), use "latest".
# Else if this is a PR against a different branch, used the base branch name.
# Else if this is a commit on main (default branch), use the "latest" tag.
# Else, just use the branch name.
# NOTE: DSPACE_VER is used because our docker compose scripts default to using the "-test" image.
DSPACE_VER: ${{ (github.event_name == 'pull_request' && github.event.pull_request.base.ref == github.event.repository.default_branch && 'latest') || (github.event_name == 'pull_request' && github.event.pull_request.base.ref) || (github.ref_name == github.event.repository.default_branch && 'latest') || github.ref_name }}
# Docker Registry to use for Docker compose scripts below.
# We use GitHub's Container Registry to avoid aggressive rate limits at DockerHub.
DOCKER_REGISTRY: ghcr.io
steps:
# Checkout our codebase (to get access to Docker Compose scripts)
- name: Checkout codebase
uses: actions/checkout@v4
# Download Docker image artifacts (which were just built by reusable-docker-build.yml)
- name: Download Docker image artifacts
uses: actions/download-artifact@v4
with:
# Download all amd64 Docker images (TAR files) into the /tmp/docker directory
pattern: docker-image-*-linux-amd64
path: /tmp/docker
merge-multiple: true
# Load each of the images into Docker by calling "docker image load" for each.
# This ensures we are using the images just built & not any prior versions on DockerHub
- name: Load all downloaded Docker images
run: |
find /tmp/docker -type f -name "*.tar" -exec docker image load --input "{}" \;
docker image ls -a
# Start backend using our compose script in the codebase.
- name: Start backend in Docker
run: |
docker compose -f docker-compose.yml up -d
sleep 10
docker container ls
# Create a test admin account. Load test data from a simple set of AIPs as defined in cli.ingest.yml
- name: Load test data into Backend
run: |
docker compose -f docker-compose-cli.yml run --rm dspace-cli create-administrator -e test@test.edu -f admin -l user -p admin -c en
docker compose -f docker-compose-cli.yml -f dspace/src/main/docker-compose/cli.ingest.yml run --rm dspace-cli
# Verify backend started successfully.
# 1. Make sure root endpoint is responding (check for dspace.name defined in docker-compose.yml)
# 2. Also check /collections endpoint to ensure the test data loaded properly (check for a collection name in AIPs)
- name: Verify backend is responding properly
run: |
result=$(wget -O- -q http://127.0.0.1:8080/server/api)
echo "$result"
echo "$result" | grep -oE "\"DSpace Started with Docker Compose\","
result=$(wget -O- -q http://127.0.0.1:8080/server/api/core/collections)
echo "$result"
echo "$result" | grep -oE "\"Dog in Yard\","
# Verify basic backend logging is working.
# 1. Access the top communities list. Verify that the "Before request" INFO statement is logged
# 2. Access an invalid endpoint (and ignore 404 response). Verify that a "status:404" WARN statement is logged
- name: Verify backend is logging properly
run: |
wget -O/dev/null -q http://127.0.0.1:8080/server/api/core/communities/search/top
logs=$(docker compose -f docker-compose.yml logs -n 5 dspace)
echo "$logs"
echo "$logs" | grep -o "Before request \[GET /server/api/core/communities/search/top\]"
wget -O/dev/null -q http://127.0.0.1:8080/server/api/does/not/exist || true
logs=$(docker compose -f docker-compose.yml logs -n 5 dspace)
echo "$logs"
echo "$logs" | grep -o "status:404 exception: The repository type does.not was not found"
# Verify Handle Server can be stared and is working properly
# 1. First generate the "[dspace]/handle-server" folder with the sitebndl.zip
# 2. Start the Handle Server (and wait 20 seconds to let it start up)
# 3. Verify logs do NOT include "Exception" in the text (as that means an error occurred)
# 4. Check that Handle Proxy HTML page is responding on default port (8000)
- name: Verify Handle Server is working properly
run: |
docker exec -i dspace /dspace/bin/make-handle-config
echo "Starting Handle Server..."
docker exec -i dspace /dspace/bin/start-handle-server
sleep 20
echo "Checking for errors in error.log"
result=$(docker exec -i dspace sh -c "cat /dspace/handle-server/logs/error.log* || echo ''")
echo "$result"
echo "$result" | grep -vqz "Exception"
echo "Checking for errors in handle-server.log..."
result=$(docker exec -i dspace cat /dspace/log/handle-server.log)
echo "$result"
echo "$result" | grep -vqz "Exception"
echo "Checking to see if Handle Proxy webpage is available..."
result=$(wget -O- -q http://127.0.0.1:8000/)
echo "$result"
echo "$result" | grep -oE "Handle Proxy"
# Shutdown our containers
- name: Shutdown Docker containers
run: |
docker compose -f docker-compose.yml down

View File

@@ -5,25 +5,22 @@ on:
issues:
types: [opened]
permissions: {}
jobs:
automation:
runs-on: ubuntu-latest
steps:
# Add the new issue to a project board, if it needs triage
# See https://github.com/marketplace/actions/create-project-card-action
- name: Add issue to project board
# See https://github.com/actions/add-to-project
- name: Add issue to triage board
# Only add to project board if issue is flagged as "needs triage" or has no labels
# NOTE: By default we flag new issues as "needs triage" in our issue template
if: (contains(github.event.issue.labels.*.name, 'needs triage') || join(github.event.issue.labels.*.name) == '')
uses: technote-space/create-project-card-action@v1
uses: actions/add-to-project@v1.0.0
# Note, the authentication token below is an ORG level Secret.
# It must be created/recreated manually via a personal access token with "public_repo" and "admin:org" permissions
# It must be created/recreated manually via a personal access token with admin:org, project, public_repo permissions
# See: https://docs.github.com/en/actions/configuring-and-managing-workflows/authenticating-with-the-github_token#permissions-for-the-github_token
# This is necessary because the "DSpace Backlog" project is an org level project (i.e. not repo specific)
with:
GITHUB_TOKEN: ${{ secrets.ORG_PROJECT_TOKEN }}
PROJECT: DSpace Backlog
COLUMN: Triage
CHECK_ORG_PROJECT: true
# Ignore errors.
continue-on-error: true
github-token: ${{ secrets.TRIAGE_PROJECT_TOKEN }}
project-url: https://github.com/orgs/DSpace/projects/24

View File

@@ -1,25 +1,39 @@
# This workflow checks open PRs for merge conflicts and labels them when conflicts are found
name: Check for merge conflicts
# Run whenever the "main" branch is updated
# NOTE: This means merge conflicts are only checked for when a PR is merged to main.
# Run this for all pushes (i.e. merges) to 'main' or maintenance branches
on:
push:
branches:
- main
- 'dspace-**'
# So that the `conflict_label_name` is removed if conflicts are resolved,
# we allow this to run for `pull_request_target` so that github secrets are available.
pull_request_target:
types: [ synchronize ]
permissions: {}
jobs:
triage:
# Ensure this job never runs on forked repos. It's only executed for 'dspace/dspace'
if: github.repository == 'dspace/dspace'
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
# See: https://github.com/mschilde/auto-label-merge-conflicts/
# See: https://github.com/prince-chrismc/label-merge-conflicts-action
- name: Auto-label PRs with merge conflicts
uses: mschilde/auto-label-merge-conflicts@v2.0
uses: prince-chrismc/label-merge-conflicts-action@v3
# Ignore any failures -- may occur (randomly?) for older, outdated PRs.
continue-on-error: true
# Add "merge conflict" label if a merge conflict is detected. Remove it when resolved.
# Note, the authentication token is created automatically
# See: https://docs.github.com/en/actions/configuring-and-managing-workflows/authenticating-with-the-github_token
with:
CONFLICT_LABEL_NAME: 'merge conflict'
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Ignore errors
continue-on-error: true
conflict_label_name: 'merge conflict'
github_token: ${{ secrets.GITHUB_TOKEN }}
conflict_comment: |
Hi @${author},
Conflicts have been detected against the base branch.
Please [resolve these conflicts](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/addressing-merge-conflicts/about-merge-conflicts) as soon as you can. Thanks!

View File

@@ -0,0 +1,46 @@
# This workflow will attempt to port a merged pull request to
# the branch specified in a "port to" label (if exists)
name: Port merged Pull Request
# Only run for merged PRs against the "main" or maintenance branches
# We allow this to run for `pull_request_target` so that github secrets are available
# (This is required when the PR comes from a forked repo)
on:
pull_request_target:
types: [ closed ]
branches:
- main
- 'dspace-**'
permissions:
contents: write # so action can add comments
pull-requests: write # so action can create pull requests
jobs:
port_pr:
runs-on: ubuntu-latest
# Don't run on closed *unmerged* pull requests
if: github.event.pull_request.merged
steps:
# Checkout code
- uses: actions/checkout@v4
# Port PR to other branch (ONLY if labeled with "port to")
# See https://github.com/korthout/backport-action
- name: Create backport pull requests
uses: korthout/backport-action@v2
with:
# Trigger based on a "port to [branch]" label on PR
# (This label must specify the branch name to port to)
label_pattern: '^port to ([^ ]+)$'
# Title to add to the (newly created) port PR
pull_title: '[Port ${target_branch}] ${pull_title}'
# Description to add to the (newly created) port PR
pull_description: 'Port of #${pull_number} by @${pull_author} to `${target_branch}`.'
# Copy all labels from original PR to (newly created) port PR
# NOTE: The labels matching 'label_pattern' are automatically excluded
copy_labels_pattern: '.*'
# Skip any merge commits in the ported PR. This means only non-merge commits are cherry-picked to the new PR
merge_commits: 'skip'
# Use a personal access token (PAT) to create PR as 'dspace-bot' user.
# A PAT is required in order for the new PR to trigger its own actions (for CI checks)
github_token: ${{ secrets.PR_PORT_TOKEN }}

View File

@@ -0,0 +1,24 @@
# This workflow runs whenever a new pull request is created
name: Pull Request opened
# Only run for newly opened PRs against the "main" or maintenance branches
# We allow this to run for `pull_request_target` so that github secrets are available
# (This is required to assign a PR back to the creator when the PR comes from a forked repo)
on:
pull_request_target:
types: [ opened ]
branches:
- main
- 'dspace-**'
permissions:
pull-requests: write
jobs:
automation:
runs-on: ubuntu-latest
steps:
# Assign the PR to whomever created it. This is useful for visualizing assignments on project boards
# See https://github.com/toshimaru/auto-author-assign
- name: Assign PR to creator
uses: toshimaru/auto-author-assign@v2.1.0

View File

@@ -0,0 +1,354 @@
#
# DSpace's reusable Docker build/push workflow.
#
# This is used by docker.yml for all Docker image builds
name: Reusable DSpace Docker Build
on:
workflow_call:
# Possible Inputs to this reusable job
inputs:
# Build name/id for this Docker build. Used for digest storage to avoid digest overlap between builds.
build_id:
required: true
type: string
# Requires the image name to build (e.g dspace/dspace-test)
image_name:
required: true
type: string
# Optionally the path to the Dockerfile to use for the build. (Default is [dockerfile_context]/Dockerfile)
dockerfile_path:
required: false
type: string
# Optionally the context directory to build the Dockerfile within. Defaults to "." (current directory)
dockerfile_context:
required: false
type: string
default: '.'
# Optionally a list of "additional_contexts" to pass to Dockerfile. Defaults to empty
dockerfile_additional_contexts:
required: false
type: string
default: ''
# If Docker image should have additional tag flavor details (e.g. a suffix), it may be passed in.
tags_flavor:
required: false
type: string
secrets:
# Requires that Docker login info be passed in as secrets.
DOCKER_USERNAME:
required: true
DOCKER_ACCESS_TOKEN:
required: true
# These URL secrets are optional. When specified & branch checks match, the redeployment code below will trigger.
# Therefore builds which need to trigger redeployment MUST specify these URLs. All others should leave them empty.
REDEPLOY_SANDBOX_URL:
required: false
REDEPLOY_DEMO_URL:
required: false
# Define shared default settings as environment variables
env:
IMAGE_NAME: ${{ inputs.image_name }}
# Define tags to use for Docker images based on Git tags/branches (for docker/metadata-action)
# For a new commit on default branch (main), use the literal tag 'latest' on Docker image.
# For a new commit on other branches, use the branch name as the tag for Docker image.
# For a new tag, copy that tag name as the tag for Docker image.
# For a pull request, use the name of the base branch that the PR was created against or "latest" (for main).
# e.g. PR against 'main' will use "latest". a PR against 'dspace-7_x' will use 'dspace-7_x'.
IMAGE_TAGS: |
type=raw,value=latest,enable=${{ github.ref_name == github.event.repository.default_branch }}
type=ref,event=branch,enable=${{ github.ref_name != github.event.repository.default_branch }}
type=ref,event=tag
type=raw,value=${{ (github.event.pull_request.base.ref == github.event.repository.default_branch && 'latest') || github.event.pull_request.base.ref }},enable=${{ github.event_name == 'pull_request' }}
# Define default tag "flavor" for docker/metadata-action per
# https://github.com/docker/metadata-action#flavor-input
# We manage the 'latest' tag ourselves to the 'main' branch (see settings above)
TAGS_FLAVOR: |
latest=false
${{ inputs.tags_flavor }}
# When these URL variables are specified & required branch matches, then the sandbox or demo site will be redeployed.
# See "Redeploy" steps below for more details.
REDEPLOY_SANDBOX_URL: ${{ secrets.REDEPLOY_SANDBOX_URL }}
REDEPLOY_DEMO_URL: ${{ secrets.REDEPLOY_DEMO_URL }}
# Current DSpace maintenance branch (and architecture) which is deployed to demo.dspace.org / sandbox.dspace.org
# (NOTE: No deployment branch specified for sandbox.dspace.org as it uses the default_branch)
DEPLOY_DEMO_BRANCH: 'dspace-9_x'
DEPLOY_SANDBOX_BRANCH: 'main'
DEPLOY_ARCH: 'linux/amd64'
# Registry used during building of Docker images. (All images are later copied to docker.io registry)
# We use GitHub's Container Registry to avoid aggressive rate limits at DockerHub.
DOCKER_BUILD_REGISTRY: ghcr.io
jobs:
docker-build:
strategy:
matrix:
# Architectures / Platforms for which we will build Docker images
arch: [ 'linux/amd64', 'linux/arm64' ]
isPr:
- ${{ github.event_name == 'pull_request' }}
# If this is a PR, we ONLY build for AMD64. For PRs we only do a sanity check test to ensure Docker builds work.
# The below exclude therefore ensures we do NOT build ARM64 for PRs.
exclude:
- isPr: true
arch: linux/arm64
# If ARM64, then use the Ubuntu ARM64 runner. Otherwise, use the Ubuntu AMD64 runner
runs-on: ${{ matrix.arch == 'linux/arm64' && 'ubuntu-24.04-arm' || 'ubuntu-latest' }}
steps:
# This step converts the slashes in the "arch" matrix values above into dashes & saves to env.ARCH_NAME
# E.g. "linux/amd64" becomes "linux-amd64"
# This is necessary because all upload artifacts CANNOT have special chars (like slashes)
# NOTE: The regex-like syntax below is Bash Parameter Substitution
- name: Prepare
run: |
platform=${{ matrix.arch }}
echo "ARCH_NAME=${platform//\//-}" >> $GITHUB_ENV
# https://github.com/actions/checkout
- name: Checkout codebase
uses: actions/checkout@v4
# https://github.com/docker/login-action
# NOTE: This login occurs for BOTH non-PRs or PRs. PRs *must* also login to access private images from GHCR
# during the build process
- name: Login to ${{ env.DOCKER_BUILD_REGISTRY }}
uses: docker/login-action@v3
with:
registry: ${{ env.DOCKER_BUILD_REGISTRY }}
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
# https://github.com/docker/setup-buildx-action
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3
# https://github.com/docker/metadata-action
# Extract metadata used for Docker images in all build steps below
- name: Extract metadata (tags, labels) from GitHub for Docker image
id: meta_build
uses: docker/metadata-action@v5
with:
images: ${{ env.DOCKER_BUILD_REGISTRY }}/${{ env.IMAGE_NAME }}
tags: ${{ env.IMAGE_TAGS }}
flavor: ${{ env.TAGS_FLAVOR }}
#--------------------------------------------------------------------
# First, for all branch commits (non-PRs) we build the image & upload
# to GitHub Container Registry (GHCR). After uploading the image
# to GHCR, we store the image digest in an artifact, so we can
# create a merged manifest later (see 'docker-build_manifest' job).
#
# NOTE: We use GHCR in order to avoid aggressive rate limits at DockerHub.
#--------------------------------------------------------------------
# https://github.com/docker/build-push-action
- name: Build and push image to ${{ env.DOCKER_BUILD_REGISTRY }}
if: ${{ ! matrix.isPr }}
id: docker_build
uses: docker/build-push-action@v5
with:
build-contexts: |
${{ inputs.dockerfile_additional_contexts }}
context: ${{ inputs.dockerfile_context }}
file: ${{ inputs.dockerfile_path }}
# Tell DSpace's Docker files to use the build registry instead of DockerHub
build-args:
DOCKER_REGISTRY=${{ env.DOCKER_BUILD_REGISTRY }}
platforms: ${{ matrix.arch }}
push: true
# Use tags / labels provided by 'docker/metadata-action' above
tags: ${{ steps.meta_build.outputs.tags }}
labels: ${{ steps.meta_build.outputs.labels }}
# Use GitHub cache to load cached Docker images and cache the results of this build
# This decreases the number of images we need to fetch from DockerHub
cache-from: type=gha,scope=${{ inputs.build_id }}
cache-to: type=gha,scope=${{ inputs.build_id }},mode=min
# Export the digest of Docker build locally
- name: Export Docker build digest
if: ${{ ! matrix.isPr }}
run: |
mkdir -p /tmp/digests
digest="${{ steps.docker_build.outputs.digest }}"
touch "/tmp/digests/${digest#sha256:}"
# Upload digest to an artifact, so that it can be used in combined manifest below
# (The purpose of the combined manifest is to list both amd64 and arm64 builds under same tag)
- name: Upload Docker build digest to artifact
if: ${{ ! matrix.isPr }}
uses: actions/upload-artifact@v4
with:
name: digests-${{ inputs.build_id }}-${{ env.ARCH_NAME }}
path: /tmp/digests/*
if-no-files-found: error
retention-days: 1
#------------------------------------------------------------------------------
# Second, we build the image again in order to store it in a local TAR file.
# This TAR of the image is cached/saved as an artifact, so that it can be used
# by later jobs to install the brand-new images for automated testing.
# This TAR build is performed BOTH for PRs and for branch commits (non-PRs).
#
# (This approach has the advantage of avoiding having to download the newly built
# image from DockerHub or GHCR during automated testing.)
#
# See the 'docker-deploy' job in docker.yml as an example of where this TAR is used.
#-------------------------------------------------------------------------------
# Build local image (again) and store in a TAR file in /tmp directory
# This step is only done for AMD64, as that's the only image we use in our automated testing (at this time).
# NOTE: This step cannot be combined with the build above as it's a different type of output.
- name: Build and push image to local TAR file
if: ${{ matrix.arch == 'linux/amd64'}}
uses: docker/build-push-action@v5
with:
build-contexts: |
${{ inputs.dockerfile_additional_contexts }}
context: ${{ inputs.dockerfile_context }}
file: ${{ inputs.dockerfile_path }}
# Tell DSpace's Docker files to use the build registry instead of DockerHub
build-args:
DOCKER_REGISTRY=${{ env.DOCKER_BUILD_REGISTRY }}
platforms: ${{ matrix.arch }}
tags: ${{ steps.meta_build.outputs.tags }}
labels: ${{ steps.meta_build.outputs.labels }}
# Use GitHub cache to load cached Docker images and cache the results of this build
# This decreases the number of images we need to fetch from DockerHub
cache-from: type=gha,scope=${{ inputs.build_id }}
cache-to: type=gha,scope=${{ inputs.build_id }},mode=min
# Export image to a local TAR file
outputs: type=docker,dest=/tmp/${{ inputs.build_id }}.tar
# Upload the local docker image (in TAR file) to a build Artifact
# This step is only done for AMD64, as that's the only image we use in our automated testing (at this time).
- name: Upload local image TAR to artifact
if: ${{ matrix.arch == 'linux/amd64'}}
uses: actions/upload-artifact@v4
with:
name: docker-image-${{ inputs.build_id }}-${{ env.ARCH_NAME }}
path: /tmp/${{ inputs.build_id }}.tar
if-no-files-found: error
retention-days: 1
##########################################################################################
# Merge Docker digests (from various architectures) into a single manifest.
# This runs after all Docker builds complete above. The purpose is to include all builds
# under a single manifest for this tag.
# (e.g. both linux/amd64 and linux/arm64 should be listed under the same tagged Docker image)
##########################################################################################
docker-build_manifest:
# Only run if this is NOT a PR
if: ${{ github.event_name != 'pull_request' }}
runs-on: ubuntu-latest
needs:
- docker-build
steps:
- name: Download Docker build digests
uses: actions/download-artifact@v4
with:
path: /tmp/digests
# Download digests for both AMD64 and ARM64 into same directory
pattern: digests-${{ inputs.build_id }}-*
merge-multiple: true
- name: Login to ${{ env.DOCKER_BUILD_REGISTRY }}
uses: docker/login-action@v3
with:
registry: ${{ env.DOCKER_BUILD_REGISTRY }}
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Add Docker metadata for image
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.DOCKER_BUILD_REGISTRY }}/${{ env.IMAGE_NAME }}
tags: ${{ env.IMAGE_TAGS }}
flavor: ${{ env.TAGS_FLAVOR }}
- name: Create manifest list from digests and push to ${{ env.DOCKER_BUILD_REGISTRY }}
working-directory: /tmp/digests
run: |
docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
$(printf '${{ env.DOCKER_BUILD_REGISTRY }}/${{ env.IMAGE_NAME }}@sha256:%s ' *)
- name: Inspect manifest in ${{ env.DOCKER_BUILD_REGISTRY }}
run: |
docker buildx imagetools inspect ${{ env.DOCKER_BUILD_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.meta.outputs.version }}
##########################################################################################
# Copy images / manifest to DockerHub.
# This MUST run after *both* images (AMD64 and ARM64) are built and uploaded to GitHub
# Container Registry (GHCR). Attempting to run this in parallel to GHCR builds can result
# in a race condition...i.e. the copy to DockerHub may fail if GHCR image has been updated
# at the moment when the copy occurs.
##########################################################################################
docker-copy_to_dockerhub:
# Only run if this is NOT a PR
if: ${{ github.event_name != 'pull_request' }}
runs-on: ubuntu-latest
needs:
- docker-build_manifest
steps:
# 'regctl' is used to more easily copy the image to DockerHub and obtain the digest from DockerHub
# See https://github.com/regclient/regclient/blob/main/docs/regctl.md
- name: Install regctl for Docker registry tools
uses: regclient/actions/regctl-installer@main
with:
release: 'v0.8.0'
# This recreates Docker tags for DockerHub
- name: Add Docker metadata for image
id: meta_dockerhub
uses: docker/metadata-action@v5
with:
images: ${{ env.IMAGE_NAME }}
tags: ${{ env.IMAGE_TAGS }}
flavor: ${{ env.TAGS_FLAVOR }}
# Login to source registry first, as this is where we are copying *from*
- name: Login to ${{ env.DOCKER_BUILD_REGISTRY }}
uses: docker/login-action@v3
with:
registry: ${{ env.DOCKER_BUILD_REGISTRY }}
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
# Login to DockerHub, since this is where we are copying *to*
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_ACCESS_TOKEN }}
# Copy the image from source to DockerHub
- name: Copy image from ${{ env.DOCKER_BUILD_REGISTRY }} to docker.io
run: |
regctl image copy ${{ env.DOCKER_BUILD_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.meta_dockerhub.outputs.version }} docker.io/${{ env.IMAGE_NAME }}:${{ steps.meta_dockerhub.outputs.version }}
#--------------------------------------------------------------------
# Finally, check whether demo.dspace.org or sandbox.dspace.org need
# to be redeployed based on these new DockerHub images.
#--------------------------------------------------------------------
# If this build is for the branch that Sandbox uses and passed in a REDEPLOY_SANDBOX_URL secret,
# Then redeploy https://sandbox.dspace.org
- name: Redeploy sandbox.dspace.org (based on main branch)
if: |
env.REDEPLOY_SANDBOX_URL != '' &&
github.ref_name == env.DEPLOY_SANDBOX_BRANCH
run: |
curl -X POST $REDEPLOY_SANDBOX_URL
# If this build is for the branch that Demo uses and passed in a REDEPLOY_DEMO_URL secret,
# Then redeploy https://demo.dspace.org
- name: Redeploy demo.dspace.org (based on maintenance branch)
if: |
env.REDEPLOY_DEMO_URL != '' &&
github.ref_name == env.DEPLOY_DEMO_BRANCH
run: |
curl -X POST $REDEPLOY_DEMO_URL

9
.gitignore vendored
View File

@@ -10,6 +10,7 @@ tags
.project
.classpath
.checkstyle
.factorypath
## Ignore project files created by IntelliJ IDEA
*.iml
@@ -19,7 +20,7 @@ tags
overlays/
## Ignore project files created by NetBeans
nbproject/private/
nbproject/
build/
nbbuild/
dist/
@@ -41,4 +42,8 @@ nb-configuration.xml
.DS_Store
##Ignore JRebel project configuration
rebel.xml
rebel.xml
## Ignore jenv configuration
.java-version

View File

@@ -1,55 +0,0 @@
# DSpace's Travis CI Configuration
# Builds: https://travis-ci.com/github/DSpace/DSpace
# Travis configuration guide/validation: https://config.travis-ci.com/explore
language: java
# TODO: Upgrade to Bionic
dist: trusty
os: linux
jdk:
# DS-3384 Oracle JDK has DocLint enabled by default.
# Let's use this to catch any newly introduced DocLint issues.
- oraclejdk11
# Define global environment variables (shared across all jobs)
env:
global:
# Suppress all Maven "downloading" messages in Travis logs (see https://stackoverflow.com/a/35653426)
# This also slightly speeds builds in Travis, as there is less logging
- HIDE_MAVEN_DOWNLOADS="-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn"
# Give Maven 1GB of memory to work with
- MAVEN_OPTS="-Xmx1024M $HIDE_MAVEN_DOWNLOADS"
# Maven options which will skip ALL code validation checks. Includes skipping:
# - enforcer.skip => Skip maven-enforcer-plugin rules
# - checkstyle.skip => Skip all checkstyle checks by maven-checkstyle-plugin
# - license.skip => Skip all license header checks by license-maven-plugin
# - xml.skip => Skip all XML/XSLT validation by xml-maven-plugin
# (Useful for builds which don't need to repeat code checks)
- SKIP_CODE_CHECKS="-Denforcer.skip=true -Dcheckstyle.skip=true -Dlicense.skip=true -Dxml.skip=true"
# Create two jobs to run Unit & Integration tests in parallel.
# These jobs only differ in the TEST_FLAGS defined below,
# and otherwise share all the other configs in this file
jobs:
include:
- name: "Run Unit Tests & Check Code"
# NOTE: unit tests include deprecated REST API v6 (as it has unit tests)
env: TEST_FLAGS="-DskipUnitTests=false -Pdspace-rest"
- name: "Run Integration Tests"
# NOTE: skips code checks, as they are already done by Unit Test job
env: TEST_FLAGS="-DskipIntegrationTests=false $SKIP_CODE_CHECKS"
# Skip 'install' process to save time. We build/install/test all at once in "script" below.
install: skip
# Build DSpace and run configured tests (see 'jobs' above)
# Notes on flags used:
# -B => Maven batch/non-interactive mode (recommended for CI)
# -V => Display Maven version info before build
# -P-assembly => Disable build of dspace-installer in [src]/dspace/, as it can be memory intensive
# -Pcoverage-report => Enable aggregate code coverage report (across all modules) via JaCoCo
script: mvn install -B -V -P-assembly -Pcoverage-report $TEST_FLAGS
# After a successful build and test (see 'script'), send aggregate code coverage reports
# (generated by -Pcoverage-report above) to CodeCov.io
after_success: bash <(curl -s https://codecov.io/bash)

45
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,45 @@
# How to Contribute
DSpace is a community built and supported project. We do not have a centralized development or support team, but have a dedicated group of volunteers who help us improve the software, documentation, resources, etc.
* [Contribute new code via a Pull Request](#contribute-new-code-via-a-pull-request)
* [Contribute documentation](#contribute-documentation)
* [Help others on mailing lists or Slack](#help-others-on-mailing-lists-or-slack)
* [Join a working or interest group](#join-a-working-or-interest-group)
## Contribute new code via a Pull Request
We accept [GitHub Pull Requests (PRs)](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork) at any time from anyone.
Contributors to each release are recognized in our [Release Notes](https://wiki.lyrasis.org/display/DSDOC7x/Release+Notes).
Code Contribution Checklist
- [ ] PRs _should_ be smaller in size (ideally less than 1,000 lines of code, not including comments & tests)
- [ ] PRs **must** pass Checkstyle validation based on our [Code Style Guide](https://wiki.lyrasis.org/display/DSPACE/Code+Style+Guide).
- [ ] PRs **must** include Javadoc for _all new/modified public methods and classes_. Larger private methods should also have Javadoc
- [ ] PRs **must** pass all automated tests and include new/updated Unit or Integration tests based on our [Code Testing Guide](https://wiki.lyrasis.org/display/DSPACE/Code+Testing+Guide).
- [ ] If a PR includes new libraries/dependencies (in any `pom.xml`), then their software licenses **must** align with the [DSpace BSD License](https://github.com/DSpace/DSpace/blob/main/LICENSE) based on the [Licensing of Contributions](https://wiki.lyrasis.org/display/DSPACE/Code+Contribution+Guidelines#CodeContributionGuidelines-LicensingofContributions) documentation.
- [ ] Basic technical documentation _should_ be provided for any new features or changes to the REST API. REST API changes should be documented in our [Rest Contract](https://github.com/DSpace/RestContract).
- [ ] If a PR fixes an issue ticket, please [link them together](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue).
Additional details on the code contribution process can be found in our [Code Contribution Guidelines](https://wiki.lyrasis.org/display/DSPACE/Code+Contribution+Guidelines)
## Contribute documentation
DSpace Documentation is a collaborative effort in a shared Wiki. The latest documentation is at https://wiki.lyrasis.org/display/DSDOC7x
If you find areas of the DSpace Documentation which you wish to improve, please request a Wiki account by emailing wikihelp@lyrasis.org.
Once you have an account setup, contact @tdonohue (via [Slack](https://wiki.lyrasis.org/display/DSPACE/Slack) or email) for access to edit our Documentation.
## Help others on mailing lists or Slack
DSpace has our own [Slack](https://wiki.lyrasis.org/display/DSPACE/Slack) community and [Mailing Lists](https://wiki.lyrasis.org/display/DSPACE/Mailing+Lists) where discussions take place and questions are answered.
Anyone is welcome to join and help others. We just ask you to follow our [Code of Conduct](https://www.lyrasis.org/about/Pages/Code-of-Conduct.aspx) (adopted via LYRASIS).
## Join a working or interest group
Most of the work in building/improving DSpace comes via [Working Groups](https://wiki.lyrasis.org/display/DSPACE/DSpace+Working+Groups) or [Interest Groups](https://wiki.lyrasis.org/display/DSPACE/DSpace+Interest+Groups).
All working/interest groups are open to anyone to join and participate. A few key groups to be aware of include:
* [DSpace 7 Working Group](https://wiki.lyrasis.org/display/DSPACE/DSpace+7+Working+Group) - This is the main (mostly volunteer) development team. We meet weekly to review our current development [project board](https://github.com/orgs/DSpace/projects), assigning tickets and/or PRs.
* [DSpace Community Advisory Team (DCAT)](https://wiki.lyrasis.org/display/cmtygp/DSpace+Community+Advisory+Team) - This is an interest group for repository managers/administrators. We meet monthly to discuss DSpace, share tips & provide feedback back to developers.

View File

@@ -1,63 +1,78 @@
# This image will be published as dspace/dspace
# See https://github.com/DSpace/DSpace/tree/main/dspace/src/main/docker for usage details
#
# This version is JDK11 compatible
# - tomcat:8-jdk11
# - ANT 1.10.7
# - maven:3-jdk-11 (see dspace-dependencies)
# - note: default tag for branch: dspace/dspace: dspace/dspace:dspace-7_x
# This Dockerfile uses JDK11 by default, but has also been tested with JDK17.
# To build with JDK17, use "--build-arg JDK_VERSION=17"
ARG JDK_VERSION=11
# The Docker version tag to build from
ARG DSPACE_VERSION=dspace-7_x
# The Docker registry to use for DSpace images. Defaults to "docker.io"
# NOTE: non-DSpace images are hardcoded to use "docker.io" and are not impacted by this build argument
ARG DOCKER_REGISTRY=docker.io
# Step 1 - Run Maven Build
FROM dspace/dspace-dependencies:dspace-7_x as build
FROM ${DOCKER_REGISTRY}/dspace/dspace-dependencies:${DSPACE_VERSION} AS build
ARG TARGET_DIR=dspace-installer
WORKDIR /app
# The dspace-install directory will be written to /install
# The dspace-installer directory will be written to /install
RUN mkdir /install \
&& chown -Rv dspace: /install \
&& chown -Rv dspace: /app
USER dspace
# Copy the DSpace source code into the workdir (excluding .dockerignore contents)
# Copy the DSpace source code (from local machine) into the workdir (excluding .dockerignore contents)
ADD --chown=dspace . /app/
COPY dspace/src/main/docker/local.cfg /app/local.cfg
# Build DSpace (note: this build doesn't include the optional, deprecated "dspace-rest" webapp)
# Copy the dspace-install directory to /install. Clean up the build to keep the docker image small
RUN mvn package && \
# Copy the dspace-installer directory to /install. Clean up the build to keep the docker image small
# Maven flags here ensure that we skip building test environment and skip all code verification checks.
# These flags speed up this compilation as much as reasonably possible.
ENV MAVEN_FLAGS="-P-test-environment -Denforcer.skip=true -Dcheckstyle.skip=true -Dlicense.skip=true -Dxml.skip=true"
RUN mvn --no-transfer-progress package ${MAVEN_FLAGS} && \
mv /app/dspace/target/${TARGET_DIR}/* /install && \
mvn clean
# Step 2 - Run Ant Deploy
FROM tomcat:8-jdk11 as ant_build
FROM docker.io/eclipse-temurin:${JDK_VERSION} AS ant_build
ARG TARGET_DIR=dspace-installer
# COPY the /install directory from 'build' container to /dspace-src in this container
COPY --from=build /install /dspace-src
WORKDIR /dspace-src
# Create the initial install deployment using ANT
ENV ANT_VERSION 1.10.7
ENV ANT_HOME /tmp/ant-$ANT_VERSION
ENV PATH $ANT_HOME/bin:$PATH
ENV ANT_VERSION=1.10.13
ENV ANT_HOME=/tmp/ant-$ANT_VERSION
ENV PATH=$ANT_HOME/bin:$PATH
# Download and install 'ant'
RUN mkdir $ANT_HOME && \
wget -qO- "https://archive.apache.org/dist/ant/binaries/apache-ant-$ANT_VERSION-bin.tar.gz" | tar -zx --strip-components=1 -C $ANT_HOME
curl --silent --show-error --location --fail --retry 5 --output /tmp/apache-ant.tar.gz \
https://archive.apache.org/dist/ant/binaries/apache-ant-${ANT_VERSION}-bin.tar.gz && \
tar -zx --strip-components=1 -f /tmp/apache-ant.tar.gz -C $ANT_HOME && \
rm /tmp/apache-ant.tar.gz
# Run necessary 'ant' deploy scripts
RUN ant init_installation update_configs update_code update_webapps
# Step 3 - Run tomcat
# Create a new tomcat image that does not retain the the build directory contents
FROM tomcat:8-jdk11
FROM docker.io/tomcat:9-jdk${JDK_VERSION}
# NOTE: DSPACE_INSTALL must align with the "dspace.dir" default configuration.
ENV DSPACE_INSTALL=/dspace
# Copy the /dspace directory from 'ant_build' container to /dspace in this container
COPY --from=ant_build /dspace $DSPACE_INSTALL
EXPOSE 8080 8009
# Need host command for "[dspace]/bin/make-handle-config"
RUN apt-get update \
&& apt-get install -y --no-install-recommends host \
&& apt-get purge -y --auto-remove \
&& rm -rf /var/lib/apt/lists/*
# Expose Tomcat port (8080) and AJP port (8009) and Handle Server HTTP port (8000)
EXPOSE 8080 8009 8000
# Give java extra memory (2GB)
ENV JAVA_OPTS=-Xmx2000m
# Run the "server" webapp off the /server path (e.g. http://localhost:8080/server/)
# Link the DSpace 'server' webapp into Tomcat's webapps directory.
# This ensures that when we start Tomcat, it runs from /server path (e.g. http://localhost:8080/server/)
RUN ln -s $DSPACE_INSTALL/webapps/server /usr/local/tomcat/webapps/server
# If you wish to run "server" webapp off the ROOT path, then comment out the above RUN, and uncomment the below RUN.
# You also MUST update the URL in dspace/src/main/docker/local.cfg
# You also MUST update the 'dspace.server.url' configuration to match.
# Please note that server webapp should only run on one path at a time.
#RUN mv /usr/local/tomcat/webapps/ROOT /usr/local/tomcat/webapps/ROOT.bk && \
# ln -s $DSPACE_INSTALL/webapps/server /usr/local/tomcat/webapps/ROOT

View File

@@ -1,53 +1,62 @@
# This image will be published as dspace/dspace-cli
# See https://github.com/DSpace/DSpace/tree/main/dspace/src/main/docker for usage details
#
# This version is JDK11 compatible
# - openjdk:11
# - ANT 1.10.7
# - maven:3-jdk-11 (see dspace-dependencies)
# - note: default tag for branch: dspace/dspace-cli: dspace/dspace-cli:dspace-7_x
# This Dockerfile uses JDK11 by default, but has also been tested with JDK17.
# To build with JDK17, use "--build-arg JDK_VERSION=17"
ARG JDK_VERSION=11
# The Docker version tag to build from
ARG DSPACE_VERSION=dspace-7_x
# The Docker registry to use for DSpace images. Defaults to "docker.io"
# NOTE: non-DSpace images are hardcoded to use "docker.io" and are not impacted by this build argument
ARG DOCKER_REGISTRY=docker.io
# Step 1 - Run Maven Build
FROM dspace/dspace-dependencies:dspace-7_x as build
FROM ${DOCKER_REGISTRY}/dspace/dspace-dependencies:${DSPACE_VERSION} AS build
ARG TARGET_DIR=dspace-installer
WORKDIR /app
# The dspace-install directory will be written to /install
# The dspace-installer directory will be written to /install
RUN mkdir /install \
&& chown -Rv dspace: /install \
&& chown -Rv dspace: /app
USER dspace
# Copy the DSpace source code into the workdir (excluding .dockerignore contents)
# Copy the DSpace source code (from local machine) into the workdir (excluding .dockerignore contents)
ADD --chown=dspace . /app/
COPY dspace/src/main/docker/local.cfg /app/local.cfg
# Build DSpace. Copy the dspace-install directory to /install. Clean up the build to keep the docker image small
RUN mvn package && \
# Build DSpace. Copy the dspace-installer directory to /install. Clean up the build to keep the docker image small
RUN mvn --no-transfer-progress package && \
mv /app/dspace/target/${TARGET_DIR}/* /install && \
mvn clean
# Step 2 - Run Ant Deploy
FROM openjdk:11 as ant_build
FROM docker.io/eclipse-temurin:${JDK_VERSION} AS ant_build
ARG TARGET_DIR=dspace-installer
# COPY the /install directory from 'build' container to /dspace-src in this container
COPY --from=build /install /dspace-src
WORKDIR /dspace-src
# Create the initial install deployment using ANT
ENV ANT_VERSION 1.10.7
ENV ANT_HOME /tmp/ant-$ANT_VERSION
ENV PATH $ANT_HOME/bin:$PATH
ENV ANT_VERSION=1.10.13
ENV ANT_HOME=/tmp/ant-$ANT_VERSION
ENV PATH=$ANT_HOME/bin:$PATH
# Download and install 'ant'
RUN mkdir $ANT_HOME && \
wget -qO- "https://archive.apache.org/dist/ant/binaries/apache-ant-$ANT_VERSION-bin.tar.gz" | tar -zx --strip-components=1 -C $ANT_HOME
curl --silent --show-error --location --fail --retry 5 --output /tmp/apache-ant.tar.gz \
https://archive.apache.org/dist/ant/binaries/apache-ant-${ANT_VERSION}-bin.tar.gz && \
tar -zx --strip-components=1 -f /tmp/apache-ant.tar.gz -C $ANT_HOME && \
rm /tmp/apache-ant.tar.gz
# Run necessary 'ant' deploy scripts
RUN ant init_installation update_configs update_code
# Step 3 - Run jdk
# Create a new tomcat image that does not retain the the build directory contents
FROM openjdk:11
FROM docker.io/eclipse-temurin:${JDK_VERSION}
# NOTE: DSPACE_INSTALL must align with the "dspace.dir" default configuration.
ENV DSPACE_INSTALL=/dspace
# Copy the /dspace directory from 'ant_build' container to /dspace in this container
COPY --from=ant_build /dspace $DSPACE_INSTALL
# Give java extra memory (1GB)
ENV JAVA_OPTS=-Xmx1000m
# Install unzip for AIPs
RUN apt-get update \
&& apt-get install -y --no-install-recommends unzip \
&& apt-get purge -y --auto-remove \
&& rm -rf /var/lib/apt/lists/*

View File

@@ -1,27 +1,78 @@
# This image will be published as dspace/dspace-dependencies
# The purpose of this image is to make the build for dspace/dspace run faster
#
# This version is JDK11 compatible
# - maven:3-jdk-11
# Step 1 - Run Maven Build
FROM maven:3-jdk-11 as build
# This Dockerfile uses JDK11 by default, but has also been tested with JDK17.
# To build with JDK17, use "--build-arg JDK_VERSION=17"
ARG JDK_VERSION=11
# Step 1 - Download all Dependencies
FROM docker.io/maven:3-eclipse-temurin-${JDK_VERSION} AS build
ARG TARGET_DIR=dspace-installer
WORKDIR /app
# Create the 'dspace' user account & home directory
RUN useradd dspace \
&& mkdir /home/dspace \
&& mkdir -p /home/dspace \
&& chown -Rv dspace: /home/dspace
RUN chown -Rv dspace: /app
# Switch to dspace user & run below commands as that user
USER dspace
# Copy the DSpace source code into the workdir (excluding .dockerignore contents)
ADD --chown=dspace . /app/
COPY dspace/src/main/docker/local.cfg /app/local.cfg
# This next part may look odd, but it speeds up the build of this image *significantly*.
# Copy ONLY the POMs to this image (from local machine). This will allow us to download all dependencies *without*
# performing any code compilation steps.
# Trigger the installation of all maven dependencies
RUN mvn package
# Parent POM
ADD --chown=dspace pom.xml /app/
RUN mkdir -p /app/dspace
# Clear the contents of the /app directory (including all maven builds), so no artifacts remain.
# This ensures when dspace:dspace is built, it will just the Maven local cache (.m2) for dependencies
# 'dspace' module POM. Includes 'additions' ONLY, as it's the only submodule that is required to exist.
ADD --chown=dspace dspace/pom.xml /app/dspace/
RUN mkdir -p /app/dspace/modules/
ADD --chown=dspace dspace/modules/pom.xml /app/dspace/modules/
RUN mkdir -p /app/dspace/modules/additions
ADD --chown=dspace dspace/modules/additions/pom.xml /app/dspace/modules/additions/
# 'dspace-api' module POM
RUN mkdir -p /app/dspace-api
ADD --chown=dspace dspace-api/pom.xml /app/dspace-api/
# 'dspace-iiif' module POM
RUN mkdir -p /app/dspace-iiif
ADD --chown=dspace dspace-iiif/pom.xml /app/dspace-iiif/
# 'dspace-oai' module POM
RUN mkdir -p /app/dspace-oai
ADD --chown=dspace dspace-oai/pom.xml /app/dspace-oai/
# 'dspace-rdf' module POM
RUN mkdir -p /app/dspace-rdf
ADD --chown=dspace dspace-rdf/pom.xml /app/dspace-rdf/
# 'dspace-server-webapp' module POM
RUN mkdir -p /app/dspace-server-webapp
ADD --chown=dspace dspace-server-webapp/pom.xml /app/dspace-server-webapp/
# 'dspace-services' module POM
RUN mkdir -p /app/dspace-services
ADD --chown=dspace dspace-services/pom.xml /app/dspace-services/
# 'dspace-sword' module POM
RUN mkdir -p /app/dspace-sword
ADD --chown=dspace dspace-sword/pom.xml /app/dspace-sword/
# 'dspace-swordv2' module POM
RUN mkdir -p /app/dspace-swordv2
ADD --chown=dspace dspace-swordv2/pom.xml /app/dspace-swordv2/
# Trigger the installation of all maven dependencies (hide download progress messages)
# Maven flags here ensure that we skip final assembly, skip building test environment and skip all code verification checks.
# These flags speed up this installation and skip tasks we cannot perform as we don't have the full source code.
ENV MAVEN_FLAGS="-P-assembly -P-test-environment -Denforcer.skip=true -Dcheckstyle.skip=true -Dlicense.skip=true -Dxjc.skip=true -Dxml.skip=true"
RUN mvn --no-transfer-progress verify ${MAVEN_FLAGS}
# Clear the contents of the /app directory (including all maven target folders), so no artifacts remain.
# This ensures when dspace:dspace is built, it will use the Maven local cache (~/.m2) for dependencies
USER root
RUN rm -rf /app/*

View File

@@ -1,72 +1,90 @@
# This image will be published as dspace/dspace
# See https://github.com/DSpace/DSpace/tree/main/dspace/src/main/docker for usage details
#
# This version is JDK11 compatible
# - tomcat:8-jdk11
# - ANT 1.10.7
# - maven:3-jdk-11 (see dspace-dependencies)
# - note: default tag for branch: dspace/dspace: dspace/dspace:dspace-7_x-test
#
# This image is meant for TESTING/DEVELOPMENT ONLY as it deploys the old v6 REST API under HTTP (not HTTPS)
# This Dockerfile uses JDK11 by default, but has also been tested with JDK17.
# To build with JDK17, use "--build-arg JDK_VERSION=17"
ARG JDK_VERSION=11
# The Docker version tag to build from
ARG DSPACE_VERSION=dspace-7_x
# The Docker registry to use for DSpace images. Defaults to "docker.io"
# NOTE: non-DSpace images are hardcoded to use "docker.io" and are not impacted by this build argument
ARG DOCKER_REGISTRY=docker.io
# Step 1 - Run Maven Build
FROM dspace/dspace-dependencies:dspace-7_x as build
FROM ${DOCKER_REGISTRY}/dspace/dspace-dependencies:${DSPACE_VERSION} AS build
ARG TARGET_DIR=dspace-installer
WORKDIR /app
# The dspace-install directory will be written to /install
# The dspace-installer directory will be written to /install
RUN mkdir /install \
&& chown -Rv dspace: /install \
&& chown -Rv dspace: /app
USER dspace
# Copy the DSpace source code into the workdir (excluding .dockerignore contents)
# Copy the DSpace source code (from local machine) into the workdir (excluding .dockerignore contents)
ADD --chown=dspace . /app/
COPY dspace/src/main/docker/local.cfg /app/local.cfg
# Build DSpace (including the optional, deprecated "dspace-rest" webapp)
# Copy the dspace-install directory to /install. Clean up the build to keep the docker image small
RUN mvn package -Pdspace-rest && \
# Build DSpace (INCLUDING the optional, deprecated "dspace-rest" webapp)
# Copy the dspace-installer directory to /install. Clean up the build to keep the docker image small
RUN mvn --no-transfer-progress package -Pdspace-rest && \
mv /app/dspace/target/${TARGET_DIR}/* /install && \
mvn clean
# Step 2 - Run Ant Deploy
FROM tomcat:8-jdk11 as ant_build
FROM docker.io/eclipse-temurin:${JDK_VERSION} AS ant_build
ARG TARGET_DIR=dspace-installer
# COPY the /install directory from 'build' container to /dspace-src in this container
COPY --from=build /install /dspace-src
WORKDIR /dspace-src
# Create the initial install deployment using ANT
ENV ANT_VERSION 1.10.7
ENV ANT_HOME /tmp/ant-$ANT_VERSION
ENV PATH $ANT_HOME/bin:$PATH
ENV ANT_VERSION=1.10.12
ENV ANT_HOME=/tmp/ant-$ANT_VERSION
ENV PATH=$ANT_HOME/bin:$PATH
# Download and install 'ant'
RUN mkdir $ANT_HOME && \
wget -qO- "https://archive.apache.org/dist/ant/binaries/apache-ant-$ANT_VERSION-bin.tar.gz" | tar -zx --strip-components=1 -C $ANT_HOME
curl --silent --show-error --location --fail --retry 5 --output /tmp/apache-ant.tar.gz \
https://archive.apache.org/dist/ant/binaries/apache-ant-${ANT_VERSION}-bin.tar.gz && \
tar -zx --strip-components=1 -f /tmp/apache-ant.tar.gz -C $ANT_HOME && \
rm /tmp/apache-ant.tar.gz
# Run necessary 'ant' deploy scripts
RUN ant init_installation update_configs update_code update_webapps
# Step 3 - Run tomcat
# Create a new tomcat image that does not retain the the build directory contents
FROM tomcat:8-jdk11
FROM docker.io/tomcat:9-jdk${JDK_VERSION}
ENV DSPACE_INSTALL=/dspace
ENV TOMCAT_INSTALL=/usr/local/tomcat
# Copy the /dspace directory from 'ant_build' containger to /dspace in this container
COPY --from=ant_build /dspace $DSPACE_INSTALL
EXPOSE 8080 8009
# Need host command for "[dspace]/bin/make-handle-config"
RUN apt-get update \
&& apt-get install -y --no-install-recommends host \
&& apt-get purge -y --auto-remove \
&& rm -rf /var/lib/apt/lists/*
# Enable the AJP connector in Tomcat's server.xml
# NOTE: secretRequired="false" should only be used when AJP is NOT accessible from an external network. But, secretRequired="true" isn't supported by mod_proxy_ajp until Apache 2.5
RUN sed -i '/Service name="Catalina".*/a \\n <Connector protocol="AJP/1.3" port="8009" address="0.0.0.0" redirectPort="8443" URIEncoding="UTF-8" secretRequired="false" />' $TOMCAT_INSTALL/conf/server.xml
# Expose Tomcat port and AJP port
EXPOSE 8080 8009 8000
# Give java extra memory (2GB)
ENV JAVA_OPTS=-Xmx2000m
# Set up debugging
ENV CATALINA_OPTS=-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=*:8000
# Run the "server" webapp off the /server path (e.g. http://localhost:8080/server/)
# and the v6.x (deprecated) REST API off the "/rest" path
# Link the DSpace 'server' webapp into Tomcat's webapps directory.
# This ensures that when we start Tomcat, it runs from /server path (e.g. http://localhost:8080/server/)
# Also link the v6.x (deprecated) REST API off the "/rest" path
RUN ln -s $DSPACE_INSTALL/webapps/server /usr/local/tomcat/webapps/server && \
ln -s $DSPACE_INSTALL/webapps/rest /usr/local/tomcat/webapps/rest
# If you wish to run "server" webapp off the ROOT path, then comment out the above RUN, and uncomment the below RUN.
# You also MUST update the URL in dspace/src/main/docker/local.cfg
# You also MUST update the 'dspace.server.url' configuration to match.
# Please note that server webapp should only run on one path at a time.
#RUN mv /usr/local/tomcat/webapps/ROOT /usr/local/tomcat/webapps/ROOT.bk && \
# ln -s $DSPACE_INSTALL/webapps/server /usr/local/tomcat/webapps/ROOT && \
# ln -s $DSPACE_INSTALL/webapps/rest /usr/local/tomcat/webapps/rest
# Overwrite the v6.x (deprecated) REST API's web.xml, so that we can run it on HTTP (defaults to requiring HTTPS)
# WARNING: THIS IS OBVIOUSLY INSECURE. NEVER DO THIS IN PRODUCTION.
COPY dspace/src/main/docker/test/rest_web.xml $DSPACE_INSTALL/webapps/rest/WEB-INF/web.xml
RUN sed -i -e "s|\${dspace.dir}|$DSPACE_INSTALL|" $DSPACE_INSTALL/webapps/rest/WEB-INF/web.xml

22
LICENSE
View File

@@ -1,6 +1,6 @@
DSpace source code BSD License:
BSD 3-Clause License
Copyright (c) 2002-2020, LYRASIS. All rights reserved.
Copyright (c) 2002-2021, LYRASIS. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
@@ -13,13 +13,12 @@ notice, this list of conditions and the following disclaimer.
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
- Neither the name DuraSpace nor the name of the DSpace Foundation
nor the names of its contributors may be used to endorse or promote
products derived from this software without specific prior written
permission.
- Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
@@ -29,11 +28,4 @@ OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.
DSpace uses third-party libraries which may be distributed under
different licenses to the above. Information about these licenses
is detailed in the LICENSES_THIRD_PARTY file at the root of the source
tree. You must agree to the terms of these licenses, in addition to
the above DSpace source code license, in order to use this software.
DAMAGE.

File diff suppressed because it is too large Load Diff

10
NOTICE
View File

@@ -1,3 +1,13 @@
Licenses of Third-Party Libraries
=================================
DSpace uses third-party libraries which may be distributed under
different licenses than specified in our LICENSE file. Information
about these licenses is detailed in the LICENSES_THIRD_PARTY file at
the root of the source tree. You must agree to the terms of these
licenses, in addition to the DSpace source code license, in order to
use this software.
Licensing Notices
=================

View File

@@ -1,62 +1,54 @@
# DSpace
[![Build Status](https://travis-ci.com/DSpace/DSpace.png?branch=main)](https://travis-ci.com/DSpace/DSpace)
[![Build Status](https://github.com/DSpace/DSpace/workflows/Build/badge.svg)](https://github.com/DSpace/DSpace/actions?query=workflow%3ABuild)
[DSpace Documentation](https://wiki.lyrasis.org/display/DSDOC/) |
[DSpace Releases](https://github.com/DSpace/DSpace/releases) |
[DSpace Wiki](https://wiki.lyrasis.org/display/DSPACE/Home) |
[Support](https://wiki.lyrasis.org/display/DSPACE/Support)
## Overview
DSpace open source software is a turnkey repository application used by more than
2,000 organizations and institutions worldwide to provide durable access to digital resources.
For more information, visit http://www.dspace.org/
***
:warning: **Work on DSpace 7 has begun on our `main` branch.** This means that there is NO user interface on this `main` branch. DSpace 7 will feature a new, unified [Angular](https://angular.io/) user interface, along with an enhanced, rebuilt REST API. The latest status of this work can be found on the [DSpace 7 Working Group](https://wiki.lyrasis.org/display/DSPACE/DSpace+7+Working+Group) page. Additionally, the codebases can be found in the following places:
* DSpace 7 REST API work is occurring on the [`main` branch](https://github.com/DSpace/DSpace/tree/main/dspace-server-webapp) of this repository.
* The REST Contract is at https://github.com/DSpace/Rest7Contract
* DSpace 7 Angular UI work is occurring at https://github.com/DSpace/dspace-angular
DSpace consists of both a Java-based backend and an Angular-based frontend.
**If you would like to get involved in our DSpace 7 development effort, we welcome new contributors.** Just join one of our meetings or get in touch via Slack. See the [DSpace 7 Working Group](https://wiki.lyrasis.org/display/DSPACE/DSpace+7+Working+Group) wiki page for more info.
* Backend (this codebase) provides a REST API, along with other machine-based interfaces (e.g. OAI-PMH, SWORD, etc)
* The REST Contract is at https://github.com/DSpace/RestContract
* Frontend (https://github.com/DSpace/dspace-angular/) is the User Interface built on the REST API
**If you are looking for the ongoing maintenance work for DSpace 6 (or prior releases)**, you can find that work on the corresponding maintenance branch (e.g. [`dspace-6_x`](https://github.com/DSpace/DSpace/tree/dspace-6_x)) in this repository.
***
Prior versions of DSpace (v6.x and below) used two different UIs (XMLUI and JSPUI). Those UIs are no longer supported in v7 (and above).
* A maintenance branch for older versions is still available, see `dspace-6_x` for 6.x maintenance.
## Downloads
The latest release of DSpace can be downloaded from the [DSpace website](http://www.dspace.org/latest-release/) or from [GitHub](https://github.com/DSpace/DSpace/releases).
Past releases are all available via GitHub at https://github.com/DSpace/DSpace/releases
* Backend (REST API): https://github.com/DSpace/DSpace/releases
* Frontend (User Interface): https://github.com/DSpace/dspace-angular/releases
## Documentation / Installation
Documentation for each release may be viewed online or downloaded via our [Documentation Wiki](https://wiki.lyrasis.org/display/DSDOC/).
The latest DSpace Installation instructions are available at:
https://wiki.lyrasis.org/display/DSDOC6x/Installing+DSpace
https://wiki.lyrasis.org/display/DSDOC7x/Installing+DSpace
Please be aware that, as a Java web application, DSpace requires a database (PostgreSQL or Oracle)
Please be aware that, as a Java web application, DSpace requires a database (PostgreSQL)
and a servlet container (usually Tomcat) in order to function.
More information about these and all other prerequisites can be found in the Installation instructions above.
## Running DSpace 7 in Docker
NOTE: At this time, we do not have production-ready Docker images for DSpace.
That said, we do have quick-start Docker Compose scripts for development or testing purposes.
See [Running DSpace 7 with Docker Compose](dspace/src/main/docker-compose/README.md)
## Contributing
DSpace is a community built and supported project. We do not have a centralized development or support team,
but have a dedicated group of volunteers who help us improve the software, documentation, resources, etc.
We welcome contributions of any type. Here's a few basic guides that provide suggestions for contributing to DSpace:
* [How to Contribute to DSpace](https://wiki.lyrasis.org/display/DSPACE/How+to+Contribute+to+DSpace): How to contribute in general (via code, documentation, bug reports, expertise, etc)
* [Code Contribution Guidelines](https://wiki.lyrasis.org/display/DSPACE/Code+Contribution+Guidelines): How to give back code or contribute features, bug fixes, etc.
* [DSpace Community Advisory Team (DCAT)](https://wiki.lyrasis.org/display/cmtygp/DSpace+Community+Advisory+Team): If you are not a developer, we also have an interest group specifically for repository managers. The DCAT group meets virtually, once a month, and sends open invitations to join their meetings via the [DCAT mailing list](https://groups.google.com/d/forum/DSpaceCommunityAdvisoryTeam).
We also encourage GitHub Pull Requests (PRs) at any time. Please see our [Development with Git](https://wiki.lyrasis.org/display/DSPACE/Development+with+Git) guide for more info.
In addition, a listing of all known contributors to DSpace software can be
found online at: https://wiki.lyrasis.org/display/DSPACE/DSpaceContributors
See [Contributing documentation](CONTRIBUTING.md)
## Getting Help
@@ -86,7 +78,7 @@ DSpace uses GitHub to track issues:
### Running Tests
By default, in DSpace, Unit Tests and Integration Tests are disabled. However, they are
run automatically by [Travis CI](https://travis-ci.com/DSpace/DSpace/) for all Pull Requests and code commits.
run automatically by [GitHub Actions](https://github.com/DSpace/DSpace/actions?query=workflow%3ABuild) for all Pull Requests and code commits.
* How to run both Unit Tests (via `maven-surefire-plugin`) and Integration Tests (via `maven-failsafe-plugin`):
```
@@ -133,3 +125,6 @@ run automatically by [Travis CI](https://travis-ci.com/DSpace/DSpace/) for all P
DSpace source code is freely available under a standard [BSD 3-Clause license](https://opensource.org/licenses/BSD-3-Clause).
The full license is available in the [LICENSE](LICENSE) file or online at http://www.dspace.org/license/
DSpace uses third-party libraries which may be distributed under different licenses. Those licenses are listed
in the [LICENSES_THIRD_PARTY](LICENSES_THIRD_PARTY) file.

15
SECURITY.md Normal file
View File

@@ -0,0 +1,15 @@
# Security Policy
## Supported Versions
For information regarding which versions of DSpace are currently under support, please see our DSpace Software Support Policy:
https://wiki.lyrasis.org/display/DSPACE/DSpace+Software+Support+Policy
## Reporting a Vulnerability
If you believe you have found a security vulnerability in a supported version of DSpace, we encourage you to let us know right away.
We will investigate all legitimate reports and do our best to quickly fix the problem. Please see our DSpace Software Support Policy
for information on privately reporting vulnerabilities:
https://wiki.lyrasis.org/display/DSPACE/DSpace+Software+Support+Policy

View File

@@ -7,4 +7,5 @@
<!-- TODO: We should have these turned on. But, currently there's a known bug with indentation checks
on JMockIt Expectations blocks and similar. See https://github.com/checkstyle/checkstyle/issues/3739 -->
<suppress checks="Indentation" files="src[/\\]test[/\\]java"/>
<suppress checks="Regexp" files="DSpaceHttpClientFactory\.java"/>
</suppressions>

View File

@@ -92,9 +92,7 @@ For more information on CheckStyle configurations below, see: http://checkstyle.
<!-- Requirements for Javadocs for methods -->
<module name="JavadocMethod">
<!-- All public methods MUST HAVE Javadocs -->
<!-- <property name="scope" value="public"/> -->
<!-- TODO: Above rule has been disabled because of large amount of missing public method Javadocs -->
<property name="scope" value="nothing"/>
<property name="accessModifiers" value="public"/>
<!-- Allow params, throws and return tags to be optional -->
<property name="allowMissingParamTags" value="true"/>
<property name="allowMissingReturnTag" value="true"/>
@@ -138,5 +136,22 @@ For more information on CheckStyle configurations below, see: http://checkstyle.
<module name="OneStatementPerLine"/>
<!-- Require that "catch" statements are not empty (must at least contain a comment) -->
<module name="EmptyCatchBlock"/>
<!-- Require to use DSpaceHttpClientFactory.getClient() statement instead of creating directly the client -->
<module name="Regexp">
<property name="format" value="HttpClientBuilder\.create\s*\(\s*\)" />
<property name="message" value="Use DSpaceHttpClientFactory.getClient() instead of HttpClientBuilder.create()" />
<property name="illegalPattern" value="true"/>
<property name="ignoreComments" value="true"/>
</module>
<!-- Require to use DSpaceHttpClientFactory.getClient() statement instead of creating directly the client -->
<module name="Regexp">
<property name="format" value="HttpClients\.createDefault\s*\(\s*\)" />
<property name="message" value="Use DSpaceHttpClientFactory.getClient() instead of HttpClients.createDefault()" />
<property name="illegalPattern" value="true"/>
<property name="ignoreComments" value="true"/>
</module>
</module>
</module>

View File

@@ -1,25 +1,37 @@
version: "3.7"
networks:
# Default to using network named 'dspacenet' from docker-compose.yml.
# Its full name will be prepended with the project name (e.g. "-p d7" means it will be named "d7_dspacenet")
default:
name: ${COMPOSE_PROJECT_NAME}_dspacenet
external: true
services:
dspace-cli:
image: "${DOCKER_OWNER:-dspace}/dspace-cli:${DSPACE_VER:-dspace-7_x}"
image: "${DOCKER_REGISTRY:-docker.io}/${DOCKER_OWNER:-dspace}/dspace-cli:${DSPACE_VER:-dspace-7_x}"
container_name: dspace-cli
build:
context: .
dockerfile: Dockerfile.cli
#environment:
environment:
# Below syntax may look odd, but it is how to override dspace.cfg settings via env variables.
# See https://github.com/DSpace/DSpace/blob/main/dspace/config/config-definition.xml
# __P__ => "." (e.g. dspace__P__dir => dspace.dir)
# __D__ => "-" (e.g. google__D__metadata => google-metadata)
# dspace.dir: Must match with Dockerfile's DSPACE_INSTALL directory.
dspace__P__dir: /dspace
# db.url: Ensure we are using the 'dspacedb' image for our database
db__P__url: 'jdbc:postgresql://dspacedb:5432/dspace'
# solr.server: Ensure we are using the 'dspacesolr' image for Solr
solr__P__server: http://dspacesolr:8983/solr
volumes:
- ./dspace/src/main/docker-compose/local.cfg:/dspace/config/local.cfg
# Keep DSpace assetstore directory between reboots
- assetstore:/dspace/assetstore
# Mount local [src]/dspace/config/ to container. This syncs your local configs with container
# NOTE: Environment variables specified above will OVERRIDE any configs in local.cfg or dspace.cfg
- ./dspace/config:/dspace/config
entrypoint: /dspace/bin/dspace
command: help
networks:
- dspacenet
tty: true
stdin_open: true
volumes:
assetstore:
networks:
dspacenet:

View File

@@ -1,25 +1,56 @@
version: '3.7'
networks:
dspacenet:
ipam:
config:
# Define a custom subnet for our DSpace network, so that we can easily trust requests from host to container.
# If you customize this value, be sure to customize the 'proxies.trusted.ipranges' env variable below.
- subnet: 172.23.0.0/16
services:
# DSpace (backend) webapp container
dspace:
container_name: dspace
image: "${DOCKER_OWNER:-dspace}/dspace:${DSPACE_VER:-dspace-7_x-test}"
environment:
# Below syntax may look odd, but it is how to override dspace.cfg settings via env variables.
# See https://github.com/DSpace/DSpace/blob/main/dspace/config/config-definition.xml
# __P__ => "." (e.g. dspace__P__dir => dspace.dir)
# __D__ => "-" (e.g. google__D__metadata => google-metadata)
# dspace.dir: Must match with Dockerfile's DSPACE_INSTALL directory.
dspace__P__dir: /dspace
# Uncomment to set a non-default value for dspace.server.url or dspace.ui.url
# dspace__P__server__P__url: http://localhost:8080/server
# dspace__P__ui__P__url: http://localhost:4000
dspace__P__name: 'DSpace Started with Docker Compose'
# db.url: Ensure we are using the 'dspacedb' image for our database
db__P__url: 'jdbc:postgresql://dspacedb:5432/dspace'
# solr.server: Ensure we are using the 'dspacesolr' image for Solr
solr__P__server: http://dspacesolr:8983/solr
# proxies.trusted.ipranges: This setting is required for a REST API running in Docker to trust requests
# from the host machine. This IP range MUST correspond to the 'dspacenet' subnet defined above.
proxies__P__trusted__P__ipranges: '172.23.0'
LOGGING_CONFIG: /dspace/config/log4j2-container.xml
image: "${DOCKER_REGISTRY:-docker.io}/${DOCKER_OWNER:-dspace}/dspace:${DSPACE_VER:-dspace-7_x-test}"
build:
context: .
dockerfile: Dockerfile.test
depends_on:
- dspacedb
networks:
dspacenet:
- dspacenet
ports:
- published: 8080
target: 8080
- published: 8009
target: 8009
- published: 8000
target: 8000
stdin_open: true
tty: true
volumes:
# Keep DSpace assetstore directory between reboots
- assetstore:/dspace/assetstore
- ./dspace/src/main/docker-compose/local.cfg:/dspace/config/local.cfg
# Mount local [src]/dspace/config/ to container. This syncs your local configs with container
# NOTE: Environment variables specified above will OVERRIDE any configs in local.cfg or dspace.cfg
- ./dspace/config:/dspace/config
# Ensure that the database is ready BEFORE starting tomcat
# 1. While a TCP connection to dspacedb port 5432 is not available, continue to sleep
# 2. Then, run database migration to init database tables
@@ -31,11 +62,17 @@ services:
while (!</dev/tcp/dspacedb/5432) > /dev/null 2>&1; do sleep 1; done;
/dspace/bin/dspace database migrate
catalina.sh run
# DSpace PostgreSQL database container
dspacedb:
container_name: dspacedb
# Uses a custom Postgres image with pgcrypto installed
image: "${DOCKER_REGISTRY:-docker.io}/${DOCKER_OWNER:-dspace}/dspace-postgres-pgcrypto:${DSPACE_VER:-dspace-7_x}"
build:
# Must build out of subdirectory to have access to install script for pgcrypto
context: ./dspace/src/main/docker/dspace-postgres-pgcrypto/
environment:
PGDATA: /pgdata
image: dspace/dspace-postgres-pgcrypto
POSTGRES_PASSWORD: dspace
networks:
dspacenet:
ports:
@@ -44,10 +81,19 @@ services:
stdin_open: true
tty: true
volumes:
# Keep Postgres data directory between reboots
- pgdata:/pgdata
# DSpace Solr container
dspacesolr:
container_name: dspacesolr
image: dspace/dspace-solr
image: "${DOCKER_REGISTRY:-docker.io}/${DOCKER_OWNER:-dspace}/dspace-solr:${DSPACE_VER:-dspace-7_x}"
build:
context: ./dspace/src/main/docker/dspace-solr/
# Provide path to Solr configs necessary to build Docker image
additional_contexts:
solrconfigs: ./dspace/solr/
args:
SOLR_VERSION: "${SOLR_VER:-8.11}"
networks:
dspacenet:
ports:
@@ -55,15 +101,29 @@ services:
target: 8983
stdin_open: true
tty: true
working_dir: /var/solr/data
volumes:
- solr_authority:/opt/solr/server/solr/authority/data
- solr_oai:/opt/solr/server/solr/oai/data
- solr_search:/opt/solr/server/solr/search/data
- solr_statistics:/opt/solr/server/solr/statistics/data
# Keep Solr data directory between reboots
- solr_data:/var/solr/data
# Initialize all DSpace Solr cores then start Solr:
# * First, run precreate-core to create the core (if it doesn't yet exist). If exists already, this is a no-op
# * Second, copy configsets to this core:
# Updates to Solr configs require the container to be rebuilt/restarted: `docker compose -p d7 up -d --build dspacesolr`
entrypoint:
- /bin/bash
- '-c'
- |
init-var-solr
precreate-core authority /opt/solr/server/solr/configsets/authority
cp -r /opt/solr/server/solr/configsets/authority/* authority
precreate-core oai /opt/solr/server/solr/configsets/oai
cp -r /opt/solr/server/solr/configsets/oai/* oai
precreate-core search /opt/solr/server/solr/configsets/search
cp -r /opt/solr/server/solr/configsets/search/* search
precreate-core statistics /opt/solr/server/solr/configsets/statistics
cp -r /opt/solr/server/solr/configsets/statistics/* statistics
exec solr -f
volumes:
assetstore:
pgdata:
solr_authority:
solr_oai:
solr_search:
solr_statistics:
solr_data:

View File

@@ -12,7 +12,7 @@
<parent>
<groupId>org.dspace</groupId>
<artifactId>dspace-parent</artifactId>
<version>7.0-beta4</version>
<version>7.6.6-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
@@ -99,24 +99,13 @@
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>maven-version</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.4</version>
<version>3.2.1</version>
<configuration>
<revisionOnScmFailure>UNKNOWN_REVISION</revisionOnScmFailure>
</configuration>
<executions>
<execution>
<phase>validate</phase>
@@ -170,6 +159,29 @@
</configuration>
</plugin>
<!-- Used to create/generate 'org.dspace.workflow' classes from our workflow-curation.xsd via JAXB -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>2.5.0</version>
<executions>
<execution>
<id>workflow-curation</id>
<goals>
<goal>xjc</goal>
</goals>
<configuration>
<sources>
<source>src/main/resources/org/dspace/workflow</source>
</sources>
<packageName>org.dspace.workflow</packageName>
<addGeneratedAnnotation>true</addGeneratedAnnotation>
<noPackageLevelAnnotations>true</noPackageLevelAnnotations>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
@@ -311,10 +323,46 @@
</profiles>
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-ehcache</artifactId>
<artifactId>hibernate-core</artifactId>
<exclusions>
<!-- Newer version pulled in via Jersey below -->
<exclusion>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-jcache</artifactId>
</dependency>
<dependency>
<groupId>org.ehcache</groupId>
<artifactId>ehcache</artifactId>
<version>${ehcache.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-cache
Caching dependencies for sherpa service. -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
<version>${spring-boot.version}</version>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>javax.cache</groupId>
<artifactId>cache-api</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
@@ -325,15 +373,22 @@
<artifactId>hibernate-validator-cdi</artifactId>
<version>${hibernate-validator.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.1-api</artifactId>
<version>1.0.2.Final</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.el</artifactId>
<version>3.0.1-b10</version>
<exclusions>
<!-- Spring JCL is unnecessary and conflicts with commons-logging when both are on classpath -->
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-jcl</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
@@ -349,6 +404,25 @@
<groupId>org.ow2.asm</groupId>
<artifactId>asm-commons</artifactId>
</exclusion>
<!-- Newer version of Bouncycastle brought in via Tika -->
<exclusion>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk15on</artifactId>
</exclusion>
<exclusion>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
</exclusion>
<!-- Excluded BouncyCastle dependencies because we use a later version of BouncyCastle.
Having two versions of BouncyCastle in the classpath can cause Handle Server to throw errors. -->
<exclusion>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk15on</artifactId>
</exclusion>
<exclusion>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Jetty is needed to run Handle Server -->
@@ -356,10 +430,6 @@
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
</dependency>
<dependency>
<groupId>org.dspace</groupId>
<artifactId>jargon</artifactId>
</dependency>
<dependency>
<groupId>org.dspace</groupId>
<artifactId>mets</artifactId>
@@ -368,15 +438,13 @@
<groupId>org.apache.jena</groupId>
<artifactId>apache-jena-libs</artifactId>
<type>pom</type>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Required to support PubMed API call in "PubmedImportMetadataSourceServiceImpl.GetRecord" -->
<!-- Makes runtime operations in Jersey Dependency Injection -->
<dependency>
<groupId>org.glassfish.jersey.inject</groupId>
<artifactId>jersey-hk2</artifactId>
<version>${jersey.version}</version>
</dependency>
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
@@ -393,10 +461,6 @@
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
</dependency>
<dependency>
<groupId>commons-io</groupId>
@@ -415,31 +479,25 @@
<artifactId>commons-validator</artifactId>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
</dependency>
<dependency>
<groupId>jaxen</groupId>
<artifactId>jaxen</artifactId>
<exclusions>
<exclusion>
<artifactId>xom</artifactId>
<groupId>xom</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.jdom</groupId>
<artifactId>jdom</artifactId>
</dependency>
<dependency>
<groupId>oro</groupId>
<artifactId>oro</artifactId>
<artifactId>jdom2</artifactId>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
@@ -449,38 +507,11 @@
<groupId>org.apache.pdfbox</groupId>
<artifactId>fontbox</artifactId>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
</dependency>
<dependency>
<groupId>rome</groupId>
<artifactId>rome</artifactId>
</dependency>
<dependency>
<groupId>rome</groupId>
<artifactId>opensearch</artifactId>
</dependency>
<dependency>
<groupId>xalan</groupId>
<artifactId>xalan</artifactId>
</dependency>
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
</dependency>
<dependency>
<groupId>xml-apis</groupId>
<artifactId>xml-apis</artifactId>
</dependency>
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
</dependency>
<dependency>
<groupId>com.ibm.icu</groupId>
<artifactId>icu4j</artifactId>
</dependency>
<!-- Codebase at https://github.com/DSpace/oclc-harvester2 -->
<dependency>
<groupId>org.dspace</groupId>
<artifactId>oclc-harvester2</artifactId>
@@ -496,7 +527,7 @@
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
<artifactId>hamcrest</artifactId>
<scope>test</scope>
</dependency>
<dependency>
@@ -506,7 +537,7 @@
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<artifactId>mockito-inline</artifactId>
<scope>test</scope>
</dependency>
<dependency>
@@ -514,167 +545,51 @@
<artifactId>spring-test</artifactId>
<scope>test</scope>
</dependency>
<!-- Used for RSS / ATOM syndication feeds -->
<dependency>
<groupId>org.rometools</groupId>
<artifactId>rome-modules</artifactId>
<version>1.0</version>
<groupId>com.rometools</groupId>
<artifactId>rome</artifactId>
</dependency>
<dependency>
<groupId>gr.ekt.bte</groupId>
<artifactId>bte-io</artifactId>
<version>0.9.3.5</version>
<exclusions>
<exclusion>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy</artifactId>
</exclusion>
</exclusions>
<groupId>com.rometools</groupId>
<artifactId>rome-modules</artifactId>
</dependency>
<dependency>
<groupId>org.jbibtex</groupId>
<artifactId>jbibtex</artifactId>
<version>1.0.20</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
</dependency>
<!-- SolrJ is used to communicate with Solr throughout the dspace-api -->
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>${solr.client.version}</version>
</dependency>
<!-- Solr Core is needed for Integration Tests (to run a MockSolrServer) -->
<!-- Solr Core is only needed for Integration Tests (to run a MockSolrServer) -->
<!-- The following Solr / Lucene dependencies also support integration tests -->
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-core</artifactId>
<scope>test</scope>
<version>${solr.client.version}</version>
<exclusions>
<exclusion>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-continuation</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-deploy</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-http</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-io</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-jmx</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-rewrite</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-security</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlets</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-util</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-webapp</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-xml</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-cell</artifactId>
<exclusions>
<!-- Newer versions provided in our parent POM -->
<exclusion>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
</exclusion>
<exclusion>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-commons</artifactId>
</exclusion>
<exclusion>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk15on</artifactId>
</exclusion>
<exclusion>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-xml</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-http</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-webapp</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-util</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-deploy</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-continuation</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlets</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-io</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-security</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-core</artifactId>
</dependency>
<!-- Reminder: Keep icu4j (in Parent POM) synced with version used by lucene-analyzers-icu below,
otherwise ICUFoldingFilterFactory may throw errors in tests. -->
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-analyzers-icu</artifactId>
@@ -690,16 +605,21 @@
<artifactId>lucene-analyzers-stempel</artifactId>
<scope>test</scope>
</dependency>
<!-- Tika is used to extract full text from documents in order to index in Solr -->
<dependency>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>2.6.0</version>
<groupId>org.apache.tika</groupId>
<artifactId>tika-core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-parsers-standard-package</artifactId>
</dependency>
<dependency>
<groupId>com.maxmind.geoip2</groupId>
<artifactId>geoip2</artifactId>
<version>2.11.0</version>
<version>2.17.0</version>
</dependency>
<dependency>
<groupId>org.apache.ant</groupId>
@@ -708,7 +628,7 @@
<dependency>
<groupId>dnsjava</groupId>
<artifactId>dnsjava</artifactId>
<version>2.1.7</version>
<version>3.6.3</version>
</dependency>
<dependency>
@@ -717,19 +637,11 @@
<version>1.1.1</version>
</dependency>
<!-- Gson: Java to Json conversion -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
@@ -752,7 +664,7 @@
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
<version>6.5.5</version>
<version>8.5.13</version>
</dependency>
<!-- Google Analytics -->
@@ -808,92 +720,216 @@
<artifactId>jaxb-runtime</artifactId>
</dependency>
<!-- Apache Axiom -->
<dependency>
<groupId>org.apache.ws.commons.axiom</groupId>
<artifactId>axiom-impl</artifactId>
<version>${axiom.version}</version>
<exclusions>
<!-- Exclude Geronimo as it is NOT necessary when using javax.activation (which we use)
See: https://ws.apache.org/axiom/userguide/ch04.html#d0e732 -->
<exclusion>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.ws.commons.axiom</groupId>
<artifactId>axiom-api</artifactId>
<version>${axiom.version}</version>
<exclusions>
<!-- Exclude Geronimo as it is NOT necessary when using javax.activation (which we use)
See: https://ws.apache.org/axiom/userguide/ch04.html#d0e732 -->
<exclusion>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Jersey / JAX-RS client (javax.ws.rs.*) dependencies needed to integrate with external sources/services -->
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>${jersey.version}</version>
</dependency>
<!-- Required because Jersey no longer includes a dependency injection provider by default.
Needed to support PubMed API call in "PubmedImportMetadataSourceServiceImpl.GetRecord" -->
<dependency>
<groupId>org.glassfish.jersey.inject</groupId>
<artifactId>jersey-hk2</artifactId>
<version>${jersey.version}</version>
</dependency>
<!-- S3 -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-s3</artifactId>
<version>1.10.50</version>
<version>1.12.792</version>
</dependency>
<!-- For ORCID v2 integration -->
<dependency>
<groupId>org.dspace</groupId>
<artifactId>orcid-jaxb-api</artifactId>
<version>2.1.0</version>
<groupId>org.orcid</groupId>
<artifactId>orcid-model</artifactId>
<version>3.0.2</version>
<exclusions>
<exclusion>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
</exclusion>
<exclusion>
<groupId>com.fasterxml.jackson.jaxrs</groupId>
<artifactId>jackson-jaxrs-json-provider</artifactId>
</exclusion>
<exclusion>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
</exclusion>
<exclusion>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
</exclusion>
<exclusion>
<groupId>io.swagger</groupId>
<artifactId>swagger-jersey-jaxrs</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20180130</version>
<version>20231013</version>
</dependency>
<!-- Useful for testing command-line tools -->
<dependency>
<groupId>com.github.stefanbirkner</groupId>
<artifactId>system-rules</artifactId>
<version>1.19.0</version>
<scope>test</scope>
</dependency>
<!-- Used for Solr core export/import -->
<dependency>
<groupId>com.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>4.5</version>
<version>5.12.0</version>
</dependency>
<!-- Email templating -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.0</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.xmlunit</groupId>
<artifactId>xmlunit-core</artifactId>
<version>2.6.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.1-api</artifactId>
<version>1.0.0.Final</version>
</dependency>
<dependency>
<groupId>org.apache.bcel</groupId>
<artifactId>bcel</artifactId>
<version>6.4.0</version>
<version>6.10.0</version>
<scope>test</scope>
</dependency>
<!-- required for openaire api integration -->
<dependency>
<groupId>eu.openaire</groupId>
<artifactId>funders-model</artifactId>
<version>2.0.0</version>
<exclusions>
<!-- Newer version pulled in via Jersey below -->
<exclusion>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.mock-server</groupId>
<artifactId>mockserver-junit-rule</artifactId>
<version>5.15.0</version>
<scope>test</scope>
<exclusions>
<!-- Exclude snakeyaml to avoid conflicts with: spring-boot-starter-cache -->
<exclusion>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>io.findify</groupId>
<artifactId>s3mock_2.13</artifactId>
<version>0.2.6</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>com.amazonawsl</groupId>
<artifactId>aws-java-sdk-s3</artifactId>
</exclusion>
<exclusion>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-s3</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>mockwebserver</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<!-- for mockserver -->
<!-- Solve dependency convergence issues related to Solr and
'mockserver-junit-rule' by selecting the versions we want to use. -->
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-buffer</artifactId>
<version>4.2.6.Final</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-transport</artifactId>
<version>4.2.6.Final</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-transport-native-unix-common</artifactId>
<version>4.2.6.Final</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-common</artifactId>
<version>4.2.6.Final</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-handler</artifactId>
<version>4.2.6.Final</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-codec</artifactId>
<version>4.2.6.Final</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.4.1</version>
</dependency>
<dependency>
<groupId>org.xmlunit</groupId>
<artifactId>xmlunit-core</artifactId>
<version>2.10.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.github.java-json-tools</groupId>
<artifactId>json-schema-validator</artifactId>
<version>2.2.14</version>
</dependency>
<dependency>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
<version>2.3.3</version>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.13.16</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>

View File

@@ -0,0 +1,42 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.access.status;
import java.sql.SQLException;
import java.util.Date;
import org.dspace.content.Item;
import org.dspace.core.Context;
/**
* Plugin interface for the access status calculation.
*/
public interface AccessStatusHelper {
/**
* Calculate the access status for the item.
*
* @param context the DSpace context
* @param item the item
* @param threshold the embargo threshold date
* @return an access status value
* @throws SQLException An exception that provides information on a database access error or other errors.
*/
public String getAccessStatusFromItem(Context context, Item item, Date threshold)
throws SQLException;
/**
* Retrieve embargo information for the item
*
* @param context the DSpace context
* @param item the item to check for embargo information
* @param threshold the embargo threshold date
* @return an embargo date
* @throws SQLException An exception that provides information on a database access error or other errors.
*/
public String getEmbargoFromItem(Context context, Item item, Date threshold) throws SQLException;
}

View File

@@ -0,0 +1,71 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.access.status;
import java.sql.SQLException;
import java.util.Date;
import org.dspace.access.status.service.AccessStatusService;
import org.dspace.content.Item;
import org.dspace.core.Context;
import org.dspace.core.service.PluginService;
import org.dspace.services.ConfigurationService;
import org.joda.time.LocalDate;
import org.springframework.beans.factory.annotation.Autowired;
/**
* Implementation for the access status calculation service.
*/
public class AccessStatusServiceImpl implements AccessStatusService {
// Plugin implementation, set from the DSpace configuration by init().
protected AccessStatusHelper helper = null;
protected Date forever_date = null;
@Autowired(required = true)
protected ConfigurationService configurationService;
@Autowired(required = true)
protected PluginService pluginService;
/**
* Initialize the bean (after dependency injection has already taken place).
* Ensures the configurationService is injected, so that we can get the plugin
* and the forever embargo date threshold from the configuration.
* Called by "init-method" in Spring configuration.
*
* @throws Exception on generic exception
*/
public void init() throws Exception {
if (helper == null) {
helper = (AccessStatusHelper) pluginService.getSinglePlugin(AccessStatusHelper.class);
if (helper == null) {
throw new IllegalStateException("The AccessStatusHelper plugin was not defined in "
+ "DSpace configuration.");
}
// Defines the embargo forever date threshold for the access status.
// Look at EmbargoService.FOREVER for some improvements?
int year = configurationService.getIntProperty("access.status.embargo.forever.year");
int month = configurationService.getIntProperty("access.status.embargo.forever.month");
int day = configurationService.getIntProperty("access.status.embargo.forever.day");
forever_date = new LocalDate(year, month, day).toDate();
}
}
@Override
public String getAccessStatus(Context context, Item item) throws SQLException {
return helper.getAccessStatusFromItem(context, item, forever_date);
}
@Override
public String getEmbargoFromItem(Context context, Item item) throws SQLException {
return helper.getEmbargoFromItem(context, item, forever_date);
}
}

View File

@@ -0,0 +1,248 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.access.status;
import java.sql.SQLException;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import org.apache.commons.lang3.StringUtils;
import org.dspace.authorize.ResourcePolicy;
import org.dspace.authorize.factory.AuthorizeServiceFactory;
import org.dspace.authorize.service.AuthorizeService;
import org.dspace.authorize.service.ResourcePolicyService;
import org.dspace.content.Bitstream;
import org.dspace.content.Bundle;
import org.dspace.content.DSpaceObject;
import org.dspace.content.Item;
import org.dspace.content.factory.ContentServiceFactory;
import org.dspace.content.service.ItemService;
import org.dspace.core.Constants;
import org.dspace.core.Context;
import org.dspace.eperson.Group;
import org.joda.time.LocalDate;
/**
* Default plugin implementation of the access status helper.
* The getAccessStatusFromItem method provides a simple logic to
* calculate the access status of an item based on the policies of
* the primary or the first bitstream in the original bundle.
* Users can override this method for enhanced functionality.
*
* The getEmbargoInformationFromItem method provides a simple logic to
* * retrieve embargo information of bitstreams from an item based on the policies of
* * the primary or the first bitstream in the original bundle.
* * Users can override this method for enhanced functionality.
*/
public class DefaultAccessStatusHelper implements AccessStatusHelper {
public static final String EMBARGO = "embargo";
public static final String METADATA_ONLY = "metadata.only";
public static final String OPEN_ACCESS = "open.access";
public static final String RESTRICTED = "restricted";
public static final String UNKNOWN = "unknown";
protected ItemService itemService =
ContentServiceFactory.getInstance().getItemService();
protected ResourcePolicyService resourcePolicyService =
AuthorizeServiceFactory.getInstance().getResourcePolicyService();
protected AuthorizeService authorizeService =
AuthorizeServiceFactory.getInstance().getAuthorizeService();
public DefaultAccessStatusHelper() {
super();
}
/**
* Look at the item's policies to determine an access status value.
* It is also considering a date threshold for embargoes and restrictions.
*
* If the item is null, simply returns the "unknown" value.
*
* @param context the DSpace context
* @param item the item to check for embargoes
* @param threshold the embargo threshold date
* @return an access status value
*/
@Override
public String getAccessStatusFromItem(Context context, Item item, Date threshold)
throws SQLException {
if (item == null) {
return UNKNOWN;
}
// Consider only the original bundles.
List<Bundle> bundles = item.getBundles(Constants.DEFAULT_BUNDLE_NAME);
// Check for primary bitstreams first.
Bitstream bitstream = bundles.stream()
.map(bundle -> bundle.getPrimaryBitstream())
.filter(Objects::nonNull)
.findFirst()
.orElse(null);
if (bitstream == null) {
// If there is no primary bitstream,
// take the first bitstream in the bundles.
bitstream = bundles.stream()
.map(bundle -> bundle.getBitstreams())
.flatMap(List::stream)
.findFirst()
.orElse(null);
}
return calculateAccessStatusForDso(context, bitstream, threshold);
}
/**
* Look at the DSpace object's policies to determine an access status value.
*
* If the object is null, returns the "metadata.only" value.
* If any policy attached to the object is valid for the anonymous group,
* returns the "open.access" value.
* Otherwise, if the policy start date is before the embargo threshold date,
* returns the "embargo" value.
* Every other cases return the "restricted" value.
*
* @param context the DSpace context
* @param dso the DSpace object
* @param threshold the embargo threshold date
* @return an access status value
*/
private String calculateAccessStatusForDso(Context context, DSpaceObject dso, Date threshold)
throws SQLException {
if (dso == null) {
return METADATA_ONLY;
}
// Only consider read policies.
List<ResourcePolicy> policies = authorizeService
.getPoliciesActionFilter(context, dso, Constants.READ);
int openAccessCount = 0;
int embargoCount = 0;
int restrictedCount = 0;
int unknownCount = 0;
// Looks at all read policies.
for (ResourcePolicy policy : policies) {
boolean isValid = resourcePolicyService.isDateValid(policy);
Group group = policy.getGroup();
// The group must not be null here. However,
// if it is, consider this as an unexpected case.
if (group == null) {
unknownCount++;
} else if (StringUtils.equals(group.getName(), Group.ANONYMOUS)) {
// Only calculate the status for the anonymous group.
if (isValid) {
// If the policy is valid, the anonymous group have access
// to the bitstream.
openAccessCount++;
} else {
Date startDate = policy.getStartDate();
if (startDate != null && !startDate.before(threshold)) {
// If the policy start date have a value and if this value
// is equal or superior to the configured forever date, the
// access status is also restricted.
restrictedCount++;
} else {
// If the current date is not between the policy start date
// and end date, the access status is embargo.
embargoCount++;
}
}
}
}
if (openAccessCount > 0) {
return OPEN_ACCESS;
}
if (embargoCount > 0 && restrictedCount == 0) {
return EMBARGO;
}
if (unknownCount > 0) {
return UNKNOWN;
}
return RESTRICTED;
}
/**
* Look at the policies of the primary (or first) bitstream of the item to retrieve its embargo.
*
* If the item is null, simply returns an empty map with no embargo information.
*
* @param context the DSpace context
* @param item the item to embargo
* @return an access status value
*/
@Override
public String getEmbargoFromItem(Context context, Item item, Date threshold)
throws SQLException {
Date embargoDate;
// If Item status is not "embargo" then return a null embargo date.
String accessStatus = getAccessStatusFromItem(context, item, threshold);
if (item == null || !accessStatus.equals(EMBARGO)) {
return null;
}
// Consider only the original bundles.
List<Bundle> bundles = item.getBundles(Constants.DEFAULT_BUNDLE_NAME);
// Check for primary bitstreams first.
Bitstream bitstream = bundles.stream()
.map(bundle -> bundle.getPrimaryBitstream())
.filter(Objects::nonNull)
.findFirst()
.orElse(null);
if (bitstream == null) {
// If there is no primary bitstream,
// take the first bitstream in the bundles.
bitstream = bundles.stream()
.map(bundle -> bundle.getBitstreams())
.flatMap(List::stream)
.findFirst()
.orElse(null);
}
if (bitstream == null) {
return null;
}
embargoDate = this.retrieveShortestEmbargo(context, bitstream);
return embargoDate != null ? embargoDate.toString() : null;
}
/**
*
*/
private Date retrieveShortestEmbargo(Context context, Bitstream bitstream) throws SQLException {
Date embargoDate = null;
// Only consider read policies.
List<ResourcePolicy> policies = authorizeService
.getPoliciesActionFilter(context, bitstream, Constants.READ);
// Looks at all read policies.
for (ResourcePolicy policy : policies) {
boolean isValid = resourcePolicyService.isDateValid(policy);
Group group = policy.getGroup();
if (group != null && StringUtils.equals(group.getName(), Group.ANONYMOUS)) {
// Only calculate the status for the anonymous group.
if (!isValid) {
// If the policy is not valid there is an active embargo
Date startDate = policy.getStartDate();
if (startDate != null && !startDate.before(LocalDate.now().toDate())) {
// There is an active embargo: aim to take the shortest embargo (account for rare cases where
// more than one resource policy exists)
if (embargoDate == null) {
embargoDate = startDate;
} else {
embargoDate = startDate.before(embargoDate) ? startDate : embargoDate;
}
}
}
}
}
return embargoDate;
}
}

View File

@@ -0,0 +1,25 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.access.status.factory;
import org.dspace.access.status.service.AccessStatusService;
import org.dspace.services.factory.DSpaceServicesFactory;
/**
* Abstract factory to get services for the access status package,
* use AccessStatusServiceFactory.getInstance() to retrieve an implementation.
*/
public abstract class AccessStatusServiceFactory {
public abstract AccessStatusService getAccessStatusService();
public static AccessStatusServiceFactory getInstance() {
return DSpaceServicesFactory.getInstance().getServiceManager()
.getServiceByName("accessStatusServiceFactory", AccessStatusServiceFactory.class);
}
}

View File

@@ -0,0 +1,26 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.access.status.factory;
import org.dspace.access.status.service.AccessStatusService;
import org.springframework.beans.factory.annotation.Autowired;
/**
* Factory implementation to get services for the access status package,
* use AccessStatusServiceFactory.getInstance() to retrieve an implementation.
*/
public class AccessStatusServiceFactoryImpl extends AccessStatusServiceFactory {
@Autowired(required = true)
private AccessStatusService accessStatusService;
@Override
public AccessStatusService getAccessStatusService() {
return accessStatusService;
}
}

View File

@@ -0,0 +1,30 @@
/**
* 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/
*/
/**
* <p>
* Access status allows the users to view the bitstreams availability before
* browsing into the item itself.
* </p>
* <p>
* The access status is calculated through a pluggable class:
* {@link org.dspace.access.status.AccessStatusHelper}.
* The {@link org.dspace.access.status.AccessStatusServiceImpl}
* must be configured to specify this class, as well as a forever embargo date
* threshold year, month and day.
* </p>
* <p>
* See {@link org.dspace.access.status.DefaultAccessStatusHelper} for a simple calculation
* based on the primary or the first bitstream of the original bundle. You can
* supply your own class to implement more complex access statuses.
* </p>
* <p>
* For now, the access status is calculated when the item is shown in a list.
* </p>
*/
package org.dspace.access.status;

View File

@@ -0,0 +1,57 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.access.status.service;
import java.sql.SQLException;
import org.dspace.content.Item;
import org.dspace.core.Context;
/**
* Public interface to the access status subsystem.
* <p>
* Configuration properties: (with examples)
* {@code
* # values for the forever embargo date threshold
* # This threshold date is used in the default access status helper to dermine if an item is
* # restricted or embargoed based on the start date of the primary (or first) file policies.
* # In this case, if the policy start date is inferior to the threshold date, the status will
* # be embargo, else it will be restricted.
* # You might want to change this threshold based on your needs. For example: some databases
* # doesn't accept a date superior to 31 december 9999.
* access.status.embargo.forever.year = 10000
* access.status.embargo.forever.month = 1
* access.status.embargo.forever.day = 1
* # implementation of access status helper plugin - replace with local implementation if applicable
* # This default access status helper provides an item status based on the policies of the primary
* # bitstream (or first bitstream in the original bundles if no primary file is specified).
* plugin.single.org.dspace.access.status.AccessStatusHelper = org.dspace.access.status.DefaultAccessStatusHelper
* }
*/
public interface AccessStatusService {
/**
* Calculate the access status for an Item while considering the forever embargo date threshold.
*
* @param context the DSpace context
* @param item the item
* @return an access status value
* @throws SQLException An exception that provides information on a database access error or other errors.
*/
public String getAccessStatus(Context context, Item item) throws SQLException;
/**
* Retrieve embargo information for the item
*
* @param context the DSpace context
* @param item the item to check for embargo information
* @return an embargo date
* @throws SQLException An exception that provides information on a database access error or other errors.
*/
public String getEmbargoFromItem(Context context, Item item) throws SQLException;
}

View File

@@ -14,9 +14,9 @@ import java.util.UUID;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.DefaultParser;
import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.PosixParser;
import org.apache.commons.collections4.CollectionUtils;
import org.dspace.authorize.AuthorizeException;
import org.dspace.content.Community;
@@ -51,7 +51,7 @@ public class CommunityFiliator {
*/
public static void main(String[] argv) throws Exception {
// create an options object and populate it
CommandLineParser parser = new PosixParser();
CommandLineParser parser = new DefaultParser();
Options options = new Options();

View File

@@ -13,10 +13,10 @@ import java.util.Locale;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.DefaultParser;
import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.PosixParser;
import org.apache.commons.lang3.StringUtils;
import org.dspace.core.ConfigurationManager;
import org.dspace.core.Context;
import org.dspace.core.I18nUtil;
import org.dspace.eperson.EPerson;
@@ -24,6 +24,8 @@ import org.dspace.eperson.Group;
import org.dspace.eperson.factory.EPersonServiceFactory;
import org.dspace.eperson.service.EPersonService;
import org.dspace.eperson.service.GroupService;
import org.dspace.services.ConfigurationService;
import org.dspace.services.factory.DSpaceServicesFactory;
/**
* A command-line tool for creating an initial administrator for setting up a
@@ -53,34 +55,56 @@ public final class CreateAdministrator {
protected GroupService groupService;
/**
* For invoking via the command line. If called with no command line arguments,
* For invoking via the command line. If called with no command line arguments,
* it will negotiate with the user for the administrator details
*
* @param argv the command line arguments given
* @throws Exception if error
*/
public static void main(String[] argv)
throws Exception {
CommandLineParser parser = new PosixParser();
throws Exception {
CommandLineParser parser = new DefaultParser();
Options options = new Options();
CreateAdministrator ca = new CreateAdministrator();
options.addOption("e", "email", true, "administrator email address");
options.addOption("f", "first", true, "administrator first name");
options.addOption("h", "help", false, "explain create-administrator options");
options.addOption("l", "last", true, "administrator last name");
options.addOption("c", "language", true, "administrator language");
options.addOption("p", "password", true, "administrator password");
CommandLine line = parser.parse(options, argv);
CommandLine line = null;
try {
line = parser.parse(options, argv);
} catch (Exception e) {
System.out.println(e.getMessage() + "\nTry \"dspace create-administrator -h\" to print help information.");
System.exit(1);
}
if (line.hasOption("e") && line.hasOption("f") && line.hasOption("l") &&
line.hasOption("c") && line.hasOption("p")) {
line.hasOption("c") && line.hasOption("p")) {
ca.createAdministrator(line.getOptionValue("e"),
line.getOptionValue("f"), line.getOptionValue("l"),
line.getOptionValue("c"), line.getOptionValue("p"));
line.getOptionValue("f"), line.getOptionValue("l"),
line.getOptionValue("c"), line.getOptionValue("p"));
} else if (line.hasOption("h")) {
String header = "\nA command-line tool for creating an initial administrator for setting up a" +
" DSpace site. Unless all the required parameters are passed it will" +
" prompt for an e-mail address, last name, first name and password from" +
" standard input.. An administrator group is then created and the data passed" +
" in used to create an e-person in that group.\n\n";
String footer = "\n";
HelpFormatter formatter = new HelpFormatter();
formatter.printHelp("dspace create-administrator", header, options, footer, true);
return;
} else {
ca.negotiateAdministratorDetails();
ca.negotiateAdministratorDetails(line);
}
}
@@ -90,8 +114,19 @@ public final class CreateAdministrator {
* @throws Exception if error
*/
protected CreateAdministrator()
throws Exception {
throws Exception {
context = new Context();
try {
context.getDBConfig();
} catch (NullPointerException npr) {
// if database is null, there is no point in continuing. Prior to this exception and catch,
// NullPointerException was thrown, that wasn't very helpful.
throw new IllegalStateException("Problem connecting to database. This " +
"indicates issue with either network or version (or possibly some other). " +
"If you are running this in docker-compose, please make sure dspace-cli was " +
"built from the same sources as running dspace container AND that they are in " +
"the same project/network.");
}
groupService = EPersonServiceFactory.getInstance().getGroupService();
ePersonService = EPersonServiceFactory.getInstance().getEPersonService();
}
@@ -102,20 +137,20 @@ public final class CreateAdministrator {
*
* @throws Exception if error
*/
protected void negotiateAdministratorDetails()
throws Exception {
protected void negotiateAdministratorDetails(CommandLine line)
throws Exception {
Console console = System.console();
System.out.println("Creating an initial administrator account");
boolean dataOK = false;
String email = null;
String firstName = null;
String lastName = null;
char[] password1 = null;
char[] password2 = null;
String email = line.getOptionValue('e');
String firstName = line.getOptionValue('f');
String lastName = line.getOptionValue('l');
String language = I18nUtil.getDefaultLocale().getLanguage();
ConfigurationService cfg = DSpaceServicesFactory.getInstance().getConfigurationService();
boolean flag = line.hasOption('p');
char[] password = null;
boolean dataOK = line.hasOption('f') && line.hasOption('e') && line.hasOption('l');
while (!dataOK) {
System.out.print("E-mail address: ");
@@ -146,10 +181,9 @@ public final class CreateAdministrator {
if (lastName != null) {
lastName = lastName.trim();
}
if (ConfigurationManager.getProperty("webui.supported.locales") != null) {
System.out.println("Select one of the following languages: " + ConfigurationManager
.getProperty("webui.supported.locales"));
if (cfg.hasProperty("webui.supported.locales")) {
System.out.println("Select one of the following languages: "
+ cfg.getProperty("webui.supported.locales"));
System.out.print("Language: ");
System.out.flush();
@@ -161,46 +195,59 @@ public final class CreateAdministrator {
}
}
System.out.println("Password will not display on screen.");
System.out.print("Password: ");
System.out.print("Is the above data correct? (y or n): ");
System.out.flush();
password1 = console.readPassword();
String s = console.readLine();
System.out.print("Again to confirm: ");
System.out.flush();
password2 = console.readPassword();
//TODO real password validation
if (password1.length > 1 && Arrays.equals(password1, password2)) {
// password OK
System.out.print("Is the above data correct? (y or n): ");
System.out.flush();
String s = console.readLine();
if (s != null) {
s = s.trim();
if (s.toLowerCase().startsWith("y")) {
dataOK = true;
}
if (s != null) {
s = s.trim();
if (s.toLowerCase().startsWith("y")) {
dataOK = true;
}
} else {
System.out.println("Passwords don't match");
}
}
if (!flag) {
password = getPassword(console);
if (password == null) {
return;
}
} else {
password = line.getOptionValue("p").toCharArray();
}
// if we make it to here, we are ready to create an administrator
createAdministrator(email, firstName, lastName, language, String.valueOf(password1));
createAdministrator(email, firstName, lastName, language, String.valueOf(password));
//Cleaning arrays that held password
Arrays.fill(password1, ' ');
Arrays.fill(password2, ' ');
}
private char[] getPassword(Console console) {
char[] password1 = null;
char[] password2 = null;
System.out.println("Password will not display on screen.");
System.out.print("Password: ");
System.out.flush();
password1 = console.readPassword();
System.out.print("Again to confirm: ");
System.out.flush();
password2 = console.readPassword();
// TODO real password validation
if (password1.length > 1 && Arrays.equals(password1, password2)) {
// password OK
Arrays.fill(password2, ' ');
return password1;
} else {
System.out.println("Passwords don't match");
return null;
}
}
/**
* Create the administrator with the given details. If the user
* Create the administrator with the given details. If the user
* already exists then they are simply upped to administrator status
*
* @param email the email for the user
@@ -211,8 +258,8 @@ public final class CreateAdministrator {
* @throws Exception if error
*/
protected void createAdministrator(String email, String first, String last,
String language, String pw)
throws Exception {
String language, String pw)
throws Exception {
// Of course we aren't an administrator yet so we need to
// circumvent authorisation
context.turnOffAuthorisationSystem();

View File

@@ -10,6 +10,7 @@ package org.dspace.administer;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
@@ -17,25 +18,28 @@ import java.util.Map;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.DefaultParser;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
import org.apache.commons.cli.PosixParser;
import org.apache.xml.serialize.Method;
import org.apache.xml.serialize.OutputFormat;
import org.apache.xml.serialize.XMLSerializer;
import org.dspace.content.MetadataField;
import org.dspace.content.MetadataSchema;
import org.dspace.content.factory.ContentServiceFactory;
import org.dspace.content.service.MetadataFieldService;
import org.dspace.content.service.MetadataSchemaService;
import org.dspace.core.Context;
import org.xml.sax.SAXException;
import org.w3c.dom.DOMConfiguration;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.bootstrap.DOMImplementationRegistry;
import org.w3c.dom.ls.DOMImplementationLS;
import org.w3c.dom.ls.LSOutput;
import org.w3c.dom.ls.LSSerializer;
/**
* @author Graham Triggs
*
* This class creates an xml document as passed in the arguments and
* This class creates an XML document as passed in the arguments and
* from the metadata schemas for the repository.
*
* The form of the XML is as follows
@@ -61,17 +65,20 @@ public class MetadataExporter {
private MetadataExporter() { }
/**
* @param args commandline arguments
* @param args command line arguments
* @throws ParseException if parser error
* @throws SAXException if XML parse error
* @throws IOException if IO error
* @throws SQLException if database error
* @throws RegistryExportException if export error
* @throws ClassNotFoundException if no suitable DOM implementation
* @throws InstantiationException if no suitable DOM implementation
* @throws IllegalAccessException if no suitable DOM implementation
*/
public static void main(String[] args)
throws ParseException, SQLException, IOException, SAXException, RegistryExportException {
throws ParseException, SQLException, IOException, RegistryExportException,
ClassNotFoundException, InstantiationException, IllegalAccessException {
// create an options object and populate it
CommandLineParser parser = new PosixParser();
CommandLineParser parser = new DefaultParser();
Options options = new Options();
options.addOption("f", "file", true, "output xml file for registry");
options.addOption("s", "schema", true, "the name of the schema to export");
@@ -95,32 +102,31 @@ public class MetadataExporter {
}
/**
* Save a registry to a filepath
* Save a registry to a file path
*
* @param file filepath
* @param file file path
* @param schema schema definition to save
* @throws SQLException if database error
* @throws IOException if IO error
* @throws SAXException if XML error
* @throws RegistryExportException if export error
* @throws ClassNotFoundException if no suitable DOM implementation
* @throws InstantiationException if no suitable DOM implementation
* @throws IllegalAccessException if no suitable DOM implementation
*/
public static void saveRegistry(String file, String schema)
throws SQLException, IOException, SAXException, RegistryExportException {
throws SQLException, IOException, RegistryExportException,
ClassNotFoundException, InstantiationException, IllegalAccessException {
// create a context
Context context = new Context();
context.turnOffAuthorisationSystem();
OutputFormat xmlFormat = new OutputFormat(Method.XML, "UTF-8", true);
xmlFormat.setLineWidth(120);
xmlFormat.setIndent(4);
XMLSerializer xmlSerializer = new XMLSerializer(new BufferedWriter(new FileWriter(file)), xmlFormat);
// XMLSerializer xmlSerializer = new XMLSerializer(System.out, xmlFormat);
xmlSerializer.startDocument();
xmlSerializer.startElement("dspace-dc-types", null);
// Initialize an XML document.
Document document = DOMImplementationRegistry.newInstance()
.getDOMImplementation("XML 3.0")
.createDocument(null, "dspace-dc-types", null);
// Save the schema definition(s)
saveSchema(context, xmlSerializer, schema);
saveSchema(context, document, schema);
List<MetadataField> mdFields = null;
@@ -139,55 +145,64 @@ public class MetadataExporter {
mdFields = metadataFieldService.findAll(context);
}
// Output the metadata fields
// Compose the metadata fields
for (MetadataField mdField : mdFields) {
saveType(context, xmlSerializer, mdField);
saveType(context, document, mdField);
}
xmlSerializer.endElement("dspace-dc-types");
xmlSerializer.endDocument();
// Serialize the completed document to the output file.
try (Writer writer = new BufferedWriter(new FileWriter(file))) {
DOMImplementationLS lsImplementation
= (DOMImplementationLS) DOMImplementationRegistry.newInstance()
.getDOMImplementation("LS");
LSSerializer serializer = lsImplementation.createLSSerializer();
DOMConfiguration configuration = serializer.getDomConfig();
configuration.setParameter("format-pretty-print", true);
LSOutput lsOutput = lsImplementation.createLSOutput();
lsOutput.setEncoding("UTF-8");
lsOutput.setCharacterStream(writer);
serializer.write(document, lsOutput);
}
// abort the context, as we shouldn't have changed it!!
context.abort();
}
/**
* Serialize the schema registry. If the parameter 'schema' is null or empty, save all schemas
* Compose the schema registry. If the parameter 'schema' is null or empty, save all schemas.
*
* @param context DSpace Context
* @param xmlSerializer XML serializer
* @param document the document being built
* @param schema schema (may be null to save all)
* @throws SQLException if database error
* @throws SAXException if XML error
* @throws RegistryExportException if export error
*/
public static void saveSchema(Context context, XMLSerializer xmlSerializer, String schema)
throws SQLException, SAXException, RegistryExportException {
public static void saveSchema(Context context, Document document, String schema)
throws SQLException, RegistryExportException {
if (schema != null && !"".equals(schema)) {
// Find a single named schema
MetadataSchema mdSchema = metadataSchemaService.find(context, schema);
saveSchema(xmlSerializer, mdSchema);
saveSchema(document, mdSchema);
} else {
// Find all schemas
List<MetadataSchema> mdSchemas = metadataSchemaService.findAll(context);
for (MetadataSchema mdSchema : mdSchemas) {
saveSchema(xmlSerializer, mdSchema);
saveSchema(document, mdSchema);
}
}
}
/**
* Serialize a single schema (namespace) registry entry
* Compose a single schema (namespace) registry entry
*
* @param xmlSerializer XML serializer
* @param mdSchema DSpace metadata schema
* @throws SAXException if XML error
* @param document the output document being built.
* @param mdSchema DSpace metadata schema
* @throws RegistryExportException if export error
*/
private static void saveSchema(XMLSerializer xmlSerializer, MetadataSchema mdSchema)
throws SAXException, RegistryExportException {
private static void saveSchema(Document document, MetadataSchema mdSchema)
throws RegistryExportException {
// If we haven't got a schema, it's an error
if (mdSchema == null) {
throw new RegistryExportException("no schema to export");
@@ -206,35 +221,34 @@ public class MetadataExporter {
return;
}
// Output the parent tag
xmlSerializer.startElement("dc-schema", null);
Element document_element = document.getDocumentElement();
// Output the schema name
xmlSerializer.startElement("name", null);
xmlSerializer.characters(name.toCharArray(), 0, name.length());
xmlSerializer.endElement("name");
// Compose the parent tag
Element schema_element = document.createElement("dc-schema");
document_element.appendChild(schema_element);
// Output the schema namespace
xmlSerializer.startElement("namespace", null);
xmlSerializer.characters(namespace.toCharArray(), 0, namespace.length());
xmlSerializer.endElement("namespace");
// Compose the schema name
Element name_element = document.createElement("name");
schema_element.appendChild(name_element);
name_element.setTextContent(name);
xmlSerializer.endElement("dc-schema");
// Compose the schema namespace
Element namespace_element = document.createElement("namespace");
schema_element.appendChild(namespace_element);
namespace_element.setTextContent(namespace);
}
/**
* Serialize a single metadata field registry entry to xml
* Compose a single metadata field registry entry to XML.
*
* @param context DSpace context
* @param xmlSerializer xml serializer
* @param document the output document being built.
* @param mdField DSpace metadata field
* @throws SAXException if XML error
* @throws RegistryExportException if export error
* @throws SQLException if database error
* @throws IOException if IO error
*/
private static void saveType(Context context, XMLSerializer xmlSerializer, MetadataField mdField)
throws SAXException, RegistryExportException, SQLException, IOException {
private static void saveType(Context context, Document document, MetadataField mdField)
throws RegistryExportException, SQLException {
// If we haven't been given a field, it's an error
if (mdField == null) {
throw new RegistryExportException("no field to export");
@@ -251,38 +265,39 @@ public class MetadataExporter {
throw new RegistryExportException("incomplete field information");
}
// Output the parent tag
xmlSerializer.startElement("dc-type", null);
Element document_element = document.getDocumentElement();
// Output the schema name
xmlSerializer.startElement("schema", null);
xmlSerializer.characters(schemaName.toCharArray(), 0, schemaName.length());
xmlSerializer.endElement("schema");
// Compose the parent tag
Element dc_type = document.createElement("dc-type");
document_element.appendChild(dc_type);
// Output the element
xmlSerializer.startElement("element", null);
xmlSerializer.characters(element.toCharArray(), 0, element.length());
xmlSerializer.endElement("element");
// Compose the schema name
Element schema_element = document.createElement("schema");
dc_type.appendChild(schema_element);
schema_element.setTextContent(schemaName);
// Output the qualifier, if present
// Compose the element
Element element_element = document.createElement("element");
dc_type.appendChild(element_element);
element_element.setTextContent(element);
// Compose the qualifier, if present
if (qualifier != null) {
xmlSerializer.startElement("qualifier", null);
xmlSerializer.characters(qualifier.toCharArray(), 0, qualifier.length());
xmlSerializer.endElement("qualifier");
Element qualifier_element = document.createElement("qualifier");
dc_type.appendChild(qualifier_element);
qualifier_element.setTextContent(qualifier);
} else {
xmlSerializer.comment("unqualified");
dc_type.appendChild(document.createComment("unqualified"));
}
// Output the scope note, if present
// Compose the scope note, if present
if (scopeNote != null) {
xmlSerializer.startElement("scope_note", null);
xmlSerializer.characters(scopeNote.toCharArray(), 0, scopeNote.length());
xmlSerializer.endElement("scope_note");
Element scope_element = document.createElement("scope_note");
dc_type.appendChild(scope_element);
scope_element.setTextContent(scopeNote);
} else {
xmlSerializer.comment("no scope note");
dc_type.appendChild(document.createComment("no scope note"));
}
xmlSerializer.endElement("dc-type");
}
static Map<Integer, String> schemaMap = new HashMap<Integer, String>();
@@ -317,7 +332,7 @@ public class MetadataExporter {
}
/**
* Print the usage message to stdout
* Print the usage message to standard output
*/
public static void usage() {
String usage = "Use this class with the following options:\n" +

View File

@@ -11,13 +11,16 @@ import java.io.IOException;
import java.sql.SQLException;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.DefaultParser;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
import org.apache.commons.cli.PosixParser;
import org.apache.xpath.XPathAPI;
import org.dspace.authorize.AuthorizeException;
import org.dspace.content.MetadataField;
import org.dspace.content.MetadataSchema;
@@ -81,7 +84,7 @@ public class MetadataImporter {
* @throws SQLException if database error
* @throws IOException if IO error
* @throws TransformerException if transformer error
* @throws ParserConfigurationException if config error
* @throws ParserConfigurationException if configuration error
* @throws AuthorizeException if authorization error
* @throws SAXException if parser error
* @throws NonUniqueMetadataException if duplicate metadata
@@ -90,26 +93,23 @@ public class MetadataImporter {
public static void main(String[] args)
throws ParseException, SQLException, IOException, TransformerException,
ParserConfigurationException, AuthorizeException, SAXException,
NonUniqueMetadataException, RegistryImportException {
boolean forceUpdate = false;
NonUniqueMetadataException, RegistryImportException, XPathExpressionException {
// create an options object and populate it
CommandLineParser parser = new PosixParser();
CommandLineParser parser = new DefaultParser();
Options options = new Options();
options.addOption("f", "file", true, "source xml file for DC fields");
options.addOption("u", "update", false, "update an existing schema");
CommandLine line = parser.parse(options, args);
String file = null;
if (line.hasOption('f')) {
file = line.getOptionValue('f');
String file = line.getOptionValue('f');
boolean forceUpdate = line.hasOption('u');
loadRegistry(file, forceUpdate);
} else {
usage();
System.exit(0);
System.exit(1);
}
forceUpdate = line.hasOption('u');
loadRegistry(file, forceUpdate);
}
/**
@@ -120,15 +120,15 @@ public class MetadataImporter {
* @throws SQLException if database error
* @throws IOException if IO error
* @throws TransformerException if transformer error
* @throws ParserConfigurationException if config error
* @throws ParserConfigurationException if configuration error
* @throws AuthorizeException if authorization error
* @throws SAXException if parser error
* @throws NonUniqueMetadataException if duplicate metadata
* @throws RegistryImportException if import fails
*/
public static void loadRegistry(String file, boolean forceUpdate)
throws SQLException, IOException, TransformerException, ParserConfigurationException,
AuthorizeException, SAXException, NonUniqueMetadataException, RegistryImportException {
throws SQLException, IOException, TransformerException, ParserConfigurationException, AuthorizeException,
SAXException, NonUniqueMetadataException, RegistryImportException, XPathExpressionException {
Context context = null;
try {
@@ -140,7 +140,9 @@ public class MetadataImporter {
Document document = RegistryImporter.loadXML(file);
// Get the nodes corresponding to types
NodeList schemaNodes = XPathAPI.selectNodeList(document, "/dspace-dc-types/dc-schema");
XPath xPath = XPathFactory.newInstance().newXPath();
NodeList schemaNodes = (NodeList) xPath.compile("/dspace-dc-types/dc-schema")
.evaluate(document, XPathConstants.NODESET);
// Add each one as a new format to the registry
for (int i = 0; i < schemaNodes.getLength(); i++) {
@@ -149,7 +151,8 @@ public class MetadataImporter {
}
// Get the nodes corresponding to types
NodeList typeNodes = XPathAPI.selectNodeList(document, "/dspace-dc-types/dc-type");
NodeList typeNodes = (NodeList) xPath.compile("/dspace-dc-types/dc-type")
.evaluate(document, XPathConstants.NODESET);
// Add each one as a new format to the registry
for (int i = 0; i < typeNodes.getLength(); i++) {
@@ -181,8 +184,8 @@ public class MetadataImporter {
* @throws RegistryImportException if import fails
*/
private static void loadSchema(Context context, Node node, boolean updateExisting)
throws SQLException, IOException, TransformerException,
AuthorizeException, NonUniqueMetadataException, RegistryImportException {
throws SQLException, AuthorizeException, NonUniqueMetadataException, RegistryImportException,
XPathExpressionException {
// Get the values
String name = RegistryImporter.getElementData(node, "name");
String namespace = RegistryImporter.getElementData(node, "namespace");
@@ -227,7 +230,7 @@ public class MetadataImporter {
/**
* Process a node in the metadata registry XML file. The node must
* be a "dc-type" node. If the type already exists, then it
* will not be reimported
* will not be re-imported.
*
* @param context DSpace context object
* @param node the node in the DOM tree
@@ -239,8 +242,8 @@ public class MetadataImporter {
* @throws RegistryImportException if import fails
*/
private static void loadType(Context context, Node node)
throws SQLException, IOException, TransformerException,
AuthorizeException, NonUniqueMetadataException, RegistryImportException {
throws SQLException, IOException, AuthorizeException, NonUniqueMetadataException, RegistryImportException,
XPathExpressionException {
// Get the values
String schema = RegistryImporter.getElementData(node, "schema");
String element = RegistryImporter.getElementData(node, "element");

View File

@@ -0,0 +1,140 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.administer;
import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.apache.commons.cli.ParseException;
import org.apache.commons.lang.time.DateUtils;
import org.dspace.authorize.AuthorizeException;
import org.dspace.content.ProcessStatus;
import org.dspace.core.Context;
import org.dspace.scripts.DSpaceRunnable;
import org.dspace.scripts.Process;
import org.dspace.scripts.factory.ScriptServiceFactory;
import org.dspace.scripts.service.ProcessService;
import org.dspace.services.ConfigurationService;
import org.dspace.services.factory.DSpaceServicesFactory;
import org.dspace.utils.DSpace;
/**
* Script to cleanup the old processes in the specified state.
*
* @author Luca Giamminonni (luca.giamminonni at 4science.it)
*
*/
public class ProcessCleaner extends DSpaceRunnable<ProcessCleanerConfiguration<ProcessCleaner>> {
private ConfigurationService configurationService;
private ProcessService processService;
private boolean cleanCompleted = false;
private boolean cleanFailed = false;
private boolean cleanRunning = false;
private boolean help = false;
private Integer days;
@Override
public void setup() throws ParseException {
this.configurationService = DSpaceServicesFactory.getInstance().getConfigurationService();
this.processService = ScriptServiceFactory.getInstance().getProcessService();
this.help = commandLine.hasOption('h');
this.cleanFailed = commandLine.hasOption('f');
this.cleanRunning = commandLine.hasOption('r');
this.cleanCompleted = commandLine.hasOption('c') || (!cleanFailed && !cleanRunning);
this.days = configurationService.getIntProperty("process-cleaner.days", 14);
if (this.days <= 0) {
throw new IllegalStateException("The number of days must be a positive integer.");
}
}
@Override
public void internalRun() throws Exception {
if (help) {
printHelp();
return;
}
Context context = new Context();
try {
context.turnOffAuthorisationSystem();
performDeletion(context);
} finally {
context.restoreAuthSystemState();
context.complete();
}
}
/**
* Delete the processes based on the specified statuses and the configured days
* from their creation.
*/
private void performDeletion(Context context) throws SQLException, IOException, AuthorizeException {
List<ProcessStatus> statuses = getProcessToDeleteStatuses();
Date creationDate = calculateCreationDate();
handler.logInfo("Searching for processes with status: " + statuses);
List<Process> processes = processService.findByStatusAndCreationTimeOlderThan(context, statuses, creationDate);
handler.logInfo("Found " + processes.size() + " processes to be deleted");
for (Process process : processes) {
processService.delete(context, process);
}
handler.logInfo("Process cleanup completed");
}
/**
* Returns the list of Process statuses do be deleted.
*/
private List<ProcessStatus> getProcessToDeleteStatuses() {
List<ProcessStatus> statuses = new ArrayList<ProcessStatus>();
if (cleanCompleted) {
statuses.add(ProcessStatus.COMPLETED);
}
if (cleanFailed) {
statuses.add(ProcessStatus.FAILED);
}
if (cleanRunning) {
statuses.add(ProcessStatus.RUNNING);
}
return statuses;
}
private Date calculateCreationDate() {
return DateUtils.addDays(new Date(), -days);
}
@Override
@SuppressWarnings("unchecked")
public ProcessCleanerConfiguration<ProcessCleaner> getScriptConfiguration() {
return new DSpace().getServiceManager()
.getServiceByName("process-cleaner", ProcessCleanerConfiguration.class);
}
}

View File

@@ -5,9 +5,14 @@
*
* http://www.dspace.org/license/
*/
package org.dspace.administer;
/**
* Implementation of the core Caching service.
* The {@link ProcessCleaner} for CLI.
*
* @author Luca Giamminonni (luca.giamminonni at 4science.it)
*
*/
public class ProcessCleanerCli extends ProcessCleaner {
package org.dspace.services.caching;
}

View File

@@ -0,0 +1,18 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.administer;
/**
* The {@link ProcessCleanerConfiguration} for CLI.
*
* @author Luca Giamminonni (luca.giamminonni at 4science.it)
*
*/
public class ProcessCleanerCliConfiguration extends ProcessCleanerConfiguration<ProcessCleanerCli> {
}

View File

@@ -0,0 +1,53 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.administer;
import org.apache.commons.cli.Options;
import org.dspace.scripts.configuration.ScriptConfiguration;
/**
* The {@link ScriptConfiguration} for the {@link ProcessCleaner} script.
*/
public class ProcessCleanerConfiguration<T extends ProcessCleaner> extends ScriptConfiguration<T> {
private Class<T> dspaceRunnableClass;
@Override
public Options getOptions() {
if (options == null) {
Options options = new Options();
options.addOption("h", "help", false, "help");
options.addOption("r", "running", false, "delete the process with RUNNING status");
options.getOption("r").setType(boolean.class);
options.addOption("f", "failed", false, "delete the process with FAILED status");
options.getOption("f").setType(boolean.class);
options.addOption("c", "completed", false,
"delete the process with COMPLETED status (default if no statuses are specified)");
options.getOption("c").setType(boolean.class);
super.options = options;
}
return options;
}
@Override
public Class<T> getDspaceRunnableClass() {
return dspaceRunnableClass;
}
@Override
public void setDspaceRunnableClass(Class<T> dspaceRunnableClass) {
this.dspaceRunnableClass = dspaceRunnableClass;
}
}

View File

@@ -10,11 +10,14 @@ package org.dspace.administer;
import java.io.File;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
import org.apache.xpath.XPathAPI;
import org.dspace.app.util.XMLUtils;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
@@ -46,8 +49,9 @@ public class RegistryImporter {
*/
public static Document loadXML(String filename)
throws IOException, ParserConfigurationException, SAXException {
DocumentBuilder builder = DocumentBuilderFactory.newInstance()
.newDocumentBuilder();
// This XML builder will *not* disable external entities as XML
// registries are considered trusted content
DocumentBuilder builder = XMLUtils.getTrustedDocumentBuilder();
Document document = builder.parse(new File(filename));
@@ -72,9 +76,10 @@ public class RegistryImporter {
* @throws TransformerException if error
*/
public static String getElementData(Node parentElement, String childName)
throws TransformerException {
throws XPathExpressionException {
// Grab the child node
Node childNode = XPathAPI.selectSingleNode(parentElement, childName);
XPath xPath = XPathFactory.newInstance().newXPath();
Node childNode = (Node) xPath.compile(childName).evaluate(parentElement, XPathConstants.NODE);
if (childNode == null) {
// No child node, so no values
@@ -115,9 +120,10 @@ public class RegistryImporter {
* @throws TransformerException if error
*/
public static String[] getRepeatedElementData(Node parentElement,
String childName) throws TransformerException {
String childName) throws XPathExpressionException {
// Grab the child node
NodeList childNodes = XPathAPI.selectNodeList(parentElement, childName);
XPath xPath = XPathFactory.newInstance().newXPath();
NodeList childNodes = (NodeList) xPath.compile(childName).evaluate(parentElement, XPathConstants.NODESET);
String[] data = new String[childNodes.getLength()];

View File

@@ -13,18 +13,28 @@ import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Arrays;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.DefaultParser;
import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.Logger;
import org.apache.xpath.XPathAPI;
import org.dspace.app.util.XMLUtils;
import org.dspace.authorize.AuthorizeException;
import org.dspace.content.BitstreamFormat;
import org.dspace.content.factory.ContentServiceFactory;
import org.dspace.content.service.BitstreamFormatService;
import org.dspace.core.Context;
import org.dspace.core.LogManager;
import org.dspace.core.LogHelper;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
@@ -38,7 +48,7 @@ import org.xml.sax.SAXException;
* <P>
* <code>RegistryLoader -bitstream bitstream-formats.xml</code>
* <P>
* <code>RegistryLoader -dc dc-types.xml</code>
* <code>RegistryLoader -metadata dc-types.xml</code>
*
* @author Robert Tansley
* @version $Revision$
@@ -47,7 +57,7 @@ public class RegistryLoader {
/**
* log4j category
*/
private static Logger log = org.apache.logging.log4j.LogManager.getLogger(RegistryLoader.class);
private static final Logger log = org.apache.logging.log4j.LogManager.getLogger(RegistryLoader.class);
protected static BitstreamFormatService bitstreamFormatService = ContentServiceFactory.getInstance()
.getBitstreamFormatService();
@@ -64,50 +74,99 @@ public class RegistryLoader {
* @throws Exception if error
*/
public static void main(String[] argv) throws Exception {
String usage = "Usage: " + RegistryLoader.class.getName()
+ " (-bitstream | -metadata) registry-file.xml";
Context context = null;
// Set up command-line options and parse arguments
CommandLineParser parser = new DefaultParser();
Options options = createCommandLineOptions();
try {
context = new Context();
CommandLine line = parser.parse(options, argv);
// Check if help option was entered or no options provided
if (line.hasOption('h') || line.getOptions().length == 0) {
printHelp(options);
System.exit(0);
}
Context context = new Context();
// Can't update registries anonymously, so we need to turn off
// authorisation
context.turnOffAuthorisationSystem();
// Work out what we're loading
if (argv[0].equalsIgnoreCase("-bitstream")) {
RegistryLoader.loadBitstreamFormats(context, argv[1]);
} else if (argv[0].equalsIgnoreCase("-metadata")) {
// Call MetadataImporter, as it handles Metadata schema updates
MetadataImporter.loadRegistry(argv[1], true);
} else {
System.err.println(usage);
try {
// Work out what we're loading
if (line.hasOption('b')) {
String filename = line.getOptionValue('b');
if (StringUtils.isEmpty(filename)) {
System.err.println("No file path provided for bitstream format registry");
printHelp(options);
System.exit(1);
}
RegistryLoader.loadBitstreamFormats(context, filename);
} else if (line.hasOption('m')) {
String filename = line.getOptionValue('m');
if (StringUtils.isEmpty(filename)) {
System.err.println("No file path provided for metadata registry");
printHelp(options);
System.exit(1);
}
// Call MetadataImporter, as it handles Metadata schema updates
MetadataImporter.loadRegistry(filename, true);
} else {
System.err.println("No registry type specified");
printHelp(options);
System.exit(1);
}
// Commit changes and close Context
context.complete();
System.exit(0);
} catch (Exception e) {
log.fatal(LogHelper.getHeader(context, "error_loading_registries", ""), e);
System.err.println("Error: \n - " + e.getMessage());
System.exit(1);
} finally {
// Clean up our context, if it still exists & it was never completed
if (context != null && context.isValid()) {
context.abort();
}
}
// Commit changes and close Context
context.complete();
System.exit(0);
} catch (ArrayIndexOutOfBoundsException ae) {
System.err.println(usage);
} catch (ParseException e) {
System.err.println("Error parsing command-line arguments: " + e.getMessage());
printHelp(options);
System.exit(1);
} catch (Exception e) {
log.fatal(LogManager.getHeader(context, "error_loading_registries",
""), e);
System.err.println("Error: \n - " + e.getMessage());
System.exit(1);
} finally {
// Clean up our context, if it still exists & it was never completed
if (context != null && context.isValid()) {
context.abort();
}
}
}
/**
* Create the command-line options
* @return the command-line options
*/
private static Options createCommandLineOptions() {
Options options = new Options();
options.addOption("b", "bitstream", true, "load bitstream format registry from specified file");
options.addOption("m", "metadata", true, "load metadata registry from specified file");
options.addOption("h", "help", false, "print this help message");
return options;
}
/**
* Print the help message
* @param options the command-line options
*/
private static void printHelp(Options options) {
HelpFormatter formatter = new HelpFormatter();
formatter.printHelp("RegistryLoader",
"Load bitstream format or metadata registries into the database\n",
options,
"\nExamples:\n" +
" RegistryLoader -b bitstream-formats.xml\n" +
" RegistryLoader -m dc-types.xml",
true);
}
/**
* Load Bitstream Format metadata
*
@@ -122,12 +181,13 @@ public class RegistryLoader {
*/
public static void loadBitstreamFormats(Context context, String filename)
throws SQLException, IOException, ParserConfigurationException,
SAXException, TransformerException, AuthorizeException {
SAXException, TransformerException, AuthorizeException, XPathExpressionException {
Document document = loadXML(filename);
// Get the nodes corresponding to formats
NodeList typeNodes = XPathAPI.selectNodeList(document,
"dspace-bitstream-types/bitstream-type");
XPath xPath = XPathFactory.newInstance().newXPath();
NodeList typeNodes = (NodeList) xPath.compile("dspace-bitstream-types/bitstream-type")
.evaluate(document, XPathConstants.NODESET);
// Add each one as a new format to the registry
for (int i = 0; i < typeNodes.getLength(); i++) {
@@ -135,7 +195,7 @@ public class RegistryLoader {
loadFormat(context, n);
}
log.info(LogManager.getHeader(context, "load_bitstream_formats",
log.info(LogHelper.getHeader(context, "load_bitstream_formats",
"number_loaded=" + typeNodes.getLength()));
}
@@ -151,8 +211,7 @@ public class RegistryLoader {
* @throws AuthorizeException if authorization error
*/
private static void loadFormat(Context context, Node node)
throws SQLException, IOException, TransformerException,
AuthorizeException {
throws SQLException, AuthorizeException, XPathExpressionException {
// Get the values
String mimeType = getElementData(node, "mimetype");
String shortDesc = getElementData(node, "short_description");
@@ -207,8 +266,9 @@ public class RegistryLoader {
*/
private static Document loadXML(String filename) throws IOException,
ParserConfigurationException, SAXException {
DocumentBuilder builder = DocumentBuilderFactory.newInstance()
.newDocumentBuilder();
// This XML builder will *not* disable external entities as XML
// registries are considered trusted content
DocumentBuilder builder = XMLUtils.getTrustedDocumentBuilder();
return builder.parse(new File(filename));
}
@@ -218,7 +278,7 @@ public class RegistryLoader {
* contains:
* <P>
* <code>
* &lt;foo&gt;&lt;mimetype&gt;application/pdf&lt;/mimetype&gt;&lt;/foo&gt;
* <foo><mimetype>application/pdf</mimetype></foo>
* </code>
* passing this the <code>foo</code> node and <code>mimetype</code> will
* return <code>application/pdf</code>.
@@ -231,9 +291,10 @@ public class RegistryLoader {
* @throws TransformerException if transformer error
*/
private static String getElementData(Node parentElement, String childName)
throws TransformerException {
throws XPathExpressionException {
// Grab the child node
Node childNode = XPathAPI.selectSingleNode(parentElement, childName);
XPath xPath = XPathFactory.newInstance().newXPath();
Node childNode = (Node) xPath.compile(childName).evaluate(parentElement, XPathConstants.NODE);
if (childNode == null) {
// No child node, so no values
@@ -258,10 +319,10 @@ public class RegistryLoader {
* document contains:
* <P>
* <code>
* &lt;foo&gt;
* &lt;bar&gt;val1&lt;/bar&gt;
* &lt;bar&gt;val2&lt;/bar&gt;
* &lt;/foo&gt;
* <foo>
* <bar>val1</bar>
* <bar>val2</bar>
* </foo>
* </code>
* passing this the <code>foo</code> node and <code>bar</code> will
* return <code>val1</code> and <code>val2</code>.
@@ -274,9 +335,10 @@ public class RegistryLoader {
* @throws TransformerException if transformer error
*/
private static String[] getRepeatedElementData(Node parentElement,
String childName) throws TransformerException {
String childName) throws XPathExpressionException {
// Grab the child node
NodeList childNodes = XPathAPI.selectNodeList(parentElement, childName);
XPath xPath = XPathFactory.newInstance().newXPath();
NodeList childNodes = (NodeList) xPath.compile(childName).evaluate(parentElement, XPathConstants.NODESET);
String[] data = new String[childNodes.getLength()];

View File

@@ -7,6 +7,14 @@
*/
package org.dspace.administer;
import static org.dspace.content.service.DSpaceObjectService.MD_COPYRIGHT_TEXT;
import static org.dspace.content.service.DSpaceObjectService.MD_INTRODUCTORY_TEXT;
import static org.dspace.content.service.DSpaceObjectService.MD_LICENSE;
import static org.dspace.content.service.DSpaceObjectService.MD_NAME;
import static org.dspace.content.service.DSpaceObjectService.MD_PROVENANCE_DESCRIPTION;
import static org.dspace.content.service.DSpaceObjectService.MD_SHORT_DESCRIPTION;
import static org.dspace.content.service.DSpaceObjectService.MD_SIDEBAR_TEXT;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
@@ -19,9 +27,12 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
@@ -30,11 +41,13 @@ import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
import org.apache.xpath.XPathAPI;
import org.apache.commons.lang3.StringUtils;
import org.dspace.app.util.XMLUtils;
import org.dspace.authorize.AuthorizeException;
import org.dspace.content.Collection;
import org.dspace.content.Community;
import org.dspace.content.Item;
import org.dspace.content.MetadataFieldName;
import org.dspace.content.MetadataSchemaEnum;
import org.dspace.content.MetadataValue;
import org.dspace.content.factory.ContentServiceFactory;
@@ -43,9 +56,11 @@ import org.dspace.content.service.CommunityService;
import org.dspace.core.Context;
import org.dspace.eperson.factory.EPersonServiceFactory;
import org.dspace.eperson.service.EPersonService;
import org.jdom.Element;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;
import org.dspace.handle.factory.HandleServiceFactory;
import org.dspace.handle.service.HandleService;
import org.jdom2.Element;
import org.jdom2.output.Format;
import org.jdom2.output.XMLOutputter;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
@@ -67,6 +82,7 @@ import org.xml.sax.SAXException;
* </community>
* </import_structure>
* }</pre>
*
* <p>
* It can be arbitrarily deep, and supports all the metadata elements
* that make up the community and collection metadata. See the system
@@ -88,19 +104,21 @@ public class StructBuilder {
/**
* A table to hold metadata for the collection being worked on.
*/
private static final Map<String, String> collectionMap = new HashMap<>();
private static final Map<String, MetadataFieldName> collectionMap = new HashMap<>();
/**
* A table to hold metadata for the community being worked on.
*/
private static final Map<String, String> communityMap = new HashMap<>();
private static final Map<String, MetadataFieldName> communityMap = new HashMap<>();
protected static CommunityService communityService
protected static final CommunityService communityService
= ContentServiceFactory.getInstance().getCommunityService();
protected static CollectionService collectionService
protected static final CollectionService collectionService
= ContentServiceFactory.getInstance().getCollectionService();
protected static EPersonService ePersonService
protected static final EPersonService ePersonService
= EPersonServiceFactory.getInstance().getEPersonService();
protected static final HandleService handleService
= HandleServiceFactory.getInstance().getHandleService();
/**
* Default constructor
@@ -126,16 +144,18 @@ public class StructBuilder {
* @throws SQLException passed through.
* @throws FileNotFoundException if input or output could not be opened.
* @throws TransformerException if the input document is invalid.
* @throws XPathExpressionException passed through.
*/
public static void main(String[] argv)
throws ParserConfigurationException, SQLException,
FileNotFoundException, IOException, TransformerException {
throws ParserConfigurationException, SQLException,
IOException, TransformerException, XPathExpressionException {
// Define command line options.
Options options = new Options();
options.addOption("h", "help", false, "Print this help message.");
options.addOption("?", "help");
options.addOption("x", "export", false, "Export the current structure as XML.");
options.addOption("k", "keep-handles", false, "Apply Handles from input document.");
options.addOption(Option.builder("e").longOpt("eperson")
.desc("User who is manipulating the repository's structure.")
@@ -197,6 +217,7 @@ public class StructBuilder {
// Export? Import?
if (line.hasOption('x')) { // export
exportStructure(context, outputStream);
outputStream.close();
} else { // Must be import
String input = line.getOptionValue('f');
if (null == input) {
@@ -211,7 +232,12 @@ public class StructBuilder {
inputStream = new FileInputStream(input);
}
importStructure(context, inputStream, outputStream);
boolean keepHandles = options.hasOption("k");
importStructure(context, inputStream, outputStream, keepHandles);
inputStream.close();
outputStream.close();
// save changes from import
context.complete();
}
@@ -224,14 +250,17 @@ public class StructBuilder {
* @param context
* @param input XML which describes the new communities and collections.
* @param output input, annotated with the new objects' identifiers.
* @param keepHandles true if Handles should be set from input.
* @throws IOException
* @throws ParserConfigurationException
* @throws SAXException
* @throws TransformerException
* @throws SQLException
*/
static void importStructure(Context context, InputStream input, OutputStream output)
throws IOException, ParserConfigurationException, SQLException, TransformerException {
static void importStructure(Context context, InputStream input,
OutputStream output, boolean keepHandles)
throws IOException, ParserConfigurationException, SQLException,
TransformerException, XPathExpressionException {
// load the XML
Document document = null;
@@ -249,39 +278,54 @@ public class StructBuilder {
// is properly structured.
try {
validate(document);
} catch (TransformerException ex) {
} catch (XPathExpressionException ex) {
System.err.format("The input document is invalid: %s%n", ex.getMessage());
System.exit(1);
}
// Check for 'identifier' attributes -- possibly output by this class.
NodeList identifierNodes = XPathAPI.selectNodeList(document, "//*[@identifier]");
XPath xPath = XPathFactory.newInstance().newXPath();
NodeList identifierNodes = (NodeList) xPath.compile("//*[@identifier]")
.evaluate(document, XPathConstants.NODESET);
if (identifierNodes.getLength() > 0) {
System.err.println("The input document has 'identifier' attributes, which will be ignored.");
if (!keepHandles) {
System.err.println("The input document has 'identifier' attributes, which will be ignored.");
} else {
for (int i = 0; i < identifierNodes.getLength() ; i++) {
String identifier = identifierNodes.item(i).getAttributes().item(0).getTextContent();
if (handleService.resolveToURL(context, identifier) != null) {
System.err.printf("The input document contains handle %s,"
+ " which is in use already. Aborting...%n",
identifier);
System.exit(1);
}
}
}
}
// load the mappings into the member variable hashmaps
communityMap.put("name", "name");
communityMap.put("description", "short_description");
communityMap.put("intro", "introductory_text");
communityMap.put("copyright", "copyright_text");
communityMap.put("sidebar", "side_bar_text");
communityMap.put("name", MD_NAME);
communityMap.put("description", MD_SHORT_DESCRIPTION);
communityMap.put("intro", MD_INTRODUCTORY_TEXT);
communityMap.put("copyright", MD_COPYRIGHT_TEXT);
communityMap.put("sidebar", MD_SIDEBAR_TEXT);
collectionMap.put("name", "name");
collectionMap.put("description", "short_description");
collectionMap.put("intro", "introductory_text");
collectionMap.put("copyright", "copyright_text");
collectionMap.put("sidebar", "side_bar_text");
collectionMap.put("license", "license");
collectionMap.put("provenance", "provenance_description");
collectionMap.put("name", MD_NAME);
collectionMap.put("description", MD_SHORT_DESCRIPTION);
collectionMap.put("intro", MD_INTRODUCTORY_TEXT);
collectionMap.put("copyright", MD_COPYRIGHT_TEXT);
collectionMap.put("sidebar", MD_SIDEBAR_TEXT);
collectionMap.put("license", MD_LICENSE);
collectionMap.put("provenance", MD_PROVENANCE_DESCRIPTION);
Element[] elements = new Element[]{};
try {
// get the top level community list
NodeList first = XPathAPI.selectNodeList(document, "/import_structure/community");
NodeList first = (NodeList) xPath.compile("/import_structure/community")
.evaluate(document, XPathConstants.NODESET);
// run the import starting with the top level communities
elements = handleCommunities(context, first, null);
elements = handleCommunities(context, first, null, keepHandles);
} catch (TransformerException ex) {
System.err.format("Input content not understood: %s%n", ex.getMessage());
System.exit(1);
@@ -298,7 +342,7 @@ public class StructBuilder {
}
// finally write the string into the output file.
final org.jdom.Document xmlOutput = new org.jdom.Document(root);
final org.jdom2.Document xmlOutput = new org.jdom2.Document(root);
try {
new XMLOutputter().output(xmlOutput, output);
} catch (IOException e) {
@@ -402,7 +446,7 @@ public class StructBuilder {
}
// Now write the structure out.
org.jdom.Document xmlOutput = new org.jdom.Document(rootElement);
org.jdom2.Document xmlOutput = new org.jdom2.Document(rootElement);
try {
XMLOutputter outputter = new XMLOutputter(Format.getPrettyFormat());
outputter.output(xmlOutput, output);
@@ -447,14 +491,16 @@ public class StructBuilder {
* @throws TransformerException if transformer error
*/
private static void validate(org.w3c.dom.Document document)
throws TransformerException {
throws XPathExpressionException {
StringBuilder err = new StringBuilder();
boolean trip = false;
err.append("The following errors were encountered parsing the source XML.\n");
err.append("No changes have been made to the DSpace instance.\n\n");
NodeList first = XPathAPI.selectNodeList(document, "/import_structure/community");
XPath xPath = XPathFactory.newInstance().newXPath();
NodeList first = (NodeList) xPath.compile("/import_structure/community")
.evaluate(document, XPathConstants.NODESET);
if (first.getLength() == 0) {
err.append("-There are no top level communities in the source document.");
System.out.println(err.toString());
@@ -484,14 +530,15 @@ public class StructBuilder {
* no errors.
*/
private static String validateCommunities(NodeList communities, int level)
throws TransformerException {
throws XPathExpressionException {
StringBuilder err = new StringBuilder();
boolean trip = false;
String errs = null;
XPath xPath = XPathFactory.newInstance().newXPath();
for (int i = 0; i < communities.getLength(); i++) {
Node n = communities.item(i);
NodeList name = XPathAPI.selectNodeList(n, "name");
NodeList name = (NodeList) xPath.compile("name").evaluate(n, XPathConstants.NODESET);
if (name.getLength() != 1) {
String pos = Integer.toString(i + 1);
err.append("-The level ").append(level)
@@ -501,7 +548,7 @@ public class StructBuilder {
}
// validate sub communities
NodeList subCommunities = XPathAPI.selectNodeList(n, "community");
NodeList subCommunities = (NodeList) xPath.compile("community").evaluate(n, XPathConstants.NODESET);
String comErrs = validateCommunities(subCommunities, level + 1);
if (comErrs != null) {
err.append(comErrs);
@@ -509,7 +556,7 @@ public class StructBuilder {
}
// validate collections
NodeList collections = XPathAPI.selectNodeList(n, "collection");
NodeList collections = (NodeList) xPath.compile("collection").evaluate(n, XPathConstants.NODESET);
String colErrs = validateCollections(collections, level + 1);
if (colErrs != null) {
err.append(colErrs);
@@ -533,14 +580,15 @@ public class StructBuilder {
* @return the errors to be generated by the calling method, or null if none
*/
private static String validateCollections(NodeList collections, int level)
throws TransformerException {
throws XPathExpressionException {
StringBuilder err = new StringBuilder();
boolean trip = false;
String errs = null;
XPath xPath = XPathFactory.newInstance().newXPath();
for (int i = 0; i < collections.getLength(); i++) {
Node n = collections.item(i);
NodeList name = XPathAPI.selectNodeList(n, "name");
NodeList name = (NodeList) xPath.compile("name").evaluate(n, XPathConstants.NODESET);
if (name.getLength() != 1) {
String pos = Integer.toString(i + 1);
err.append("-The level ").append(level)
@@ -565,8 +613,8 @@ public class StructBuilder {
*/
private static org.w3c.dom.Document loadXML(InputStream input)
throws IOException, ParserConfigurationException, SAXException {
DocumentBuilder builder = DocumentBuilderFactory.newInstance()
.newDocumentBuilder();
// This builder factory does not disable external DTD, entities, etc.
DocumentBuilder builder = XMLUtils.getTrustedDocumentBuilder();
org.w3c.dom.Document document = builder.parse(input);
@@ -600,33 +648,41 @@ public class StructBuilder {
* @param context the context of the request
* @param communities a nodelist of communities to create along with their sub-structures
* @param parent the parent community of the nodelist of communities to create
* @param keepHandles use Handles from input.
* @return an element array containing additional information regarding the
* created communities (e.g. the handles they have been assigned)
*/
private static Element[] handleCommunities(Context context, NodeList communities, Community parent)
throws TransformerException, SQLException, AuthorizeException {
private static Element[] handleCommunities(Context context, NodeList communities,
Community parent, boolean keepHandles)
throws TransformerException, SQLException, AuthorizeException,
XPathExpressionException {
Element[] elements = new Element[communities.getLength()];
XPath xPath = XPathFactory.newInstance().newXPath();
for (int i = 0; i < communities.getLength(); i++) {
Community community;
Element element = new Element("community");
Node tn = communities.item(i);
Node identifier = tn.getAttributes().getNamedItem("identifier");
// create the community or sub community
if (parent != null) {
Community community;
if (null == identifier
|| StringUtils.isBlank(identifier.getNodeValue())
|| !keepHandles) {
community = communityService.create(parent, context);
} else {
community = communityService.create(null, context);
community = communityService.create(parent, context, identifier.getNodeValue());
}
// default the short description to be an empty string
communityService.setMetadata(context, community, "short_description", " ");
communityService.setMetadataSingleValue(context, community,
MD_SHORT_DESCRIPTION, null, " ");
// now update the metadata
Node tn = communities.item(i);
for (Map.Entry<String, String> entry : communityMap.entrySet()) {
NodeList nl = XPathAPI.selectNodeList(tn, entry.getKey());
for (Map.Entry<String, MetadataFieldName> entry : communityMap.entrySet()) {
NodeList nl = (NodeList) xPath.compile(entry.getKey()).evaluate(tn, XPathConstants.NODESET);
if (nl.getLength() == 1) {
communityService.setMetadata(context, community, entry.getValue(), getStringValue(nl.item(0)));
communityService.setMetadataSingleValue(context, community,
entry.getValue(), null, getStringValue(nl.item(0)));
}
}
@@ -647,43 +703,59 @@ public class StructBuilder {
// but it's here to keep it separate from the create process in
// case
// we want to move it or make it switchable later
Element element = new Element("community");
element.setAttribute("identifier", community.getHandle());
Element nameElement = new Element("name");
nameElement.setText(communityService.getMetadata(community, "name"));
nameElement.setText(communityService.getMetadataFirstValue(
community, CommunityService.MD_NAME, Item.ANY));
element.addContent(nameElement);
if (communityService.getMetadata(community, "short_description") != null) {
String fieldValue;
fieldValue = communityService.getMetadataFirstValue(community,
CommunityService.MD_SHORT_DESCRIPTION, Item.ANY);
if (fieldValue != null) {
Element descriptionElement = new Element("description");
descriptionElement.setText(communityService.getMetadata(community, "short_description"));
descriptionElement.setText(fieldValue);
element.addContent(descriptionElement);
}
if (communityService.getMetadata(community, "introductory_text") != null) {
fieldValue = communityService.getMetadataFirstValue(community,
CommunityService.MD_INTRODUCTORY_TEXT, Item.ANY);
if (fieldValue != null) {
Element introElement = new Element("intro");
introElement.setText(communityService.getMetadata(community, "introductory_text"));
introElement.setText(fieldValue);
element.addContent(introElement);
}
if (communityService.getMetadata(community, "copyright_text") != null) {
fieldValue = communityService.getMetadataFirstValue(community,
CommunityService.MD_COPYRIGHT_TEXT, Item.ANY);
if (fieldValue != null) {
Element copyrightElement = new Element("copyright");
copyrightElement.setText(communityService.getMetadata(community, "copyright_text"));
copyrightElement.setText(fieldValue);
element.addContent(copyrightElement);
}
if (communityService.getMetadata(community, "side_bar_text") != null) {
fieldValue = communityService.getMetadataFirstValue(community,
CommunityService.MD_SIDEBAR_TEXT, Item.ANY);
if (fieldValue != null) {
Element sidebarElement = new Element("sidebar");
sidebarElement.setText(communityService.getMetadata(community, "side_bar_text"));
sidebarElement.setText(fieldValue);
element.addContent(sidebarElement);
}
// handle sub communities
NodeList subCommunities = XPathAPI.selectNodeList(tn, "community");
Element[] subCommunityElements = handleCommunities(context, subCommunities, community);
NodeList subCommunities = (NodeList) xPath.compile("community")
.evaluate(tn, XPathConstants.NODESET);
Element[] subCommunityElements = handleCommunities(context,
subCommunities, community, keepHandles);
// handle collections
NodeList collections = XPathAPI.selectNodeList(tn, "collection");
Element[] collectionElements = handleCollections(context, collections, community);
NodeList collections = (NodeList) xPath.compile("collection")
.evaluate(tn, XPathConstants.NODESET);
Element[] collectionElements = handleCollections(context,
collections, community, keepHandles);
int j;
for (j = 0; j < subCommunityElements.length; j++) {
@@ -708,67 +780,96 @@ public class StructBuilder {
* @return an Element array containing additional information about the
* created collections (e.g. the handle)
*/
private static Element[] handleCollections(Context context, NodeList collections, Community parent)
throws TransformerException, SQLException, AuthorizeException {
private static Element[] handleCollections(Context context,
NodeList collections, Community parent, boolean keepHandles)
throws SQLException, AuthorizeException, XPathExpressionException {
Element[] elements = new Element[collections.getLength()];
XPath xPath = XPathFactory.newInstance().newXPath();
for (int i = 0; i < collections.getLength(); i++) {
Element element = new Element("collection");
Collection collection = collectionService.create(context, parent);
Node tn = collections.item(i);
Node identifier = tn.getAttributes().getNamedItem("identifier");
// Create the Collection.
Collection collection;
if (null == identifier
|| StringUtils.isBlank(identifier.getNodeValue())
|| !keepHandles) {
collection = collectionService.create(context, parent);
} else {
collection = collectionService.create(context, parent, identifier.getNodeValue());
}
// default the short description to the empty string
collectionService.setMetadata(context, collection, "short_description", " ");
collectionService.setMetadataSingleValue(context, collection,
MD_SHORT_DESCRIPTION, null, " ");
// import the rest of the metadata
Node tn = collections.item(i);
for (Map.Entry<String, String> entry : collectionMap.entrySet()) {
NodeList nl = XPathAPI.selectNodeList(tn, entry.getKey());
for (Map.Entry<String, MetadataFieldName> entry : collectionMap.entrySet()) {
NodeList nl = (NodeList) xPath.compile(entry.getKey()).evaluate(tn, XPathConstants.NODESET);
if (nl.getLength() == 1) {
collectionService.setMetadata(context, collection, entry.getValue(), getStringValue(nl.item(0)));
collectionService.setMetadataSingleValue(context, collection,
entry.getValue(), null, getStringValue(nl.item(0)));
}
}
collectionService.update(context, collection);
Element element = new Element("collection");
element.setAttribute("identifier", collection.getHandle());
Element nameElement = new Element("name");
nameElement.setText(collectionService.getMetadata(collection, "name"));
nameElement.setText(collectionService.getMetadataFirstValue(collection,
CollectionService.MD_NAME, Item.ANY));
element.addContent(nameElement);
if (collectionService.getMetadata(collection, "short_description") != null) {
String fieldValue;
fieldValue = collectionService.getMetadataFirstValue(collection,
CollectionService.MD_SHORT_DESCRIPTION, Item.ANY);
if (fieldValue != null) {
Element descriptionElement = new Element("description");
descriptionElement.setText(collectionService.getMetadata(collection, "short_description"));
descriptionElement.setText(fieldValue);
element.addContent(descriptionElement);
}
if (collectionService.getMetadata(collection, "introductory_text") != null) {
fieldValue = collectionService.getMetadataFirstValue(collection,
CollectionService.MD_INTRODUCTORY_TEXT, Item.ANY);
if (fieldValue != null) {
Element introElement = new Element("intro");
introElement.setText(collectionService.getMetadata(collection, "introductory_text"));
introElement.setText(fieldValue);
element.addContent(introElement);
}
if (collectionService.getMetadata(collection, "copyright_text") != null) {
fieldValue = collectionService.getMetadataFirstValue(collection,
CollectionService.MD_COPYRIGHT_TEXT, Item.ANY);
if (fieldValue != null) {
Element copyrightElement = new Element("copyright");
copyrightElement.setText(collectionService.getMetadata(collection, "copyright_text"));
copyrightElement.setText(fieldValue);
element.addContent(copyrightElement);
}
if (collectionService.getMetadata(collection, "side_bar_text") != null) {
fieldValue = collectionService.getMetadataFirstValue(collection,
CollectionService.MD_SIDEBAR_TEXT, Item.ANY);
if (fieldValue != null) {
Element sidebarElement = new Element("sidebar");
sidebarElement.setText(collectionService.getMetadata(collection, "side_bar_text"));
sidebarElement.setText(fieldValue);
element.addContent(sidebarElement);
}
if (collectionService.getMetadata(collection, "license") != null) {
fieldValue = collectionService.getMetadataFirstValue(collection,
CollectionService.MD_LICENSE, Item.ANY);
if (fieldValue != null) {
Element sidebarElement = new Element("license");
sidebarElement.setText(collectionService.getMetadata(collection, "license"));
sidebarElement.setText(fieldValue);
element.addContent(sidebarElement);
}
if (collectionService.getMetadata(collection, "provenance_description") != null) {
fieldValue = collectionService.getMetadataFirstValue(collection,
CollectionService.MD_PROVENANCE_DESCRIPTION, Item.ANY);
if (fieldValue != null) {
Element sidebarElement = new Element("provenance");
sidebarElement.setText(collectionService.getMetadata(collection, "provenance_description"));
sidebarElement.setText(fieldValue);
element.addContent(sidebarElement);
}
@@ -777,5 +878,4 @@ public class StructBuilder {
return elements;
}
}

View File

@@ -0,0 +1,54 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.alerts;
/**
* Enum representing the options for allowing sessions:
* ALLOW_ALL_SESSIONS - Will allow all users to log in and continue their sessions
* ALLOW_CURRENT_SESSIONS_ONLY - Will prevent non admin users from logging in, however logged-in users
* will remain logged in
* ALLOW_ADMIN_SESSIONS_ONLY - Only admin users can log in, non admin sessions will be interrupted
*
* NOTE: This functionality can be stored in the database, but no support is present right now to interrupt and prevent
* sessions.
*/
public enum AllowSessionsEnum {
ALLOW_ALL_SESSIONS("all"),
ALLOW_CURRENT_SESSIONS_ONLY("current"),
ALLOW_ADMIN_SESSIONS_ONLY("admin");
private String allowSessionsType;
AllowSessionsEnum(String allowSessionsType) {
this.allowSessionsType = allowSessionsType;
}
public String getValue() {
return allowSessionsType;
}
public static AllowSessionsEnum fromString(String alertAllowSessionType) {
if (alertAllowSessionType == null) {
return AllowSessionsEnum.ALLOW_ALL_SESSIONS;
}
switch (alertAllowSessionType) {
case "all":
return AllowSessionsEnum.ALLOW_ALL_SESSIONS;
case "current":
return AllowSessionsEnum.ALLOW_CURRENT_SESSIONS_ONLY;
case "admin" :
return AllowSessionsEnum.ALLOW_ADMIN_SESSIONS_ONLY;
default:
throw new IllegalArgumentException("No corresponding enum value for provided string: "
+ alertAllowSessionType);
}
}
}

View File

@@ -0,0 +1,179 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.alerts;
import java.util.Date;
import javax.persistence.Cacheable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.dspace.core.ReloadableEntity;
import org.hibernate.annotations.CacheConcurrencyStrategy;
/**
* Database object representing system-wide alerts
*/
@Entity
@Cacheable
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE, include = "non-lazy")
@Table(name = "systemwidealert")
public class SystemWideAlert implements ReloadableEntity<Integer> {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "alert_id_seq")
@SequenceGenerator(name = "alert_id_seq", sequenceName = "alert_id_seq", allocationSize = 1)
@Column(name = "alert_id", unique = true, nullable = false)
private Integer alertId;
@Column(name = "message", nullable = false)
private String message;
@Column(name = "allow_sessions")
private String allowSessions;
@Column(name = "countdown_to")
@Temporal(TemporalType.TIMESTAMP)
private Date countdownTo;
@Column(name = "active")
private boolean active;
protected SystemWideAlert() {
}
/**
* This method returns the ID that the system-wide alert holds within the database
*
* @return The ID that the system-wide alert holds within the database
*/
@Override
public Integer getID() {
return alertId;
}
/**
* Set the ID for the system-wide alert
*
* @param alertID The ID to set
*/
public void setID(final Integer alertID) {
this.alertId = alertID;
}
/**
* Retrieve the message of the system-wide alert
*
* @return the message of the system-wide alert
*/
public String getMessage() {
return message;
}
/**
* Set the message of the system-wide alert
*
* @param message The message to set
*/
public void setMessage(final String message) {
this.message = message;
}
/**
* Retrieve what kind of sessions are allowed while the system-wide alert is active
*
* @return what kind of sessions are allowed while the system-wide alert is active
*/
public AllowSessionsEnum getAllowSessions() {
return AllowSessionsEnum.fromString(allowSessions);
}
/**
* Set what kind of sessions are allowed while the system-wide alert is active
*
* @param allowSessions Integer representing what kind of sessions are allowed
*/
public void setAllowSessions(AllowSessionsEnum allowSessions) {
this.allowSessions = allowSessions.getValue();
}
/**
* Retrieve the date to which will be count down when the system-wide alert is active
*
* @return the date to which will be count down when the system-wide alert is active
*/
public Date getCountdownTo() {
return countdownTo;
}
/**
* Set the date to which will be count down when the system-wide alert is active
*
* @param countdownTo The date to which will be count down
*/
public void setCountdownTo(final Date countdownTo) {
this.countdownTo = countdownTo;
}
/**
* Retrieve whether the system-wide alert is active
*
* @return whether the system-wide alert is active
*/
public boolean isActive() {
return active;
}
/**
* Set whether the system-wide alert is active
*
* @param active Whether the system-wide alert is active
*/
public void setActive(final boolean active) {
this.active = active;
}
/**
* Return <code>true</code> if <code>other</code> is the same SystemWideAlert
* as this object, <code>false</code> otherwise
*
* @param other object to compare to
* @return <code>true</code> if object passed in represents the same
* system-wide alert as this object
*/
@Override
public boolean equals(Object other) {
return (other instanceof SystemWideAlert &&
new EqualsBuilder().append(this.getID(), ((SystemWideAlert) other).getID())
.append(this.getMessage(), ((SystemWideAlert) other).getMessage())
.append(this.getAllowSessions(), ((SystemWideAlert) other).getAllowSessions())
.append(this.getCountdownTo(), ((SystemWideAlert) other).getCountdownTo())
.append(this.isActive(), ((SystemWideAlert) other).isActive())
.isEquals());
}
@Override
public int hashCode() {
return new HashCodeBuilder(17, 37)
.append(this.getID())
.append(this.getMessage())
.append(this.getAllowSessions())
.append(this.getCountdownTo())
.append(this.isActive())
.toHashCode();
}
}

View File

@@ -0,0 +1,129 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.alerts;
import java.io.IOException;
import java.sql.SQLException;
import java.util.Date;
import java.util.List;
import org.apache.logging.log4j.Logger;
import org.dspace.alerts.dao.SystemWideAlertDAO;
import org.dspace.alerts.service.SystemWideAlertService;
import org.dspace.authorize.AuthorizeException;
import org.dspace.authorize.service.AuthorizeService;
import org.dspace.core.Context;
import org.dspace.core.LogHelper;
import org.dspace.eperson.EPerson;
import org.springframework.beans.factory.annotation.Autowired;
/**
* The implementation for the {@link SystemWideAlertService} class
*/
public class SystemWideAlertServiceImpl implements SystemWideAlertService {
private static final Logger log = org.apache.logging.log4j.LogManager.getLogger(SystemWideAlertService.class);
@Autowired
private SystemWideAlertDAO systemWideAlertDAO;
@Autowired
private AuthorizeService authorizeService;
@Override
public SystemWideAlert create(final Context context, final String message,
final AllowSessionsEnum allowSessionsType,
final Date countdownTo, final boolean active) throws SQLException,
AuthorizeException {
if (!authorizeService.isAdmin(context)) {
throw new AuthorizeException(
"Only administrators can create a system-wide alert");
}
SystemWideAlert systemWideAlert = new SystemWideAlert();
systemWideAlert.setMessage(message);
systemWideAlert.setAllowSessions(allowSessionsType);
systemWideAlert.setCountdownTo(countdownTo);
systemWideAlert.setActive(active);
SystemWideAlert createdAlert = systemWideAlertDAO.create(context, systemWideAlert);
log.info(LogHelper.getHeader(context, "system_wide_alert_create",
"System Wide Alert has been created with message: '" + message + "' and ID "
+ createdAlert.getID() + " and allowSessionsType " + allowSessionsType +
" and active set to " + active));
return createdAlert;
}
@Override
public SystemWideAlert find(final Context context, final int alertId) throws SQLException {
return systemWideAlertDAO.findByID(context, SystemWideAlert.class, alertId);
}
@Override
public List<SystemWideAlert> findAll(final Context context) throws SQLException {
return systemWideAlertDAO.findAll(context, SystemWideAlert.class);
}
@Override
public List<SystemWideAlert> findAll(final Context context, final int limit, final int offset) throws SQLException {
return systemWideAlertDAO.findAll(context, limit, offset);
}
@Override
public List<SystemWideAlert> findAllActive(final Context context, final int limit, final int offset)
throws SQLException {
return systemWideAlertDAO.findAllActive(context, limit, offset);
}
@Override
public void delete(final Context context, final SystemWideAlert systemWideAlert)
throws SQLException, IOException, AuthorizeException {
if (!authorizeService.isAdmin(context)) {
throw new AuthorizeException(
"Only administrators can create a system-wide alert");
}
systemWideAlertDAO.delete(context, systemWideAlert);
log.info(LogHelper.getHeader(context, "system_wide_alert_create",
"System Wide Alert with ID " + systemWideAlert.getID() + " has been deleted"));
}
@Override
public void update(final Context context, final SystemWideAlert systemWideAlert)
throws SQLException, AuthorizeException {
if (!authorizeService.isAdmin(context)) {
throw new AuthorizeException(
"Only administrators can create a system-wide alert");
}
systemWideAlertDAO.save(context, systemWideAlert);
}
@Override
public boolean canNonAdminUserLogin(Context context) throws SQLException {
List<SystemWideAlert> active = findAllActive(context, 1, 0);
if (active == null || active.isEmpty()) {
return true;
}
return active.get(0).getAllowSessions() == AllowSessionsEnum.ALLOW_ALL_SESSIONS;
}
@Override
public boolean canUserMaintainSession(Context context, EPerson ePerson) throws SQLException {
if (authorizeService.isAdmin(context, ePerson)) {
return true;
}
List<SystemWideAlert> active = findAllActive(context, 1, 0);
if (active == null || active.isEmpty()) {
return true;
}
return active.get(0).getAllowSessions() != AllowSessionsEnum.ALLOW_ADMIN_SESSIONS_ONLY;
}
}

View File

@@ -0,0 +1,45 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.alerts.dao;
import java.sql.SQLException;
import java.util.List;
import org.dspace.alerts.SystemWideAlert;
import org.dspace.core.Context;
import org.dspace.core.GenericDAO;
/**
* This is the Data Access Object for the {@link SystemWideAlert} object
*/
public interface SystemWideAlertDAO extends GenericDAO<SystemWideAlert> {
/**
* Returns a list of all SystemWideAlert objects in the database
*
* @param context The relevant DSpace context
* @param limit The limit for the amount of SystemWideAlerts returned
* @param offset The offset for the Processes to be returned
* @return The list of all SystemWideAlert objects in the Database
* @throws SQLException If something goes wrong
*/
List<SystemWideAlert> findAll(Context context, int limit, int offset) throws SQLException;
/**
* Returns a list of all active SystemWideAlert objects in the database
*
* @param context The relevant DSpace context
* @param limit The limit for the amount of SystemWideAlerts returned
* @param offset The offset for the Processes to be returned
* @return The list of all SystemWideAlert objects in the Database
* @throws SQLException If something goes wrong
*/
List<SystemWideAlert> findAllActive(Context context, int limit, int offset) throws SQLException;
}

View File

@@ -0,0 +1,48 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.alerts.dao.impl;
import java.sql.SQLException;
import java.util.List;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import org.dspace.alerts.SystemWideAlert;
import org.dspace.alerts.SystemWideAlert_;
import org.dspace.alerts.dao.SystemWideAlertDAO;
import org.dspace.core.AbstractHibernateDAO;
import org.dspace.core.Context;
/**
* Implementation class for the {@link SystemWideAlertDAO}
*/
public class SystemWideAlertDAOImpl extends AbstractHibernateDAO<SystemWideAlert> implements SystemWideAlertDAO {
public List<SystemWideAlert> findAll(final Context context, final int limit, final int offset) throws SQLException {
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, SystemWideAlert.class);
Root<SystemWideAlert> alertRoot = criteriaQuery.from(SystemWideAlert.class);
criteriaQuery.select(alertRoot);
return list(context, criteriaQuery, false, SystemWideAlert.class, limit, offset);
}
public List<SystemWideAlert> findAllActive(final Context context, final int limit, final int offset)
throws SQLException {
CriteriaBuilder criteriaBuilder = getCriteriaBuilder(context);
CriteriaQuery criteriaQuery = getCriteriaQuery(criteriaBuilder, SystemWideAlert.class);
Root<SystemWideAlert> alertRoot = criteriaQuery.from(SystemWideAlert.class);
criteriaQuery.select(alertRoot);
criteriaQuery.where(criteriaBuilder.equal(alertRoot.get(SystemWideAlert_.active), true));
return list(context, criteriaQuery, false, SystemWideAlert.class, limit, offset);
}
}

View File

@@ -0,0 +1,118 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.alerts.service;
import java.io.IOException;
import java.sql.SQLException;
import java.util.Date;
import java.util.List;
import org.dspace.alerts.AllowSessionsEnum;
import org.dspace.alerts.SystemWideAlert;
import org.dspace.authorize.AuthorizeException;
import org.dspace.core.Context;
import org.dspace.eperson.EPerson;
/**
* An interface for the SystemWideAlertService with methods regarding the SystemWideAlert workload
*/
public interface SystemWideAlertService {
/**
* This method will create a SystemWideAlert object in the database
*
* @param context The relevant DSpace context
* @param message The message of the system-wide alert
* @param allowSessionsType Which sessions need to be allowed for the system-wide alert
* @param countdownTo The date to which to count down to when the system-wide alert is active
* @param active Whether the system-wide alert os active
* @return The created SystemWideAlert object
* @throws SQLException If something goes wrong
*/
SystemWideAlert create(Context context, String message, AllowSessionsEnum allowSessionsType,
Date countdownTo, boolean active
) throws SQLException, AuthorizeException;
/**
* This method will retrieve a SystemWideAlert object from the Database with the given ID
*
* @param context The relevant DSpace context
* @param alertId The alert id on which we'll search for in the database
* @return The system-wide alert that holds the given alert id
* @throws SQLException If something goes wrong
*/
SystemWideAlert find(Context context, int alertId) throws SQLException;
/**
* Returns a list of all SystemWideAlert objects in the database
*
* @param context The relevant DSpace context
* @return The list of all SystemWideAlert objects in the Database
* @throws SQLException If something goes wrong
*/
List<SystemWideAlert> findAll(Context context) throws SQLException;
/**
* Returns a list of all SystemWideAlert objects in the database
*
* @param context The relevant DSpace context
* @param limit The limit for the amount of system-wide alerts returned
* @param offset The offset for the system-wide alerts to be returned
* @return The list of all SystemWideAlert objects in the Database
* @throws SQLException If something goes wrong
*/
List<SystemWideAlert> findAll(Context context, int limit, int offset) throws SQLException;
/**
* Returns a list of all active SystemWideAlert objects in the database
*
* @param context The relevant DSpace context
* @return The list of all active SystemWideAlert objects in the database
* @throws SQLException If something goes wrong
*/
List<SystemWideAlert> findAllActive(Context context, int limit, int offset) throws SQLException;
/**
* This method will delete the given SystemWideAlert object from the database
*
* @param context The relevant DSpace context
* @param systemWideAlert The SystemWideAlert object to be deleted
* @throws SQLException If something goes wrong
*/
void delete(Context context, SystemWideAlert systemWideAlert)
throws SQLException, IOException, AuthorizeException;
/**
* This method will be used to update the given SystemWideAlert object in the database
*
* @param context The relevant DSpace context
* @param systemWideAlert The SystemWideAlert object to be updated
* @throws SQLException If something goes wrong
*/
void update(Context context, SystemWideAlert systemWideAlert) throws SQLException, AuthorizeException;
/**
* Verifies if the user connected to the current context can retain its session
*
* @param context The relevant DSpace context
* @return if the user connected to the current context can retain its session
*/
boolean canUserMaintainSession(Context context, EPerson ePerson) throws SQLException;
/**
* Verifies if a non admin user can log in
*
* @param context The relevant DSpace context
* @return if a non admin user can log in
*/
boolean canNonAdminUserLogin(Context context) throws SQLException;
}

View File

@@ -0,0 +1,690 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.app.bulkaccesscontrol;
import static org.apache.commons.collections4.CollectionUtils.isEmpty;
import static org.apache.commons.collections4.CollectionUtils.isNotEmpty;
import static org.dspace.authorize.ResourcePolicy.TYPE_CUSTOM;
import static org.dspace.authorize.ResourcePolicy.TYPE_INHERITED;
import static org.dspace.core.Constants.CONTENT_BUNDLE_NAME;
import java.io.IOException;
import java.io.InputStream;
import java.sql.SQLException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.time.ZoneOffset;
import java.util.Arrays;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.TimeZone;
import java.util.UUID;
import java.util.function.Function;
import java.util.stream.Collectors;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.cli.ParseException;
import org.apache.commons.lang3.StringUtils;
import org.dspace.app.bulkaccesscontrol.exception.BulkAccessControlException;
import org.dspace.app.bulkaccesscontrol.model.AccessCondition;
import org.dspace.app.bulkaccesscontrol.model.AccessConditionBitstream;
import org.dspace.app.bulkaccesscontrol.model.AccessConditionItem;
import org.dspace.app.bulkaccesscontrol.model.BulkAccessConditionConfiguration;
import org.dspace.app.bulkaccesscontrol.model.BulkAccessControlInput;
import org.dspace.app.bulkaccesscontrol.service.BulkAccessConditionConfigurationService;
import org.dspace.app.mediafilter.factory.MediaFilterServiceFactory;
import org.dspace.app.mediafilter.service.MediaFilterService;
import org.dspace.app.util.DSpaceObjectUtilsImpl;
import org.dspace.app.util.service.DSpaceObjectUtils;
import org.dspace.authorize.AuthorizeException;
import org.dspace.authorize.factory.AuthorizeServiceFactory;
import org.dspace.authorize.service.ResourcePolicyService;
import org.dspace.content.Bitstream;
import org.dspace.content.Collection;
import org.dspace.content.DSpaceObject;
import org.dspace.content.Item;
import org.dspace.content.factory.ContentServiceFactory;
import org.dspace.content.service.ItemService;
import org.dspace.core.Constants;
import org.dspace.core.Context;
import org.dspace.discovery.DiscoverQuery;
import org.dspace.discovery.SearchService;
import org.dspace.discovery.SearchServiceException;
import org.dspace.discovery.SearchUtils;
import org.dspace.discovery.indexobject.IndexableItem;
import org.dspace.eperson.EPerson;
import org.dspace.eperson.factory.EPersonServiceFactory;
import org.dspace.eperson.service.EPersonService;
import org.dspace.scripts.DSpaceRunnable;
import org.dspace.services.ConfigurationService;
import org.dspace.services.factory.DSpaceServicesFactory;
import org.dspace.submit.model.AccessConditionOption;
import org.dspace.utils.DSpace;
/**
* Implementation of {@link DSpaceRunnable} to perform a bulk access control via json file.
*
* @author Mohamed Eskander (mohamed.eskander at 4science.it)
*
*/
public class BulkAccessControl extends DSpaceRunnable<BulkAccessControlScriptConfiguration<BulkAccessControl>> {
private DSpaceObjectUtils dSpaceObjectUtils;
private SearchService searchService;
private ItemService itemService;
private String filename;
private List<String> uuids;
private Context context;
private BulkAccessConditionConfigurationService bulkAccessConditionConfigurationService;
private ResourcePolicyService resourcePolicyService;
protected EPersonService epersonService;
private ConfigurationService configurationService;
private MediaFilterService mediaFilterService;
private Map<String, AccessConditionOption> itemAccessConditions;
private Map<String, AccessConditionOption> uploadAccessConditions;
private final String ADD_MODE = "add";
private final String REPLACE_MODE = "replace";
private boolean help = false;
protected String eperson = null;
@Override
@SuppressWarnings("unchecked")
public void setup() throws ParseException {
this.searchService = SearchUtils.getSearchService();
this.itemService = ContentServiceFactory.getInstance().getItemService();
this.resourcePolicyService = AuthorizeServiceFactory.getInstance().getResourcePolicyService();
this.epersonService = EPersonServiceFactory.getInstance().getEPersonService();
this.configurationService = DSpaceServicesFactory.getInstance().getConfigurationService();
mediaFilterService = MediaFilterServiceFactory.getInstance().getMediaFilterService();
mediaFilterService.setLogHandler(handler);
this.bulkAccessConditionConfigurationService = new DSpace().getServiceManager().getServiceByName(
"bulkAccessConditionConfigurationService", BulkAccessConditionConfigurationService.class);
this.dSpaceObjectUtils = new DSpace().getServiceManager().getServiceByName(
DSpaceObjectUtilsImpl.class.getName(), DSpaceObjectUtilsImpl.class);
BulkAccessConditionConfiguration bulkAccessConditionConfiguration =
bulkAccessConditionConfigurationService.getBulkAccessConditionConfiguration("default");
itemAccessConditions = bulkAccessConditionConfiguration
.getItemAccessConditionOptions()
.stream()
.collect(Collectors.toMap(AccessConditionOption::getName, Function.identity()));
uploadAccessConditions = bulkAccessConditionConfiguration
.getBitstreamAccessConditionOptions()
.stream()
.collect(Collectors.toMap(AccessConditionOption::getName, Function.identity()));
help = commandLine.hasOption('h');
filename = commandLine.getOptionValue('f');
uuids = commandLine.hasOption('u') ? Arrays.asList(commandLine.getOptionValues('u')) : null;
}
@Override
public void internalRun() throws Exception {
if (help) {
printHelp();
return;
}
ObjectMapper mapper = new ObjectMapper();
mapper.setTimeZone(TimeZone.getTimeZone(ZoneOffset.UTC));
BulkAccessControlInput accessControl;
context = new Context(Context.Mode.BATCH_EDIT);
setEPerson(context);
if (!isAuthorized(context)) {
handler.logError("Current user is not eligible to execute script bulk-access-control");
throw new AuthorizeException("Current user is not eligible to execute script bulk-access-control");
}
if (uuids == null || uuids.size() == 0) {
handler.logError("A target uuid must be provided with at least on uuid (run with -h flag for details)");
throw new IllegalArgumentException("At least one target uuid must be provided");
}
InputStream inputStream = handler.getFileStream(context, filename)
.orElseThrow(() -> new IllegalArgumentException("Error reading file, the file couldn't be "
+ "found for filename: " + filename));
try {
accessControl = mapper.readValue(inputStream, BulkAccessControlInput.class);
} catch (IOException e) {
handler.logError("Error parsing json file " + e.getMessage());
throw new IllegalArgumentException("Error parsing json file", e);
}
try {
validate(accessControl);
updateItemsAndBitstreamsPolices(accessControl);
context.complete();
} catch (Exception e) {
handler.handleException(e);
context.abort();
}
}
/**
* check the validation of mapped json data, it must
* provide item or bitstream information or both of them
* and check the validation of item node if provided,
* and check the validation of bitstream node if provided.
*
* @param accessControl mapped json data
* @throws SQLException if something goes wrong in the database
* @throws BulkAccessControlException if accessControl is invalid
*/
private void validate(BulkAccessControlInput accessControl) throws SQLException {
AccessConditionItem item = accessControl.getItem();
AccessConditionBitstream bitstream = accessControl.getBitstream();
if (Objects.isNull(item) && Objects.isNull(bitstream)) {
handler.logError("item or bitstream node must be provided");
throw new BulkAccessControlException("item or bitstream node must be provided");
}
if (Objects.nonNull(item)) {
validateItemNode(item);
}
if (Objects.nonNull(bitstream)) {
validateBitstreamNode(bitstream);
}
}
/**
* check the validation of item node, the item mode
* must be provided with value 'add' or 'replace'
* if mode equals to add so the information
* of accessCondition must be provided,
* also checking that accessConditions information are valid.
*
* @param item the item node
* @throws BulkAccessControlException if item node is invalid
*/
private void validateItemNode(AccessConditionItem item) {
String mode = item.getMode();
List<AccessCondition> accessConditions = item.getAccessConditions();
if (StringUtils.isEmpty(mode)) {
handler.logError("item mode node must be provided");
throw new BulkAccessControlException("item mode node must be provided");
} else if (!(StringUtils.equalsAny(mode, ADD_MODE, REPLACE_MODE))) {
handler.logError("wrong value for item mode<" + mode + ">");
throw new BulkAccessControlException("wrong value for item mode<" + mode + ">");
} else if (ADD_MODE.equals(mode) && isEmpty(accessConditions)) {
handler.logError("accessConditions of item must be provided with mode<" + ADD_MODE + ">");
throw new BulkAccessControlException(
"accessConditions of item must be provided with mode<" + ADD_MODE + ">");
}
for (AccessCondition accessCondition : accessConditions) {
validateAccessCondition(accessCondition);
}
}
/**
* check the validation of bitstream node, the bitstream mode
* must be provided with value 'add' or 'replace'
* if mode equals to add so the information of accessConditions
* must be provided,
* also checking that constraint information is valid,
* also checking that accessConditions information are valid.
*
* @param bitstream the bitstream node
* @throws SQLException if something goes wrong in the database
* @throws BulkAccessControlException if bitstream node is invalid
*/
private void validateBitstreamNode(AccessConditionBitstream bitstream) throws SQLException {
String mode = bitstream.getMode();
List<AccessCondition> accessConditions = bitstream.getAccessConditions();
if (StringUtils.isEmpty(mode)) {
handler.logError("bitstream mode node must be provided");
throw new BulkAccessControlException("bitstream mode node must be provided");
} else if (!(StringUtils.equalsAny(mode, ADD_MODE, REPLACE_MODE))) {
handler.logError("wrong value for bitstream mode<" + mode + ">");
throw new BulkAccessControlException("wrong value for bitstream mode<" + mode + ">");
} else if (ADD_MODE.equals(mode) && isEmpty(accessConditions)) {
handler.logError("accessConditions of bitstream must be provided with mode<" + ADD_MODE + ">");
throw new BulkAccessControlException(
"accessConditions of bitstream must be provided with mode<" + ADD_MODE + ">");
}
validateConstraint(bitstream);
for (AccessCondition accessCondition : bitstream.getAccessConditions()) {
validateAccessCondition(accessCondition);
}
}
/**
* check the validation of constraint node if provided,
* constraint isn't supported when multiple uuids are provided
* or when uuid isn't an Item
*
* @param bitstream the bitstream node
* @throws SQLException if something goes wrong in the database
* @throws BulkAccessControlException if constraint node is invalid
*/
private void validateConstraint(AccessConditionBitstream bitstream) throws SQLException {
if (uuids.size() > 1 && containsConstraints(bitstream)) {
handler.logError("constraint isn't supported when multiple uuids are provided");
throw new BulkAccessControlException("constraint isn't supported when multiple uuids are provided");
} else if (uuids.size() == 1 && containsConstraints(bitstream)) {
DSpaceObject dso =
dSpaceObjectUtils.findDSpaceObject(context, UUID.fromString(uuids.get(0)));
if (Objects.nonNull(dso) && dso.getType() != Constants.ITEM) {
handler.logError("constraint is not supported when uuid isn't an Item");
throw new BulkAccessControlException("constraint is not supported when uuid isn't an Item");
}
}
}
/**
* check the validation of access condition,
* the access condition name must equal to one of configured access conditions,
* then call {@link AccessConditionOption#validateResourcePolicy(
* Context, String, Date, Date)} if exception happens so, it's invalid.
*
* @param accessCondition the accessCondition
* @throws BulkAccessControlException if the accessCondition is invalid
*/
private void validateAccessCondition(AccessCondition accessCondition) {
if (!itemAccessConditions.containsKey(accessCondition.getName())) {
handler.logError("wrong access condition <" + accessCondition.getName() + ">");
throw new BulkAccessControlException("wrong access condition <" + accessCondition.getName() + ">");
}
try {
itemAccessConditions.get(accessCondition.getName()).validateResourcePolicy(
context, accessCondition.getName(), accessCondition.getStartDate(), accessCondition.getEndDate());
} catch (Exception e) {
handler.logError("invalid access condition, " + e.getMessage());
handler.handleException(e);
}
}
/**
* find all items of provided {@link #uuids} from solr,
* then update the resource policies of items
* or bitstreams of items (only bitstreams of ORIGINAL bundles)
* and derivative bitstreams, or both of them.
*
* @param accessControl the access control input
* @throws SQLException if something goes wrong in the database
* @throws SearchServiceException if a search error occurs
* @throws AuthorizeException if an authorization error occurs
*/
private void updateItemsAndBitstreamsPolices(BulkAccessControlInput accessControl)
throws SQLException, SearchServiceException, AuthorizeException {
int counter = 0;
int start = 0;
int limit = 20;
String query = buildSolrQuery(uuids);
Iterator<Item> itemIterator = findItems(query, start, limit);
while (itemIterator.hasNext()) {
Item item = context.reloadEntity(itemIterator.next());
if (Objects.nonNull(accessControl.getItem())) {
updateItemPolicies(item, accessControl);
}
if (Objects.nonNull(accessControl.getBitstream())) {
updateBitstreamsPolicies(item, accessControl);
}
context.commit();
context.uncacheEntity(item);
counter++;
if (counter == limit) {
counter = 0;
start += limit;
itemIterator = findItems(query, start, limit);
}
}
}
private String buildSolrQuery(List<String> uuids) throws SQLException {
String [] query = new String[uuids.size()];
for (int i = 0 ; i < query.length ; i++) {
DSpaceObject dso = dSpaceObjectUtils.findDSpaceObject(context, UUID.fromString(uuids.get(i)));
if (dso.getType() == Constants.COMMUNITY) {
query[i] = "location.comm:" + dso.getID();
} else if (dso.getType() == Constants.COLLECTION) {
query[i] = "location.coll:" + dso.getID();
} else if (dso.getType() == Constants.ITEM) {
query[i] = "search.resourceid:" + dso.getID();
}
}
return StringUtils.joinWith(" OR ", query);
}
private Iterator<Item> findItems(String query, int start, int limit)
throws SearchServiceException {
DiscoverQuery discoverQuery = buildDiscoveryQuery(query, start, limit);
return searchService.search(context, discoverQuery)
.getIndexableObjects()
.stream()
.map(indexableObject ->
((IndexableItem) indexableObject).getIndexedObject())
.collect(Collectors.toList())
.iterator();
}
private DiscoverQuery buildDiscoveryQuery(String query, int start, int limit) {
DiscoverQuery discoverQuery = new DiscoverQuery();
discoverQuery.setDSpaceObjectFilter(IndexableItem.TYPE);
discoverQuery.setQuery(query);
discoverQuery.setStart(start);
discoverQuery.setMaxResults(limit);
discoverQuery.setSortField("search.resourceid", DiscoverQuery.SORT_ORDER.asc);
return discoverQuery;
}
/**
* update the item resource policies,
* when mode equals to 'replace' will remove
* all current resource polices of types 'TYPE_CUSTOM'
* and 'TYPE_INHERITED' then, set the new resource policies.
*
* @param item the item
* @param accessControl the access control input
* @throws SQLException if something goes wrong in the database
* @throws AuthorizeException if an authorization error occurs
*/
private void updateItemPolicies(Item item, BulkAccessControlInput accessControl)
throws SQLException, AuthorizeException {
AccessConditionItem acItem = accessControl.getItem();
if (REPLACE_MODE.equals(acItem.getMode())) {
removeReadPolicies(item, TYPE_CUSTOM);
removeReadPolicies(item, TYPE_INHERITED);
}
setItemPolicies(item, accessControl);
logInfo(acItem.getAccessConditions(), acItem.getMode(), item);
}
/**
* create the new resource policies of item.
* then, call {@link ItemService#adjustItemPolicies(
* Context, Item, Collection)} to adjust item's default policies.
*
* @param item the item
* @param accessControl the access control input
* @throws SQLException if something goes wrong in the database
* @throws AuthorizeException if an authorization error occurs
*/
private void setItemPolicies(Item item, BulkAccessControlInput accessControl)
throws SQLException, AuthorizeException {
accessControl
.getItem()
.getAccessConditions()
.forEach(accessCondition -> createResourcePolicy(item, accessCondition,
itemAccessConditions.get(accessCondition.getName())));
itemService.adjustItemPolicies(context, item, item.getOwningCollection(), false);
}
/**
* update the resource policies of all item's bitstreams
* or bitstreams specified into constraint node,
* and derivative bitstreams.
*
* <strong>NOTE:</strong> only bitstreams of ORIGINAL bundles
*
* @param item the item contains bitstreams
* @param accessControl the access control input
*/
private void updateBitstreamsPolicies(Item item, BulkAccessControlInput accessControl) {
AccessConditionBitstream.Constraint constraints = accessControl.getBitstream().getConstraints();
// look over all the bundles and force initialization of bitstreams collection
// to avoid lazy initialization exception
long count = item.getBundles()
.stream()
.flatMap(bundle ->
bundle.getBitstreams().stream())
.count();
item.getBundles(CONTENT_BUNDLE_NAME).stream()
.flatMap(bundle -> bundle.getBitstreams().stream())
.filter(bitstream -> constraints == null ||
constraints.getUuid() == null ||
constraints.getUuid().size() == 0 ||
constraints.getUuid().contains(bitstream.getID().toString()))
.forEach(bitstream -> updateBitstreamPolicies(bitstream, item, accessControl));
}
/**
* check that the bitstream node is existed,
* and contains constraint node,
* and constraint contains uuids.
*
* @param bitstream the bitstream node
* @return true when uuids of constraint of bitstream is not empty,
* otherwise false
*/
private boolean containsConstraints(AccessConditionBitstream bitstream) {
return Objects.nonNull(bitstream) &&
Objects.nonNull(bitstream.getConstraints()) &&
isNotEmpty(bitstream.getConstraints().getUuid());
}
/**
* update the bitstream resource policies,
* when mode equals to replace will remove
* all current resource polices of types 'TYPE_CUSTOM'
* and 'TYPE_INHERITED' then, set the new resource policies.
*
* @param bitstream the bitstream
* @param item the item of bitstream
* @param accessControl the access control input
* @throws RuntimeException if something goes wrong in the database
* or an authorization error occurs
*/
private void updateBitstreamPolicies(Bitstream bitstream, Item item, BulkAccessControlInput accessControl) {
AccessConditionBitstream acBitstream = accessControl.getBitstream();
if (REPLACE_MODE.equals(acBitstream.getMode())) {
removeReadPolicies(bitstream, TYPE_CUSTOM);
removeReadPolicies(bitstream, TYPE_INHERITED);
}
try {
setBitstreamPolicies(bitstream, item, accessControl);
logInfo(acBitstream.getAccessConditions(), acBitstream.getMode(), bitstream);
} catch (SQLException | AuthorizeException e) {
throw new RuntimeException(e);
}
}
/**
* remove dspace object's read policies.
*
* @param dso the dspace object
* @param type resource policy type
* @throws BulkAccessControlException if something goes wrong
* in the database or an authorization error occurs
*/
private void removeReadPolicies(DSpaceObject dso, String type) {
try {
resourcePolicyService.removePolicies(context, dso, type, Constants.READ);
} catch (SQLException | AuthorizeException e) {
throw new BulkAccessControlException(e);
}
}
/**
* create the new resource policies of bitstream.
* then, call {@link ItemService#adjustItemPolicies(
* Context, Item, Collection)} to adjust bitstream's default policies.
* and also update the resource policies of its derivative bitstreams.
*
* @param bitstream the bitstream
* @param item the item of bitstream
* @param accessControl the access control input
* @throws SQLException if something goes wrong in the database
* @throws AuthorizeException if an authorization error occurs
*/
private void setBitstreamPolicies(Bitstream bitstream, Item item, BulkAccessControlInput accessControl)
throws SQLException, AuthorizeException {
accessControl.getBitstream()
.getAccessConditions()
.forEach(accessCondition -> createResourcePolicy(bitstream, accessCondition,
uploadAccessConditions.get(accessCondition.getName())));
itemService.adjustBitstreamPolicies(context, item, item.getOwningCollection(), bitstream);
mediaFilterService.updatePoliciesOfDerivativeBitstreams(context, item, bitstream);
}
/**
* create the resource policy from the information
* comes from the access condition.
*
* @param obj the dspace object
* @param accessCondition the access condition
* @param accessConditionOption the access condition option
* @throws BulkAccessControlException if an exception occurs
*/
private void createResourcePolicy(DSpaceObject obj, AccessCondition accessCondition,
AccessConditionOption accessConditionOption) {
String name = accessCondition.getName();
String description = accessCondition.getDescription();
Date startDate = accessCondition.getStartDate();
Date endDate = accessCondition.getEndDate();
try {
accessConditionOption.createResourcePolicy(context, obj, name, description, startDate, endDate);
} catch (Exception e) {
throw new BulkAccessControlException(e);
}
}
/**
* Set the eperson in the context
*
* @param context the context
* @throws SQLException if database error
*/
protected void setEPerson(Context context) throws SQLException {
EPerson myEPerson = epersonService.find(context, this.getEpersonIdentifier());
if (myEPerson == null) {
handler.logError("EPerson cannot be found: " + this.getEpersonIdentifier());
throw new UnsupportedOperationException("EPerson cannot be found: " + this.getEpersonIdentifier());
}
context.setCurrentUser(myEPerson);
}
private void logInfo(List<AccessCondition> accessConditions, String mode, DSpaceObject dso) {
String type = dso.getClass().getSimpleName();
if (REPLACE_MODE.equals(mode) && isEmpty(accessConditions)) {
handler.logInfo("Cleaning " + type + " {" + dso.getID() + "} policies");
handler.logInfo("Inheriting policies from owning Collection in " + type + " {" + dso.getID() + "}");
return;
}
StringBuilder message = new StringBuilder();
message.append(mode.equals(ADD_MODE) ? "Adding " : "Replacing ")
.append(type)
.append(" {")
.append(dso.getID())
.append("} policy")
.append(mode.equals(ADD_MODE) ? " with " : " to ")
.append("access conditions:");
AppendAccessConditionsInfo(message, accessConditions);
handler.logInfo(message.toString());
if (REPLACE_MODE.equals(mode) && isAppendModeEnabled()) {
handler.logInfo("Inheriting policies from owning Collection in " + type + " {" + dso.getID() + "}");
}
}
private void AppendAccessConditionsInfo(StringBuilder message, List<AccessCondition> accessConditions) {
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
message.append("{");
for (int i = 0; i < accessConditions.size(); i++) {
message.append(accessConditions.get(i).getName());
Optional.ofNullable(accessConditions.get(i).getStartDate())
.ifPresent(date -> message.append(", start_date=" + dateFormat.format(date)));
Optional.ofNullable(accessConditions.get(i).getEndDate())
.ifPresent(date -> message.append(", end_date=" + dateFormat.format(date)));
if (i != accessConditions.size() - 1) {
message.append(", ");
}
}
message.append("}");
}
private boolean isAppendModeEnabled() {
return configurationService.getBooleanProperty("core.authorization.installitem.inheritance-read.append-mode");
}
protected boolean isAuthorized(Context context) {
return true;
}
@Override
@SuppressWarnings("unchecked")
public BulkAccessControlScriptConfiguration<BulkAccessControl> getScriptConfiguration() {
return new DSpace().getServiceManager()
.getServiceByName("bulk-access-control", BulkAccessControlScriptConfiguration.class);
}
}

View File

@@ -0,0 +1,66 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.app.bulkaccesscontrol;
import java.sql.SQLException;
import java.util.Arrays;
import java.util.UUID;
import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.dspace.core.Context;
import org.dspace.eperson.EPerson;
import org.dspace.scripts.DSpaceCommandLineParameter;
/**
* Extension of {@link BulkAccessControl} for CLI.
*
* @author Mohamed Eskander (mohamed.eskander at 4science.it)
*
*/
public class BulkAccessControlCli extends BulkAccessControl {
@Override
protected void setEPerson(Context context) throws SQLException {
EPerson myEPerson;
eperson = commandLine.getOptionValue('e');
if (eperson == null) {
handler.logError("An eperson to do the the Bulk Access Control must be specified " +
"(run with -h flag for details)");
throw new UnsupportedOperationException("An eperson to do the Bulk Access Control must be specified");
}
if (StringUtils.contains(eperson, '@')) {
myEPerson = epersonService.findByEmail(context, eperson);
} else {
myEPerson = epersonService.find(context, UUID.fromString(eperson));
}
if (myEPerson == null) {
handler.logError("EPerson cannot be found: " + eperson + " (run with -h flag for details)");
throw new UnsupportedOperationException("EPerson cannot be found: " + eperson);
}
context.setCurrentUser(myEPerson);
}
@Override
protected boolean isAuthorized(Context context) {
if (context.getCurrentUser() == null) {
return false;
}
return getScriptConfiguration().isAllowedToExecute(context,
Arrays.stream(commandLine.getOptions())
.map(option ->
new DSpaceCommandLineParameter("-" + option.getOpt(), option.getValue()))
.collect(Collectors.toList()));
}
}

View File

@@ -0,0 +1,42 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.app.bulkaccesscontrol;
import java.io.InputStream;
import org.apache.commons.cli.Options;
/**
* Extension of {@link BulkAccessControlScriptConfiguration} for CLI.
*
* @author Mohamed Eskander (mohamed.eskander at 4science.it)
*
*/
public class BulkAccessControlCliScriptConfiguration<T extends BulkAccessControlCli>
extends BulkAccessControlScriptConfiguration<T> {
@Override
public Options getOptions() {
Options options = new Options();
options.addOption("u", "uuid", true, "target uuids of communities/collections/items");
options.getOption("u").setType(String.class);
options.getOption("u").setRequired(true);
options.addOption("f", "file", true, "source json file");
options.getOption("f").setType(InputStream.class);
options.getOption("f").setRequired(true);
options.addOption("e", "eperson", true, "email of EPerson used to perform actions");
options.getOption("e").setRequired(true);
options.addOption("h", "help", false, "help");
return options;
}
}

View File

@@ -0,0 +1,110 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.app.bulkaccesscontrol;
import java.io.InputStream;
import java.sql.SQLException;
import java.util.List;
import java.util.Objects;
import java.util.UUID;
import java.util.stream.Collectors;
import org.apache.commons.cli.Options;
import org.dspace.app.util.DSpaceObjectUtilsImpl;
import org.dspace.app.util.service.DSpaceObjectUtils;
import org.dspace.content.DSpaceObject;
import org.dspace.core.Context;
import org.dspace.scripts.DSpaceCommandLineParameter;
import org.dspace.scripts.configuration.ScriptConfiguration;
import org.dspace.utils.DSpace;
/**
* Script configuration for {@link BulkAccessControl}.
*
* @author Mohamed Eskander (mohamed.eskander at 4science.it)
*
* @param <T> the {@link BulkAccessControl} type
*/
public class BulkAccessControlScriptConfiguration<T extends BulkAccessControl> extends ScriptConfiguration<T> {
private Class<T> dspaceRunnableClass;
@Override
public boolean isAllowedToExecute(Context context, List<DSpaceCommandLineParameter> commandLineParameters) {
try {
if (Objects.isNull(commandLineParameters)) {
return authorizeService.isAdmin(context) || authorizeService.isComColAdmin(context)
|| authorizeService.isItemAdmin(context);
} else {
List<String> dspaceObjectIDs =
commandLineParameters.stream()
.filter(parameter -> "-u".equals(parameter.getName()))
.map(DSpaceCommandLineParameter::getValue)
.collect(Collectors.toList());
DSpaceObjectUtils dSpaceObjectUtils = new DSpace().getServiceManager().getServiceByName(
DSpaceObjectUtilsImpl.class.getName(), DSpaceObjectUtilsImpl.class);
for (String dspaceObjectID : dspaceObjectIDs) {
DSpaceObject dso = dSpaceObjectUtils.findDSpaceObject(context, UUID.fromString(dspaceObjectID));
if (Objects.isNull(dso)) {
throw new IllegalArgumentException();
}
if (!authorizeService.isAdmin(context, dso)) {
return false;
}
}
}
} catch (SQLException e) {
throw new RuntimeException(e);
}
return true;
}
@Override
public Options getOptions() {
if (options == null) {
Options options = new Options();
options.addOption("u", "uuid", true, "target uuids of communities/collections/items");
options.getOption("u").setType(String.class);
options.getOption("u").setRequired(true);
options.addOption("f", "file", true, "source json file");
options.getOption("f").setType(InputStream.class);
options.getOption("f").setRequired(true);
options.addOption("h", "help", false, "help");
super.options = options;
}
return options;
}
@Override
public Class<T> getDspaceRunnableClass() {
return dspaceRunnableClass;
}
/**
* Generic setter for the dspaceRunnableClass
*
* @param dspaceRunnableClass The dspaceRunnableClass to be set on this
* BulkImportScriptConfiguration
*/
@Override
public void setDspaceRunnableClass(Class<T> dspaceRunnableClass) {
this.dspaceRunnableClass = dspaceRunnableClass;
}
}

View File

@@ -0,0 +1,48 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.app.bulkaccesscontrol.exception;
/**
* Exception for errors that occurs during the bulk access control
*
* @author Mohamed Eskander (mohamed.eskander at 4science.it)
*
*/
public class BulkAccessControlException extends RuntimeException {
private static final long serialVersionUID = -74730626862418515L;
/**
* Constructor with error message and cause.
*
* @param message the error message
* @param cause the error cause
*/
public BulkAccessControlException(String message, Throwable cause) {
super(message, cause);
}
/**
* Constructor with error message.
*
* @param message the error message
*/
public BulkAccessControlException(String message) {
super(message);
}
/**
* Constructor with error cause.
*
* @param cause the error cause
*/
public BulkAccessControlException(Throwable cause) {
super(cause);
}
}

View File

@@ -0,0 +1,59 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.app.bulkaccesscontrol.model;
import java.util.Date;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import org.dspace.app.bulkaccesscontrol.BulkAccessControl;
import org.dspace.util.MultiFormatDateDeserializer;
/**
* Class that model the values of an Access Condition as expressed in the {@link BulkAccessControl} input file
*
* @author Mohamed Eskander (mohamed.eskander at 4science.it)
*/
public class AccessCondition {
private String name;
private String description;
@JsonDeserialize(using = MultiFormatDateDeserializer.class)
private Date startDate;
@JsonDeserialize(using = MultiFormatDateDeserializer.class)
private Date endDate;
public AccessCondition() {
}
public AccessCondition(String name, String description, Date startDate, Date endDate) {
this.name = name;
this.description = description;
this.startDate = startDate;
this.endDate = endDate;
}
public String getName() {
return name;
}
public String getDescription() {
return description;
}
public Date getStartDate() {
return startDate;
}
public Date getEndDate() {
return endDate;
}
}

View File

@@ -0,0 +1,69 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.app.bulkaccesscontrol.model;
import java.util.ArrayList;
import java.util.List;
import org.dspace.app.bulkaccesscontrol.BulkAccessControl;
/**
* Class that model the value of bitstream node
* from json file of the {@link BulkAccessControl}
*
* @author Mohamed Eskander (mohamed.eskander at 4science.it)
*/
public class AccessConditionBitstream {
private String mode;
private Constraint constraints;
private List<AccessCondition> accessConditions;
public String getMode() {
return mode;
}
public void setMode(String mode) {
this.mode = mode;
}
public Constraint getConstraints() {
return constraints;
}
public void setConstraints(Constraint constraints) {
this.constraints = constraints;
}
public List<AccessCondition> getAccessConditions() {
if (accessConditions == null) {
return new ArrayList<>();
}
return accessConditions;
}
public void setAccessConditions(List<AccessCondition> accessConditions) {
this.accessConditions = accessConditions;
}
public class Constraint {
private List<String> uuid;
public List<String> getUuid() {
return uuid;
}
public void setUuid(List<String> uuid) {
this.uuid = uuid;
}
}
}

View File

@@ -0,0 +1,45 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.app.bulkaccesscontrol.model;
import java.util.ArrayList;
import java.util.List;
import org.dspace.app.bulkaccesscontrol.BulkAccessControl;
/**
* Class that model the value of item node
* from json file of the {@link BulkAccessControl}
*
* @author Mohamed Eskander (mohamed.eskander at 4science.it)
*/
public class AccessConditionItem {
String mode;
List<AccessCondition> accessConditions;
public String getMode() {
return mode;
}
public void setMode(String mode) {
this.mode = mode;
}
public List<AccessCondition> getAccessConditions() {
if (accessConditions == null) {
return new ArrayList<>();
}
return accessConditions;
}
public void setAccessConditions(List<AccessCondition> accessConditions) {
this.accessConditions = accessConditions;
}
}

View File

@@ -0,0 +1,50 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.app.bulkaccesscontrol.model;
import java.util.List;
import org.dspace.submit.model.AccessConditionOption;
/**
* A collection of conditions to be met when bulk access condition.
*
* @author Mohamed Eskander (mohamed.eskander at 4science.it)
*/
public class BulkAccessConditionConfiguration {
private String name;
private List<AccessConditionOption> itemAccessConditionOptions;
private List<AccessConditionOption> bitstreamAccessConditionOptions;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<AccessConditionOption> getItemAccessConditionOptions() {
return itemAccessConditionOptions;
}
public void setItemAccessConditionOptions(
List<AccessConditionOption> itemAccessConditionOptions) {
this.itemAccessConditionOptions = itemAccessConditionOptions;
}
public List<AccessConditionOption> getBitstreamAccessConditionOptions() {
return bitstreamAccessConditionOptions;
}
public void setBitstreamAccessConditionOptions(
List<AccessConditionOption> bitstreamAccessConditionOptions) {
this.bitstreamAccessConditionOptions = bitstreamAccessConditionOptions;
}
}

View File

@@ -0,0 +1,72 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.app.bulkaccesscontrol.model;
import org.dspace.app.bulkaccesscontrol.BulkAccessControl;
/**
* Class that model the content of the JSON file used as input for the {@link BulkAccessControl}
*
* <code> <br/>
* { <br/>
* item: { <br/>
* mode: "replace", <br/>
* accessConditions: [ <br/>
* { <br/>
* "name": "openaccess" <br/>
* } <br/>
* ] <br/>
* }, <br/>
* bitstream: { <br/>
* constraints: { <br/>
* uuid: [bit-uuid1, bit-uuid2, ..., bit-uuidN], <br/>
* }, <br/>
* mode: "add", <br/>
* accessConditions: [ <br/>
* { <br/>
* "name": "embargo", <br/>
* "startDate": "2024-06-24T23:59:59.999+0000" <br/>
* } <br/>
* ] <br/>
* } <br/>
* }
* </code>
*
* @author Mohamed Eskander (mohamed.eskander at 4science.it)
*/
public class BulkAccessControlInput {
AccessConditionItem item;
AccessConditionBitstream bitstream;
public BulkAccessControlInput() {
}
public BulkAccessControlInput(AccessConditionItem item,
AccessConditionBitstream bitstream) {
this.item = item;
this.bitstream = bitstream;
}
public AccessConditionItem getItem() {
return item;
}
public void setItem(AccessConditionItem item) {
this.item = item;
}
public AccessConditionBitstream getBitstream() {
return bitstream;
}
public void setBitstream(AccessConditionBitstream bitstream) {
this.bitstream = bitstream;
}
}

View File

@@ -0,0 +1,45 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.app.bulkaccesscontrol.service;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
import org.dspace.app.bulkaccesscontrol.model.BulkAccessConditionConfiguration;
import org.springframework.beans.factory.annotation.Autowired;
/**
* Simple bean to manage different Bulk Access Condition configurations
*
* @author Mohamed Eskander (mohamed.eskander at 4science.it)
*/
public class BulkAccessConditionConfigurationService {
@Autowired
private List<BulkAccessConditionConfiguration> bulkAccessConditionConfigurations;
public List<BulkAccessConditionConfiguration> getBulkAccessConditionConfigurations() {
if (CollectionUtils.isEmpty(bulkAccessConditionConfigurations)) {
return new ArrayList<>();
}
return bulkAccessConditionConfigurations;
}
public BulkAccessConditionConfiguration getBulkAccessConditionConfiguration(String name) {
return getBulkAccessConditionConfigurations().stream()
.filter(x -> name.equals(x.getName()))
.findFirst()
.orElse(null);
}
public void setBulkAccessConditionConfigurations(
List<BulkAccessConditionConfiguration> bulkAccessConditionConfigurations) {
this.bulkAccessConditionConfigurations = bulkAccessConditionConfigurations;
}
}

View File

@@ -138,7 +138,7 @@ public class DSpaceCSV implements Serializable {
/**
* Create a new instance, reading the lines in from file
*
* @param inputStream the inputstream to read from
* @param inputStream the input stream to read from
* @param c The DSpace Context
* @throws Exception thrown if there is an error reading or processing the file
*/
@@ -159,7 +159,7 @@ public class DSpaceCSV implements Serializable {
columnCounter++;
// Remove surrounding quotes if there are any
if ((element.startsWith("\"")) && (element.endsWith("\""))) {
if (element.startsWith("\"") && element.endsWith("\"")) {
element = element.substring(1, element.length() - 1);
}
@@ -175,16 +175,28 @@ public class DSpaceCSV implements Serializable {
headings.add(element);
} else if (!"id".equals(element)) {
String authorityPrefix = "";
AuthorityValue authorityValueType = authorityValueService.getAuthorityValueType(element);
if (authorityValueType != null) {
String authorityType = authorityValueType.getAuthorityType();
authorityPrefix = element.substring(0, authorityType.length() + 1);
element = element.substring(authorityPrefix.length());
if (StringUtils.startsWith(element, "[authority]")) {
element = StringUtils.substringAfter(element, "[authority]");
AuthorityValue authorityValueType = authorityValueService.getAuthorityValueType(element);
if (authorityValueType != null) {
String authorityType = authorityValueType.getAuthorityType();
authorityPrefix = element.substring(0, authorityType.length() + 1);
element = element.substring(authorityPrefix.length());
}
}
// Verify that the heading is valid in the metadata registry
String[] clean = element.split("\\[");
String[] parts = clean[0].split("\\.");
// Check language if present, if it's ANY then throw an exception
if (clean.length > 1 && clean[1].equals(Item.ANY + "]")) {
throw new MetadataImportInvalidHeadingException("Language ANY (*) was found in the heading " +
"of the metadata value to import, " +
"this should never be the case",
MetadataImportInvalidHeadingException.ENTRY,
columnCounter);
}
if (parts.length < 2) {
throw new MetadataImportInvalidHeadingException(element,
@@ -220,6 +232,15 @@ public class DSpaceCSV implements Serializable {
}
}
// Verify there isnt already a header that is the same; if it already exists,
// throw MetadataImportInvalidHeadingException
String header = authorityPrefix + element;
if (headings.contains(header)) {
throw new MetadataImportInvalidHeadingException("Duplicate heading found: " + header,
MetadataImportInvalidHeadingException.ENTRY,
columnCounter);
}
// Store the heading
headings.add(authorityPrefix + element);
}
@@ -303,7 +324,7 @@ public class DSpaceCSV implements Serializable {
// Specify default values
String[] defaultValues =
new String[] {
"dc.date.accessioned, dc.date.available, dc.date.updated, dc.description.provenance"
"dc.date.accessioned", "dc.date.available", "dc.date.updated", "dc.description.provenance"
};
String[] toIgnoreArray =
DSpaceServicesFactory.getInstance()
@@ -334,15 +355,15 @@ public class DSpaceCSV implements Serializable {
/**
* Set the value separator for multiple values stored in one csv value.
*
* Is set in bulkedit.cfg as valueseparator
* Is set in {@code bulkedit.cfg} as {@code valueseparator}.
*
* If not set, defaults to double pipe '||'
* If not set, defaults to double pipe '||'.
*/
private void setValueSeparator() {
// Get the value separator
valueSeparator = DSpaceServicesFactory.getInstance().getConfigurationService()
.getProperty("bulkedit.valueseparator");
if ((valueSeparator != null) && (!"".equals(valueSeparator.trim()))) {
if ((valueSeparator != null) && !valueSeparator.trim().isEmpty()) {
valueSeparator = valueSeparator.trim();
} else {
valueSeparator = "||";
@@ -357,7 +378,7 @@ public class DSpaceCSV implements Serializable {
/**
* Set the field separator use to separate fields in the csv.
*
* Is set in bulkedit.cfg as fieldseparator
* Is set in {@code bulkedit.cfg} as {@code fieldseparator}.
*
* If not set, defaults to comma ','.
*
@@ -368,7 +389,7 @@ public class DSpaceCSV implements Serializable {
// Get the value separator
fieldSeparator = DSpaceServicesFactory.getInstance().getConfigurationService()
.getProperty("bulkedit.fieldseparator");
if ((fieldSeparator != null) && (!"".equals(fieldSeparator.trim()))) {
if ((fieldSeparator != null) && !fieldSeparator.trim().isEmpty()) {
fieldSeparator = fieldSeparator.trim();
if ("tab".equals(fieldSeparator)) {
fieldSeparator = "\t";
@@ -392,15 +413,15 @@ public class DSpaceCSV implements Serializable {
/**
* Set the authority separator for value with authority data.
*
* Is set in dspace.cfg as bulkedit.authorityseparator
* Is set in {@code dspace.cfg} as {@code bulkedit.authorityseparator}.
*
* If not set, defaults to double colon '::'
* If not set, defaults to double colon '::'.
*/
private void setAuthoritySeparator() {
// Get the value separator
authoritySeparator = DSpaceServicesFactory.getInstance().getConfigurationService()
.getProperty("bulkedit.authorityseparator");
if ((authoritySeparator != null) && (!"".equals(authoritySeparator.trim()))) {
if ((authoritySeparator != null) && !authoritySeparator.trim().isEmpty()) {
authoritySeparator = authoritySeparator.trim();
} else {
authoritySeparator = "::";
@@ -505,7 +526,7 @@ public class DSpaceCSV implements Serializable {
int i = 0;
for (String part : bits) {
int bitcounter = part.length() - part.replaceAll("\"", "").length();
if ((part.startsWith("\"")) && ((!part.endsWith("\"")) || ((bitcounter & 1) == 1))) {
if (part.startsWith("\"") && (!part.endsWith("\"") || ((bitcounter & 1) == 1))) {
found = true;
String add = bits.get(i) + fieldSeparator + bits.get(i + 1);
bits.remove(i);
@@ -521,7 +542,7 @@ public class DSpaceCSV implements Serializable {
// Deal with quotes around the elements
int i = 0;
for (String part : bits) {
if ((part.startsWith("\"")) && (part.endsWith("\""))) {
if (part.startsWith("\"") && part.endsWith("\"")) {
part = part.substring(1, part.length() - 1);
bits.set(i, part);
}
@@ -561,7 +582,7 @@ public class DSpaceCSV implements Serializable {
for (String part : bits) {
if (i > 0) {
// Is this a last empty item?
if ((last) && (i == headings.size())) {
if (last && (i == headings.size())) {
part = "";
}
@@ -574,7 +595,7 @@ public class DSpaceCSV implements Serializable {
csvLine.add(headings.get(i - 1), null);
String[] elements = part.split(escapedValueSeparator);
for (String element : elements) {
if ((element != null) && (!"".equals(element))) {
if ((element != null) && !element.isEmpty()) {
csvLine.add(headings.get(i - 1), element);
}
}
@@ -626,18 +647,18 @@ public class DSpaceCSV implements Serializable {
public InputStream getInputStream() {
StringBuilder stringBuilder = new StringBuilder();
for (String csvLine : getCSVLinesAsStringArray()) {
stringBuilder.append(csvLine + "\n");
stringBuilder.append(csvLine).append("\n");
}
return IOUtils.toInputStream(stringBuilder.toString(), StandardCharsets.UTF_8);
}
/**
* Is it Ok to export this value? When exportAll is set to false, we don't export
* Is it okay to export this value? When exportAll is set to false, we don't export
* some of the metadata elements.
*
* The list can be configured via the key ignore-on-export in bulkedit.cfg
* The list can be configured via the key ignore-on-export in {@code bulkedit.cfg}.
*
* @param md The Metadatum to examine
* @param md The MetadataField to examine
* @return Whether or not it is OK to export this element
*/
protected boolean okToExport(MetadataField md) {
@@ -646,12 +667,8 @@ public class DSpaceCSV implements Serializable {
if (md.getQualifier() != null) {
key += "." + md.getQualifier();
}
if (ignore.get(key) != null) {
return false;
}
// Must be OK, so don't ignore
return true;
return ignore.get(key) == null;
}
/**

View File

@@ -0,0 +1,115 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.app.bulkedit;
import java.sql.SQLException;
import org.apache.commons.cli.ParseException;
import org.apache.commons.lang3.ArrayUtils;
import org.dspace.content.MetadataField;
import org.dspace.content.factory.ContentServiceFactory;
import org.dspace.content.service.MetadataFieldService;
import org.dspace.content.service.MetadataValueService;
import org.dspace.core.Context;
import org.dspace.scripts.DSpaceRunnable;
import org.dspace.services.ConfigurationService;
import org.dspace.services.factory.DSpaceServicesFactory;
import org.dspace.utils.DSpace;
/**
* {@link DSpaceRunnable} implementation to delete all the values of the given
* metadata field.
*
* @author Luca Giamminonni (luca.giamminonni at 4science.it)
*
*/
public class MetadataDeletion extends DSpaceRunnable<MetadataDeletionScriptConfiguration<MetadataDeletion>> {
private MetadataValueService metadataValueService;
private MetadataFieldService metadataFieldService;
private ConfigurationService configurationService;
private String metadataField;
private boolean list;
@Override
public void internalRun() throws Exception {
if (list) {
listErasableMetadata();
return;
}
Context context = new Context();
try {
context.turnOffAuthorisationSystem();
performMetadataValuesDeletion(context);
} finally {
context.restoreAuthSystemState();
context.complete();
}
}
private void listErasableMetadata() {
String[] erasableMetadata = getErasableMetadata();
if (ArrayUtils.isEmpty(erasableMetadata)) {
handler.logInfo("No fields has been configured to be cleared via bulk deletion");
} else {
handler.logInfo("The fields that can be bulk deleted are: " + String.join(", ", erasableMetadata));
}
}
private void performMetadataValuesDeletion(Context context) throws SQLException {
MetadataField field = metadataFieldService.findByString(context, metadataField, '.');
if (field == null) {
throw new IllegalArgumentException("No metadata field found with name " + metadataField);
}
if (!ArrayUtils.contains(getErasableMetadata(), metadataField)) {
throw new IllegalArgumentException("The given metadata field cannot be bulk deleted");
}
handler.logInfo(String.format("Deleting the field '%s' from all objects", metadataField));
metadataValueService.deleteByMetadataField(context, field);
}
private String[] getErasableMetadata() {
return configurationService.getArrayProperty("bulkedit.allow-bulk-deletion");
}
@Override
@SuppressWarnings("unchecked")
public MetadataDeletionScriptConfiguration<MetadataDeletion> getScriptConfiguration() {
return new DSpace().getServiceManager()
.getServiceByName("metadata-deletion", MetadataDeletionScriptConfiguration.class);
}
@Override
public void setup() throws ParseException {
metadataValueService = ContentServiceFactory.getInstance().getMetadataValueService();
metadataFieldService = ContentServiceFactory.getInstance().getMetadataFieldService();
configurationService = DSpaceServicesFactory.getInstance().getConfigurationService();
metadataField = commandLine.getOptionValue('m');
list = commandLine.hasOption('l');
if (!list && metadataField == null) {
throw new ParseException("One of the following parameters is required: -m or -l");
}
}
}

View File

@@ -0,0 +1,18 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.app.bulkedit;
/**
* The {@link MetadataDeletion} for CLI.
*
* @author Luca Giamminonni (luca.giamminonni at 4science.it)
*
*/
public class MetadataDeletionCli extends MetadataDeletion {
}

View File

@@ -0,0 +1,18 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.app.bulkedit;
/**
* Script configuration for {@link MetadataDeletionCli}.
*
* @author Luca Giamminonni (luca.giamminonni at 4science.it)
*
*/
public class MetadataDeletionCliScriptConfiguration extends MetadataDeletionScriptConfiguration<MetadataDeletionCli> {
}

View File

@@ -0,0 +1,49 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.app.bulkedit;
import org.apache.commons.cli.Options;
import org.dspace.scripts.configuration.ScriptConfiguration;
/**
* The {@link ScriptConfiguration} for the {@link MetadataDeletion} script.
*/
public class MetadataDeletionScriptConfiguration<T extends MetadataDeletion> extends ScriptConfiguration<T> {
private Class<T> dspaceRunnableClass;
@Override
public Options getOptions() {
if (options == null) {
Options options = new Options();
options.addOption("m", "metadata", true, "metadata field name");
options.addOption("l", "list", false, "lists the metadata fields that can be deleted");
super.options = options;
}
return options;
}
@Override
public Class<T> getDspaceRunnableClass() {
return dspaceRunnableClass;
}
/**
* Generic setter for the dspaceRunnableClass
* @param dspaceRunnableClass The dspaceRunnableClass to be set on this MetadataDeletionScriptConfiguration
*/
@Override
public void setDspaceRunnableClass(Class<T> dspaceRunnableClass) {
this.dspaceRunnableClass = dspaceRunnableClass;
}
}

View File

@@ -8,9 +8,12 @@
package org.dspace.app.bulkedit;
import java.sql.SQLException;
import java.util.UUID;
import org.apache.commons.cli.ParseException;
import org.apache.commons.lang3.StringUtils;
import org.dspace.app.util.factory.UtilServiceFactory;
import org.dspace.app.util.service.DSpaceObjectUtils;
import org.dspace.content.DSpaceObject;
import org.dspace.content.factory.ContentServiceFactory;
import org.dspace.content.service.MetadataDSpaceCsvExportService;
@@ -30,7 +33,7 @@ public class MetadataExport extends DSpaceRunnable<MetadataExportScriptConfigura
private boolean help = false;
private String filename = null;
private String handle = null;
private String identifier = null;
private boolean exportAllMetadata = false;
private boolean exportAllItems = false;
@@ -41,6 +44,8 @@ public class MetadataExport extends DSpaceRunnable<MetadataExportScriptConfigura
private EPersonService ePersonService = EPersonServiceFactory.getInstance().getEPersonService();
private DSpaceObjectUtils dSpaceObjectUtils = UtilServiceFactory.getInstance().getDSpaceObjectUtils();
@Override
public void internalRun() throws Exception {
@@ -57,7 +62,7 @@ public class MetadataExport extends DSpaceRunnable<MetadataExportScriptConfigura
handler.handleException(e);
}
DSpaceCSV dSpaceCSV = metadataDSpaceCsvExportService
.handleExport(context, exportAllItems, exportAllMetadata, handle,
.handleExport(context, exportAllItems, exportAllMetadata, identifier,
handler);
handler.writeFilestream(context, filename, dSpaceCSV.getInputStream(), EXPORT_CSV);
context.restoreAuthSystemState();
@@ -66,7 +71,7 @@ public class MetadataExport extends DSpaceRunnable<MetadataExportScriptConfigura
protected void logHelpInfo() {
handler.logInfo("\nfull export: metadata-export");
handler.logInfo("partial export: metadata-export -i handle");
handler.logInfo("partial export: metadata-export -i handle/UUID");
}
@Override
@@ -86,7 +91,7 @@ public class MetadataExport extends DSpaceRunnable<MetadataExportScriptConfigura
if (!commandLine.hasOption('i')) {
exportAllItems = true;
}
handle = commandLine.getOptionValue('i');
identifier = commandLine.getOptionValue('i');
filename = getFileNameForExportFile();
exportAllMetadata = commandLine.hasOption('a');
@@ -97,17 +102,20 @@ public class MetadataExport extends DSpaceRunnable<MetadataExportScriptConfigura
Context context = new Context();
try {
DSpaceObject dso = null;
if (StringUtils.isNotBlank(handle)) {
dso = HandleServiceFactory.getInstance().getHandleService().resolveToObject(context, handle);
if (StringUtils.isNotBlank(identifier)) {
dso = HandleServiceFactory.getInstance().getHandleService().resolveToObject(context, identifier);
if (dso == null) {
dso = dSpaceObjectUtils.findDSpaceObject(context, UUID.fromString(identifier));
}
} else {
dso = ContentServiceFactory.getInstance().getSiteService().findSite(context);
}
if (dso == null) {
throw new ParseException("A handle got given that wasn't able to be parsed to a DSpaceObject");
throw new ParseException("An identifier was given that wasn't able to be parsed to a DSpaceObject");
}
return dso.getID().toString() + ".csv";
} catch (SQLException e) {
handler.handleException("Something went wrong trying to retrieve DSO for handle: " + handle, e);
handler.handleException("Something went wrong trying to retrieve DSO for identifier: " + identifier, e);
}
return null;
}

View File

@@ -7,22 +7,14 @@
*/
package org.dspace.app.bulkedit;
import java.sql.SQLException;
import org.apache.commons.cli.Options;
import org.dspace.authorize.service.AuthorizeService;
import org.dspace.core.Context;
import org.dspace.scripts.configuration.ScriptConfiguration;
import org.springframework.beans.factory.annotation.Autowired;
/**
* The {@link ScriptConfiguration} for the {@link MetadataExport} script
*/
public class MetadataExportScriptConfiguration<T extends MetadataExport> extends ScriptConfiguration<T> {
@Autowired
private AuthorizeService authorizeService;
private Class<T> dspaceRunnableClass;
@Override
@@ -39,27 +31,15 @@ public class MetadataExportScriptConfiguration<T extends MetadataExport> extends
this.dspaceRunnableClass = dspaceRunnableClass;
}
@Override
public boolean isAllowedToExecute(Context context) {
try {
return authorizeService.isAdmin(context);
} catch (SQLException e) {
throw new RuntimeException("SQLException occurred when checking if the current user is an admin", e);
}
}
@Override
public Options getOptions() {
if (options == null) {
Options options = new Options();
options.addOption("i", "id", true, "ID or handle of thing to export (item, collection, or community)");
options.getOption("i").setType(String.class);
options.addOption("a", "all", false,
"include all metadata fields that are not normally changed (e.g. provenance)");
options.getOption("a").setType(boolean.class);
options.addOption("h", "help", false, "help");
options.getOption("h").setType(boolean.class);
super.options = options;

View File

@@ -0,0 +1,182 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.app.bulkedit;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.UUID;
import org.apache.commons.cli.DefaultParser;
import org.apache.commons.cli.DefaultParser.Builder;
import org.apache.commons.cli.ParseException;
import org.dspace.content.Item;
import org.dspace.content.MetadataDSpaceCsvExportServiceImpl;
import org.dspace.content.factory.ContentServiceFactory;
import org.dspace.content.service.CollectionService;
import org.dspace.content.service.CommunityService;
import org.dspace.content.service.MetadataDSpaceCsvExportService;
import org.dspace.core.Context;
import org.dspace.discovery.DiscoverQuery;
import org.dspace.discovery.IndexableObject;
import org.dspace.discovery.SearchService;
import org.dspace.discovery.SearchUtils;
import org.dspace.discovery.configuration.DiscoveryConfiguration;
import org.dspace.discovery.configuration.DiscoveryConfigurationService;
import org.dspace.discovery.indexobject.IndexableCollection;
import org.dspace.discovery.indexobject.IndexableCommunity;
import org.dspace.discovery.utils.DiscoverQueryBuilder;
import org.dspace.discovery.utils.parameter.QueryBuilderSearchFilter;
import org.dspace.eperson.factory.EPersonServiceFactory;
import org.dspace.eperson.service.EPersonService;
import org.dspace.scripts.DSpaceRunnable;
import org.dspace.sort.SortOption;
import org.dspace.utils.DSpace;
/**
* Metadata exporter to allow the batch export of metadata from a discovery search into a file
*
*/
public class MetadataExportSearch extends DSpaceRunnable<MetadataExportSearchScriptConfiguration> {
private static final String EXPORT_CSV = "exportCSV";
private boolean help = false;
private String identifier;
private String discoveryConfigName;
private String[] filterQueryStrings;
private boolean hasScope = false;
private String query;
private SearchService searchService;
private MetadataDSpaceCsvExportService metadataDSpaceCsvExportService;
private EPersonService ePersonService;
private DiscoveryConfigurationService discoveryConfigurationService;
private CommunityService communityService;
private CollectionService collectionService;
private DiscoverQueryBuilder queryBuilder;
@Override
public MetadataExportSearchScriptConfiguration getScriptConfiguration() {
return new DSpace().getServiceManager()
.getServiceByName("metadata-export-search", MetadataExportSearchScriptConfiguration.class);
}
@Override
public void setup() throws ParseException {
searchService = SearchUtils.getSearchService();
metadataDSpaceCsvExportService = new DSpace().getServiceManager()
.getServiceByName(
MetadataDSpaceCsvExportServiceImpl.class.getCanonicalName(),
MetadataDSpaceCsvExportService.class
);
ePersonService = EPersonServiceFactory.getInstance().getEPersonService();
discoveryConfigurationService = SearchUtils.getConfigurationService();
communityService = ContentServiceFactory.getInstance().getCommunityService();
collectionService = ContentServiceFactory.getInstance().getCollectionService();
queryBuilder = SearchUtils.getQueryBuilder();
if (commandLine.hasOption('h')) {
help = true;
return;
}
if (commandLine.hasOption('q')) {
query = commandLine.getOptionValue('q');
}
if (commandLine.hasOption('s')) {
hasScope = true;
identifier = commandLine.getOptionValue('s');
}
if (commandLine.hasOption('c')) {
discoveryConfigName = commandLine.getOptionValue('c');
}
if (commandLine.hasOption('f')) {
filterQueryStrings = commandLine.getOptionValues('f');
}
}
@Override
public void internalRun() throws Exception {
if (help) {
loghelpinfo();
printHelp();
return;
}
handler.logDebug("starting search export");
IndexableObject dso = null;
Context context = new Context();
context.setCurrentUser(ePersonService.find(context, this.getEpersonIdentifier()));
if (hasScope) {
dso = resolveScope(context, identifier);
}
DiscoveryConfiguration discoveryConfiguration =
discoveryConfigurationService.getDiscoveryConfiguration(discoveryConfigName);
List<QueryBuilderSearchFilter> queryBuilderSearchFilters = new ArrayList<>();
handler.logDebug("processing filter queries");
if (filterQueryStrings != null) {
for (String filterQueryString: filterQueryStrings) {
String field = filterQueryString.split(",", 2)[0];
String operator = filterQueryString.split("(,|=)", 3)[1];
String value = filterQueryString.split("=", 2)[1];
QueryBuilderSearchFilter queryBuilderSearchFilter =
new QueryBuilderSearchFilter(field, operator, value);
queryBuilderSearchFilters.add(queryBuilderSearchFilter);
}
}
handler.logDebug("building query");
DiscoverQuery discoverQuery =
queryBuilder.buildQuery(context, dso, discoveryConfiguration, query, queryBuilderSearchFilters,
"Item", 10, Long.getLong("0"), null, SortOption.DESCENDING);
handler.logDebug("creating iterator");
Iterator<Item> itemIterator = searchService.iteratorSearch(context, dso, discoverQuery);
handler.logDebug("creating dspacecsv");
DSpaceCSV dSpaceCSV = metadataDSpaceCsvExportService.export(context, itemIterator, true, handler);
handler.logDebug("writing to file " + getFileNameOrExportFile());
handler.writeFilestream(context, getFileNameOrExportFile(), dSpaceCSV.getInputStream(), EXPORT_CSV);
context.restoreAuthSystemState();
context.complete();
}
protected void loghelpinfo() {
handler.logInfo("metadata-export");
}
protected String getFileNameOrExportFile() {
return "metadataExportSearch.csv";
}
public IndexableObject resolveScope(Context context, String id) throws SQLException {
UUID uuid = UUID.fromString(id);
IndexableObject scopeObj = new IndexableCommunity(communityService.find(context, uuid));
if (scopeObj.getIndexedObject() == null) {
scopeObj = new IndexableCollection(collectionService.find(context, uuid));
}
return scopeObj;
}
@Override
protected StepResult parse(String[] args) throws ParseException {
commandLine = new DefaultParser().parse(getScriptConfiguration().getOptions(), args);
Builder builder = new DefaultParser().builder();
builder.setStripLeadingAndTrailingQuotes(false);
commandLine = builder.build().parse(getScriptConfiguration().getOptions(), args);
setup();
return StepResult.Continue;
}
}

View File

@@ -0,0 +1,20 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.app.bulkedit;
/**
* The cli version of the {@link MetadataExportSearch} script
*/
public class MetadataExportSearchCli extends MetadataExportSearch {
@Override
protected String getFileNameOrExportFile() {
return commandLine.getOptionValue('n');
}
}

View File

@@ -0,0 +1,26 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.app.bulkedit;
import org.apache.commons.cli.Options;
/**
* This is the CLI version of the {@link MetadataExportSearchScriptConfiguration} class that handles the
* configuration for the {@link MetadataExportSearchCli} script
*/
public class MetadataExportSearchCliScriptConfiguration
extends MetadataExportSearchScriptConfiguration<MetadataExportSearchCli> {
@Override
public Options getOptions() {
Options options = super.getOptions();
options.addOption("n", "filename", true, "the filename to export to");
return super.getOptions();
}
}

View File

@@ -0,0 +1,56 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.app.bulkedit;
import org.apache.commons.cli.Options;
import org.dspace.scripts.configuration.ScriptConfiguration;
/**
* The {@link ScriptConfiguration} for the {@link MetadataExportSearch} script
*/
public class MetadataExportSearchScriptConfiguration<T extends MetadataExportSearch> extends ScriptConfiguration<T> {
private Class<T> dspaceRunnableclass;
@Override
public Class<T> getDspaceRunnableClass() {
return dspaceRunnableclass;
}
@Override
public void setDspaceRunnableClass(Class<T> dspaceRunnableClass) {
this.dspaceRunnableclass = dspaceRunnableClass;
}
@Override
public Options getOptions() {
if (options == null) {
Options options = new Options();
options.addOption("q", "query", true,
"The discovery search string to will be used to match records. Not URL encoded");
options.getOption("q").setType(String.class);
options.addOption("s", "scope", true,
"UUID of a specific DSpace container (site, community or collection) to which the search has to be " +
"limited");
options.getOption("s").setType(String.class);
options.addOption("c", "configuration", true,
"The name of a Discovery configuration that should be used by this search");
options.getOption("c").setType(String.class);
options.addOption("f", "filter", true,
"Advanced search filter that has to be used to filter the result set, with syntax `<:filter-name>," +
"<:filter-operator>=<:filter-value>`. Not URL encoded. For example `author," +
"authority=5df05073-3be7-410d-8166-e254369e4166` or `title,contains=sample text`");
options.getOption("f").setType(String.class);
options.addOption("h", "help", false, "help");
super.options = options;
}
return options;
}
}

View File

@@ -25,6 +25,7 @@ import javax.annotation.Nullable;
import org.apache.commons.cli.ParseException;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.Logger;
import org.dspace.app.util.RelationshipUtils;
import org.dspace.authority.AuthorityValue;
import org.dspace.authority.factory.AuthorityServiceFactory;
import org.dspace.authority.service.AuthorityValueService;
@@ -51,16 +52,17 @@ import org.dspace.content.service.MetadataValueService;
import org.dspace.content.service.RelationshipService;
import org.dspace.content.service.RelationshipTypeService;
import org.dspace.content.service.WorkspaceItemService;
import org.dspace.core.ConfigurationManager;
import org.dspace.core.Constants;
import org.dspace.core.Context;
import org.dspace.core.LogManager;
import org.dspace.core.LogHelper;
import org.dspace.eperson.EPerson;
import org.dspace.eperson.factory.EPersonServiceFactory;
import org.dspace.handle.factory.HandleServiceFactory;
import org.dspace.handle.service.HandleService;
import org.dspace.scripts.DSpaceRunnable;
import org.dspace.scripts.handler.DSpaceRunnableHandler;
import org.dspace.services.ConfigurationService;
import org.dspace.services.factory.DSpaceServicesFactory;
import org.dspace.utils.DSpace;
import org.dspace.workflow.WorkflowException;
import org.dspace.workflow.WorkflowItem;
@@ -113,14 +115,14 @@ public class MetadataImport extends DSpaceRunnable<MetadataImportScriptConfigura
*
* @see #populateRefAndRowMap(DSpaceCSVLine, UUID)
*/
protected static HashMap<UUID, String> entityTypeMap = new HashMap<>();
protected HashMap<UUID, String> entityTypeMap = new HashMap<>();
/**
* Map of UUIDs to their relations that are referenced within any import with their referers.
* Map of UUIDs to their relations that are referenced within any import with their referrers.
*
* @see #populateEntityRelationMap(String, String, String)
*/
protected static HashMap<String, HashMap<String, ArrayList<String>>> entityRelationMap = new HashMap<>();
protected HashMap<String, HashMap<String, ArrayList<String>>> entityRelationMap = new HashMap<>();
/**
@@ -129,7 +131,7 @@ public class MetadataImport extends DSpaceRunnable<MetadataImportScriptConfigura
protected ArrayList<String> relationValidationErrors = new ArrayList<>();
/**
* Counter of rows proccssed in a CSV.
* Counter of rows processed in a CSV.
*/
protected Integer rowCount = 1;
@@ -158,6 +160,8 @@ public class MetadataImport extends DSpaceRunnable<MetadataImportScriptConfigura
protected EntityService entityService = ContentServiceFactory.getInstance().getEntityService();
protected AuthorityValueService authorityValueService = AuthorityServiceFactory.getInstance()
.getAuthorityValueService();
protected ConfigurationService configurationService
= DSpaceServicesFactory.getInstance().getConfigurationService();
/**
* Create an instance of the metadata importer. Requires a context and an array of CSV lines
@@ -419,7 +423,7 @@ public class MetadataImport extends DSpaceRunnable<MetadataImportScriptConfigura
// Do nothing
} else if ("expunge".equals(action)) {
// Does the configuration allow deletes?
if (!ConfigurationManager.getBooleanProperty("bulkedit", "allowexpunge", false)) {
if (!configurationService.getBooleanProperty("bulkedit.allowexpunge", false)) {
throw new MetadataImportException("'expunge' action denied by configuration");
}
@@ -490,7 +494,7 @@ public class MetadataImport extends DSpaceRunnable<MetadataImportScriptConfigura
// Check it has an owning collection
List<String> collections = line.get("collection");
if (collections == null) {
if (collections == null || collections.isEmpty()) {
throw new MetadataImportException(
"New items must have a 'collection' assigned in the form of a handle");
}
@@ -574,6 +578,10 @@ public class MetadataImport extends DSpaceRunnable<MetadataImportScriptConfigura
wfItem = workflowService.startWithoutNotify(c, wsItem);
}
} else {
// Add provenance info
String provenance = installItemService.getSubmittedByProvenanceMessage(c, wsItem.getItem());
itemService.addMetadata(c, item, MetadataSchemaEnum.DC.getName(),
"description", "provenance", "en", provenance);
// Install the item
installItemService.installItem(c, wsItem);
}
@@ -594,18 +602,19 @@ public class MetadataImport extends DSpaceRunnable<MetadataImportScriptConfigura
changes.add(whatHasChanged);
}
if (change) {
//only clear cache if changes have been made.
c.uncacheEntity(wsItem);
c.uncacheEntity(wfItem);
c.uncacheEntity(item);
if (change && (rowCount % configurationService.getIntProperty("bulkedit.change.commit.count", 100) == 0)) {
c.commit();
handler.logInfo(LogHelper.getHeader(c, "metadata_import_commit", "lineNumber=" + rowCount));
}
populateRefAndRowMap(line, item == null ? null : item.getID());
// keep track of current rows processed
rowCount++;
}
if (change) {
c.commit();
}
c.setMode(originalMode);
c.setMode(Context.Mode.READ_ONLY);
// Return the changes
@@ -637,7 +646,7 @@ public class MetadataImport extends DSpaceRunnable<MetadataImportScriptConfigura
all += part + ",";
}
all = all.substring(0, all.length());
log.debug(LogManager.getHeader(c, "metadata_import",
log.debug(LogHelper.getHeader(c, "metadata_import",
"item_id=" + item.getID() + ",fromCSV=" + all));
// Don't compare collections or actions or rowNames
@@ -674,7 +683,7 @@ public class MetadataImport extends DSpaceRunnable<MetadataImportScriptConfigura
qualifier = qualifier.substring(0, qualifier.indexOf('['));
}
}
log.debug(LogManager.getHeader(c, "metadata_import",
log.debug(LogHelper.getHeader(c, "metadata_import",
"item_id=" + item.getID() + ",fromCSV=" + all +
",looking_for_schema=" + schema +
",looking_for_element=" + element +
@@ -694,7 +703,7 @@ public class MetadataImport extends DSpaceRunnable<MetadataImportScriptConfigura
.getConfidence() : Choices.CF_ACCEPTED);
}
i++;
log.debug(LogManager.getHeader(c, "metadata_import",
log.debug(LogHelper.getHeader(c, "metadata_import",
"item_id=" + item.getID() + ",fromCSV=" + all +
",found=" + dcv.getValue()));
}
@@ -745,7 +754,7 @@ public class MetadataImport extends DSpaceRunnable<MetadataImportScriptConfigura
// column "dc.contributor.author" so don't remove it
if ((value != null) && (!"".equals(value)) && (!contains(value, fromCSV)) && fromAuthority == null) {
// Remove it
log.debug(LogManager.getHeader(c, "metadata_import",
log.debug(LogHelper.getHeader(c, "metadata_import",
"item_id=" + item.getID() + ",fromCSV=" + all +
",removing_schema=" + schema +
",removing_element=" + element +
@@ -816,8 +825,10 @@ public class MetadataImport extends DSpaceRunnable<MetadataImportScriptConfigura
addRelationships(c, item, element, values);
} else {
itemService.clearMetadata(c, item, schema, element, qualifier, language);
itemService.addMetadata(c, item, schema, element, qualifier,
language, values, authorities, confidences);
if (!values.isEmpty()) {
itemService.addMetadata(c, item, schema, element, qualifier,
language, values, authorities, confidences);
}
itemService.update(c, item);
}
}
@@ -887,10 +898,10 @@ public class MetadataImport extends DSpaceRunnable<MetadataImportScriptConfigura
Entity relationEntity = getEntity(c, value);
// Get relationship type of entity and item
String relationEntityRelationshipType = itemService.getMetadata(relationEntity.getItem(),
"relationship", "type",
null, Item.ANY).get(0).getValue();
String itemRelationshipType = itemService.getMetadata(item, "relationship", "type",
null, Item.ANY).get(0).getValue();
"dspace", "entity",
"type", Item.ANY).get(0).getValue();
String itemRelationshipType = itemService.getMetadata(item, "dspace", "entity",
"type", Item.ANY).get(0).getValue();
// Get the correct RelationshipType based on typeName
List<RelationshipType> relType = relationshipTypeService.findByLeftwardOrRightwardTypeName(c, typeName);
@@ -921,11 +932,10 @@ public class MetadataImport extends DSpaceRunnable<MetadataImportScriptConfigura
rightItem = item;
}
// Create the relationship
int leftPlace = relationshipService.findNextLeftPlaceByLeftItem(c, leftItem);
int rightPlace = relationshipService.findNextRightPlaceByRightItem(c, rightItem);
Relationship persistedRelationship = relationshipService.create(c, leftItem, rightItem,
foundRelationshipType, leftPlace, rightPlace);
// Create the relationship, appending to the end
Relationship persistedRelationship = relationshipService.create(
c, leftItem, rightItem, foundRelationshipType, -1, -1
);
relationshipService.update(c, persistedRelationship);
}
@@ -1113,8 +1123,8 @@ public class MetadataImport extends DSpaceRunnable<MetadataImportScriptConfigura
.getAuthoritySeparator() + dcv.getConfidence();
}
// Add it
if ((value != null) && (!"".equals(value))) {
// Add it, if value is not blank
if (value != null && StringUtils.isNotBlank(value)) {
changes.registerAdd(dcv);
}
}
@@ -1359,7 +1369,7 @@ public class MetadataImport extends DSpaceRunnable<MetadataImportScriptConfigura
* is the field is defined as authority controlled
*/
private static boolean isAuthorityControlledField(String md) {
String mdf = StringUtils.substringAfter(md, ":");
String mdf = md.contains(":") ? StringUtils.substringAfter(md, ":") : md;
mdf = StringUtils.substringBefore(mdf, "[");
return authorityControlled.contains(mdf);
}
@@ -1368,12 +1378,12 @@ public class MetadataImport extends DSpaceRunnable<MetadataImportScriptConfigura
* Set authority controlled fields
*/
private void setAuthorizedMetadataFields() {
authorityControlled = new HashSet<String>();
Enumeration propertyNames = ConfigurationManager.getProperties().propertyNames();
authorityControlled = new HashSet<>();
Enumeration propertyNames = configurationService.getProperties().propertyNames();
while (propertyNames.hasMoreElements()) {
String key = ((String) propertyNames.nextElement()).trim();
if (key.startsWith(AC_PREFIX)
&& ConfigurationManager.getBooleanProperty(key, false)) {
&& configurationService.getBooleanProperty(key, false)) {
authorityControlled.add(key.substring(AC_PREFIX.length()));
}
}
@@ -1403,16 +1413,16 @@ public class MetadataImport extends DSpaceRunnable<MetadataImportScriptConfigura
//Populate the EntityRelationMap
populateEntityRelationMap(uuid, key, originId.toString());
}
} else {
newLine.add(key, null);
}
} else {
if (line.get(key).size() > 1) {
if (line.get(key).size() > 0) {
for (String value : line.get(key)) {
newLine.add(key, value);
}
} else {
if (line.get(key).size() > 0) {
newLine.add(key, line.get(key).get(0));
}
newLine.add(key, null);
}
}
}
@@ -1484,7 +1494,7 @@ public class MetadataImport extends DSpaceRunnable<MetadataImportScriptConfigura
}
}
//Populate entityTypeMap
if (key.equalsIgnoreCase("relationship.type") && line.get(key).size() > 0) {
if (key.equalsIgnoreCase("dspace.entity.type") && line.get(key).size() > 0) {
if (uuid == null) {
entityTypeMap.put(new UUID(0, rowCount), line.get(key).get(0));
} else {
@@ -1517,6 +1527,9 @@ public class MetadataImport extends DSpaceRunnable<MetadataImportScriptConfigura
throw new MetadataImportException("Error in CSV row " + rowCount + ":\n" +
"Not a UUID or indirect entity reference: '" + reference + "'");
}
}
if (reference.contains("::virtual::")) {
return UUID.fromString(StringUtils.substringBefore(reference, "::virtual::"));
} else if (!reference.startsWith("rowName:")) { // Not a rowName ref; so it's a metadata value reference
MetadataValueService metadataValueService = ContentServiceFactory.getInstance().getMetadataValueService();
MetadataFieldService metadataFieldService =
@@ -1645,8 +1658,8 @@ public class MetadataImport extends DSpaceRunnable<MetadataImportScriptConfigura
if (itemService.find(c, UUID.fromString(targetUUID)) != null) {
targetItem = itemService.find(c, UUID.fromString(targetUUID));
List<MetadataValue> relTypes = itemService.
getMetadata(targetItem, "relationship", "type",
null, Item.ANY);
getMetadata(targetItem, "dspace", "entity",
"type", Item.ANY);
String relTypeValue = null;
if (relTypes.size() > 0) {
relTypeValue = relTypes.get(0).getValue();
@@ -1688,19 +1701,39 @@ public class MetadataImport extends DSpaceRunnable<MetadataImportScriptConfigura
// Add to errors if Realtionship.type cannot be derived.
Item originItem = null;
if (itemService.find(c, UUID.fromString(targetUUID)) != null) {
originItem = itemService.find(c, UUID.fromString(originRefererUUID));
List<MetadataValue> relTypes = itemService.
getMetadata(originItem, "relationship",
"type", null, Item.ANY);
String relTypeValue = null;
if (relTypes.size() > 0) {
relTypeValue = relTypes.get(0).getValue();
DSpaceCSVLine dSpaceCSVLine = this.csv.getCSVLines()
.get(Integer.valueOf(originRow) - 1);
List<String> relTypes = dSpaceCSVLine.get("dspace.entity.type");
if (relTypes == null || relTypes.isEmpty()) {
dSpaceCSVLine.get("dspace.entity.type[]");
}
if (relTypes != null && relTypes.size() > 0) {
String relTypeValue = relTypes.get(0);
relTypeValue = StringUtils.remove(relTypeValue, "\"").trim();
originType = entityTypeService.findByEntityType(c, relTypeValue).getLabel();
validateTypesByTypeByTypeName(c, targetType, originType, typeName, originRow);
} else {
relationValidationErrors.add("Error on CSV row " + originRow + ":" + "\n" +
"Cannot resolve Entity type for reference: "
+ originRefererUUID);
originItem = itemService.find(c, UUID.fromString(originRefererUUID));
if (originItem != null) {
List<MetadataValue> mdv = itemService.getMetadata(originItem,
"dspace",
"entity", "type",
Item.ANY);
if (!mdv.isEmpty()) {
String relTypeValue = mdv.get(0).getValue();
originType = entityTypeService.findByEntityType(c, relTypeValue).getLabel();
validateTypesByTypeByTypeName(c, targetType, originType, typeName,
originRow);
} else {
relationValidationErrors.add("Error on CSV row " + originRow + ":" + "\n" +
"Cannot resolve Entity type for reference: " + originRefererUUID);
}
} else {
relationValidationErrors.add("Error on CSV row " + originRow + ":" + "\n" +
"Cannot resolve Entity type for reference: "
+ originRefererUUID);
}
}
} else {
@@ -1727,11 +1760,11 @@ public class MetadataImport extends DSpaceRunnable<MetadataImportScriptConfigura
}
/**
* Generates a list of potenital Relationship Types given a typeName and attempts to match the given
* Generates a list of potential Relationship Types given a typeName and attempts to match the given
* targetType and originType to a Relationship Type in the list.
*
* @param targetType entity type of target.
* @param originType entity type of origin referer.
* @param originType entity type of origin referrer.
* @param typeName left or right typeName of the respective Relationship.
* @return the UUID of the item.
*/
@@ -1767,36 +1800,7 @@ public class MetadataImport extends DSpaceRunnable<MetadataImportScriptConfigura
*/
private RelationshipType matchRelationshipType(List<RelationshipType> relTypes,
String targetType, String originType, String originTypeName) {
RelationshipType foundRelationshipType = null;
if (originTypeName.split("\\.").length > 1) {
originTypeName = originTypeName.split("\\.")[1];
}
for (RelationshipType relationshipType : relTypes) {
// Is origin type leftward or righward
boolean isLeft = false;
if (relationshipType.getLeftType().getLabel().equalsIgnoreCase(originType)) {
isLeft = true;
}
if (isLeft) {
// Validate typeName reference
if (!relationshipType.getLeftwardType().equalsIgnoreCase(originTypeName)) {
continue;
}
if (relationshipType.getLeftType().getLabel().equalsIgnoreCase(originType) &&
relationshipType.getRightType().getLabel().equalsIgnoreCase(targetType)) {
foundRelationshipType = relationshipType;
}
} else {
if (!relationshipType.getRightwardType().equalsIgnoreCase(originTypeName)) {
continue;
}
if (relationshipType.getLeftType().getLabel().equalsIgnoreCase(targetType) &&
relationshipType.getRightType().getLabel().equalsIgnoreCase(originType)) {
foundRelationshipType = relationshipType;
}
}
}
return foundRelationshipType;
return RelationshipUtils.matchRelationshipType(relTypes, targetType, originType, originTypeName);
}
}
}

View File

@@ -19,7 +19,6 @@ public class MetadataImportCliScriptConfiguration extends MetadataImportScriptCo
public Options getOptions() {
Options options = super.getOptions();
options.addOption("e", "email", true, "email address or user id of user (required if adding new items)");
options.getOption("e").setType(String.class);
options.getOption("e").setRequired(true);
super.options = options;
return options;

View File

@@ -8,22 +8,15 @@
package org.dspace.app.bulkedit;
import java.io.InputStream;
import java.sql.SQLException;
import org.apache.commons.cli.Options;
import org.dspace.authorize.service.AuthorizeService;
import org.dspace.core.Context;
import org.dspace.scripts.configuration.ScriptConfiguration;
import org.springframework.beans.factory.annotation.Autowired;
/**
* The {@link ScriptConfiguration} for the {@link MetadataImport} script
*/
public class MetadataImportScriptConfiguration<T extends MetadataImport> extends ScriptConfiguration<T> {
@Autowired
private AuthorizeService authorizeService;
private Class<T> dspaceRunnableClass;
@Override
@@ -40,15 +33,6 @@ public class MetadataImportScriptConfiguration<T extends MetadataImport> extends
this.dspaceRunnableClass = dspaceRunnableClass;
}
@Override
public boolean isAllowedToExecute(Context context) {
try {
return authorizeService.isAdmin(context);
} catch (SQLException e) {
throw new RuntimeException("SQLException occurred when checking if the current user is an admin", e);
}
}
@Override
public Options getOptions() {
if (options == null) {
@@ -59,20 +43,14 @@ public class MetadataImportScriptConfiguration<T extends MetadataImport> extends
options.getOption("f").setRequired(true);
options.addOption("s", "silent", false,
"silent operation - doesn't request confirmation of changes USE WITH CAUTION");
options.getOption("s").setType(boolean.class);
options.addOption("w", "workflow", false, "workflow - when adding new items, use collection workflow");
options.getOption("w").setType(boolean.class);
options.addOption("n", "notify", false,
"notify - when adding new items using a workflow, send notification emails");
options.getOption("n").setType(boolean.class);
options.addOption("v", "validate-only", false,
"validate - just validate the csv, don't run the import");
options.getOption("v").setType(boolean.class);
options.addOption("t", "template", false,
"template - when adding new items, use the collection template (if it exists)");
options.getOption("t").setType(boolean.class);
options.addOption("h", "help", false, "help");
options.getOption("h").setType(boolean.class);
super.options = options;
}

View File

@@ -17,12 +17,11 @@ import java.util.UUID;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.DefaultParser;
import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.Option;
import org.apache.commons.cli.OptionBuilder;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
import org.apache.commons.cli.PosixParser;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.dspace.checker.BitstreamDispatcher;
@@ -87,7 +86,7 @@ public final class ChecksumChecker {
*/
public static void main(String[] args) throws SQLException {
// set up command line parser
CommandLineParser parser = new PosixParser();
CommandLineParser parser = new DefaultParser();
CommandLine line = null;
// create an options object and populate it
@@ -102,19 +101,21 @@ public final class ChecksumChecker {
options.addOption("a", "handle", true, "Specify a handle to check");
options.addOption("v", "verbose", false, "Report all processing");
OptionBuilder.withArgName("bitstream-ids").hasArgs().withDescription(
"Space separated list of bitstream ids");
Option useBitstreamIds = OptionBuilder.create('b');
Option option;
options.addOption(useBitstreamIds);
option = Option.builder("b")
.longOpt("bitstream-ids")
.hasArgs()
.desc("Space separated list of bitstream ids")
.build();
options.addOption(option);
options.addOption("p", "prune", false, "Prune configuration file");
options.addOption(OptionBuilder
.withArgName("prune")
.hasOptionalArgs(1)
.withDescription(
"Prune old results (optionally using specified properties file for configuration)")
.create('p'));
option = Option.builder("p")
.longOpt("prune")
.optionalArg(true)
.desc("Prune old results (optionally using specified properties file for configuration)")
.build();
options.addOption(option);
try {
line = parser.parse(options, args);

View File

@@ -0,0 +1,152 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.app.client;
import static org.apache.commons.collections4.ListUtils.emptyIfNull;
import java.util.List;
import org.apache.http.HttpRequestInterceptor;
import org.apache.http.HttpResponseInterceptor;
import org.apache.http.client.HttpClient;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.dspace.services.ConfigurationService;
import org.dspace.utils.DSpace;
import org.springframework.beans.factory.annotation.Autowired;
/**
* Factory of {@link HttpClient} with common configurations.
*
* @author Luca Giamminonni (luca.giamminonni at 4science.it)
*
*/
public class DSpaceHttpClientFactory {
@Autowired
private ConfigurationService configurationService;
@Autowired
private DSpaceProxyRoutePlanner proxyRoutePlanner;
@Autowired(required = false)
private List<HttpRequestInterceptor> requestInterceptors;
@Autowired(required = false)
private List<HttpResponseInterceptor> responseInterceptors;
/**
* Get an instance of {@link DSpaceHttpClientFactory} from the Spring context.
* @return the bean instance
*/
public static DSpaceHttpClientFactory getInstance() {
return new DSpace().getSingletonService(DSpaceHttpClientFactory.class);
}
/**
* Build an instance of {@link HttpClient} setting the proxy if configured.
*
* @return the client
*/
public CloseableHttpClient build() {
return build(HttpClientBuilder.create(), true);
}
/**
* return a Builder if an instance of {@link HttpClient} pre-setting the proxy if configured.
*
* @return the client
*/
public HttpClientBuilder builder(boolean setProxy) {
HttpClientBuilder clientBuilder = HttpClientBuilder.create();
if (setProxy) {
clientBuilder.setRoutePlanner(proxyRoutePlanner);
}
getRequestInterceptors().forEach(clientBuilder::addInterceptorLast);
getResponseInterceptors().forEach(clientBuilder::addInterceptorLast);
return clientBuilder;
}
/**
* Build an instance of {@link HttpClient} without setting the proxy, even if
* configured.
*
* @return the client
*/
public CloseableHttpClient buildWithoutProxy() {
return build(HttpClientBuilder.create(), false);
}
/**
* Build an instance of {@link HttpClient} setting the proxy if configured,
* disabling automatic retries and setting the maximum total connection.
*
* @param maxConnTotal the maximum total connection value
* @return the client
*/
public CloseableHttpClient buildWithoutAutomaticRetries(int maxConnTotal) {
HttpClientBuilder clientBuilder = HttpClientBuilder.create()
.disableAutomaticRetries()
.setMaxConnTotal(maxConnTotal);
return build(clientBuilder, true);
}
/**
* Build an instance of {@link HttpClient} setting the proxy if configured with
* the given request configuration.
* @param requestConfig the request configuration
* @return the client
*/
public CloseableHttpClient buildWithRequestConfig(RequestConfig requestConfig) {
HttpClientBuilder httpClientBuilder = HttpClientBuilder.create()
.setDefaultRequestConfig(requestConfig);
return build(httpClientBuilder, true);
}
private CloseableHttpClient build(HttpClientBuilder clientBuilder, boolean setProxy) {
if (setProxy) {
clientBuilder.setRoutePlanner(proxyRoutePlanner);
}
getRequestInterceptors().forEach(clientBuilder::addInterceptorLast);
getResponseInterceptors().forEach(clientBuilder::addInterceptorLast);
return clientBuilder.build();
}
public ConfigurationService getConfigurationService() {
return configurationService;
}
public void setConfigurationService(ConfigurationService configurationService) {
this.configurationService = configurationService;
}
public List<HttpRequestInterceptor> getRequestInterceptors() {
return emptyIfNull(requestInterceptors);
}
public void setRequestInterceptors(List<HttpRequestInterceptor> requestInterceptors) {
this.requestInterceptors = requestInterceptors;
}
public List<HttpResponseInterceptor> getResponseInterceptors() {
return emptyIfNull(responseInterceptors);
}
public void setResponseInterceptors(List<HttpResponseInterceptor> responseInterceptors) {
this.responseInterceptors = responseInterceptors;
}
public DSpaceProxyRoutePlanner getProxyRoutePlanner() {
return proxyRoutePlanner;
}
public void setProxyRoutePlanner(DSpaceProxyRoutePlanner proxyRoutePlanner) {
this.proxyRoutePlanner = proxyRoutePlanner;
}
}

View File

@@ -0,0 +1,73 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.app.client;
import java.util.Arrays;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.HttpException;
import org.apache.http.HttpHost;
import org.apache.http.HttpRequest;
import org.apache.http.impl.conn.DefaultRoutePlanner;
import org.apache.http.protocol.HttpContext;
import org.dspace.services.ConfigurationService;
/**
* Extension of {@link DefaultRoutePlanner} that determine the proxy based on
* the configuration service, ignoring configured hosts.
*
* @author Luca Giamminonni (luca.giamminonni at 4science.it)
*
*/
public class DSpaceProxyRoutePlanner extends DefaultRoutePlanner {
private ConfigurationService configurationService;
public DSpaceProxyRoutePlanner(ConfigurationService configurationService) {
super(null);
this.configurationService = configurationService;
}
@Override
protected HttpHost determineProxy(HttpHost target, HttpRequest request, HttpContext context) throws HttpException {
if (isTargetHostConfiguredToBeIgnored(target)) {
return null;
}
String proxyHost = configurationService.getProperty("http.proxy.host");
String proxyPort = configurationService.getProperty("http.proxy.port");
if (StringUtils.isAnyBlank(proxyHost, proxyPort)) {
return null;
}
try {
return new HttpHost(proxyHost, Integer.parseInt(proxyPort), "http");
} catch (NumberFormatException e) {
throw new RuntimeException("Invalid proxy port configuration: " + proxyPort);
}
}
private boolean isTargetHostConfiguredToBeIgnored(HttpHost target) {
String[] hostsToIgnore = configurationService.getArrayProperty("http.proxy.hosts-to-ignore");
if (ArrayUtils.isEmpty(hostsToIgnore)) {
return false;
}
return Arrays.stream(hostsToIgnore)
.anyMatch(host -> matchesHost(host, target.getHostName()));
}
private boolean matchesHost(String hostPattern, String hostName) {
if (hostName.equals(hostPattern)) {
return true;
} else if (hostPattern.startsWith("*")) {
return hostName.endsWith(StringUtils.removeStart(hostPattern, "*"));
} else if (hostPattern.endsWith("*")) {
return hostName.startsWith(StringUtils.removeEnd(hostPattern, "*"));
}
return false;
}
}

View File

@@ -0,0 +1,32 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.app.exception;
/**
* This class provides an exception to be used when trying to save a resource
* that already exists.
*
* @author Luca Giamminonni (luca.giamminonni at 4science.it)
*
*/
public class ResourceAlreadyExistsException extends RuntimeException {
private static final long serialVersionUID = 1L;
/**
* Create a ResourceAlreadyExistsException with a message and the already
* existing resource.
*
* @param message the error message
*/
public ResourceAlreadyExistsException(String message) {
super(message);
}
}

View File

@@ -13,11 +13,8 @@ import java.util.Iterator;
import java.util.List;
import java.util.UUID;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.PosixParser;
import org.apache.commons.cli.ParseException;
import org.apache.commons.lang3.StringUtils;
import org.dspace.authorize.AuthorizeException;
import org.dspace.content.Collection;
import org.dspace.content.DSpaceObject;
@@ -36,224 +33,223 @@ import org.dspace.harvest.HarvestingException;
import org.dspace.harvest.OAIHarvester;
import org.dspace.harvest.factory.HarvestServiceFactory;
import org.dspace.harvest.service.HarvestedCollectionService;
import org.dspace.scripts.DSpaceRunnable;
import org.dspace.utils.DSpace;
/**
* Test class for harvested collections.
*
* @author Alexey Maslov
*/
public class Harvest {
private static Context context;
public class Harvest extends DSpaceRunnable<HarvestScriptConfiguration> {
private static final HarvestedCollectionService harvestedCollectionService =
HarvestServiceFactory.getInstance().getHarvestedCollectionService();
private static final EPersonService ePersonService = EPersonServiceFactory.getInstance().getEPersonService();
private static final CollectionService collectionService =
ContentServiceFactory.getInstance().getCollectionService();
private HarvestedCollectionService harvestedCollectionService;
protected EPersonService ePersonService;
private CollectionService collectionService;
public static void main(String[] argv) throws Exception {
// create an options object and populate it
CommandLineParser parser = new PosixParser();
private boolean help;
private String command = null;
private String collection = null;
private String oaiSource = null;
private String oaiSetID = null;
private String metadataKey = null;
private int harvestType = 0;
Options options = new Options();
options.addOption("p", "purge", false, "delete all items in the collection");
options.addOption("r", "run", false, "run the standard harvest procedure");
options.addOption("g", "ping", false, "test the OAI server and set");
options.addOption("o", "once", false, "run the harvest procedure with specified parameters");
options.addOption("s", "setup", false, "Set the collection up for harvesting");
options.addOption("S", "start", false, "start the harvest loop");
options.addOption("R", "reset", false, "reset harvest status on all collections");
options.addOption("P", "purge", false, "purge all harvestable collections");
protected Context context;
options.addOption("e", "eperson", true,
"eperson");
options.addOption("c", "collection", true,
"harvesting collection (handle or id)");
options.addOption("t", "type", true,
"type of harvesting (0 for none)");
options.addOption("a", "address", true,
"address of the OAI-PMH server");
options.addOption("i", "oai_set_id", true,
"id of the PMH set representing the harvested collection");
options.addOption("m", "metadata_format", true,
"the name of the desired metadata format for harvesting, resolved to namespace and " +
"crosswalk in dspace.cfg");
public HarvestScriptConfiguration getScriptConfiguration() {
return new DSpace().getServiceManager()
.getServiceByName("harvest", HarvestScriptConfiguration.class);
}
options.addOption("h", "help", false, "help");
public void setup() throws ParseException {
harvestedCollectionService =
HarvestServiceFactory.getInstance().getHarvestedCollectionService();
ePersonService = EPersonServiceFactory.getInstance().getEPersonService();
collectionService =
ContentServiceFactory.getInstance().getCollectionService();
CommandLine line = parser.parse(options, argv);
assignCurrentUserInContext();
String command = null;
String eperson = null;
String collection = null;
String oaiSource = null;
String oaiSetID = null;
String metadataKey = null;
int harvestType = 0;
if (line.hasOption('h')) {
HelpFormatter myhelp = new HelpFormatter();
myhelp.printHelp("Harvest\n", options);
System.out.println("\nPING OAI server: Harvest -g -a oai_source -i oai_set_id");
System.out.println(
"RUNONCE harvest with arbitrary options: Harvest -o -e eperson -c collection -t harvest_type -a " +
"oai_source -i oai_set_id -m metadata_format");
System.out.println(
"SETUP a collection for harvesting: Harvest -s -c collection -t harvest_type -a oai_source -i " +
"oai_set_id -m metadata_format");
System.out.println("RUN harvest once: Harvest -r -e eperson -c collection");
System.out.println("START harvest scheduler: Harvest -S");
System.out.println("RESET all harvest status: Harvest -R");
System.out.println("PURGE a collection of items and settings: Harvest -p -e eperson -c collection");
System.out.println("PURGE all harvestable collections: Harvest -P -e eperson");
help = commandLine.hasOption('h');
System.exit(0);
}
if (line.hasOption('s')) {
if (commandLine.hasOption('s')) {
command = "config";
}
if (line.hasOption('p')) {
if (commandLine.hasOption('p')) {
command = "purge";
}
if (line.hasOption('r')) {
if (commandLine.hasOption('r')) {
command = "run";
}
if (line.hasOption('g')) {
if (commandLine.hasOption('g')) {
command = "ping";
}
if (line.hasOption('o')) {
command = "runOnce";
}
if (line.hasOption('S')) {
if (commandLine.hasOption('S')) {
command = "start";
}
if (line.hasOption('R')) {
if (commandLine.hasOption('R')) {
command = "reset";
}
if (line.hasOption('P')) {
if (commandLine.hasOption('P')) {
command = "purgeAll";
}
if (line.hasOption('e')) {
eperson = line.getOptionValue('e');
if (commandLine.hasOption('o')) {
command = "reimport";
}
if (line.hasOption('c')) {
collection = line.getOptionValue('c');
if (commandLine.hasOption('c')) {
collection = commandLine.getOptionValue('c');
}
if (line.hasOption('t')) {
harvestType = Integer.parseInt(line.getOptionValue('t'));
if (commandLine.hasOption('t')) {
harvestType = Integer.parseInt(commandLine.getOptionValue('t'));
} else {
harvestType = 0;
}
if (line.hasOption('a')) {
oaiSource = line.getOptionValue('a');
if (commandLine.hasOption('a')) {
oaiSource = commandLine.getOptionValue('a');
}
if (line.hasOption('i')) {
oaiSetID = line.getOptionValue('i');
if (commandLine.hasOption('i')) {
oaiSetID = commandLine.getOptionValue('i');
}
if (line.hasOption('m')) {
metadataKey = line.getOptionValue('m');
if (commandLine.hasOption('m')) {
metadataKey = commandLine.getOptionValue('m');
}
}
/**
* This method will assign the currentUser to the {@link Context} variable which is also created in this method.
* The instance of the method in this class will fetch the EPersonIdentifier from this class, this identifier
* was given to this class upon instantiation, it'll then be used to find the {@link EPerson} associated with it
* and this {@link EPerson} will be set as the currentUser of the created {@link Context}
* @throws ParseException If something went wrong with the retrieval of the EPerson Identifier
*/
protected void assignCurrentUserInContext() throws ParseException {
UUID currentUserUuid = this.getEpersonIdentifier();
try {
this.context = new Context(Context.Mode.BATCH_EDIT);
EPerson eperson = ePersonService.find(context, currentUserUuid);
if (eperson == null) {
super.handler.logError("EPerson not found: " + currentUserUuid);
throw new IllegalArgumentException("Unable to find a user with uuid: " + currentUserUuid);
}
this.context.setCurrentUser(eperson);
} catch (SQLException e) {
handler.handleException("Something went wrong trying to fetch eperson for uuid: " + currentUserUuid, e);
}
}
public void internalRun() throws Exception {
if (help) {
printHelp();
handler.logInfo("PING OAI server: Harvest -g -a oai_source -i oai_set_id");
handler.logInfo(
"SETUP a collection for harvesting: Harvest -s -c collection -t harvest_type -a oai_source -i " +
"oai_set_id -m metadata_format");
handler.logInfo("RUN harvest once: Harvest -r -e eperson -c collection");
handler.logInfo("START harvest scheduler: Harvest -S");
handler.logInfo("RESET all harvest status: Harvest -R");
handler.logInfo("PURGE a collection of items and settings: Harvest -p -e eperson -c collection");
handler.logInfo("PURGE all harvestable collections: Harvest -P -e eperson");
return;
}
// Instantiate our class
Harvest harvester = new Harvest();
harvester.context = new Context(Context.Mode.BATCH_EDIT);
// Check our options
if (command == null) {
System.out
.println("Error - no parameters specified (run with -h flag for details)");
System.exit(1);
if (StringUtils.isBlank(command)) {
handler.logError("No parameters specified (run with -h flag for details)");
throw new UnsupportedOperationException("No command specified");
} else if ("run".equals(command)) {
// Run a single harvest cycle on a collection using saved settings.
if (collection == null || eperson == null) {
System.out
.println("Error - a target collection and eperson must be provided");
System.out.println(" (run with -h flag for details)");
System.exit(1);
if (collection == null || context.getCurrentUser() == null) {
handler.logError("A target collection and eperson must be provided (run with -h flag for details)");
throw new UnsupportedOperationException("A target collection and eperson must be provided");
}
harvester.runHarvest(collection, eperson);
runHarvest(context, collection);
} else if ("start".equals(command)) {
// start the harvest loop
startHarvester();
} else if ("reset".equals(command)) {
// reset harvesting status
resetHarvesting();
resetHarvesting(context);
} else if ("purgeAll".equals(command)) {
// purge all collections that are set up for harvesting (obviously for testing purposes only)
if (eperson == null) {
System.out
.println("Error - an eperson must be provided");
System.out.println(" (run with -h flag for details)");
System.exit(1);
if (context.getCurrentUser() == null) {
handler.logError("An eperson must be provided (run with -h flag for details)");
throw new UnsupportedOperationException("An eperson must be provided");
}
List<HarvestedCollection> harvestedCollections = harvestedCollectionService.findAll(context);
for (HarvestedCollection harvestedCollection : harvestedCollections) {
System.out.println(
"Purging the following collections (deleting items and resetting harvest status): " +
harvestedCollection
.getCollection().getID().toString());
harvester.purgeCollection(harvestedCollection.getCollection().getID().toString(), eperson);
handler.logInfo(
"Purging the following collections (deleting items and resetting harvest status): " +
harvestedCollection
.getCollection().getID().toString());
purgeCollection(context, harvestedCollection.getCollection().getID().toString());
}
context.complete();
} else if ("purge".equals(command)) {
// Delete all items in a collection. Useful for testing fresh harvests.
if (collection == null || eperson == null) {
System.out
.println("Error - a target collection and eperson must be provided");
System.out.println(" (run with -h flag for details)");
System.exit(1);
if (collection == null || context.getCurrentUser() == null) {
handler.logError("A target collection and eperson must be provided (run with -h flag for details)");
throw new UnsupportedOperationException("A target collection and eperson must be provided");
}
harvester.purgeCollection(collection, eperson);
purgeCollection(context, collection);
context.complete();
} else if ("reimport".equals(command)) {
// Delete all items in a collection. Useful for testing fresh harvests.
if (collection == null || context.getCurrentUser() == null) {
handler.logError("A target collection and eperson must be provided (run with -h flag for details)");
throw new UnsupportedOperationException("A target collection and eperson must be provided");
}
purgeCollection(context, collection);
runHarvest(context, collection);
context.complete();
//TODO: implement this... remove all items and remember to unset "last-harvested" settings
} else if ("config".equals(command)) {
// Configure a collection with the three main settings
if (collection == null) {
System.out.println("Error - a target collection must be provided");
System.out.println(" (run with -h flag for details)");
System.exit(1);
handler.logError("A target collection must be provided (run with -h flag for details)");
throw new UnsupportedOperationException("A target collection must be provided");
}
if (oaiSource == null || oaiSetID == null) {
System.out.println("Error - both the OAI server address and OAI set id must be specified");
System.out.println(" (run with -h flag for details)");
System.exit(1);
handler.logError(
"Both the OAI server address and OAI set id must be specified (run with -h flag for details)");
throw new UnsupportedOperationException("Both the OAI server address and OAI set id must be specified");
}
if (metadataKey == null) {
System.out
.println("Error - a metadata key (commonly the prefix) must be specified for this collection");
System.out.println(" (run with -h flag for details)");
System.exit(1);
handler.logError(
"A metadata key (commonly the prefix) must be specified for this collection (run with -h flag" +
" for details)");
throw new UnsupportedOperationException(
"A metadata key (commonly the prefix) must be specified for this collection");
}
harvester.configureCollection(collection, harvestType, oaiSource, oaiSetID, metadataKey);
configureCollection(context, collection, harvestType, oaiSource, oaiSetID, metadataKey);
} else if ("ping".equals(command)) {
if (oaiSource == null || oaiSetID == null) {
System.out.println("Error - both the OAI server address and OAI set id must be specified");
System.out.println(" (run with -h flag for details)");
System.exit(1);
handler.logError(
"Both the OAI server address and OAI set id must be specified (run with -h flag for details)");
throw new UnsupportedOperationException("Both the OAI server address and OAI set id must be specified");
}
pingResponder(oaiSource, oaiSetID, metadataKey);
} else {
handler.logError(
"Your command '" + command + "' was not recognized properly (run with -h flag for details)");
throw new UnsupportedOperationException("Your command '" + command + "' was not recognized properly");
}
}
/*
* Resolve the ID into a collection and check to see if its harvesting options are set. If so, return
* the collection, if not, bail out.
*/
private Collection resolveCollection(String collectionID) {
private Collection resolveCollection(Context context, String collectionID) {
DSpaceObject dso;
Collection targetCollection = null;
@@ -273,14 +269,14 @@ public class Harvest {
}
} else {
// not a handle, try and treat it as an collection database UUID
System.out.println("Looking up by UUID: " + collectionID + ", " + "in context: " + context);
handler.logInfo("Looking up by UUID: " + collectionID + ", " + "in context: " + context);
targetCollection = collectionService.find(context, UUID.fromString(collectionID));
}
}
// was the collection valid?
if (targetCollection == null) {
System.out.println("Cannot resolve " + collectionID + " to collection");
System.exit(1);
handler.logError("Cannot resolve " + collectionID + " to collection");
throw new UnsupportedOperationException("Cannot resolve " + collectionID + " to collection");
}
} catch (SQLException se) {
se.printStackTrace();
@@ -290,12 +286,12 @@ public class Harvest {
}
private void configureCollection(String collectionID, int type, String oaiSource, String oaiSetId,
private void configureCollection(Context context, String collectionID, int type, String oaiSource, String oaiSetId,
String mdConfigId) {
System.out.println("Running: configure collection");
handler.logInfo("Running: configure collection");
Collection collection = resolveCollection(collectionID);
System.out.println(collection.getID());
Collection collection = resolveCollection(context, collectionID);
handler.logInfo(String.valueOf(collection.getID()));
try {
HarvestedCollection hc = harvestedCollectionService.find(context, collection);
@@ -310,9 +306,8 @@ public class Harvest {
context.restoreAuthSystemState();
context.complete();
} catch (Exception e) {
System.out.println("Changes could not be committed");
e.printStackTrace();
System.exit(1);
handler.logError("Changes could not be committed");
handler.handleException(e);
} finally {
if (context != null) {
context.restoreAuthSystemState();
@@ -323,18 +318,15 @@ public class Harvest {
/**
* Purges a collection of all harvest-related data and settings. All items in the collection will be deleted.
* @param collectionID
*
* @param collectionID
* @param email
*/
private void purgeCollection(String collectionID, String email) {
System.out.println(
"Purging collection of all items and resetting last_harvested and harvest_message: " + collectionID);
Collection collection = resolveCollection(collectionID);
private void purgeCollection(Context context, String collectionID) {
handler.logInfo(
"Purging collection of all items and resetting last_harvested and harvest_message: " + collectionID);
Collection collection = resolveCollection(context, collectionID);
try {
EPerson eperson = ePersonService.findByEmail(context, email);
context.setCurrentUser(eperson);
context.turnOffAuthorisationSystem();
ItemService itemService = ContentServiceFactory.getInstance().getItemService();
@@ -343,7 +335,7 @@ public class Harvest {
while (it.hasNext()) {
i++;
Item item = it.next();
System.out.println("Deleting: " + item.getHandle());
handler.logInfo("Deleting: " + item.getHandle());
collectionService.removeItem(context, collection, item);
context.uncacheEntity(item);// Dispatch events every 50 items
if (i % 50 == 0) {
@@ -363,9 +355,8 @@ public class Harvest {
context.restoreAuthSystemState();
context.dispatchEvents();
} catch (Exception e) {
System.out.println("Changes could not be committed");
e.printStackTrace();
System.exit(1);
handler.logError("Changes could not be committed");
handler.handleException(e);
} finally {
context.restoreAuthSystemState();
}
@@ -375,50 +366,42 @@ public class Harvest {
/**
* Run a single harvest cycle on the specified collection under the authorization of the supplied EPerson
*/
private void runHarvest(String collectionID, String email) {
System.out.println("Running: a harvest cycle on " + collectionID);
private void runHarvest(Context context, String collectionID) {
handler.logInfo("Running: a harvest cycle on " + collectionID);
System.out.print("Initializing the harvester... ");
handler.logInfo("Initializing the harvester... ");
OAIHarvester harvester = null;
try {
Collection collection = resolveCollection(collectionID);
Collection collection = resolveCollection(context, collectionID);
HarvestedCollection hc = harvestedCollectionService.find(context, collection);
harvester = new OAIHarvester(context, collection, hc);
System.out.println("success. ");
handler.logInfo("Initialized the harvester successfully");
} catch (HarvestingException hex) {
System.out.print("failed. ");
System.out.println(hex.getMessage());
handler.logError("Initializing the harvester failed.");
throw new IllegalStateException("Unable to harvest", hex);
} catch (SQLException se) {
System.out.print("failed. ");
System.out.println(se.getMessage());
handler.logError("Initializing the harvester failed.");
throw new IllegalStateException("Unable to access database", se);
}
try {
// Harvest will not work for an anonymous user
EPerson eperson = ePersonService.findByEmail(context, email);
System.out.println("Harvest started... ");
context.setCurrentUser(eperson);
handler.logInfo("Harvest started... ");
harvester.runHarvest();
context.complete();
} catch (SQLException e) {
throw new IllegalStateException("Failed to run harvester", e);
} catch (AuthorizeException e) {
throw new IllegalStateException("Failed to run harvester", e);
} catch (IOException e) {
} catch (SQLException | AuthorizeException | IOException e) {
throw new IllegalStateException("Failed to run harvester", e);
}
System.out.println("Harvest complete. ");
handler.logInfo("Harvest complete. ");
}
/**
* Resets harvest_status and harvest_start_time flags for all collections that have a row in the
* harvested_collections table
*/
private static void resetHarvesting() {
System.out.print("Resetting harvest status flag on all collections... ");
private void resetHarvesting(Context context) {
handler.logInfo("Resetting harvest status flag on all collections... ");
try {
List<HarvestedCollection> harvestedCollections = harvestedCollectionService.findAll(context);
@@ -428,21 +411,21 @@ public class Harvest {
harvestedCollection.setHarvestStatus(HarvestedCollection.STATUS_READY);
harvestedCollectionService.update(context, harvestedCollection);
}
System.out.println("success. ");
handler.logInfo("Reset harvest status flag successfully");
} catch (Exception ex) {
System.out.println("failed. ");
ex.printStackTrace();
handler.logError("Resetting harvest status flag failed");
handler.handleException(ex);
}
}
/**
* Starts up the harvest scheduler. Terminating this process will stop the scheduler.
*/
private static void startHarvester() {
private void startHarvester() {
try {
System.out.print("Starting harvest loop... ");
handler.logInfo("Starting harvest loop... ");
HarvestServiceFactory.getInstance().getHarvestSchedulingService().startNewScheduler();
System.out.println("running. ");
handler.logInfo("running. ");
} catch (Exception ex) {
ex.printStackTrace();
}
@@ -455,29 +438,31 @@ public class Harvest {
* @param set name of an item set.
* @param metadataFormat local prefix name, or null for "dc".
*/
private static void pingResponder(String server, String set, String metadataFormat) {
private void pingResponder(String server, String set, String metadataFormat) {
List<String> errors;
System.out.print("Testing basic PMH access: ");
handler.logInfo("Testing basic PMH access: ");
errors = harvestedCollectionService.verifyOAIharvester(server, set,
(null != metadataFormat) ? metadataFormat : "dc", false);
(null != metadataFormat) ? metadataFormat : "dc", false);
if (errors.isEmpty()) {
System.out.println("OK");
handler.logInfo("OK");
} else {
for (String error : errors) {
System.err.println(error);
handler.logError(error);
}
}
System.out.print("Testing ORE support: ");
handler.logInfo("Testing ORE support: ");
errors = harvestedCollectionService.verifyOAIharvester(server, set,
(null != metadataFormat) ? metadataFormat : "dc", true);
(null != metadataFormat) ? metadataFormat : "dc", true);
if (errors.isEmpty()) {
System.out.println("OK");
handler.logInfo("OK");
} else {
for (String error : errors) {
System.err.println(error);
handler.logError(error);
}
}
}
}

View File

@@ -0,0 +1,45 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.app.harvest;
import java.sql.SQLException;
import org.apache.commons.cli.ParseException;
import org.dspace.core.Context;
import org.dspace.eperson.EPerson;
public class HarvestCli extends Harvest {
/**
* This is the overridden instance of the {@link Harvest#assignCurrentUserInContext()} method in the parent class
* {@link Harvest}.
* This is done so that the CLI version of the Script is able to retrieve its currentUser from the -e flag given
* with the parameters of the Script.
*
* @throws ParseException If the e flag was not given to the parameters when calling the script
*/
@Override
protected void assignCurrentUserInContext() throws ParseException {
if (this.commandLine.hasOption('e')) {
String ePersonEmail = this.commandLine.getOptionValue('e');
this.context = new Context(Context.Mode.BATCH_EDIT);
try {
EPerson ePerson = ePersonService.findByEmail(this.context, ePersonEmail);
if (ePerson == null) {
super.handler.logError("EPerson not found: " + ePersonEmail);
throw new IllegalArgumentException("Unable to find a user with email: " + ePersonEmail);
}
this.context.setCurrentUser(ePerson);
} catch (SQLException e) {
throw new IllegalArgumentException("SQLException trying to find user with email: " + ePersonEmail);
}
}
}
}

View File

@@ -0,0 +1,22 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.app.harvest;
import org.apache.commons.cli.Options;
public class HarvestCliScriptConfiguration extends HarvestScriptConfiguration {
public Options getOptions() {
Options options = super.getOptions();
options.addOption("e", "eperson", true,
"eperson");
return options;
}
}

View File

@@ -0,0 +1,56 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.app.harvest;
import org.apache.commons.cli.Options;
import org.dspace.scripts.configuration.ScriptConfiguration;
public class HarvestScriptConfiguration<T extends Harvest> extends ScriptConfiguration<T> {
private Class<T> dspaceRunnableClass;
@Override
public Class<T> getDspaceRunnableClass() {
return dspaceRunnableClass;
}
@Override
public void setDspaceRunnableClass(Class<T> dspaceRunnableClass) {
this.dspaceRunnableClass = dspaceRunnableClass;
}
public Options getOptions() {
Options options = new Options();
options.addOption("p", "purge", false, "delete all items in the collection");
options.addOption("r", "run", false, "run the standard harvest procedure");
options.addOption("g", "ping", false, "test the OAI server and set");
options.addOption("s", "setup", false, "Set the collection up for harvesting");
options.addOption("S", "start", false, "start the harvest loop");
options.addOption("R", "reset", false, "reset harvest status on all collections");
options.addOption("P", "purgeCollections", false, "purge all harvestable collections");
options.addOption("o", "reimport", false, "reimport all items in the collection, " +
"this is equivalent to -p -r, purging all items in a collection and reimporting them");
options.addOption("c", "collection", true,
"harvesting collection (handle or id)");
options.addOption("t", "type", true,
"type of harvesting (0 for none)");
options.addOption("a", "address", true,
"address of the OAI-PMH server");
options.addOption("i", "oai_set_id", true,
"id of the PMH set representing the harvested collection");
options.addOption("m", "metadata_format", true,
"the name of the desired metadata format for harvesting, resolved to namespace and " +
"crosswalk in dspace.cfg");
options.addOption("h", "help", false, "help");
return options;
}
}

View File

@@ -0,0 +1,264 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.app.itemexport;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.nio.file.Path;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.UUID;
import org.apache.commons.cli.ParseException;
import org.apache.commons.io.file.PathUtils;
import org.dspace.app.itemexport.factory.ItemExportServiceFactory;
import org.dspace.app.itemexport.service.ItemExportService;
import org.dspace.content.Collection;
import org.dspace.content.Item;
import org.dspace.content.factory.ContentServiceFactory;
import org.dspace.content.service.CollectionService;
import org.dspace.content.service.ItemService;
import org.dspace.core.Constants;
import org.dspace.core.Context;
import org.dspace.eperson.EPerson;
import org.dspace.eperson.factory.EPersonServiceFactory;
import org.dspace.eperson.service.EPersonService;
import org.dspace.handle.factory.HandleServiceFactory;
import org.dspace.handle.service.HandleService;
import org.dspace.scripts.DSpaceRunnable;
import org.dspace.utils.DSpace;
/**
* Item exporter to create simple AIPs for DSpace content. Currently exports
* individual items, or entire collections. For instructions on use, see
* printUsage() method.
* <P>
* ItemExport creates the simple AIP package that the importer also uses. It
* consists of:
* <P>
* /exportdir/42/ (one directory per item) / dublin_core.xml - qualified dublin
* core in RDF schema / contents - text file, listing one file per line / file1
* - files contained in the item / file2 / ...
* <P>
* issues -doesn't handle special characters in metadata (needs to turn {@code &'s} into
* {@code &amp;}, etc.)
* <P>
* Modified by David Little, UCSD Libraries 12/21/04 to allow the registration
* of files (bitstreams) into DSpace.
*
* @author David Little
* @author Jay Paz
*/
public class ItemExport extends DSpaceRunnable<ItemExportScriptConfiguration> {
public static final String TEMP_DIR = "exportSAF";
public static final String ZIP_NAME = "exportSAFZip";
public static final String ZIP_FILENAME = "saf-export";
public static final String ZIP_EXT = "zip";
protected String typeString = null;
protected String destDirName = null;
protected String idString = null;
protected int seqStart = -1;
protected int type = -1;
protected Item item = null;
protected Collection collection = null;
protected boolean migrate = false;
protected boolean zip = false;
protected String zipFileName = "";
protected boolean excludeBitstreams = false;
protected boolean help = false;
protected static HandleService handleService = HandleServiceFactory.getInstance().getHandleService();
protected static ItemService itemService = ContentServiceFactory.getInstance().getItemService();
protected static CollectionService collectionService = ContentServiceFactory.getInstance().getCollectionService();
protected static final EPersonService epersonService =
EPersonServiceFactory.getInstance().getEPersonService();
@Override
public ItemExportScriptConfiguration getScriptConfiguration() {
return new DSpace().getServiceManager()
.getServiceByName("export", ItemExportScriptConfiguration.class);
}
@Override
public void setup() throws ParseException {
help = commandLine.hasOption('h');
if (commandLine.hasOption('t')) { // type
typeString = commandLine.getOptionValue('t');
if ("ITEM".equals(typeString)) {
type = Constants.ITEM;
} else if ("COLLECTION".equals(typeString)) {
type = Constants.COLLECTION;
}
}
if (commandLine.hasOption('i')) { // id
idString = commandLine.getOptionValue('i');
}
setNumber();
if (commandLine.hasOption('m')) { // number
migrate = true;
}
if (commandLine.hasOption('x')) {
excludeBitstreams = true;
}
}
@Override
public void internalRun() throws Exception {
if (help) {
printHelp();
return;
}
validate();
Context context = new Context();
context.turnOffAuthorisationSystem();
if (type == Constants.ITEM) {
// first, is myIDString a handle?
if (idString.indexOf('/') != -1) {
item = (Item) handleService.resolveToObject(context, idString);
if ((item == null) || (item.getType() != Constants.ITEM)) {
item = null;
}
} else {
item = itemService.find(context, UUID.fromString(idString));
}
if (item == null) {
handler.logError("The item cannot be found: " + idString + " (run with -h flag for details)");
throw new UnsupportedOperationException("The item cannot be found: " + idString);
}
} else {
if (idString.indexOf('/') != -1) {
// has a / must be a handle
collection = (Collection) handleService.resolveToObject(context,
idString);
// ensure it's a collection
if ((collection == null)
|| (collection.getType() != Constants.COLLECTION)) {
collection = null;
}
} else {
collection = collectionService.find(context, UUID.fromString(idString));
}
if (collection == null) {
handler.logError("The collection cannot be found: " + idString + " (run with -h flag for details)");
throw new UnsupportedOperationException("The collection cannot be found: " + idString);
}
}
ItemExportService itemExportService = ItemExportServiceFactory.getInstance()
.getItemExportService();
try {
itemExportService.setHandler(handler);
process(context, itemExportService);
context.complete();
} catch (Exception e) {
context.abort();
throw new Exception(e);
}
}
/**
* Validate the options
*/
protected void validate() {
if (type == -1) {
handler.logError("The type must be either COLLECTION or ITEM (run with -h flag for details)");
throw new UnsupportedOperationException("The type must be either COLLECTION or ITEM");
}
if (idString == null) {
handler.logError("The ID must be set to either a database ID or a handle (run with -h flag for details)");
throw new UnsupportedOperationException("The ID must be set to either a database ID or a handle");
}
}
/**
* Process the export
* @param context
* @throws Exception
*/
protected void process(Context context, ItemExportService itemExportService) throws Exception {
setEPerson(context);
setDestDirName(context, itemExportService);
setZip(context);
Iterator<Item> items;
if (item != null) {
List<Item> myItems = new ArrayList<>();
myItems.add(item);
items = myItems.iterator();
} else {
handler.logInfo("Exporting from collection: " + idString);
items = itemService.findByCollection(context, collection);
}
itemExportService.exportAsZip(context, items, destDirName, zipFileName,
seqStart, migrate, excludeBitstreams);
File zip = new File(destDirName + System.getProperty("file.separator") + zipFileName);
try (InputStream is = new FileInputStream(zip)) {
// write input stream on handler
handler.writeFilestream(context, ZIP_FILENAME + "." + ZIP_EXT, is, ZIP_NAME);
} finally {
PathUtils.deleteDirectory(Path.of(destDirName));
}
}
/**
* Set the destination directory option
*/
protected void setDestDirName(Context context, ItemExportService itemExportService) throws Exception {
destDirName = itemExportService.getExportWorkDirectory() + File.separator + TEMP_DIR;
}
/**
* Set the zip option
*/
protected void setZip(Context context) {
zip = true;
zipFileName = ZIP_FILENAME + "-" + context.getCurrentUser().getID() + "." + ZIP_EXT;
}
/**
* Set the number option
*/
protected void setNumber() {
seqStart = 1;
if (commandLine.hasOption('n')) { // number
seqStart = Integer.parseInt(commandLine.getOptionValue('n'));
}
}
private void setEPerson(Context context) throws SQLException {
EPerson myEPerson = epersonService.find(context, this.getEpersonIdentifier());
// check eperson
if (myEPerson == null) {
handler.logError("EPerson cannot be found: " + this.getEpersonIdentifier());
throw new UnsupportedOperationException("EPerson cannot be found: " + this.getEpersonIdentifier());
}
context.setCurrentUser(myEPerson);
}
}

View File

@@ -0,0 +1,96 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.app.itemexport;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import org.dspace.app.itemexport.service.ItemExportService;
import org.dspace.content.Item;
import org.dspace.core.Context;
/**
* CLI variant for the {@link ItemExport} class.
* This was done to specify the specific behaviors for the CLI.
*
* @author Francesco Pio Scognamiglio (francescopio.scognamiglio at 4science.com)
*/
public class ItemExportCLI extends ItemExport {
@Override
protected void validate() {
super.validate();
setDestDirName();
if (destDirName == null) {
handler.logError("The destination directory must be set (run with -h flag for details)");
throw new UnsupportedOperationException("The destination directory must be set");
}
if (seqStart == -1) {
handler.logError("The sequence start number must be set (run with -h flag for details)");
throw new UnsupportedOperationException("The sequence start number must be set");
}
}
@Override
protected void process(Context context, ItemExportService itemExportService) throws Exception {
setZip(context);
if (zip) {
Iterator<Item> items;
if (item != null) {
List<Item> myItems = new ArrayList<>();
myItems.add(item);
items = myItems.iterator();
} else {
handler.logInfo("Exporting from collection: " + idString);
items = itemService.findByCollection(context, collection);
}
itemExportService.exportAsZip(context, items, destDirName, zipFileName,
seqStart, migrate, excludeBitstreams);
} else {
if (item != null) {
// it's only a single item
itemExportService
.exportItem(context, Collections.singletonList(item).iterator(), destDirName,
seqStart, migrate, excludeBitstreams);
} else {
handler.logInfo("Exporting from collection: " + idString);
// it's a collection, so do a bunch of items
Iterator<Item> i = itemService.findByCollection(context, collection);
itemExportService.exportItem(context, i, destDirName, seqStart, migrate, excludeBitstreams);
}
}
}
protected void setDestDirName() {
if (commandLine.hasOption('d')) { // dest
destDirName = commandLine.getOptionValue('d');
}
}
@Override
protected void setZip(Context context) {
if (commandLine.hasOption('z')) {
zip = true;
zipFileName = commandLine.getOptionValue('z');
}
}
@Override
protected void setNumber() {
if (commandLine.hasOption('n')) { // number
seqStart = Integer.parseInt(commandLine.getOptionValue('n'));
}
}
}

View File

@@ -0,0 +1,56 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.app.itemexport;
import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
import org.dspace.scripts.configuration.ScriptConfiguration;
/**
* The {@link ScriptConfiguration} for the {@link ItemExportCLI} script
*
* @author Francesco Pio Scognamiglio (francescopio.scognamiglio at 4science.com)
*/
public class ItemExportCLIScriptConfiguration extends ItemExportScriptConfiguration<ItemExportCLI> {
@Override
public Options getOptions() {
Options options = new Options();
options.addOption(Option.builder("t").longOpt("type")
.desc("type: COLLECTION or ITEM")
.hasArg().required().build());
options.addOption(Option.builder("i").longOpt("id")
.desc("ID or handle of thing to export")
.hasArg().required().build());
options.addOption(Option.builder("d").longOpt("dest")
.desc("destination where you want items to go")
.hasArg().required().build());
options.addOption(Option.builder("n").longOpt("number")
.desc("sequence number to begin exporting items with")
.hasArg().required().build());
options.addOption(Option.builder("z").longOpt("zip")
.desc("export as zip file (specify filename e.g. export.zip)")
.hasArg().required(false).build());
options.addOption(Option.builder("m").longOpt("migrate")
.desc("export for migration (remove handle and metadata that will be re-created in new system)")
.hasArg(false).required(false).build());
// as pointed out by Peter Dietz this provides similar functionality to export metadata
// but it is needed since it directly exports to Simple Archive Format (SAF)
options.addOption(Option.builder("x").longOpt("exclude-bitstreams")
.desc("do not export bitstreams")
.hasArg(false).required(false).build());
options.addOption(Option.builder("h").longOpt("help")
.desc("help")
.hasArg(false).required(false).build());
return options;
}
}

View File

@@ -1,246 +0,0 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.app.itemexport;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.UUID;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.PosixParser;
import org.dspace.app.itemexport.factory.ItemExportServiceFactory;
import org.dspace.app.itemexport.service.ItemExportService;
import org.dspace.content.Collection;
import org.dspace.content.Item;
import org.dspace.content.factory.ContentServiceFactory;
import org.dspace.content.service.CollectionService;
import org.dspace.content.service.ItemService;
import org.dspace.core.Constants;
import org.dspace.core.Context;
import org.dspace.handle.factory.HandleServiceFactory;
import org.dspace.handle.service.HandleService;
/**
* Item exporter to create simple AIPs for DSpace content. Currently exports
* individual items, or entire collections. For instructions on use, see
* printUsage() method.
* <P>
* ItemExport creates the simple AIP package that the importer also uses. It
* consists of:
* <P>
* /exportdir/42/ (one directory per item) / dublin_core.xml - qualified dublin
* core in RDF schema / contents - text file, listing one file per line / file1
* - files contained in the item / file2 / ...
* <P>
* issues -doesn't handle special characters in metadata (needs to turn {@code &'s} into
* {@code &amp;}, etc.)
* <P>
* Modified by David Little, UCSD Libraries 12/21/04 to allow the registration
* of files (bitstreams) into DSpace.
*
* @author David Little
* @author Jay Paz
*/
public class ItemExportCLITool {
protected static ItemExportService itemExportService = ItemExportServiceFactory.getInstance()
.getItemExportService();
protected static HandleService handleService = HandleServiceFactory.getInstance().getHandleService();
protected static ItemService itemService = ContentServiceFactory.getInstance().getItemService();
protected static CollectionService collectionService = ContentServiceFactory.getInstance().getCollectionService();
/**
* Default constructor
*/
private ItemExportCLITool() { }
/*
*
*/
public static void main(String[] argv) throws Exception {
// create an options object and populate it
CommandLineParser parser = new PosixParser();
Options options = new Options();
options.addOption("t", "type", true, "type: COLLECTION or ITEM");
options.addOption("i", "id", true, "ID or handle of thing to export");
options.addOption("d", "dest", true,
"destination where you want items to go");
options.addOption("m", "migrate", false,
"export for migration (remove handle and metadata that will be re-created in new system)");
options.addOption("n", "number", true,
"sequence number to begin exporting items with");
options.addOption("z", "zip", true, "export as zip file (specify filename e.g. export.zip)");
options.addOption("h", "help", false, "help");
// as pointed out by Peter Dietz this provides similar functionality to export metadata
// but it is needed since it directly exports to Simple Archive Format (SAF)
options.addOption("x", "exclude-bitstreams", false, "do not export bitstreams");
CommandLine line = parser.parse(options, argv);
String typeString = null;
String destDirName = null;
String myIDString = null;
int seqStart = -1;
int myType = -1;
Item myItem = null;
Collection mycollection = null;
if (line.hasOption('h')) {
HelpFormatter myhelp = new HelpFormatter();
myhelp.printHelp("ItemExport\n", options);
System.out
.println("\nfull collection: ItemExport -t COLLECTION -i ID -d dest -n number");
System.out
.println("singleitem: ItemExport -t ITEM -i ID -d dest -n number");
System.exit(0);
}
if (line.hasOption('t')) { // type
typeString = line.getOptionValue('t');
if ("ITEM".equals(typeString)) {
myType = Constants.ITEM;
} else if ("COLLECTION".equals(typeString)) {
myType = Constants.COLLECTION;
}
}
if (line.hasOption('i')) { // id
myIDString = line.getOptionValue('i');
}
if (line.hasOption('d')) { // dest
destDirName = line.getOptionValue('d');
}
if (line.hasOption('n')) { // number
seqStart = Integer.parseInt(line.getOptionValue('n'));
}
boolean migrate = false;
if (line.hasOption('m')) { // number
migrate = true;
}
boolean zip = false;
String zipFileName = "";
if (line.hasOption('z')) {
zip = true;
zipFileName = line.getOptionValue('z');
}
boolean excludeBitstreams = false;
if (line.hasOption('x')) {
excludeBitstreams = true;
}
// now validate the args
if (myType == -1) {
System.out
.println("type must be either COLLECTION or ITEM (-h for help)");
System.exit(1);
}
if (destDirName == null) {
System.out
.println("destination directory must be set (-h for help)");
System.exit(1);
}
if (seqStart == -1) {
System.out
.println("sequence start number must be set (-h for help)");
System.exit(1);
}
if (myIDString == null) {
System.out
.println("ID must be set to either a database ID or a handle (-h for help)");
System.exit(1);
}
Context c = new Context(Context.Mode.READ_ONLY);
c.turnOffAuthorisationSystem();
if (myType == Constants.ITEM) {
// first, is myIDString a handle?
if (myIDString.indexOf('/') != -1) {
myItem = (Item) handleService.resolveToObject(c, myIDString);
if ((myItem == null) || (myItem.getType() != Constants.ITEM)) {
myItem = null;
}
} else {
myItem = itemService.find(c, UUID.fromString(myIDString));
}
if (myItem == null) {
System.out
.println("Error, item cannot be found: " + myIDString);
}
} else {
if (myIDString.indexOf('/') != -1) {
// has a / must be a handle
mycollection = (Collection) handleService.resolveToObject(c,
myIDString);
// ensure it's a collection
if ((mycollection == null)
|| (mycollection.getType() != Constants.COLLECTION)) {
mycollection = null;
}
} else if (myIDString != null) {
mycollection = collectionService.find(c, UUID.fromString(myIDString));
}
if (mycollection == null) {
System.out.println("Error, collection cannot be found: "
+ myIDString);
System.exit(1);
}
}
if (zip) {
Iterator<Item> items;
if (myItem != null) {
List<Item> myItems = new ArrayList<>();
myItems.add(myItem);
items = myItems.iterator();
} else {
System.out.println("Exporting from collection: " + myIDString);
items = itemService.findByCollection(c, mycollection);
}
itemExportService.exportAsZip(c, items, destDirName, zipFileName, seqStart, migrate, excludeBitstreams);
} else {
if (myItem != null) {
// it's only a single item
itemExportService
.exportItem(c, Collections.singletonList(myItem).iterator(), destDirName, seqStart, migrate,
excludeBitstreams);
} else {
System.out.println("Exporting from collection: " + myIDString);
// it's a collection, so do a bunch of items
Iterator<Item> i = itemService.findByCollection(c, mycollection);
itemExportService.exportItem(c, i, destDirName, seqStart, migrate, excludeBitstreams);
}
}
c.complete();
}
}

View File

@@ -0,0 +1,62 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.app.itemexport;
import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
import org.dspace.scripts.configuration.ScriptConfiguration;
/**
* The {@link ScriptConfiguration} for the {@link ItemExport} script
*
* @author Francesco Pio Scognamiglio (francescopio.scognamiglio at 4science.com)
*/
public class ItemExportScriptConfiguration<T extends ItemExport> extends ScriptConfiguration<T> {
private Class<T> dspaceRunnableClass;
@Override
public Class<T> getDspaceRunnableClass() {
return dspaceRunnableClass;
}
@Override
public void setDspaceRunnableClass(Class<T> dspaceRunnableClass) {
this.dspaceRunnableClass = dspaceRunnableClass;
}
@Override
public Options getOptions() {
Options options = new Options();
options.addOption(Option.builder("t").longOpt("type")
.desc("type: COLLECTION or ITEM")
.hasArg().required().build());
options.addOption(Option.builder("i").longOpt("id")
.desc("ID or handle of thing to export")
.hasArg().required().build());
options.addOption(Option.builder("n").longOpt("number")
.desc("sequence number to begin exporting items with")
.hasArg().required(false).build());
options.addOption(Option.builder("m").longOpt("migrate")
.desc("export for migration (remove handle and metadata that will be re-created in new system)")
.hasArg(false).required(false).build());
// as pointed out by Peter Dietz this provides similar functionality to export metadata
// but it is needed since it directly exports to Simple Archive Format (SAF)
options.addOption(Option.builder("x").longOpt("exclude-bitstreams")
.desc("do not export bitstreams")
.hasArg(false).required(false).build());
options.addOption(Option.builder("h").longOpt("help")
.desc("help")
.hasArg(false).required(false).build());
return options;
}
}

View File

@@ -16,6 +16,7 @@ import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.nio.charset.StandardCharsets;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
@@ -47,33 +48,38 @@ import org.dspace.content.MetadataValue;
import org.dspace.content.service.BitstreamService;
import org.dspace.content.service.CommunityService;
import org.dspace.content.service.ItemService;
import org.dspace.core.ConfigurationManager;
import org.dspace.core.Constants;
import org.dspace.core.Context;
import org.dspace.core.Email;
import org.dspace.core.I18nUtil;
import org.dspace.core.LogManager;
import org.dspace.core.LogHelper;
import org.dspace.core.Utils;
import org.dspace.eperson.EPerson;
import org.dspace.eperson.service.EPersonService;
import org.dspace.handle.service.HandleService;
import org.dspace.scripts.handler.DSpaceRunnableHandler;
import org.dspace.services.ConfigurationService;
import org.springframework.beans.factory.annotation.Autowired;
/**
* Item exporter to create simple AIPs for DSpace content. Currently exports
* individual items, or entire collections. For instructions on use, see
* printUsage() method.
* <P>
* <p>
* ItemExport creates the simple AIP package that the importer also uses. It
* consists of:
* <P>
* /exportdir/42/ (one directory per item) / dublin_core.xml - qualified dublin
* core in RDF schema / contents - text file, listing one file per line / file1
* - files contained in the item / file2 / ...
* <P>
* <pre>{@code
* /exportdir/42/ (one directory per item)
* / dublin_core.xml - qualified dublin core in RDF schema
* / contents - text file, listing one file per line
* / file1 - files contained in the item
* / file2
* / ...
* }</pre>
* <p>
* issues -doesn't handle special characters in metadata (needs to turn {@code &'s} into
* {@code &amp;}, etc.)
* <P>
* <p>
* Modified by David Little, UCSD Libraries 12/21/04 to allow the registration
* of files (bitstreams) into DSpace.
*
@@ -93,12 +99,15 @@ public class ItemExportServiceImpl implements ItemExportService {
protected ItemService itemService;
@Autowired(required = true)
protected HandleService handleService;
@Autowired(required = true)
protected ConfigurationService configurationService;
/**
* log4j logger
*/
private Logger log = org.apache.logging.log4j.LogManager.getLogger(ItemExportServiceImpl.class);
private final Logger log = org.apache.logging.log4j.LogManager.getLogger();
private DSpaceRunnableHandler handler;
protected ItemExportServiceImpl() {
@@ -123,11 +132,11 @@ public class ItemExportServiceImpl implements ItemExportService {
}
}
System.out.println("Beginning export");
logInfo("Beginning export");
while (i.hasNext()) {
if (SUBDIR_LIMIT > 0 && ++counter == SUBDIR_LIMIT) {
subdir = Integer.valueOf(subDirSuffix++).toString();
subdir = Integer.toString(subDirSuffix++);
fullPath = destDirName + File.separatorChar + subdir;
counter = 0;
@@ -136,7 +145,7 @@ public class ItemExportServiceImpl implements ItemExportService {
}
}
System.out.println("Exporting item to " + mySequenceNumber);
logInfo("Exporting item to " + mySequenceNumber);
Item item = i.next();
exportItem(c, item, fullPath, mySequenceNumber, migrate, excludeBitstreams);
c.uncacheEntity(item);
@@ -152,7 +161,7 @@ public class ItemExportServiceImpl implements ItemExportService {
// now create a subdirectory
File itemDir = new File(destDir + "/" + seqStart);
System.out.println("Exporting Item " + myItem.getID() +
logInfo("Exporting Item " + myItem.getID() +
(myItem.getHandle() != null ? ", handle " + myItem.getHandle() : "") +
" to " + itemDir);
@@ -165,6 +174,7 @@ public class ItemExportServiceImpl implements ItemExportService {
// make it this far, now start exporting
writeMetadata(c, myItem, itemDir, migrate);
writeBitstreams(c, myItem, itemDir, excludeBitstreams);
writeCollections(myItem, itemDir);
if (!migrate) {
writeHandle(c, myItem, itemDir);
}
@@ -189,7 +199,7 @@ public class ItemExportServiceImpl implements ItemExportService {
*/
protected void writeMetadata(Context c, Item i, File destDir, boolean migrate)
throws Exception {
Set<String> schemas = new HashSet<String>();
Set<String> schemas = new HashSet<>();
List<MetadataValue> dcValues = itemService.getMetadata(i, Item.ANY, Item.ANY, Item.ANY, Item.ANY);
for (MetadataValue metadataValue : dcValues) {
schemas.add(metadataValue.getMetadataField().getMetadataSchema().getName());
@@ -222,7 +232,7 @@ public class ItemExportServiceImpl implements ItemExportService {
File outFile = new File(destDir, filename);
System.out.println("Attempting to create file " + outFile);
logInfo("Attempting to create file " + outFile);
if (outFile.createNewFile()) {
BufferedOutputStream out = new BufferedOutputStream(
@@ -265,7 +275,7 @@ public class ItemExportServiceImpl implements ItemExportService {
+ Utils.addEntities(dcv.getValue()) + "</dcvalue>\n")
.getBytes("UTF-8");
if ((!migrate) ||
if (!migrate ||
(migrate && !(
("date".equals(metadataField.getElement()) && "issued".equals(qualifier)) ||
("date".equals(metadataField.getElement()) && "accessioned".equals(qualifier)) ||
@@ -290,10 +300,10 @@ public class ItemExportServiceImpl implements ItemExportService {
}
// When migrating, only keep date.issued if it is different to date.accessioned
if ((migrate) &&
if (migrate &&
(dateIssued != null) &&
(dateAccessioned != null) &&
(!dateIssued.equals(dateAccessioned))) {
!dateIssued.equals(dateAccessioned)) {
utf8 = (" <dcvalue element=\"date\" "
+ "qualifier=\"issued\">"
+ Utils.addEntities(dateIssued) + "</dcvalue>\n")
@@ -328,7 +338,7 @@ public class ItemExportServiceImpl implements ItemExportService {
File outFile = new File(destDir, filename);
if (outFile.createNewFile()) {
PrintWriter out = new PrintWriter(new FileWriter(outFile));
PrintWriter out = new PrintWriter(new FileWriter(outFile, StandardCharsets.UTF_8));
out.println(i.getHandle());
@@ -340,6 +350,35 @@ public class ItemExportServiceImpl implements ItemExportService {
}
}
/**
* Create the 'collections' file. List handles of all Collections which
* contain this Item. The "owning" Collection is listed first.
*
* @param item list collections holding this Item.
* @param destDir write the file here.
* @throws IOException if the file cannot be created or written.
*/
protected void writeCollections(Item item, File destDir)
throws IOException {
File outFile = new File(destDir, "collections");
if (outFile.createNewFile()) {
try (PrintWriter out = new PrintWriter(new FileWriter(outFile))) {
Collection owningCollection = item.getOwningCollection();
// The owning collection is null for workspace and workflow items
if (owningCollection != null) {
out.println(owningCollection.getHandle());
}
for (Collection collection : item.getCollections()) {
if (!collection.equals(owningCollection)) {
out.println(collection.getHandle());
}
}
}
} else {
throw new IOException("Cannot create 'collections' in " + destDir);
}
}
/**
* Create both the bitstreams and the contents file. Any bitstreams that
* were originally registered will be marked in the contents file as such.
@@ -358,7 +397,7 @@ public class ItemExportServiceImpl implements ItemExportService {
File outFile = new File(destDir, "contents");
if (outFile.createNewFile()) {
PrintWriter out = new PrintWriter(new FileWriter(outFile));
PrintWriter out = new PrintWriter(new FileWriter(outFile, StandardCharsets.UTF_8));
List<Bundle> bundles = i.getBundles();
@@ -396,7 +435,7 @@ public class ItemExportServiceImpl implements ItemExportService {
File fdirs = new File(destDir + File.separator
+ dirs);
if (!fdirs.exists() && !fdirs.mkdirs()) {
log.error("Unable to create destination directory");
logError("Unable to create destination directory");
}
}
@@ -453,26 +492,33 @@ public class ItemExportServiceImpl implements ItemExportService {
File wkDir = new File(workDir);
if (!wkDir.exists() && !wkDir.mkdirs()) {
log.error("Unable to create working direcory");
logError("Unable to create working directory");
}
File dnDir = new File(destDirName);
if (!dnDir.exists() && !dnDir.mkdirs()) {
log.error("Unable to create destination directory");
logError("Unable to create destination directory");
}
// export the items using normal export method
exportItem(context, items, workDir, seqStart, migrate, excludeBitstreams);
try {
// export the items using normal export method (this exports items to our workDir)
exportItem(context, items, workDir, seqStart, migrate, excludeBitstreams);
// now zip up the export directory created above
zip(workDir, destDirName + System.getProperty("file.separator") + zipFileName);
// now zip up the workDir directory created above
zip(workDir, destDirName + System.getProperty("file.separator") + zipFileName);
} finally {
// Cleanup workDir created above, if it still exists
if (wkDir.exists()) {
deleteDirectory(wkDir);
}
}
}
@Override
public void createDownloadableExport(DSpaceObject dso,
Context context, boolean migrate) throws Exception {
EPerson eperson = context.getCurrentUser();
ArrayList<DSpaceObject> list = new ArrayList<DSpaceObject>(1);
ArrayList<DSpaceObject> list = new ArrayList<>(1);
list.add(dso);
processDownloadableExport(list, context, eperson == null ? null
: eperson.getEmail(), migrate);
@@ -489,7 +535,7 @@ public class ItemExportServiceImpl implements ItemExportService {
@Override
public void createDownloadableExport(DSpaceObject dso,
Context context, String additionalEmail, boolean migrate) throws Exception {
ArrayList<DSpaceObject> list = new ArrayList<DSpaceObject>(1);
ArrayList<DSpaceObject> list = new ArrayList<>(1);
list.add(dso);
processDownloadableExport(list, context, additionalEmail, migrate);
}
@@ -605,7 +651,7 @@ public class ItemExportServiceImpl implements ItemExportService {
// check the size of all the bitstreams against the configuration file
// entry if it exists
String megaBytes = ConfigurationManager
String megaBytes = configurationService
.getProperty("org.dspace.app.itemexport.max.size");
if (megaBytes != null) {
float maxSize = 0;
@@ -627,11 +673,9 @@ public class ItemExportServiceImpl implements ItemExportService {
Thread go = new Thread() {
@Override
public void run() {
Context context = null;
Context context = new Context();
Iterator<Item> iitems = null;
try {
// create a new dspace context
context = new Context();
// ignore auths
context.turnOffAuthorisationSystem();
@@ -643,14 +687,14 @@ public class ItemExportServiceImpl implements ItemExportService {
String downloadDir = getExportDownloadDirectory(eperson);
File dnDir = new File(downloadDir);
if (!dnDir.exists() && !dnDir.mkdirs()) {
log.error("Unable to create download directory");
logError("Unable to create download directory");
}
Iterator<String> iter = itemsMap.keySet().iterator();
while (iter.hasNext()) {
String keyName = iter.next();
List<UUID> uuids = itemsMap.get(keyName);
List<Item> items = new ArrayList<Item>();
List<Item> items = new ArrayList<>();
for (UUID uuid : uuids) {
items.add(itemService.find(context, uuid));
}
@@ -662,7 +706,7 @@ public class ItemExportServiceImpl implements ItemExportService {
File wkDir = new File(workDir);
if (!wkDir.exists() && !wkDir.mkdirs()) {
log.error("Unable to create working directory");
logError("Unable to create working directory");
}
@@ -730,7 +774,7 @@ public class ItemExportServiceImpl implements ItemExportService {
@Override
public String getExportDownloadDirectory(EPerson ePerson)
throws Exception {
String downloadDir = ConfigurationManager
String downloadDir = configurationService
.getProperty("org.dspace.app.itemexport.download.dir");
if (downloadDir == null) {
throw new Exception(
@@ -747,13 +791,14 @@ public class ItemExportServiceImpl implements ItemExportService {
@Override
public String getExportWorkDirectory() throws Exception {
String exportDir = ConfigurationManager
String exportDir = configurationService
.getProperty("org.dspace.app.itemexport.work.dir");
if (exportDir == null) {
throw new Exception(
"A dspace.cfg entry for 'org.dspace.app.itemexport.work.dir' does not exist.");
}
return exportDir;
// clean work dir path from duplicate separators
return StringUtils.replace(exportDir, File.separator + File.separator, File.separator);
}
@Override
@@ -853,7 +898,7 @@ public class ItemExportServiceImpl implements ItemExportService {
return null;
}
List<String> fileNames = new ArrayList<String>();
List<String> fileNames = new ArrayList<>();
for (String fileName : downloadDir.list()) {
if (fileName.contains("export") && fileName.endsWith(".zip")) {
@@ -870,18 +915,18 @@ public class ItemExportServiceImpl implements ItemExportService {
@Override
public void deleteOldExportArchives(EPerson eperson) throws Exception {
int hours = ConfigurationManager
int hours = configurationService
.getIntProperty("org.dspace.app.itemexport.life.span.hours");
Calendar now = Calendar.getInstance();
now.setTime(new Date());
now.add(Calendar.HOUR, (-hours));
now.add(Calendar.HOUR, -hours);
File downloadDir = new File(getExportDownloadDirectory(eperson));
if (downloadDir.exists()) {
File[] files = downloadDir.listFiles();
for (File file : files) {
if (file.lastModified() < now.getTimeInMillis()) {
if (!file.delete()) {
log.error("Unable to delete export file");
logError("Unable to delete export file");
}
}
}
@@ -891,11 +936,11 @@ public class ItemExportServiceImpl implements ItemExportService {
@Override
public void deleteOldExportArchives() throws Exception {
int hours = ConfigurationManager.getIntProperty("org.dspace.app.itemexport.life.span.hours");
int hours = configurationService.getIntProperty("org.dspace.app.itemexport.life.span.hours");
Calendar now = Calendar.getInstance();
now.setTime(new Date());
now.add(Calendar.HOUR, (-hours));
File downloadDir = new File(ConfigurationManager.getProperty("org.dspace.app.itemexport.download.dir"));
now.add(Calendar.HOUR, -hours);
File downloadDir = new File(configurationService.getProperty("org.dspace.app.itemexport.download.dir"));
if (downloadDir.exists()) {
// Get a list of all the sub-directories, potentially one for each ePerson.
File[] dirs = downloadDir.listFiles();
@@ -905,7 +950,7 @@ public class ItemExportServiceImpl implements ItemExportService {
for (File file : files) {
if (file.lastModified() < now.getTimeInMillis()) {
if (!file.delete()) {
log.error("Unable to delete old files");
logError("Unable to delete old files");
}
}
}
@@ -913,7 +958,7 @@ public class ItemExportServiceImpl implements ItemExportService {
// If the directory is now empty then we delete it too.
if (dir.listFiles().length == 0) {
if (!dir.delete()) {
log.error("Unable to delete directory");
logError("Unable to delete directory");
}
}
}
@@ -929,29 +974,29 @@ public class ItemExportServiceImpl implements ItemExportService {
Locale supportedLocale = I18nUtil.getEPersonLocale(eperson);
Email email = Email.getEmail(I18nUtil.getEmailFilename(supportedLocale, "export_success"));
email.addRecipient(eperson.getEmail());
email.addArgument(ConfigurationManager.getProperty("dspace.ui.url") + "/exportdownload/" + fileName);
email.addArgument(ConfigurationManager.getProperty("org.dspace.app.itemexport.life.span.hours"));
email.addArgument(configurationService.getProperty("dspace.ui.url") + "/exportdownload/" + fileName);
email.addArgument(configurationService.getProperty("org.dspace.app.itemexport.life.span.hours"));
email.send();
} catch (Exception e) {
log.warn(LogManager.getHeader(context, "emailSuccessMessage", "cannot notify user of export"), e);
logWarn(LogHelper.getHeader(context, "emailSuccessMessage", "cannot notify user of export"), e);
}
}
@Override
public void emailErrorMessage(EPerson eperson, String error)
throws MessagingException {
log.warn("An error occurred during item export, the user will be notified. " + error);
logWarn("An error occurred during item export, the user will be notified. " + error);
try {
Locale supportedLocale = I18nUtil.getEPersonLocale(eperson);
Email email = Email.getEmail(I18nUtil.getEmailFilename(supportedLocale, "export_error"));
email.addRecipient(eperson.getEmail());
email.addArgument(error);
email.addArgument(ConfigurationManager.getProperty("dspace.ui.url") + "/feedback");
email.addArgument(configurationService.getProperty("dspace.ui.url") + "/feedback");
email.send();
} catch (Exception e) {
log.warn("error during item export error notification", e);
logWarn("error during item export error notification", e);
}
}
@@ -966,7 +1011,7 @@ public class ItemExportServiceImpl implements ItemExportService {
}
File targetFile = new File(tempFileName);
if (!targetFile.createNewFile()) {
log.warn("Target file already exists: " + targetFile.getName());
logWarn("Target file already exists: " + targetFile.getName());
}
FileOutputStream fos = new FileOutputStream(tempFileName);
@@ -982,7 +1027,7 @@ public class ItemExportServiceImpl implements ItemExportService {
deleteDirectory(cpFile);
if (!targetFile.renameTo(new File(target))) {
log.error("Unable to rename file");
logError("Unable to rename file");
}
} finally {
if (cpZipOutputStream != null) {
@@ -1015,8 +1060,11 @@ public class ItemExportServiceImpl implements ItemExportService {
return;
}
String strAbsPath = cpFile.getPath();
String strZipEntryName = strAbsPath.substring(strSource
.length() + 1, strAbsPath.length());
int startIndex = strSource.length();
if (!StringUtils.endsWith(strSource, File.separator)) {
startIndex++;
}
String strZipEntryName = strAbsPath.substring(startIndex, strAbsPath.length());
// byte[] b = new byte[ (int)(cpFile.length()) ];
@@ -1055,7 +1103,7 @@ public class ItemExportServiceImpl implements ItemExportService {
deleteDirectory(file);
} else {
if (!file.delete()) {
log.error("Unable to delete file: " + file.getName());
logError("Unable to delete file: " + file.getName());
}
}
}
@@ -1064,4 +1112,64 @@ public class ItemExportServiceImpl implements ItemExportService {
return (path.delete());
}
@Override
public void setHandler(DSpaceRunnableHandler handler) {
this.handler = handler;
}
private void logInfo(String message) {
logInfo(message, null);
}
private void logInfo(String message, Exception e) {
if (handler != null) {
handler.logInfo(message);
return;
}
if (e != null) {
log.info(message, e);
} else {
log.info(message);
}
}
private void logWarn(String message) {
logWarn(message, null);
}
private void logWarn(String message, Exception e) {
if (handler != null) {
handler.logWarning(message);
return;
}
if (e != null) {
log.warn(message, e);
} else {
log.warn(message);
}
}
private void logError(String message) {
logError(message, null);
}
private void logError(String message, Exception e) {
if (handler != null) {
if (e != null) {
handler.logError(message, e);
} else {
handler.logError(message);
}
return;
}
if (e != null) {
log.error(message, e);
} else {
log.error(message);
}
}
}

View File

@@ -17,6 +17,7 @@ import org.dspace.content.DSpaceObject;
import org.dspace.content.Item;
import org.dspace.core.Context;
import org.dspace.eperson.EPerson;
import org.dspace.scripts.handler.DSpaceRunnableHandler;
/**
* Item exporter to create simple AIPs for DSpace content. Currently exports
@@ -267,4 +268,10 @@ public interface ItemExportService {
*/
public void zip(String strSource, String target) throws Exception;
/**
* Set the DSpace Runnable Handler
* @param handler
*/
public void setHandler(DSpaceRunnableHandler handler);
}

View File

@@ -1,106 +0,0 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.app.itemimport;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import gr.ekt.bte.core.DataLoader;
import gr.ekt.bte.core.TransformationEngine;
import gr.ekt.bte.dataloader.FileDataLoader;
/**
* This class acts as a Service in the procedure to batch import using the Biblio-Transformation-Engine
*/
public class BTEBatchImportService {
TransformationEngine transformationEngine;
Map<String, DataLoader> dataLoaders = new HashMap<String, DataLoader>();
Map<String, String> outputMap = new HashMap<String, String>();
/**
* Default constructor
*/
public BTEBatchImportService() {
super();
}
/**
* Setter method for dataLoaders parameter
*
* @param dataLoaders map of data loaders
*/
public void setDataLoaders(Map<String, DataLoader> dataLoaders) {
this.dataLoaders = dataLoaders;
}
/**
* Get data loaders
*
* @return the map of DataLoaders
*/
public Map<String, DataLoader> getDataLoaders() {
return dataLoaders;
}
/**
* Get output map
*
* @return the outputMapping
*/
public Map<String, String> getOutputMap() {
return outputMap;
}
/**
* Setter method for the outputMapping
*
* @param outputMap the output mapping
*/
public void setOutputMap(Map<String, String> outputMap) {
this.outputMap = outputMap;
}
/**
* Get transformation engine
*
* @return transformation engine
*/
public TransformationEngine getTransformationEngine() {
return transformationEngine;
}
/**
* set transformation engine
*
* @param transformationEngine transformation engine
*/
public void setTransformationEngine(TransformationEngine transformationEngine) {
this.transformationEngine = transformationEngine;
}
/**
* Getter of file data loaders
*
* @return List of file data loaders
*/
public List<String> getFileDataLoaders() {
List<String> result = new ArrayList<String>();
for (String key : dataLoaders.keySet()) {
DataLoader dl = dataLoaders.get(key);
if (dl instanceof FileDataLoader) {
result.add(key);
}
}
return result;
}
}

View File

@@ -0,0 +1,446 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.app.itemimport;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.nio.file.Files;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Optional;
import java.util.UUID;
import org.apache.commons.cli.ParseException;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.tika.Tika;
import org.dspace.app.itemimport.factory.ItemImportServiceFactory;
import org.dspace.app.itemimport.service.ItemImportService;
import org.dspace.authorize.AuthorizeException;
import org.dspace.content.Collection;
import org.dspace.content.factory.ContentServiceFactory;
import org.dspace.content.service.CollectionService;
import org.dspace.core.Constants;
import org.dspace.core.Context;
import org.dspace.eperson.EPerson;
import org.dspace.eperson.factory.EPersonServiceFactory;
import org.dspace.eperson.service.EPersonService;
import org.dspace.handle.factory.HandleServiceFactory;
import org.dspace.handle.service.HandleService;
import org.dspace.scripts.DSpaceRunnable;
import org.dspace.utils.DSpace;
/**
* Import items into DSpace. The conventional use is upload files by copying
* them. DSpace writes the item's bitstreams into its assetstore. Metadata is
* also loaded to the DSpace database.
* <P>
* A second use assumes the bitstream files already exist in a storage
* resource accessible to DSpace. In this case the bitstreams are 'registered'.
* That is, the metadata is loaded to the DSpace database and DSpace is given
* the location of the file which is subsumed into DSpace.
* <P>
* The distinction is controlled by the format of lines in the 'contents' file.
* See comments in processContentsFile() below.
* <P>
* Modified by David Little, UCSD Libraries 12/21/04 to
* allow the registration of files (bitstreams) into DSpace.
*/
public class ItemImport extends DSpaceRunnable<ItemImportScriptConfiguration> {
public static String TEMP_DIR = "importSAF";
public static String MAPFILE_FILENAME = "mapfile";
public static String MAPFILE_BITSTREAM_TYPE = "importSAFMapfile";
protected boolean template = false;
protected String command = null;
protected String sourcedir = null;
protected String mapfile = null;
protected String eperson = null;
protected String[] collections = null;
protected boolean isTest = false;
protected boolean isExcludeContent = false;
protected boolean isResume = false;
protected boolean useWorkflow = false;
protected boolean useWorkflowSendEmail = false;
protected boolean isQuiet = false;
protected boolean commandLineCollections = false;
protected boolean zip = false;
protected boolean remoteUrl = false;
protected String zipfilename = null;
protected boolean zipvalid = false;
protected boolean help = false;
protected File workDir = null;
protected File workFile = null;
protected static final CollectionService collectionService =
ContentServiceFactory.getInstance().getCollectionService();
protected static final EPersonService epersonService =
EPersonServiceFactory.getInstance().getEPersonService();
protected static final HandleService handleService =
HandleServiceFactory.getInstance().getHandleService();
@Override
public ItemImportScriptConfiguration getScriptConfiguration() {
return new DSpace().getServiceManager()
.getServiceByName("import", ItemImportScriptConfiguration.class);
}
@Override
public void setup() throws ParseException {
help = commandLine.hasOption('h');
if (commandLine.hasOption('a')) {
command = "add";
}
if (commandLine.hasOption('r')) {
command = "replace";
}
if (commandLine.hasOption('d')) {
command = "delete";
}
if (commandLine.hasOption('w')) {
useWorkflow = true;
if (commandLine.hasOption('n')) {
useWorkflowSendEmail = true;
}
}
if (commandLine.hasOption('v')) {
isTest = true;
handler.logInfo("**Test Run** - not actually importing items.");
}
isExcludeContent = commandLine.hasOption('x');
if (commandLine.hasOption('p')) {
template = true;
}
if (commandLine.hasOption('c')) { // collections
collections = commandLine.getOptionValues('c');
commandLineCollections = true;
} else {
handler.logInfo("No collections given. Assuming 'collections' file inside item directory");
}
if (commandLine.hasOption('R')) {
isResume = true;
handler.logInfo("**Resume import** - attempting to import items not already imported");
}
if (commandLine.hasOption('q')) {
isQuiet = true;
}
setZip();
}
@Override
public void internalRun() throws Exception {
if (help) {
printHelp();
return;
}
Date startTime = new Date();
Context context = new Context(Context.Mode.BATCH_EDIT);
setMapFile();
validate(context);
setEPerson(context);
// check collection
List<Collection> mycollections = null;
// don't need to validate collections set if command is "delete"
// also if no collections are given in the command line
if (!"delete".equals(command) && commandLineCollections) {
handler.logInfo("Destination collections:");
mycollections = new ArrayList<>();
// validate each collection arg to see if it's a real collection
for (int i = 0; i < collections.length; i++) {
Collection collection = null;
if (collections[i] != null) {
// is the ID a handle?
if (collections[i].indexOf('/') != -1) {
// string has a / so it must be a handle - try and resolve
// it
collection = ((Collection) handleService
.resolveToObject(context, collections[i]));
} else {
// not a handle, try and treat it as an integer collection database ID
collection = collectionService.find(context, UUID.fromString(collections[i]));
}
}
// was the collection valid?
if (collection == null
|| collection.getType() != Constants.COLLECTION) {
throw new IllegalArgumentException("Cannot resolve "
+ collections[i] + " to collection");
}
// add resolved collection to list
mycollections.add(collection);
// print progress info
handler.logInfo((i == 0 ? "Owning " : "") + "Collection: " + collection.getName());
}
}
// end validation
// start
ItemImportService itemImportService = ItemImportServiceFactory.getInstance()
.getItemImportService();
try {
itemImportService.setTest(isTest);
itemImportService.setExcludeContent(isExcludeContent);
itemImportService.setResume(isResume);
itemImportService.setUseWorkflow(useWorkflow);
itemImportService.setUseWorkflowSendEmail(useWorkflowSendEmail);
itemImportService.setQuiet(isQuiet);
itemImportService.setHandler(handler);
try {
context.turnOffAuthorisationSystem();
readZip(context, itemImportService);
process(context, itemImportService, mycollections);
// complete all transactions
context.complete();
} catch (Exception e) {
context.abort();
throw new Exception(
"Error committing changes to database: " + e.getMessage() + ", aborting most recent changes", e);
}
if (isTest) {
handler.logInfo("***End of Test Run***");
}
} finally {
if (zip) {
// if zip file was valid then clean sourcedir
if (zipvalid && sourcedir != null && new File(sourcedir).exists()) {
FileUtils.deleteDirectory(new File(sourcedir));
}
// clean workdir
if (workDir != null && workDir.exists()) {
FileUtils.deleteDirectory(workDir);
}
// conditionally clean workFile if import was done in the UI or via a URL and it still exists
if (workFile != null && workFile.exists()) {
workFile.delete();
}
}
Date endTime = new Date();
handler.logInfo("Started: " + startTime.getTime());
handler.logInfo("Ended: " + endTime.getTime());
handler.logInfo(
"Elapsed time: " + ((endTime.getTime() - startTime.getTime()) / 1000) + " secs (" + (endTime
.getTime() - startTime.getTime()) + " msecs)");
}
}
/**
* Validate the options
* @param context
*/
protected void validate(Context context) {
// check zip type: uploaded file or remote url
if (commandLine.hasOption('z')) {
zipfilename = commandLine.getOptionValue('z');
} else if (commandLine.hasOption('u')) {
remoteUrl = true;
zipfilename = commandLine.getOptionValue('u');
}
if (StringUtils.isBlank(zipfilename)) {
throw new UnsupportedOperationException("Must run with either name of zip file or url of zip file");
}
if (command == null) {
handler.logError("Must run with either add, replace, or remove (run with -h flag for details)");
throw new UnsupportedOperationException("Must run with either add, replace, or remove");
}
// can only resume for adds
if (isResume && !"add".equals(command)) {
handler.logError("Resume option only works with the --add command (run with -h flag for details)");
throw new UnsupportedOperationException("Resume option only works with the --add command");
}
if (isResume && StringUtils.isBlank(mapfile)) {
handler.logError("The mapfile does not exist. ");
throw new UnsupportedOperationException("The mapfile does not exist");
}
}
/**
* Process the import
* @param context
* @param itemImportService
* @param collections
* @throws Exception
*/
protected void process(Context context, ItemImportService itemImportService,
List<Collection> collections) throws Exception {
readMapfile(context);
if ("add".equals(command)) {
itemImportService.addItems(context, collections, sourcedir, mapfile, template);
} else if ("replace".equals(command)) {
itemImportService.replaceItems(context, collections, sourcedir, mapfile, template);
} else if ("delete".equals(command)) {
itemImportService.deleteItems(context, mapfile);
}
// write input stream on handler
File mapFile = new File(mapfile);
try (InputStream mapfileInputStream = new FileInputStream(mapFile)) {
handler.writeFilestream(context, MAPFILE_FILENAME, mapfileInputStream, MAPFILE_BITSTREAM_TYPE);
} finally {
mapFile.delete();
}
}
/**
* Read the ZIP archive in SAF format
* @param context
* @param itemImportService
* @throws Exception
*/
protected void readZip(Context context, ItemImportService itemImportService) throws Exception {
Optional<InputStream> optionalFileStream = Optional.empty();
Optional<InputStream> validationFileStream = Optional.empty();
try {
if (!remoteUrl) {
// manage zip via upload
optionalFileStream = handler.getFileStream(context, zipfilename);
validationFileStream = handler.getFileStream(context, zipfilename);
} else {
// manage zip via remote url
optionalFileStream = Optional.ofNullable(new URL(zipfilename).openStream());
validationFileStream = Optional.ofNullable(new URL(zipfilename).openStream());
}
if (validationFileStream.isPresent()) {
// validate zip file
if (validationFileStream.isPresent()) {
validateZip(validationFileStream.get());
}
workFile = new File(itemImportService.getTempWorkDir() + File.separator
+ zipfilename + "-" + context.getCurrentUser().getID());
FileUtils.copyInputStreamToFile(optionalFileStream.get(), workFile);
} else {
throw new IllegalArgumentException(
"Error reading file, the file couldn't be found for filename: " + zipfilename);
}
workDir = new File(itemImportService.getTempWorkDir() + File.separator + TEMP_DIR
+ File.separator + context.getCurrentUser().getID());
sourcedir = itemImportService.unzip(workFile, workDir.getAbsolutePath());
} finally {
optionalFileStream.ifPresent(IOUtils::closeQuietly);
validationFileStream.ifPresent(IOUtils::closeQuietly);
}
}
/**
* Confirm that the zip file has the correct MIME type
* @param inputStream
*/
protected void validateZip(InputStream inputStream) {
Tika tika = new Tika();
try {
String mimeType = tika.detect(inputStream);
if (mimeType.equals("application/zip")) {
zipvalid = true;
} else {
handler.logError("A valid zip file must be supplied. The provided file has mimetype: " + mimeType);
throw new UnsupportedOperationException("A valid zip file must be supplied");
}
} catch (IOException e) {
throw new IllegalArgumentException(
"There was an error while reading the zip file: " + zipfilename);
}
}
/**
* Read the mapfile
* @param context
*/
protected void readMapfile(Context context) {
if (isResume) {
try {
Optional<InputStream> optionalFileStream = handler.getFileStream(context, mapfile);
if (optionalFileStream.isPresent()) {
File tempFile = File.createTempFile(mapfile, "temp");
tempFile.deleteOnExit();
FileUtils.copyInputStreamToFile(optionalFileStream.get(), tempFile);
mapfile = tempFile.getAbsolutePath();
}
} catch (IOException | AuthorizeException e) {
throw new UnsupportedOperationException("The mapfile does not exist");
}
}
}
/**
* Set the mapfile option
* @throws IOException
*/
protected void setMapFile() throws IOException {
if (isResume && commandLine.hasOption('m')) {
mapfile = commandLine.getOptionValue('m');
} else {
mapfile = Files.createTempFile(MAPFILE_FILENAME, "temp").toString();
}
}
/**
* Set the zip option
*/
protected void setZip() {
zip = true;
}
/**
* Set the eperson in the context
* @param context
* @throws SQLException
*/
protected void setEPerson(Context context) throws SQLException {
EPerson myEPerson = epersonService.find(context, this.getEpersonIdentifier());
// check eperson
if (myEPerson == null) {
handler.logError("EPerson cannot be found: " + this.getEpersonIdentifier());
throw new UnsupportedOperationException("EPerson cannot be found: " + this.getEpersonIdentifier());
}
context.setCurrentUser(myEPerson);
}
}

View File

@@ -0,0 +1,198 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.app.itemimport;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.URL;
import java.sql.SQLException;
import java.util.List;
import java.util.Optional;
import java.util.UUID;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.dspace.app.itemimport.service.ItemImportService;
import org.dspace.content.Collection;
import org.dspace.core.Context;
import org.dspace.eperson.EPerson;
/**
* CLI variant for the {@link ItemImport} class.
* This was done to specify the specific behaviors for the CLI.
*
* @author Francesco Pio Scognamiglio (francescopio.scognamiglio at 4science.com)
*/
public class ItemImportCLI extends ItemImport {
@Override
protected void validate(Context context) {
// can only resume for adds
if (isResume && !"add".equals(command)) {
handler.logError("Resume option only works with the --add command (run with -h flag for details)");
throw new UnsupportedOperationException("Resume option only works with the --add command");
}
if (commandLine.hasOption('e')) {
eperson = commandLine.getOptionValue('e');
}
// check eperson identifier (email or id)
if (eperson == null) {
handler.logError("An eperson to do the importing must be specified (run with -h flag for details)");
throw new UnsupportedOperationException("An eperson to do the importing must be specified");
}
File myFile = null;
try {
myFile = new File(mapfile);
} catch (Exception e) {
throw new UnsupportedOperationException("The mapfile " + mapfile + " does not exist");
}
if (!isResume && "add".equals(command) && myFile.exists()) {
handler.logError("The mapfile " + mapfile + " already exists. "
+ "Either delete it or use --resume if attempting to resume an aborted import. "
+ "(run with -h flag for details)");
throw new UnsupportedOperationException("The mapfile " + mapfile + " already exists");
}
if (command == null) {
handler.logError("Must run with either add, replace, or remove (run with -h flag for details)");
throw new UnsupportedOperationException("Must run with either add, replace, or remove");
} else if ("add".equals(command) || "replace".equals(command)) {
if (!remoteUrl && sourcedir == null) {
handler.logError("A source directory containing items must be set (run with -h flag for details)");
throw new UnsupportedOperationException("A source directory containing items must be set");
}
if (mapfile == null) {
handler.logError(
"A map file to hold importing results must be specified (run with -h flag for details)");
throw new UnsupportedOperationException("A map file to hold importing results must be specified");
}
} else if ("delete".equals(command)) {
if (mapfile == null) {
handler.logError("A map file must be specified (run with -h flag for details)");
throw new UnsupportedOperationException("A map file must be specified");
}
}
}
@Override
protected void process(Context context, ItemImportService itemImportService,
List<Collection> collections) throws Exception {
if ("add".equals(command)) {
itemImportService.addItems(context, collections, sourcedir, mapfile, template);
} else if ("replace".equals(command)) {
itemImportService.replaceItems(context, collections, sourcedir, mapfile, template);
} else if ("delete".equals(command)) {
itemImportService.deleteItems(context, mapfile);
}
}
@Override
protected void readZip(Context context, ItemImportService itemImportService) throws Exception {
// If this is a zip archive, unzip it first
if (zip) {
if (!remoteUrl) {
// confirm zip file exists
File myZipFile = new File(sourcedir + File.separator + zipfilename);
if ((!myZipFile.exists()) || (!myZipFile.isFile())) {
throw new IllegalArgumentException(
"Error reading file, the file couldn't be found for filename: " + zipfilename);
}
// validate zip file
InputStream validationFileStream = new FileInputStream(myZipFile);
try {
validateZip(validationFileStream);
} finally {
IOUtils.closeQuietly(validationFileStream);
}
workDir = new File(itemImportService.getTempWorkDir() + File.separator + TEMP_DIR
+ File.separator + context.getCurrentUser().getID());
sourcedir = itemImportService.unzip(
new File(sourcedir + File.separator + zipfilename), workDir.getAbsolutePath());
} else {
// manage zip via remote url
Optional<InputStream> optionalFileStream = Optional.ofNullable(new URL(zipfilename).openStream());
Optional<InputStream> validationFileStream = Optional.ofNullable(new URL(zipfilename).openStream());
try {
if (optionalFileStream.isPresent()) {
// validate zip file via url
if (validationFileStream.isPresent()) {
validateZip(validationFileStream.get());
}
workFile = new File(itemImportService.getTempWorkDir() + File.separator
+ zipfilename + "-" + context.getCurrentUser().getID());
FileUtils.copyInputStreamToFile(optionalFileStream.get(), workFile);
workDir = new File(itemImportService.getTempWorkDir() + File.separator + TEMP_DIR
+ File.separator + context.getCurrentUser().getID());
sourcedir = itemImportService.unzip(workFile, workDir.getAbsolutePath());
} else {
throw new IllegalArgumentException(
"Error reading file, the file couldn't be found for filename: " + zipfilename);
}
} finally {
optionalFileStream.ifPresent(IOUtils::closeQuietly);
validationFileStream.ifPresent(IOUtils::closeQuietly);
}
}
}
}
@Override
protected void setMapFile() {
if (commandLine.hasOption('m')) {
mapfile = commandLine.getOptionValue('m');
}
}
@Override
protected void setZip() {
if (commandLine.hasOption('s')) { // source
sourcedir = commandLine.getOptionValue('s');
}
if (commandLine.hasOption('z')) {
zip = true;
zipfilename = commandLine.getOptionValue('z');
}
if (commandLine.hasOption('u')) { // remote url
zip = true;
remoteUrl = true;
zipfilename = commandLine.getOptionValue('u');
}
}
@Override
protected void setEPerson(Context context) throws SQLException {
EPerson myEPerson = null;
if (StringUtils.contains(eperson, '@')) {
// @ sign, must be an email
myEPerson = epersonService.findByEmail(context, eperson);
} else {
myEPerson = epersonService.find(context, UUID.fromString(eperson));
}
// check eperson
if (myEPerson == null) {
handler.logError("EPerson cannot be found: " + eperson + " (run with -h flag for details)");
throw new UnsupportedOperationException("EPerson cannot be found: " + eperson);
}
context.setCurrentUser(myEPerson);
}
}

View File

@@ -0,0 +1,80 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.app.itemimport;
import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
import org.dspace.scripts.configuration.ScriptConfiguration;
/**
* The {@link ScriptConfiguration} for the {@link ItemImportCLI} script
*
* @author Francesco Pio Scognamiglio (francescopio.scognamiglio at 4science.com)
*/
public class ItemImportCLIScriptConfiguration extends ItemImportScriptConfiguration<ItemImportCLI> {
@Override
public Options getOptions() {
Options options = new Options();
options.addOption(Option.builder("a").longOpt("add")
.desc("add items to DSpace")
.hasArg(false).required(false).build());
options.addOption(Option.builder("r").longOpt("replace")
.desc("replace items in mapfile")
.hasArg(false).required(false).build());
options.addOption(Option.builder("d").longOpt("delete")
.desc("delete items listed in mapfile")
.hasArg(false).required(false).build());
options.addOption(Option.builder("s").longOpt("source")
.desc("source of items (directory)")
.hasArg().required(false).build());
options.addOption(Option.builder("z").longOpt("zip")
.desc("name of zip file")
.hasArg().required(false).build());
options.addOption(Option.builder("u").longOpt("url")
.desc("url of zip file")
.hasArg().build());
options.addOption(Option.builder("c").longOpt("collection")
.desc("destination collection(s) Handle or database ID")
.hasArg().required(false).build());
options.addOption(Option.builder("m").longOpt("mapfile")
.desc("mapfile items in mapfile")
.hasArg().required().build());
options.addOption(Option.builder("e").longOpt("eperson")
.desc("email of eperson doing importing")
.hasArg().required().build());
options.addOption(Option.builder("w").longOpt("workflow")
.desc("send submission through collection's workflow")
.hasArg(false).required(false).build());
options.addOption(Option.builder("n").longOpt("notify")
.desc("if sending submissions through the workflow, send notification emails")
.hasArg(false).required(false).build());
options.addOption(Option.builder("v").longOpt("validate")
.desc("test run - do not actually import items")
.hasArg(false).required(false).build());
options.addOption(Option.builder("x").longOpt("exclude-bitstreams")
.desc("do not load or expect content bitstreams")
.hasArg(false).required(false).build());
options.addOption(Option.builder("p").longOpt("template")
.desc("apply template")
.hasArg(false).required(false).build());
options.addOption(Option.builder("R").longOpt("resume")
.desc("resume a failed import (add only)")
.hasArg(false).required(false).build());
options.addOption(Option.builder("q").longOpt("quiet")
.desc("don't display metadata")
.hasArg(false).required(false).build());
options.addOption(Option.builder("h").longOpt("help")
.desc("help")
.hasArg(false).required(false).build());
return options;
}
}

View File

@@ -1,431 +0,0 @@
/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.app.itemimport;
import java.io.File;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.PosixParser;
import org.dspace.app.itemimport.factory.ItemImportServiceFactory;
import org.dspace.app.itemimport.service.ItemImportService;
import org.dspace.content.Collection;
import org.dspace.content.factory.ContentServiceFactory;
import org.dspace.content.service.CollectionService;
import org.dspace.core.Constants;
import org.dspace.core.Context;
import org.dspace.eperson.EPerson;
import org.dspace.eperson.factory.EPersonServiceFactory;
import org.dspace.eperson.service.EPersonService;
import org.dspace.handle.factory.HandleServiceFactory;
import org.dspace.handle.service.HandleService;
/**
* Import items into DSpace. The conventional use is upload files by copying
* them. DSpace writes the item's bitstreams into its assetstore. Metadata is
* also loaded to the DSpace database.
* <P>
* A second use assumes the bitstream files already exist in a storage
* resource accessible to DSpace. In this case the bitstreams are 'registered'.
* That is, the metadata is loaded to the DSpace database and DSpace is given
* the location of the file which is subsumed into DSpace.
* <P>
* The distinction is controlled by the format of lines in the 'contents' file.
* See comments in processContentsFile() below.
* <P>
* Modified by David Little, UCSD Libraries 12/21/04 to
* allow the registration of files (bitstreams) into DSpace.
*/
public class ItemImportCLITool {
private static boolean template = false;
private static final CollectionService collectionService = ContentServiceFactory.getInstance()
.getCollectionService();
private static final EPersonService epersonService = EPersonServiceFactory.getInstance().getEPersonService();
private static final HandleService handleService = HandleServiceFactory.getInstance().getHandleService();
/**
* Default constructor
*/
private ItemImportCLITool() { }
public static void main(String[] argv) throws Exception {
Date startTime = new Date();
int status = 0;
try {
// create an options object and populate it
CommandLineParser parser = new PosixParser();
Options options = new Options();
options.addOption("a", "add", false, "add items to DSpace");
options.addOption("b", "add-bte", false, "add items to DSpace via Biblio-Transformation-Engine (BTE)");
options.addOption("r", "replace", false, "replace items in mapfile");
options.addOption("d", "delete", false,
"delete items listed in mapfile");
options.addOption("i", "inputtype", true, "input type in case of BTE import");
options.addOption("s", "source", true, "source of items (directory)");
options.addOption("z", "zip", true, "name of zip file");
options.addOption("c", "collection", true,
"destination collection(s) Handle or database ID");
options.addOption("m", "mapfile", true, "mapfile items in mapfile");
options.addOption("e", "eperson", true,
"email of eperson doing importing");
options.addOption("w", "workflow", false,
"send submission through collection's workflow");
options.addOption("n", "notify", false,
"if sending submissions through the workflow, send notification emails");
options.addOption("t", "test", false,
"test run - do not actually import items");
options.addOption("p", "template", false, "apply template");
options.addOption("R", "resume", false,
"resume a failed import (add only)");
options.addOption("q", "quiet", false, "don't display metadata");
options.addOption("h", "help", false, "help");
CommandLine line = parser.parse(options, argv);
String command = null; // add replace remove, etc
String bteInputType = null; //ris, endnote, tsv, csv, bibtex
String sourcedir = null;
String mapfile = null;
String eperson = null; // db ID or email
String[] collections = null; // db ID or handles
boolean isTest = false;
boolean isResume = false;
boolean useWorkflow = false;
boolean useWorkflowSendEmail = false;
boolean isQuiet = false;
if (line.hasOption('h')) {
HelpFormatter myhelp = new HelpFormatter();
myhelp.printHelp("ItemImport\n", options);
System.out
.println("\nadding items: ItemImport -a -e eperson -c collection -s sourcedir -m mapfile");
System.out
.println(
"\nadding items from zip file: ItemImport -a -e eperson -c collection -s sourcedir -z " +
"filename.zip -m mapfile");
System.out
.println("replacing items: ItemImport -r -e eperson -c collection -s sourcedir -m mapfile");
System.out
.println("deleting items: ItemImport -d -e eperson -m mapfile");
System.out
.println(
"If multiple collections are specified, the first collection will be the one that owns the " +
"item.");
System.exit(0);
}
if (line.hasOption('a')) {
command = "add";
}
if (line.hasOption('r')) {
command = "replace";
}
if (line.hasOption('d')) {
command = "delete";
}
if (line.hasOption('b')) {
command = "add-bte";
}
if (line.hasOption('i')) {
bteInputType = line.getOptionValue('i');
}
if (line.hasOption('w')) {
useWorkflow = true;
if (line.hasOption('n')) {
useWorkflowSendEmail = true;
}
}
if (line.hasOption('t')) {
isTest = true;
System.out.println("**Test Run** - not actually importing items.");
}
if (line.hasOption('p')) {
template = true;
}
if (line.hasOption('s')) { // source
sourcedir = line.getOptionValue('s');
}
if (line.hasOption('m')) { // mapfile
mapfile = line.getOptionValue('m');
}
if (line.hasOption('e')) { // eperson
eperson = line.getOptionValue('e');
}
if (line.hasOption('c')) { // collections
collections = line.getOptionValues('c');
}
if (line.hasOption('R')) {
isResume = true;
System.out
.println("**Resume import** - attempting to import items not already imported");
}
if (line.hasOption('q')) {
isQuiet = true;
}
boolean zip = false;
String zipfilename = "";
if (line.hasOption('z')) {
zip = true;
zipfilename = line.getOptionValue('z');
}
//By default assume collections will be given on the command line
boolean commandLineCollections = true;
// now validate
// must have a command set
if (command == null) {
System.out
.println("Error - must run with either add, replace, or remove (run with -h flag for details)");
System.exit(1);
} else if ("add".equals(command) || "replace".equals(command)) {
if (sourcedir == null) {
System.out
.println("Error - a source directory containing items must be set");
System.out.println(" (run with -h flag for details)");
System.exit(1);
}
if (mapfile == null) {
System.out
.println("Error - a map file to hold importing results must be specified");
System.out.println(" (run with -h flag for details)");
System.exit(1);
}
if (eperson == null) {
System.out
.println("Error - an eperson to do the importing must be specified");
System.out.println(" (run with -h flag for details)");
System.exit(1);
}
if (collections == null) {
System.out.println("No collections given. Assuming 'collections' file inside item directory");
commandLineCollections = false;
}
} else if ("add-bte".equals(command)) {
//Source dir can be null, the user can specify the parameters for his loader in the Spring XML
// configuration file
if (mapfile == null) {
System.out
.println("Error - a map file to hold importing results must be specified");
System.out.println(" (run with -h flag for details)");
System.exit(1);
}
if (eperson == null) {
System.out
.println("Error - an eperson to do the importing must be specified");
System.out.println(" (run with -h flag for details)");
System.exit(1);
}
if (collections == null) {
System.out.println("No collections given. Assuming 'collections' file inside item directory");
commandLineCollections = false;
}
if (bteInputType == null) {
System.out
.println(
"Error - an input type (tsv, csv, ris, endnote, bibtex or any other type you have " +
"specified in BTE Spring XML configuration file) must be specified");
System.out.println(" (run with -h flag for details)");
System.exit(1);
}
} else if ("delete".equals(command)) {
if (eperson == null) {
System.out
.println("Error - an eperson to do the importing must be specified");
System.exit(1);
}
if (mapfile == null) {
System.out.println("Error - a map file must be specified");
System.exit(1);
}
}
// can only resume for adds
if (isResume && !"add".equals(command) && !"add-bte".equals(command)) {
System.out
.println("Error - resume option only works with the --add or the --add-bte commands");
System.exit(1);
}
// do checks around mapfile - if mapfile exists and 'add' is selected,
// resume must be chosen
File myFile = new File(mapfile);
if (!isResume && "add".equals(command) && myFile.exists()) {
System.out.println("Error - the mapfile " + mapfile
+ " already exists.");
System.out
.println("Either delete it or use --resume if attempting to resume an aborted import.");
System.exit(1);
}
ItemImportService myloader = ItemImportServiceFactory.getInstance().getItemImportService();
myloader.setTest(isTest);
myloader.setResume(isResume);
myloader.setUseWorkflow(useWorkflow);
myloader.setUseWorkflowSendEmail(useWorkflowSendEmail);
myloader.setQuiet(isQuiet);
// create a context
Context c = new Context(Context.Mode.BATCH_EDIT);
// find the EPerson, assign to context
EPerson myEPerson = null;
if (eperson.indexOf('@') != -1) {
// @ sign, must be an email
myEPerson = epersonService.findByEmail(c, eperson);
} else {
myEPerson = epersonService.find(c, UUID.fromString(eperson));
}
if (myEPerson == null) {
System.out.println("Error, eperson cannot be found: " + eperson);
System.exit(1);
}
c.setCurrentUser(myEPerson);
// find collections
List<Collection> mycollections = null;
// don't need to validate collections set if command is "delete"
// also if no collections are given in the command line
if (!"delete".equals(command) && commandLineCollections) {
System.out.println("Destination collections:");
mycollections = new ArrayList<>();
// validate each collection arg to see if it's a real collection
for (int i = 0; i < collections.length; i++) {
// is the ID a handle?
if (collections[i].indexOf('/') != -1) {
// string has a / so it must be a handle - try and resolve
// it
mycollections.add((Collection) handleService
.resolveToObject(c, collections[i]));
// resolved, now make sure it's a collection
if ((mycollections.get(i) == null)
|| (mycollections.get(i).getType() != Constants.COLLECTION)) {
mycollections.set(i, null);
}
} else if (collections[i] != null) {
// not a handle, try and treat it as an integer collection database ID
mycollections.set(i, collectionService.find(c, UUID.fromString(collections[i])));
}
// was the collection valid?
if (mycollections.get(i) == null) {
throw new IllegalArgumentException("Cannot resolve "
+ collections[i] + " to collection");
}
// print progress info
String owningPrefix = "";
if (i == 0) {
owningPrefix = "Owning ";
}
System.out.println(owningPrefix + " Collection: "
+ mycollections.get(i).getName());
}
} // end of validating collections
try {
// If this is a zip archive, unzip it first
if (zip) {
sourcedir = myloader.unzip(sourcedir, zipfilename);
}
c.turnOffAuthorisationSystem();
if ("add".equals(command)) {
myloader.addItems(c, mycollections, sourcedir, mapfile, template);
} else if ("replace".equals(command)) {
myloader.replaceItems(c, mycollections, sourcedir, mapfile, template);
} else if ("delete".equals(command)) {
myloader.deleteItems(c, mapfile);
} else if ("add-bte".equals(command)) {
myloader.addBTEItems(c, mycollections, sourcedir, mapfile, template, bteInputType, null);
}
// complete all transactions
c.complete();
} catch (Exception e) {
c.abort();
e.printStackTrace();
System.out.println(e);
status = 1;
}
// Delete the unzipped file
try {
if (zip) {
System.gc();
System.out.println(
"Deleting temporary zip directory: " + myloader.getTempWorkDirFile().getAbsolutePath());
myloader.cleanupZipTemp();
}
} catch (Exception ex) {
System.out.println("Unable to delete temporary zip archive location: " + myloader.getTempWorkDirFile()
.getAbsolutePath());
}
if (isTest) {
System.out.println("***End of Test Run***");
}
} finally {
Date endTime = new Date();
System.out.println("Started: " + startTime.getTime());
System.out.println("Ended: " + endTime.getTime());
System.out.println(
"Elapsed time: " + ((endTime.getTime() - startTime.getTime()) / 1000) + " secs (" + (endTime
.getTime() - startTime.getTime()) + " msecs)");
}
System.exit(status);
}
}

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