Skip to content

Commit f804fa3

Browse files
committed
Merge branch 'develop' into 10476-display-on-create-field-option-new
2 parents 56cfa92 + fe9d3e8 commit f804fa3

9 files changed

Lines changed: 19 additions & 12 deletions

File tree

doc/sphinx-guides/source/admin/harvestclients.rst

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ Harvesting is a process of exchanging metadata with other repositories. As a har
1212
Harvested records can be kept in sync with the original repository through scheduled incremental updates, daily or weekly.
1313
Alternatively, harvests can be run on demand, by the Admin.
1414

15+
.. _managing-harvesting-clients:
16+
1517
Managing Harvesting Clients
1618
---------------------------
1719

@@ -23,12 +25,14 @@ The process of creating a new, or editing an existing client, is largely self-ex
2325

2426
Please note that in some rare cases this GUI may fail to create a client because of some unexpected errors during these real time exchanges with an OAI server that is otherwise known to be valid. For example, in the past we have had issues with servers offering very long lists of sets (*really* long, in the thousands). To allow an admin to still be able to create a client in a situation like that, we provide the REST API that will do so without attempting any validation in real time. This obviously makes it the responsibility of the admin to supply the values that are definitely known to be valid - a working OAI url, the name of a set that does exist on the server, and/or a supported metadata format. See the :ref:`managing-harvesting-clients-api` section of the :doc:`/api/native-api` guide for more information.
2527

26-
Note that as of 5.13, a new entry "Custom HTTP Header" has been added to the Step 1. of Create or Edit form. This optional field can be used to configure this client with a specific HTTP header to be added to every OAI request. This is to accommodate a (rare) use case where the remote server may require a special token of some kind in order to offer some content not available to other clients. Most OAI servers offer the same publicly-available content to all clients, so few admins will have a use for this feature. It is however on the very first, Step 1. screen in case the OAI server requires this token even for the "ListSets" and "ListMetadataFormats" requests, which need to be sent in the Step 2. of creating or editing a client. Multiple headers can be supplied separated by `\\n` - actual "backslash" and "n" characters, not a single "new line" character.
28+
"Custom HTTP Header" is part of step 1 of the Create or Edit form. This optional field can be used to configure this client with a specific HTTP header to be added to every OAI request. This is to accommodate a (rare) use case where the remote server may require a special token of some kind in order to offer some content not available to other clients. Most OAI servers offer the same publicly-available content to all clients, so few admins will have a use for this feature. However, it appears in Step 1 of the form screen in case the OAI server requires this token even for the "ListSets" and "ListMetadataFormats" requests, which need to be sent in Step 2 of creating or editing a client. Multiple headers can be supplied separated by `\\n` - actual "backslash" and "n" characters, not a single "new line" character.
29+
30+
.. _harvesting-from-datacite:
2731

2832
Harvesting from Datacite
2933
~~~~~~~~~~~~~~~~~~~~~~~~
3034

31-
As of v6.6, it is now possible to harvest metadata directly from DataCite. Their OAI gateway (https://oai.datacite.org/oai) serves records for every DOI they have registered. Therefore, it is now possible to harvest metadata from any participating institution even if they do not maintain an OAI server of their own. Their OAI implementation offers a concept of a "dynamic set", making it possible to use any query supported by the DataCite search API as though it were a "set". This makes harvesting from them extra flexible, allowing to harvest virtually any arbitrary subset of metadata records, potentially spanning multiple institutions and registration authorities.
35+
It is possible to harvest metadata directly from DataCite. Their OAI gateway (https://oai.datacite.org/oai) serves records for every DOI they have registered. Therefore, it is now possible to harvest metadata from any participating institution even if they do not maintain an OAI server of their own. Their OAI implementation offers a concept of a "dynamic set", making it possible to use any query supported by the DataCite search API as though it were a "set". This makes harvesting from them extra flexible, allowing users to harvest virtually any arbitrary subset of metadata records, potentially spanning multiple institutions and registration authorities.
3236

3337
For various reasons, in order to take advantage of this feature harvesting clients must be created via the ``/api/harvest/clients`` API. Once configured however, harvests can be run from the Harvesting Clients control panel in the UI. See the :ref:`managing-harvesting-clients-api` section of the :doc:`/api/native-api` guide for more information.
3438

@@ -57,9 +61,11 @@ Note that you'll want to run a minimum of Dataverse Software 4.6, optimally 4.18
5761
Harvesting Client Changelog
5862
---------------------------
5963

60-
- As of Dataverse 6.5, the publisher value of harvested datasets is now attributed to the dataset's distributor instead of its producer. This change affects all newly harvested datasets. For more information, see https://github.com/IQSS/dataverse/pull/9013
64+
- As of Dataverse 6.6, it is possible to harvest metadata directly from DataCite. See :ref:`harvesting-from-datacite`.
65+
- As of Dataverse 6.6, the publisher value of harvested datasets is now attributed to the dataset's distributor instead of its producer. This change affects all newly harvested datasets. For more information, see https://github.com/IQSS/dataverse/pull/9013
66+
- As of Dataverse 5.13, a new entry called "Custom HTTP Header" has been added to the Step 1. of Create or Edit form. For usage see :ref:`managing-harvesting-clients`.
6167

6268
Harvesting Non-OAI-PMH
63-
~~~~~~~~~~~~~~~~~~~~~~
69+
----------------------
6470

6571
`DOI2PMH <https://github.com/IQSS/doi2pmh-server>`__ is a community-driven project intended to allow OAI-PMH harvesting from non-OAI-PMH sources.

src/main/java/edu/harvard/iq/dataverse/DatasetPage.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6253,7 +6253,7 @@ public List<String> getVocabScripts() {
62536253

62546254
public String getFieldLanguage(String languages) {
62556255
//Prevent NPE in Payara 6-2024-12 with CVoc
6256-
logger.info("Languages: " + languages);
6256+
logger.fine("Languages: " + languages);
62576257
if(languages==null) {
62586258
languages="";
62596259
}

src/main/resources/db/migration/V6.5.0.9.sql

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
--
33

44
ALTER TABLE datasetversion ADD COLUMN IF NOT EXISTS deaccessionnote VARCHAR(1000);
5+
ALTER TABLE datasetversion ALTER COLUMN deaccessionlink TYPE varchar(1260);
56

67
-- Move/merge archivenote contents and remove archivenote column (on existing DBs that have this column)
78
DO $$
@@ -18,4 +19,4 @@ UPDATE datasetversion set versionnote = null;
1819

1920
END IF;
2021
END
21-
$$
22+
$$

src/main/webapp/dashboard-movedataset.xhtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<f:viewAction action="#{dataverseSession.updateLocaleInViewRoot}"/>
1616
<f:viewAction action="#{DashboardMoveDatasetPage.init}"/>
1717
<f:viewAction action="#{dataverseHeaderFragment.initBreadcrumbs(dataverseServiceBean.findRootDataverse())}"/>
18-
<f:viewAction action="#{dataverseHeaderFragment.addBreadcrumb('/dashboard.xhtml?dataverseId='.concat(dataverse.id), bundle['dashboard.title'])}"/>
18+
<f:viewAction action="#{dataverseHeaderFragment.addBreadcrumb('/dashboard.xhtml'.concat(empty param.dataverseId ? '': '?dataverseId='.concat(param.dataverseId)), bundle['dashboard.title'])}"/>
1919
<f:viewAction action="#{dataverseHeaderFragment.addBreadcrumb(bundle['dashboard.card.move.dataset.manage'])}"/>
2020
</f:metadata>
2121

src/main/webapp/dashboard-movedataverse.xhtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<f:viewAction action="#{dataverseSession.updateLocaleInViewRoot}"/>
1616
<f:viewAction action="#{DashboardMoveDataversePage.init}"/>
1717
<f:viewAction action="#{dataverseHeaderFragment.initBreadcrumbs(dataverseServiceBean.findRootDataverse())}"/>
18-
<f:viewAction action="#{dataverseHeaderFragment.addBreadcrumb('/dashboard.xhtml?dataverseId='.concat(dataverse.id), bundle['dashboard.title'])}"/>
18+
<f:viewAction action="#{dataverseHeaderFragment.addBreadcrumb('/dashboard.xhtml'.concat(empty param.dataverseId ? '': '?dataverseId='.concat(param.dataverseId)), bundle['dashboard.title'])}"/>
1919
<f:viewAction action="#{dataverseHeaderFragment.addBreadcrumb(bundle['dashboard.move.dataverse.message.summary'])}"/>
2020
</f:metadata>
2121

src/main/webapp/dashboard-users.xhtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<f:viewAction action="#{dataverseSession.updateLocaleInViewRoot}"/>
1616
<f:viewAction action="#{DashboardUsersPage.init}"/>
1717
<f:viewAction action="#{dataverseHeaderFragment.initBreadcrumbs(dataverseServiceBean.findRootDataverse())}"/>
18-
<f:viewAction action="#{dataverseHeaderFragment.addBreadcrumb('/dashboard.xhtml?dataverseId='.concat(dataverse.id), bundle['dashboard.title'])}"/>
18+
<f:viewAction action="#{dataverseHeaderFragment.addBreadcrumb('/dashboard.xhtml'.concat(empty param.dataverseId ? '': '?dataverseId='.concat(param.dataverseId)), bundle['dashboard.title'])}"/>
1919
<f:viewAction action="#{dataverseHeaderFragment.addBreadcrumb(bundle['dashboard.card.users.manage'])}"/>
2020
</f:metadata>
2121

src/main/webapp/dataset.xhtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2096,7 +2096,7 @@
20962096
</div>
20972097
</p:fragment>
20982098
</p:dialog>
2099-
<ui:fragment rendered="#{DatasetPage.editMode != 'CREATE'}">
2099+
<ui:fragment rendered="#{empty DatasetPage.editMode}">
21002100
<script src="https://cdn.jsdelivr.net/npm/citation-js"
21012101
type="text/javascript"></script>
21022102
<script>

src/main/webapp/harvestclients.xhtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<f:viewAction action="#{dataverseSession.updateLocaleInViewRoot}"/>
1616
<f:viewAction action="#{harvestingClientsPage.init}"/>
1717
<f:viewAction action="#{dataverseHeaderFragment.initBreadcrumbs(dataverseServiceBean.findRootDataverse())}"/>
18-
<f:viewAction action="#{dataverseHeaderFragment.addBreadcrumb('/dashboard.xhtml?dataverseId='.concat(dataverse.id), bundle['dashboard.title'])}"/>
18+
<f:viewAction action="#{dataverseHeaderFragment.addBreadcrumb('/dashboard.xhtml'.concat(empty param.dataverseId ? '': '?dataverseId='.concat(param.dataverseId)), bundle['dashboard.title'])}"/>
1919
<f:viewAction action="#{dataverseHeaderFragment.addBreadcrumb(bundle['harvestclients.title'])}"/>
2020
</f:metadata>
2121
<ui:composition template="/dataverse_template.xhtml">

src/main/webapp/harvestsets.xhtml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<f:viewAction action="#{dataverseSession.updateLocaleInViewRoot}"/>
1616
<f:viewAction action="#{harvestingSetsPage.init}"/>
1717
<f:viewAction action="#{dataverseHeaderFragment.initBreadcrumbs(dataverseServiceBean.findRootDataverse())}"/>
18-
<f:viewAction action="#{dataverseHeaderFragment.addBreadcrumb('/dashboard.xhtml?dataverseId='.concat(dataverse.id), bundle['dashboard.title'])}"/>
18+
<f:viewAction action="#{dataverseHeaderFragment.addBreadcrumb('/dashboard.xhtml'.concat(empty param.dataverseId ? '': '?dataverseId='.concat(param.dataverseId)), bundle['dashboard.title'])}"/>
1919
<f:viewAction action="#{dataverseHeaderFragment.addBreadcrumb(bundle['harvestserver.title'])}"/>
2020
</f:metadata>
2121
<ui:composition template="/dataverse_template.xhtml">

0 commit comments

Comments
 (0)