Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrading the DSpace 7.2. to the CLARIN-DSpace 7.2. #1025

Closed
wants to merge 2,568 commits into from

Conversation

milanmajchrak
Copy link
Collaborator

No description provided.

@kosarko
Copy link
Member

kosarko commented Feb 2, 2023

Copy link
Member

@kosarko kosarko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Superficial code review part 1/?
summary:

  • dtq relics in the ci/automation parts; probably want to clean that up before "going public"
  • random comments

.github/workflows/build.yml Show resolved Hide resolved
.github/workflows/build.yml Outdated Show resolved Hide resolved
.github/workflows/docker.yml Show resolved Hide resolved
.github/workflows/new_issue_assign.yml Outdated Show resolved Hide resolved
@@ -0,0 +1,116 @@
/**
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this ever used somewhere?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm I see it is not used anywhere, I think we wanted to use it but we replaced that functionality and forgot to remove it.

// get license name and check if exists and is not null, license name is stored in the metadatum
// `dc.rights`
List<MetadataValue> dcRights =
itemService.getMetadata(newItem, "dc", "rights", null, Item.ANY);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this really use dc.rights and not dc.rights.uri?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, because we search the license by the name and in the old CLARIN it is searched by the definition - URI.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@milanmajchrak Is that the case just here or does all the code use rights instead of rights.uri?


public ClarinMatomoBitstreamTracker() {
super();
siteId = configurationService.getIntProperty("matomo.tracker.bitstream.site_id");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CONFIG: This means we need to update configs as a part of an upgrade (upstream advises against reusing old local.properties); is there a list of new/changed config names?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All additional configuration properties are in the file clarin-dspace.cfg. A lot of properties are with the same name, but some of them has changed name, I will try to do some comparation.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dspace/config/spring/api/core-services.xml Outdated Show resolved Hide resolved
* The class is copied from UFAL/CLARIN-DSPACE (https://github.com/ufal/clarin-dspace) and modified by
* @author Milan Majchrak (milan.majchrak at dataquest.sk)
*/
public class ClarinMatomoBitstreamTracker extends ClarinMatomoTracker {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it still possible to configure tracking per collection (enable/disable; different site id). Originally this was added in #886

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For this time it is not possible.

*/
public void trackPage(Context context, HttpServletRequest request, Item item, String pageName) {
log.debug("Matomo tracks " + pageName);
// `&bots=1` because we want to track downloading by bots
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we? Why?
Not for dtq, this was in the original implementation...

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.ObjectUtils;
import org.xml.sax.SAXException;

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CONFIG:

  • how does one configure autocomplete for a field
  • regexp support seems to be implemented in upstream, is it possible to configure custom error messages where the validation fails?
  • can you still add rendering hints? originally String extraClass (element class in the input-forms.xml)
<class>with-datepicker</class>
<class>with-datepicker</class>
<class>no-thumbs</class>
<class>with-datepicker</class>
<class>no-thumbs hide-me</class>
  • dtto for class of a complex type

Copy link
Collaborator Author

@milanmajchrak milanmajchrak Feb 14, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. how configure autocomplete for a field: https://github.com/dataquest-dev/DSpace/blob/dtq-dev/dspace/config/submission-forms.xml#L88
  2. Error messages are defined inside the <required>ERROR_MESSAGE</req..>: https://github.com/dataquest-dev/DSpace/blob/dtq-dev/dspace/config/submission-forms.xml#L107
  3. Hints are defined inside the <hint></hing> tag. I don't know what do you mean with the rendering hints. I think it is not implemented.
  4. How to configure complex input type: https://github.com/dataquest-dev/DSpace/blob/dtq-dev/dspace/config/submission-forms.xml#L64

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ad 3. the content of the class element was added into the class attribute of the html element belonging to the field, and during submission, css, js, or even the xslt could do something based on the class. So here

<class>with-datepicker</class>
the with-datepicker class is added. Then in submission, the html input element has these class="form-control submit-text with-datepicker" .

I guess I don't need the with-datepicker (a calendar is shown) there's the input type date and the date component.
Class no-thumbs is used on dc.type; if you are submitting a language resource, you see icons (thumbnails) instead of a dropdown; in other cases, we need the dropdown.
How would you do that now? Two different input-types?

Class hide-me is used on dc.type too. In a submission with only one possible dc.type, we just hide it from the user but still get a value.

Copy link
Collaborator Author

@milanmajchrak milanmajchrak Feb 14, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK I think I understand what do you mean. We are talking about this option?
image

That class tag functionality could be done in the FE e.g., https://github.com/dataquest-dev/dspace-angular/blob/dtq-dev/src/app/shared/form/builder/parsers/onebox-field-parser.ts#L45
I would check if the metadatavalue of that input type is dc.type and add custom class there e.g. grid: { host: 'col-sm-8 pl-0 no-thumbs' }
will generate class="col-sm-8 pl-0 no-thumbs"

*/
private Map<String, ComplexDefinition> definitions = null;
private Map<String, List<String>> valuePairs = null;
private static final String separator = ";";
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems a bit unfortunate; all the live data (metadatavalue rows) probably must be updated (as they contain the original separator @@) also for example https://github.com/ufal/clarin-dspace/pull/1025/files#diff-b0f3b5fecc512c6a47422bef799503851755ae63700631031d819622f27a6ec4R145 is not updated

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please can you send me the name of the file and the current lines? Because that redirection shows me nothing. Thank you

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

grep -n '@@' dspace/config/crosswalks/oai/metadataFormats/metasharev2.xsl
145:                    <xsl:value-of select="str:split(doc:metadata/doc:element[@name='local']/doc:element[@name='contact']/doc:element[@name='person']/doc:element/doc:field[@name='value'], '@@')[2]"/>
161:                    <xsl:value-of select="str:split(doc:metadata/doc:element[@name='local']/doc:element[@name='contact']/doc:element[@name='person']/doc:element/doc:field[@name='value'], '@@')[1]"/>
184:                                       <xsl:value-of select="str:split(doc:metadata/doc:element[@name='local']/doc:element[@name='contact']/doc:element[@name='person']/doc:element/doc:field[@name='value'], '@@')[4]" />
205:                            <xsl:value-of select="str:split(doc:metadata/doc:element[@name='local']/doc:element[@name='contact']/doc:element[@name='person']/doc:element/doc:field[@name='value'], '@@')[3]"/>
291:                                                            <xsl:value-of select="str:split(., '@@')[3]"/>
294:                                                            <xsl:value-of select="str:split(., '@@')[4]"/>
462:                        <xsl:value-of select="str:split(doc:metadata/doc:element[@name='local']/doc:element[@name='size']/doc:element[@name='info']/doc:element/doc:field[@name='value'], '@@')[1]"/>
479:                        <xsl:value-of select="str:split(doc:metadata/doc:element[@name='local']/doc:element[@name='size']/doc:element[@name='info']/doc:element/doc:field[@name='value'], '@@')[2]"/>

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could be the solution to change separator in the crosswalks?

}

/**
* Convert complex definition HashMap to the ordered JSON string
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The order is the insertion order (the order in which they are in the input xml) and this is the display order in the FE?
How is the serialization order defined?
If I have inputs firstName, lastName, email. eg. Tomas;Fuk;email@example.com, and then someone comes and wants it to be shown (in FE) as lastName, firstName, email. What do I do? Swap it in the input xml and then do a database update (so it matches Fuk;Tomas;email@example.com)?
The serialization order used to be defined by the sorting on names of the inputs; so if I named them 1_firstName,2_lastName,3_email, the complex field was serialized in that order (1;2;3) no matter how I rearranged the input-forms.xml. It is a rather nasty workaround...
I've noticed in the database that, for example, the dspace.agreements.cookies field is stored as a "JSON string." Is that an option? (It wasn't previously. I didn't want to parse JSON in XSLT. XSLTs are gone from the FE; still, they are there in the OAI "app"; XPath 3.1 has a parse-json function; do we have an XSLT processor that supports that?)

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The serialization order is defined by the order in the submission-forms.xml (input-forms.xml). Complex input fields are rendered in the FE in that order.
<definition name="contact_person"> <input name="givenname" input-type="text" label="Given name"/> <input name="surname" input-type="text" label="Surname"/> <input name="email" input-type="text" label="Email" regex="[^@]+@[^\.@]+\.[^@]+"/> <input name="affiliation" input-type="text" label="Affiliation"/> </definition>
It renders the input fields in the FE in the order 1. Given name 2. Surname 3. Email 4.Affiliation.

If the production DSpace has been running with the input order lastName, firstName, email and you want to swap it you must swap it in the s-forms.xml (input-forms.xml) and then update the database.

I haven't faced to that issue about JSON in the XSLT. Right now I cannot answer to your question, but I see that metadatavalue in the JSON too.

@codecov-commenter
Copy link

Codecov Report

Merging #1025 (7b1a638) into upgrade_to_7 (122924a) will decrease coverage by 28.96%.
The diff coverage is 12.80%.

📣 This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more

@@                 Coverage Diff                 @@
##             upgrade_to_7    #1025       +/-   ##
===================================================
- Coverage           44.09%   15.14%   -28.96%     
+ Complexity          13115     4807     -8308     
===================================================
  Files                1876     2029      +153     
  Lines               84621    90472     +5851     
  Branches            12475    13341      +866     
===================================================
- Hits                37316    13701    -23615     
- Misses              43500    75236    +31736     
+ Partials             3805     1535     -2270     
Impacted Files Coverage Δ
...ava/org/dspace/administer/CreateAdministrator.java 0.00% <0.00%> (ø)
...ce-api/src/main/java/org/dspace/api/DSpaceApi.java 0.00% <0.00%> (ø)
...g/dspace/app/itemimport/ItemImportServiceImpl.java 0.00% <0.00%> (ø)
.../app/statistics/clarin/ClarinMatomoOAITracker.java 0.00% <0.00%> (ø)
.../src/main/java/org/dspace/app/util/DCInputSet.java 0.00% <0.00%> (-53.71%) ⬇️
...va/org/dspace/authenticate/ShibAuthentication.java 0.00% <0.00%> (-32.41%) ⬇️
.../authenticate/clarin/ClarinShibAuthentication.java 0.00% <0.00%> (ø)
...java/org/dspace/authenticate/clarin/ShibGroup.java 0.00% <0.00%> (ø)
...space/authorize/DownloadTokenExpiredException.java 0.00% <0.00%> (ø)
...ce/authorize/MissingLicenseAgreementException.java 0.00% <0.00%> (ø)
... and 187 more

... and 1156 files with indirect coverage changes

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

milanmajchrak and others added 27 commits June 19, 2024 16:20
* Updated indexing of the Item for the OAI-PMH: show the Item if it is hidden from the search.

* Updated doc
* Added email validation and input/output encodings are loaded from the cfg.

* Fixed checkstyle violation

* Refactored condition which check empty character in the email.
* Defined `local.files.count` and `local.files.size` and that values are added into metadata fields during updating of the Item.

* Defined downloading zip cfg properties

* Exposed download zip cfg properties

* Removed commit which starts active session and because of that some tests are failing.

* Removed VersioningWithRelationshipsTest.java because it is duplicate of VersioningWithRelationshipsIT and that is also removed from Vanilla

* Update Item's file metadata in other place - not in the ItemServiceImpl#update because it is causing errors

* Count files info only for the ORIGINAL bundle

* Updated StatisticsRestRepositoryIT.java in the way that creating of some bitstreams are done in the setup when the Item is still persisted and not detached

* Removed the function from the ItemServiceImpl#update method
fixed wrong number of parameters expected in java code
and wrong number of parameters sent in xsl file
* Updated xoia.xml following the actual xoai.xml in v5

* Empty commit to run actions

* Fixed path to the ColComFilter in the xoai.xml
* Update Item's metadata when the bitstream is updated.

* Update Item's metadata about files after deleting the bitstream.

* Update Item's metadata before the bundle is deleted or touched

* Check if the bundle is not null before using it.
Some xsl crosswalks call functions that expect parameters, but for various reasons, parameters are empty. That is now checked and logged.
* Added authorization for the `Edit Item - License` menu option.

* Created endpoint for updating license of the Item.

* Added functionality only for detaching the license.
* The complex input field value could be empty - removed condition that requires complex input data to not be empty.

* Fixed issue when the `jsonValEvaluator` is null because of empty operation value.

* Updated doc.

* Mark inputs for funding as required. Added an exception when the openaire_id is not required.

* Updated `submission-forms` complex input field to be not required for Integration tests.

* Refactored and updated validation for complex input field
* Added dataProvider Facet

* Replaced deprecated `sortOrder` with the new one.

* `searchFacetDataProvider` should be in the searchFilters

* Updated Integration test which checks the search filters
Add olac description with lindat values
add elg format with appropriate functions
* dso has never been asigned

* Use Factory for the Collection and Community service .

* Use Handle Service instead of HandleResolver which calls HandleService
* Created method which updates properly the Item's date metadata.

* Fixed checkstyle issues

* The servlet request could be null.

* Update the comment to make description more clear.
Use correct middle part in special Output Stream.
solr log modification with explanation
…em-submission.xml are ignored. (#672)

Co-authored-by: Ondřej Košarko <ko_ok@centrum.cz>
added cesilko cmdi file with explanatory readme
* [DURACOM-156] Singposting: feedback after initial deployment

* Update LICENSES_THIRD_PARTY for 7.6

* [maven-release-plugin] prepare release dspace-7.6

* [maven-release-plugin] prepare for next development iteration

* Improve performance of automatic discovery re-index after database changes

* Ignore vocabulary indexes without discovery facet to avoid NPE

* [maven-release-plugin] prepare branch dspace-7_x

* 103837: Only send GA4 events for ORIGINAL bitstreams + ITs

* Add a configuration key to disable hierarchical browse indexes

* More and better(?) documentation.

* Don't clear the list of accepted embedded message header properties.

Why was this cleared?

* Simplify and modernize the code.  Store content directly in the template.

* Add flag Pattern.UNICODE_CHARACTER_CLASS to pattern compilation to recognize unicode characters

* Enable Pull Request Opened action to assign PRs to their creator

* Ensure codescan and label_merge_conflicts run on maintenance branches

* Split docker image builds into separate jobs to allow them to run in parallel.

* Ensure 'main' code is tagged as 'latest' in DockerHub

* Fixes DSpace#8558 - set Solr UTC timezone

Set the timezone of the Solr date formatter to UTC

* remove obsolete code fragments

* Add action to automatically create a port PR when specified

(cherry picked from commit f6a898c)

* Run PR Port action as 'dspace-bot' to allow new PRs to trigger CI checks

* Minor update to label_merge_conflicts to ignore any errors (seem random at this time)

* Fix typo. Config must be a valid regex

(cherry picked from commit 7995289)

* 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](h2database/h2database@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>

* Update FullTextContentStreams.java

Fix NPE if bitstream is null

* Update FullTextContentStreams.java

Add additional NPE checks

* Update ItemUtils.java

Prevent npe if bitstream is null

* 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 16c46c4)

* 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 213a546)

* dspace.cfg: remove old webui.itemlist.browse.* property

The webui.itemlist.browse.* properties are no longer used in DSpace
7.

(cherry picked from commit 35f72bc)

* Fix DSpace#8963: Remove deletion constraint from Groomer

* Enable entity type to submission form mapping by default

(cherry picked from commit b71eee8)

* [DURACOM-179] replaced 'null' value with exception actual value in sendErrorResponse method calls having 'null'

(cherry picked from commit aa35a47)

* DS-8935. webui.browse.link CrossLinks - Fix for multiple exact matches

Fixes DSpace#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).

DSpace#8935
(cherry picked from commit b846c53)

* DSpace#9006 fix referenced configuration file

(cherry picked from commit 29a88d7)

* DSpace#9006 fix referenced configuration file (Test)

(cherry picked from commit 309b0b3)

* Fix DSpace#8933: Only add the base statistic core if it hasn't already been added

* Remove duplicate code

* On failure log the name of the assetstore file and trace causes of exception.

(cherry picked from commit 22974e9)

* Report Throwable's type too.

(cherry picked from commit d6b612f)

* More description on OutOfMemoryError too.

(cherry picked from commit bbe5df3)

* Remove useless log.info

(cherry picked from commit 1f3ad99)

* 103837: Refactor GA config to list bundles

* README.md: Fix typo

(cherry picked from commit ca8abdd)

* Bump up versions of buildnumber-maven-plugin & build-helper-maven-plugin. add configuration for SCM failure

(cherry picked from commit 78ea9e8)

* 3331 - remove the --optimize feature of 'dspace stats-util'

(cherry picked from commit 08c6509)

* fix MissingOptionException on help

(cherry picked from commit 8ae5ffb)

* fix stylecheck

(cherry picked from commit b1377ca)

* ingore unrecognized arguments on help

(cherry picked from commit 82c9b6f)

* add DSpaceSkipUnknownArgumentsParser as parser to ignore/skip unknown arguments in cli by help, fix not necessary ParseException in help

(cherry picked from commit 86285d7)

* remove not necessary else

(cherry picked from commit 064e2ca)

* Enable new skip merge commit feature

* dspace-api: remove unnecessary trailing whitespace

* 103818 ItemServiceImpl#inheritCollectionDefaultPolicies now clears item READ policies if new parent collection has a default READ policy

* 103818 Add boolean parameter to ItemServiceImpl#inheritCollectionDefaultPolicies to decide whether to override item read policies

* 103818 Add boolean parameters to ItemServiceImpl methodds to decide whether to override read policies

* 103818 Extend ItemServiceTest#testMoveItemToCollectionWithMoreRestrictiveReadPolicy

* 104878 Fix error in ItemServiceTest related to inheriting collection policies upon item move

* 104878 Adjust ItemServiceTest to expect correct behavior of bundles when item is migrated

* Fix failing IT in BulkAccessControlIT

* 103837: Fix isContentBitstream() in GoogleAsyncEventListener

* Rename test suites that are really integration testing.

(cherry picked from commit f66ca33)

* 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](jetty/jetty.project@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 2bcc0b3)

* Add note that rebooting Tomcat required

* Add websvc.opensearch.autolink and websvc.opensearch.shortname to exposed REST configuration properties

(cherry picked from commit 80b35c9)

* Add a "container friendly" log4j2 cfg and output compose dspace log to console

(cherry picked from commit 9eefd56)

* Fix ClassCastException (Collection cannot be cast to Item) in Handle identifier classes

(cherry picked from commit 1271374)

* Fix checkstyle. Correct grammar of comment while doing so.

(cherry picked from commit ffa2683)

* Avoid double slashes in sitemap paths.

(cherry picked from commit eae4463)

* Remove 'cross join' from count query. Updates "countHandlesByPrefix" to use a query similar to existing "findByPrefix"

(cherry picked from commit 14223bd)

* fix logical bug when checking if field is controlled authority

* remove optimize option from oai import

* added authorization check for license bitstream in OAI import

* OAI: add support to extract embargo from bitstreams and expose it in OAI metadata

(cherry picked from commit db81d75)

* ItemUtils.java: added method doc

(cherry picked from commit 51e60fb)

* ItemUtils.java: improved method to account for multiple embargo policies and select the longest embargo

(cherry picked from commit 538be7f)

* Refactored access-status to include embargo date based on the DefaultAccessStatusHelper logic (look at primary or first bitstream)

(cherry picked from commit 895926f)

* Remove unused imports

(cherry picked from commit 4bd2cfd)

* Fix style issues

(cherry picked from commit 724a4ff)

* Fix style issues

(cherry picked from commit 6e2c8a4)

* Add null check

(cherry picked from commit 0de4c39)

* ItemUtils.java: refactored addEmbargoField

(cherry picked from commit 291afa7)

* uketd_dc.xsl: also expose access-status if embargo or restricted

(cherry picked from commit 4b40872)

* DefaultAccessStatusHelper: fix logic to take shortest embargo

(cherry picked from commit d17ef09)

* Remove currently unused customisation of ItemUtils

(cherry picked from commit 490a982)

* DefaultAccessStatusHelper: getEmbargoFromItem return null embargo if status than embargo

(cherry picked from commit e05e73a)

* 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

* Remove Oracle script that accidentally made it in via DSpace#8800

(cherry picked from commit 5e04edf)

* 8968 - request-a-copy email: non ASCII characters are encoded as HTML character entity references

(cherry picked from commit db36d5e)

* unused import

(cherry picked from commit bf6e042)

* 8968 - added custom StringEscapper

(cherry picked from commit 103c8ee)

* checkstyle

(cherry picked from commit 2c2b3b1)

* 8968 - implementated using HtmlUtils scaping

(cherry picked from commit 090beed)

* checkstiye

(cherry picked from commit d12fbe2)

* Define _version_

* DSpace#8585 Add submitter information to provenance metadata

(cherry picked from commit c15ac0e)

* 8585 - added provenance to metadata-import and itemImport

(cherry picked from commit ea6307d)

* dspace-api: fix misaligned comment

(cherry picked from commit 4fba787)

* oai_openaire.xsl : change resourceTypeGeneral for thesis

Thesis are "Literature" resource type (resourceTypeGeneral), not "other research product"

ref:
openaire/guidelines-literature-repositories#43 (comment)
and
https://api.openaire.eu/vocabularies/dnet:result_typologies/publication

(cherry picked from commit 669ff34)

* 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](jetty/jetty.project@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>

* 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 11a08f1)

* Reading localized license file.

* Reading localized license file.

* Applying commit 6108c98

* quote Pattern for thumbnail resolution constructed from bitstream filename

(cherry picked from commit a124807)

* check null value of bitstream name before quoting name for regex

(cherry picked from commit a9bcc0c)

* extract bitstream thumbnail name pattern into own function

(cherry picked from commit c5466c2)

* 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 a76af35)

* Community request:  fake EPerson from configuration.

(cherry picked from commit bb9e88d)

* Correct some documentation.

(cherry picked from commit be22790)

* Handle missing role.

(cherry picked from commit 2e62fa3)

* Fix "Site cannot be indexed" error by ignoring ADD/REMOVE events on Site object

(cherry picked from commit ef7f02f)

* Add a null check when assigning ldap groups

Prevent NullReferenceException by checking if the group list is null

Fixes DSpace#8920

(cherry picked from commit bb6498e)

* 9043 use Templates for compiled XSLT instead of Transformer - use Templates are thread-safe and NOT Transformer

(cherry picked from commit 1160341)

* Update to newly released XOAI 3.4.0

(cherry picked from commit 160ebbd)

* add test and fix

(cherry picked from commit 48b0b71)

* unset primary bitstream on bitstream service

(cherry picked from commit 47ca74b)

* adding sql expression to fix deleted primary bitstreams from bundle

(cherry picked from commit 8a531ad)

* add bundle remove authorization

(cherry picked from commit 3255e07)

* adding missing bundle REMOVE authorization

(cherry picked from commit 4a05600)

* add missing head style check

(cherry picked from commit caba4bb)

* fix style errors

(cherry picked from commit 74605f1)

* new testDeleteBitstreamAndUnsetPrimaryBitstreamID test for primary bitstream verification

(cherry picked from commit e6d108a)

* new testDeleteBitstreamAndUnsetPrimaryBitstreamID test for primary bitstream verification

(cherry picked from commit ad0d22a)

* new testDeleteBitstreamAndUnsetPrimaryBitstreamID remove unnecessary stubs

(cherry picked from commit a3e506c)

* make comments more clear to understand

(cherry picked from commit c0bbd9d)

* typo

(cherry picked from commit 74cce86)

* Add basic pagination to /groups/[uuid]/epersons endpoint

(cherry picked from commit 74c7235)

* Bug fix. Only use pageSize and offset if >0

(cherry picked from commit 15de2d0)

* Add missing pagination test for /groups/[uuid]/epersons

(cherry picked from commit 457dd9a)

* Add pagination to /groups/[uuid]/subgroups endpoint, along with tests

(cherry picked from commit e7c4b9e)

* Add basic unit test for new EpersonService methods

(cherry picked from commit c000e54)

* Minor unit test fix. Use isEqualCollection to compare list with Hibernate results

(cherry picked from commit cdb68a6)

* Add countAllMembers() with tests. Update tests to use try/catch

(cherry picked from commit 58a15b7)

* Replace several usages of allMembers() with count methods to avoid performance issues

(cherry picked from commit 2c9165a)

* 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 9832259)

* Use join instead of subquery as join seems slightly faster.

(cherry picked from commit 9c0bf08)

* Address feedback. Initialize HashSet sizes to avoid resizing. Correct comment about indeterminante ordering.

(cherry picked from commit f011a5a)

* Allow users with write permission to view hidden metadata

(cherry picked from commit 65a17d4)

* Test modification: allow users with write rights to see hidden metadata

(cherry picked from commit df7f6e9)

* Add test to check that user with read rights can see hidden metadata

(cherry picked from commit 03496c3)

* Verify optional message is not missing or a literal "null" value

(cherry picked from commit 534ee3a)

* Change the database mode to READ_ONLY during the indexing by discovery consumer (IndexEventConsumer)

(cherry picked from commit 94822b5)

* 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 c33d3fa)

* Flush database changes after switching to READONLY mode

(cherry picked from commit 00a6531)

* Add test to check retrieving of policies after changing mode to READ_ONLY

(cherry picked from commit d19a959)

* Change class name to ContextIT and correct a test

(cherry picked from commit a556799)

* 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 7566a79)

* removed options to ping search engines when generating sitemaps

(cherry picked from commit f8f8806)

* XmlWorkflowCuratorServiceImpl: add check to queue task if configured; Curation: remove obsolete code preventing curation running on workflow tasks as DSpace#3157 is now implemented

* 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 DSpace#9151

(cherry picked from commit 56b7cbf)

* [DURACOM-200] improvement of checker script

(cherry picked from commit 5a7c795)

* 108055: isClosed method should use xml configuration

(cherry picked from commit d800d80)

* [DURACOM-192] Authentication Method related special groups are put in claim set even if a different authentication method is used

(cherry picked from commit 6504d74)

* [DURACOM-192] Added test

(cherry picked from commit fa39251)

* 107891: Cache administrator group

(cherry picked from commit 1e82ca7)

* DURACOM-199 improved test to show bug related to restricted content

(cherry picked from commit dac4df9)

* DURACOM-199 fix sitemap generator for restricted content and improve performance

(cherry picked from commit 6d9ca38)

* [Port dspace-7_x] Event consumer for submission config reloading when a collection changes (DSpace#9196)

* initialization with refactoring

(cherry picked from commit e93dc1c)

* also consider SubmissionConfigReaderException

(cherry picked from commit 8a04b87)

* rename consumer file

(cherry picked from commit f6c92a4)

* init submission service factory

(cherry picked from commit fcc5239)

* set submissionconfig config settings by default

(cherry picked from commit e343d51)

* renaming SubmissionConfigReaderService

(cherry picked from commit 9ea7c32)

* support for SubmissionConfigService

(cherry picked from commit 61389fb)

* fixing style errors and renaming submissionConfigService

(cherry picked from commit 5f49491)

* fixing style errors and unused imports

(cherry picked from commit 31d9251)

* set default submission event configs

(cherry picked from commit 578198c)

* adding force indexing action to Consumer

(cherry picked from commit b912364)

* stylecheck fixes

(cherry picked from commit 89e89c3)

* undo event.dispatcher.noindex.consumers

(cherry picked from commit ae9dc5f)

---------

Co-authored-by: Paulo Graça <paulo1978@gmail.com>

* Add isNotMemberOf for groups, including unit and integration tests

(cherry picked from commit 9d271b2)

* 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 f186dcf)

* Add /epersons/search/isNotMemberOf endpoint to REST API along with integration tests

(cherry picked from commit 5208a35)

* Bug fix to EPersonDAOImpl.  Correctly determine if excluded group needs to be preceded by AND or WHERE

(cherry picked from commit e5e0eaa)

* Updated IIIF Controller IT to text bitstream and bundle exclusions

(cherry picked from commit e92b4b7)

* Simplified the process of fixing the tests after adding new sidebar facets/search filters and sort options to discover.xml

(cherry picked from commit b40ad0d)

* 107671: Expose the handle.canonical.prefix to the frontend

(cherry picked from commit 6d86e65)

* Remove line breaks from default.license because they are being rendered in the frontend

(cherry picked from commit 56aae34)

* [Port dspace-7_x] subscription email: do not send email if nothing has changed (DSpace#9204)

* improved subscriptions email template

(cherry picked from commit 6e7b327)

* do not send emails without content

(cherry picked from commit 926b242)

* fixed coding style violations

(cherry picked from commit fdacec0)

* removed unnecessary isEmpty check as suggested by reviewer

(cherry picked from commit 30a837f)

* moved null check on indexableObjects in generateBodyMail

(cherry picked from commit b43c340)

* fixed unhandled IOException

(cherry picked from commit 9b3f7b6)

* fixed typo in bodyCommunities

(cherry picked from commit ac3d02e)

* do not use != to compare strings

(cherry picked from commit e460183)

* fixed improper handling of empty list

(cherry picked from commit ac72aae)

---------

Co-authored-by: Sascha Szott <szott@gmx.de>

* [maven-release-plugin] prepare release dspace-7.6.1

* remove double permissions

* remove duplicate code after sync with 7.6.1 from upstream

* remove bean duplicates

* Use our discovery.xml

* Removed duplicities

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Nikita Krivonosov <nikita.krivonosov@4science.com>
Co-authored-by: Tim Donohue <tim.donohue@lyrasis.org>
Co-authored-by: Toni Prieto <antonio.juan.prieto@upc.edu>
Co-authored-by: Alan Orth <alan.orth@gmail.com>
Co-authored-by: Nona Luypaert <nona.luypaert@atmire.com>
Co-authored-by: Mark H. Wood <mwood@iu.edu>
Co-authored-by: Sean Kalynuk <Sean.Kalynuk@umanitoba.ca>
Co-authored-by: Sascha Szott <szott@gmx.de>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Agustina Martinez <am857@cam.ac.uk>
Co-authored-by: Martin Walk <martin.walk@tu-berlin.de>
Co-authored-by: corrado lombardi <corrado.lombardi@4science.com>
Co-authored-by: David P. Steelman <dsteelma@umd.edu>
Co-authored-by: Christian Bethge <54576195+ChrisBethgster@users.noreply.github.com>
Co-authored-by: max.nuding <max.nuding@uni-konstanz.de>
Co-authored-by: Max Nuding <max.nuding@icloud.com>
Co-authored-by: Christian Clauss <cclauss@me.com>
Co-authored-by: Hrafn Malmquist <hrafn.malmquist@gmail.com>
Co-authored-by: aroman-arvo <aroman@arvo.es>
Co-authored-by: Christian Bethge <christian.bethge@bibliothek.uni-halle.de>
Co-authored-by: Koen Pauwels <koen.pauwels@atmire.com>
Co-authored-by: Mark Cooper <mark.c.cooper@outlook.com>
Co-authored-by: nwoodward <woodward.nicholas@gmail.com>
Co-authored-by: Kim Shepherd <kim@shepherd.nz>
Co-authored-by: Marie-Hélène Vézina <mhvezina@users.noreply.github.com>
Co-authored-by: damian <damian.jozefowski@pcgacademia.pl>
Co-authored-by: Gantner, Florian Klaus <florian.gantner@uni-bamberg.de>
Co-authored-by: wwuck <wirelessduck@gmail.com>
Co-authored-by: Paulo Graça <paulo1978@gmail.com>
Co-authored-by: mohamed eskander <mohamed.eskander@4science.com>
Co-authored-by: Jens Vannerum <jens.vannerum@atmire.com>
Co-authored-by: Luca Giamminonni <luca.giamminonni@4science.it>
Co-authored-by: Andrea Bollini <andrea.bollini@4science.it>
Co-authored-by: DSpace Bot <68393067+dspace-bot@users.noreply.github.com>
Co-authored-by: Michael Spalti <mspalti@gmail.com>
Co-authored-by: Alexandre Vryghem <alexandre@atmire.com>
Co-authored-by: milanmajchrak <milan.majchrak@dataquest.sk>
@kosarko
Copy link
Member

kosarko commented Jun 20, 2024

superseded by #1118

@kosarko kosarko closed this Jun 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants