dataverse
dataverse copied to clipboard
Refactor the OAI code, Step 2
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.
- Add a nice XSLT to the response. Needs an endpoint to serve the XSLT from a
String
atDataProvider.getOaiXslt()
and a processing instruction with theXmlWriter
inOAIServlet
. Related gdcc/xoai#15
This is a big, elephant-sized issue. We can try and estimate it, but in the spirit of our current process - should we consider splitting it into smaller/manageable chunks instead?
sizing:
- This needs to be split out into smaller issues.
- we will take a swipe at this during the discussion of 1.4.1
- skipping sizing for now.
I will make an attempt to create the child issue for the identifiable sub-tasks involved.
sizing:
- PM added to ordered sizing queue
- I recommend that we split off a spike from this to capture the work of breaking into child issues which Leonid has proposed
Sizing:
- The suggested spike is part of: https://github.com/IQSS/dataverse-pm/issues/24
- No sizing today.
Sizing:
- Leonid will step through issues before monday and create a plan/break off issues
@landreev I'm following up on @mreekie's comment from 19 April.
- Can you share links to the planned issues he mentions?
@landreev Following up on @mreekie's comment from 19 April: Could you share links to the issues he mentions related to this issue: https://github.com/IQSS/dataverse/issues/8842?
2023/09/25: Added to 6.1 milestone as per conversation during prioritization meeting.
2023/10/23: Sized at 80 due to the scope of the work anticipated.
2024/03/12 Unfortunately, this issue won't be addressed in 6.2 but I will add it as a 6.3 milestone instead.