dataverse icon indicating copy to clipboard operation
dataverse copied to clipboard

Refactor the OAI code, Step 2

Open landreev opened this issue 2 years ago • 12 comments

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.

landreev avatar Jul 14 '22 04:07 landreev

  • Add a nice XSLT to the response. Needs an endpoint to serve the XSLT from a String at DataProvider.getOaiXslt() and a processing instruction with the XmlWriter in OAIServlet. Related gdcc/xoai#15

poikilotherm avatar Jul 21 '22 05:07 poikilotherm

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?

landreev avatar Jan 09 '23 16:01 landreev

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.

mreekie avatar Jan 09 '23 16:01 mreekie

I will make an attempt to create the child issue for the identifiable sub-tasks involved.

landreev avatar Jan 09 '23 16:01 landreev

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

mreekie avatar Jan 23 '23 14:01 mreekie

Sizing:

  • The suggested spike is part of: https://github.com/IQSS/dataverse-pm/issues/24
  • No sizing today.

mreekie avatar Jan 23 '23 16:01 mreekie

Sizing:

  • Leonid will step through issues before monday and create a plan/break off issues

mreekie avatar Apr 19 '23 15:04 mreekie

@landreev I'm following up on @mreekie's comment from 19 April.

  • Can you share links to the planned issues he mentions?

cmbz avatar Jun 01 '23 21:06 cmbz

@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?

cmbz avatar Jun 30 '23 00:06 cmbz

2023/09/25: Added to 6.1 milestone as per conversation during prioritization meeting.

cmbz avatar Sep 25 '23 18:09 cmbz

2023/10/23: Sized at 80 due to the scope of the work anticipated.

cmbz avatar Oct 23 '23 15:10 cmbz

2024/03/12 Unfortunately, this issue won't be addressed in 6.2 but I will add it as a 6.3 milestone instead.

cmbz avatar Mar 12 '24 18:03 cmbz