Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
7623cd1
UFAL/Fixed failing integration test (ufal/clarin-dspace#1332) (#1249)
kosarko Feb 18, 2026
78f9648
[Port to dtq-dev] Fix OpenAIRE integration: null handling and HTTP cl…
kosarko Feb 19, 2026
98edc1d
UFAL/Added a comment to do not forget mounting the file which is chan…
milanmajchrak Feb 19, 2026
475b25a
UFAL/Issue 1315: Store file preview to database when file preview is …
kosarko Feb 19, 2026
ff0427e
UFAL/Issue 1313: fixed error when file preview is not generated for b…
kosarko Feb 19, 2026
2f03408
UFAL/Nw version metadata issues (#1236)
kosarko Feb 19, 2026
0f1ff8b
UFAL/Fix: add bitstream download-by-handle endpoint for curl instruct…
milanmajchrak Feb 26, 2026
1dc5339
Reduce warn logs noise (#1268)
milanmajchrak Mar 13, 2026
db67645
The row lenght was updated to be less than 120 chars (#1274)
milanmajchrak Mar 13, 2026
84e9f3a
Reduce noisy WARN logs to DEBUG level (#1269)
milanmajchrak Mar 13, 2026
cf264f7
Added oai bundle exclude feature
milanmajchrak Apr 21, 2026
72da0c2
Updated docs
milanmajchrak Apr 22, 2026
8c1779f
Fix OAI bundle exclusion docs and isolate OAIPMHBundleExposureIT conf…
milanmajchrak Apr 22, 2026
4336fb3
Fix indentation in OAIPMHBundleExposureIT field declaration
milanmajchrak Apr 22, 2026
48c9da2
Updated docs
milanmajchrak Apr 22, 2026
dc53a1e
Merge pull request #1309 from dataquest-dev/ufal/fix-oai-pmh-txt-expo…
Kasinhou Apr 22, 2026
843b8b0
fix failing Curation tests (ufal/clarin-dspace#1353) (#1304)
kosarko May 5, 2026
016539a
UFAL/Remove 'clariah' submission process (#1305)
kosarko May 5, 2026
68463d4
UFAL/Issue 1349: admin user is not allowed to delete himself/herself …
kosarko May 5, 2026
f0ad8bf
Issue 1354: add dc.relation.isreplacedby only when item is installed …
kosarko May 5, 2026
35e3a9b
UFAL/Issue 1339: fixed NPE when hidden item metadata are checked for …
kosarko May 5, 2026
a13cca5
Issue 1321: disable File preview for files where user has no Bitstrea…
kosarko May 5, 2026
4a23b55
UFAL/issue 1324: curation task - implement 3 types of reporters to al…
kosarko May 5, 2026
0b5796b
Issue ufal/clarin-dspace#1292 link/unlink items with version relation…
kosarko May 6, 2026
74957d8
UFAL/[Port to dtq-dev] Port ItemMetadataQAChecker curation task from …
kosarko May 6, 2026
d0c04cb
UFAL/Separate CLARIN license payload from sections.license (#1319)
milanmajchrak May 26, 2026
6523c28
UFAL/Fix clarin-license IT: expect 422 for empty value on select patc…
milanmajchrak May 27, 2026
82085cb
UFAL/Fix refbox buttons (ufal/clarin-dspace#1367) (#1318)
kosarko Jun 3, 2026
3dc9cec
Health report, report diff fixes (#1254)
Kasinhou Jun 12, 2026
8f4b80d
Fix flaky tests in IT pipeline (#1321)
milanmajchrak Jun 17, 2026
22cfef5
Security patches from vanilla DSpace 7.6.7 (CVE-2026-49830, CVE-2026-…
milanmajchrak Jun 18, 2026
882904b
Autolabel for new issues (#1341)
Kasinhou Jun 22, 2026
15b296a
[Port to dtq-dev] Issue 1364: tgz file preview fix (#1338)
kosarko Jun 23, 2026
eebe17d
[Port to dtq-dev] Issue 1343: add PUT and DELETE endpoint methods to …
kosarko Jun 23, 2026
ee37116
AI-Skills/Wire private AI skills submodule (.dspace-skills) (#1343)
jr-rk Jun 25, 2026
f6f1356
test: de-flake ORCID cache tests and ZIP-download IT (#1344)
milanmajchrak Jun 25, 2026
8320889
[Backport dtq-dev] Issue 1360: allow to change license in workflow it…
kosarko Jun 26, 2026
6e0ed0c
[Port to dtq-dev] Issue ufal/clarin-dspace#1317 metadata health check…
kosarko Jun 26, 2026
867e43d
test: de-flake ItemHandleCheckerIT (mock the live handle resolver) (#…
milanmajchrak Jun 29, 2026
74f5862
UFAL/Obtain special groups from user context when new token is genera…
kosarko Jul 1, 2026
e9392ae
UFAL/fix: DOI Organizer creates duplicate dc.identifier.doi metadata …
kosarko Jul 1, 2026
00501a2
[Port to dtq-dev] Issue ufal/clarin-dspace#1351 simple ror authority …
kosarko Jul 13, 2026
d4243a2
Merge branch 'dtq-dev' into ufal/release-2026-july-14
milanmajchrak Jul 14, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
/**
* 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.content.authority;

import org.dspace.external.RorRestConnector;
import org.dspace.utils.DSpace;

/**
* ChoiceAuthority using the ROR API.
*
* @author Milan Kuchtiak
*/
public class SimpleRORAuthority implements ChoiceAuthority {

private String pluginInstanceName;

private final RorRestConnector rorRestConnector = new DSpace().getServiceManager().getServiceByName(
"RorRestConnector", RorRestConnector.class);

/**
* Get all values from the authority that match the preferred value.
* Note that the offering was entered by the user and may contain
* mixed/incorrect case, whitespace, etc so the plugin should be careful
* to clean up user data before making comparisons.
* <p>
* Value of a "Name" field will be in canonical DSpace person name format,
* which is "Lastname, Firstname(s)", e.g. "Smith, John Q.".
* <p>
* Some authorities with a small set of values may simply return the whole
* set for any sample value, although it's a good idea to set the
* defaultSelected index in the Choices instance to the choice, if any,
* that matches the value.
*
* @param text user's value to match
* @param start choice at which to start, 0 is first.
* @param limit maximum number of choices to return, 0 for no limit.
* @param locale explicit localization key if available, or null
* @return a Choices object (never null).
*/
@Override
public Choices getMatches(String text, int start, int limit, String locale) {
return rorRestConnector.getMatches(text, start, limit, locale);
}

/**
* Get the single "best" match (if any) of a value in the authority
* to the given user value. The "confidence" element of Choices is
* expected to be set to a meaningful value about the circumstances of
* this match.
* <p>
* This call is typically used in non-interactive metadata ingest
* where there is no interactive agent to choose from among options.
*
* @param text user's value to match
* @param locale explicit localization key if available, or null
* @return a Choices object (never null) with 1 or 0 values.
*/
@Override
public Choices getBestMatch(String text, String locale) {
return rorRestConnector.getBestMatch(text, locale);
}

@Override
public Choice getChoice(String authKey, String locale) {
return rorRestConnector.getChoice(authKey, locale);
}

/**
* Get the canonical user-visible "label" (i.e. short descriptive text)
* for a key in the authority. Can be localized given the implicit
* or explicit locale specification.
* <p>
* This may get called many times while populating a Web page so it should
* be implemented as efficiently as possible.
*
* @param key authority key known to this authority.
* @param locale explicit localization key if available, or null
* @return descriptive label - should always return something, never null.
*/
@Override
public String getLabel(String key, String locale) {
return rorRestConnector.getLabel(key, locale);
}

/**
* Get the instance's particular name.
* Returns the name by which the class was chosen when
* this instance was created. Only works for instances created
* by <code>PluginService</code>, or if someone remembers to call <code>setPluginName.</code>
* <p>
* Useful when the implementation class wants to be configured differently
* when it is invoked under different names.
*
* @return name or null if not available.
*/
@Override
public String getPluginInstanceName() {
return pluginInstanceName;
}

/**
* Set the name under which this plugin was instantiated.
* Not to be invoked by application code, it is
* called automatically by <code>PluginService.getNamedPlugin()</code>
* when the plugin is instantiated.
*
* @param name -- name used to select this class.
*/
@Override
public void setPluginInstanceName(String name) {
this.pluginInstanceName = name;
}

}
Loading
Loading