jhu-sheridan-libraries / jhuda-deposit-service

0 stars 0 forks source link

Update/extend PASS Deposit Service to handle deposit into Dataverse for JHUDA #2

Open htpvu opened 5 years ago

htpvu commented 5 years ago

@emetsger please fill out description of the work you're doing to update/extend the DS.

emetsger commented 5 years ago

Tasks:

  1. Remodularize code, which will allow for a PASS-specific message listener and a JHUDA-specific message listener. Each listener is knowledgeable of their domain model, and can build an instance of the Deposit model.
  2. Implement JHUDA Deposit model builder.
  3. Generalize the job management/task submission code. This allows for general job execution (packages are generated and sent downstream within a job) and management, using the Deposit model only. This also allows for fixing long-standing issues with heavily coupled dependencies which making working on the Deposit Services codebase hard.
  4. Write a Dataverse Package Provider (different issue).
  5. TBD Write a Data Archive Package provider (different issue)

These changes will make the DS code more readable because the core logic of performing a Deposit and managing the state changes of the affected repository resources will be centrally located. Control flow will be moved from the current deposit-messaging module to the ds2-controller-impl module. Currently the deposit-messaging module is a cluster of packages, responsibilities, and dependencies. This update will streamline all of these things.

In all of this, the majority of the code (~50-70%) is remaining the same, with the core job management and execution being re-written. Importantly, the Package Provider APIs are staying the same, so no adjustments should be necessary for those to continue to work as-is.