Handles versioning for ORCID publications.
Please note that this development has been funded by the ORCID Global Participation Fund.
DSpace 8_x version here: #9723 DSpace 7_x version here: #9722
References
- Fixes #8662
Description
This PR adds improvements to the ORCID synchronization feature. Whenever an item is versioned, and is queued for synchronization, its reference will be updated in order to have an updated publication on the ORCID side. Whenever an item is versioned, but its already published, it will be updated.
Instructions for Reviewers
Just try to create a new publication, and leave it inside the ORCID synchronization queue.
Now try to create a new version of it, and check that the pending publication is updated with the new version (you can check it inside the orcid_queue table).
In the same way you should publish the update to the ORCID servers and then try to versionate it again. In this case you should check that the entry inside the orcid_history table has been updated correctly.
List of changes in this PR: The changes will introduce the followings:
Consumer
- orcid queue will be populated only by latest version of items Versioning
- Items in orcid queue that are related to an older version will be deleted
- Older items' version in the orcid history will be updated with the last one in order to have only one entry per-item.
Checklist
- [x] My PR is created against the
mainbranch of code (unless it is a backport or is fixing an issue specific to an older branch). - [x] My PR is small in size (e.g. less than 1,000 lines of code, not including comments & integration tests). Exceptions may be made if previously agreed upon.
- [x] My PR passes Checkstyle validation based on the Code Style Guide.
- [x] My PR includes Javadoc for all new (or modified) public methods and classes. It also includes Javadoc for large or complex private methods.
- [x] My PR passes all tests and includes new/updated Unit or Integration Tests based on the Code Testing Guide.
- [x] My PR includes details on how to test it. I've provided clear instructions to reviewers on how to successfully test this fix or feature.
- [x] If my PR includes new libraries/dependencies (in any
pom.xml), I've made sure their licenses align with the DSpace BSD License based on the Licensing of Contributions documentation. - [x] If my PR modifies REST API endpoints, I've opened a separate REST Contract PR related to this change.
- [x] If my PR includes new configurations, I've provided basic technical documentation in the PR itself.
- [x] If my PR fixes an issue ticket, I've linked them together.
For the funding acknowledgement for this PR and any others that are part of the DSpace/ORCID grant via Lyrasis, please use the following language: "Please note that this development has been funded by the ORCID Global Participation Fund."