Uploaded image for project: 'DSpace'
  1. DSpace
  2. DS-2701

Adopt Service-based API refactor of existing Java API

    Details

    • Attachments:
      0
    • Comments:
      10
    • Documentation Status:
      Needed

      Description

      As discussed in developer meetings, and approved (via vote) on dspace-devel, the DSpace Java API will be refactored as detailed in the "Service-based API" proposal:

      Proposal: https://wiki.duraspace.org/display/DSPACE/DSpace+Service+based+api
      Vote on proposal: http://dspace.2283337.n4.nabble.com/PLEASE-VOTE-on-whether-to-include-Services-API-refactoring-in-DSpace-6-0-tp4679123.html

      This constitutes a MAJOR refactor of the DSpace Java API that comes with several key benefits:

      • It modularizes our primary API in a way that makes it much easier to achieve future goals on our Roadmap (especially, moving us towards potentially better support of third-party modules)
      • It cleans up one of the "messiest" areas of our existing API, the Database management / hardcoded Oracle and PostgreSQL queries, in favor of using Hibernate. This allows us the potential to support additional database platforms in the future (e.g. MySQL or similar). It decreases the likelihood of Oracle-specific bugs (which have always been a problem), as the Oracle queries are delegated to Hibernate. It also simplifies the process of testing for database-specific problems in general (as again, all queries are delegated to Hibernate).
      • It begins teasing apart a true "business logic layer" in the API (see the "service layer" of this new API)
      • The API itself will not affect the fresh installation or upgrade process of DSpace 6.0, provided that you have not made local changes that rely on the existing Java API (dspace-api). If you have made such local changes, the refactor process should not be difficult, but it will be necessary before you can successfully upgrade to 6.0.

      However, it is NOT backwards compatible with DSpace 5.x or below. Again, anyone who has made customizations that rely on the Java API (dspace-api) may need to refactor their local customization. But, we believe that vast majority of institutions (likely 90% or more) should not experience any upgrade difficulties, as most only make customizations to the theme / look and feel of either the XMLUI or JSPUI.

        Attachments

          Issue Links

          1.
          Fix all unit tests Sub-task Closed Tim Donohue
          2.
          Fix DatabaseUtils class (needed for ant fresh_install) Sub-task Closed Kevin Van de Velde (Atmire)
          3.
          Ensure that there can still be an xml workflow migration Sub-task Closed Kevin Van de Velde (Atmire)
          4.
          Create Oracle migration script & test Sub-task Closed Kevin Van de Velde (Atmire)
          5.
          Document new pgcrypto requirement for Postgres Sub-task Closed Tim Donohue
          6.
          "Login as" broken on XMLUI Sub-task Closed Kevin Van de Velde (Atmire)
          7.
          Delete collection broken if a review group is attached in basic workflow Sub-task Closed Kevin Van de Velde (Atmire)
          8.
          Items in workflow view broken for basic workflow Sub-task Closed Kevin Van de Velde (Atmire)
          9.
          Workflow review assignment broken Sub-task Closed Kevin Van de Velde (Atmire)
          10.
          Remove the BundleBitstream object & replace by JPA mapping Sub-task Closed Kevin Van de Velde (Atmire)
          11.
          Ensure SiteService extends DSpaceObjectService Sub-task Closed Kevin Van de Velde (Atmire)
          12.
          Remove redundant getName methods Sub-task Closed Pascal-Nicolas Becker
          13.
          Database commandline options no longer seem to work with Hibernate? Sub-task Closed Kevin Van de Velde (Atmire)
          14.
          EHCache throwing a NotSerializableException: org.dspace.content.CollectionServiceImpl Sub-task Closed Mark H. Wood
          15.
          Sites can no longer inject preconfigured connection pool using config/dspace.cfg:db.jndi Sub-task Closed Mark H. Wood
          16.
          Correct "update-sequences" documentation / notes Sub-task Closed Mark H. Wood
          17.
          Migrate primitives in sql Sub-task Closed Kevin Van de Velde (Atmire)
          18.
          import of registries fails during fresh_install Sub-task Closed Kevin Van de Velde (Atmire)
          19.
          java.io.NotSerializableException: org.dspace.content.CollectionServiceImpl Sub-task Closed Unassigned
          20.
          Improper Hibernate Date comparisons Sub-task Closed Mark H. Wood
          21.
          hibernate warnings: Fail-safe cleanup (collections) Sub-task Closed Unassigned
          22.
          SolrLoggerUsageEventListener creation problem Sub-task Closed Kevin Van de Velde (Atmire)
          23.
          NPE during password login Sub-task Closed Unassigned
          24.
          ArrayIndexOutOfBoundsException upon search Sub-task Closed Unassigned
          25.
          Invalid UUID string: -1.0 Sub-task Closed Kevin Van de Velde (Atmire)
          26.
          OAI import slow after migration to Hibernate Sub-task Closed Unassigned

            Activity

              People

              • Assignee:
                kevin van de velde Kevin Van de Velde (Atmire)
                Reporter:
                tdonohue Tim Donohue
              • Votes:
                0 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: