IQSS / IQSS/dataverse

Refactor the OAI code, Step 2

Open
#8,842 13 comments 1 reaction 1 assignee View on GitHub

@landreev is already working on this.

Since May 22, 2024.

Feature: Harvesting GREI 3 Size: 80
Dominant language
Java
Stars
1.1k
Forks
564
Avg merge
2d 2h
Merged PRs (30d)
29

Description

This is a followup issue for IQSS/dataverse#8372 (PR IQSS/dataverse#8753).
Once that is merged we can proceed cleaning up and refactoring the remaining old OAI code.
Some of that code predates Dataverse and was copy-and-pasted from the implementation in DVN.
In the process it created in some extra layers of code that duplicate each other, and should probably be significantly simplified. (That is on top of a significant amount of old code that we used to maintain on the Dataverse side, but got rid of in Step. 1 when switching to the new gdcc/xoai library).
Major pieces:

  • Server: the object implementing XOAI "items" (DataverseXoaiItem) acts as a wrapper around the entity class storing the record in the database (OAIRecord). The XOAI items should instead implement both. There's a similar situation with the Set objects.
  • Client: OaiHandler may not be necessary/may be duplicating the functionality provided by the XOAI library; should be possible to further streamline the implementation.

Aside from that, the overall code needs to be cleaned up and modernized.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.