Kuali Rice Roadmap
  1. Kuali Rice Roadmap
  2. KRRM-1

Implement Replacement of OJB with Java Persistence API (JPA)

    Details

    • Type: Rice Enhancement Rice Enhancement
    • Status: Resolved Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: KR 2.4
    • Component/s: Unknown
    • Labels:
      None
    • Rice Theme:
      Industry Standards
    • Priority Score:
      15
    • Functional Justification :
      There is no functional justification for this roadmap item as there is no direct functional impact.
    • Technical Justification:
      Hide
      Motivations

         1. OJB is an inactive product
                * one developer remaining
                * much less activity and resources then some of the other offerings out there which support JPA such as Hibernate and Toplink
                * last release was in December 2005
         2. JPA is part of the standard Java platform, OJB is not.
         3. JPA is pluggable, allowing for usage of a different JPA implementation if desired.
         4. Kuali Student is already using JPA

      Statement of Direction

      The TRC JPA Working Group is recommending the following steps for proceeding with adding JPA support to Rice and the other Kuali projects:

         1. JPA 2.0 will be the target version of JPA
         2. We will use Hibernate as the reference implementation
         3. We will try to stick to the JPA specification as much as possible
                * Where needed, Vendor-specific (Hibernate) features should preferably be implemented through configuration properties/xml rather than annotations
         4. Changes will have to be made to the API and so this will be an impacting change in Rice
         5. This needs to be coordinated with other Kuali Project release schedules
         6. We will will include a Criteria API in the converted version of Rice
         7. We recommend removing OJB support when Rice is converted to JPA
         8. Each project will identify a representative from their team to participate in the development of the JPA framework infrastructure in Rice.
         9. Rice team (in conjunction with contributed Kuali project resources) will:
                * work on any required analysis and development to implement JPA support in Rice
                * develop documentation on conversion guide and best practices
                * deliver a basic conversion script
                      o focus will be on the straightforward OJB to JPA conversion items to save projects time doing manual conversion and will not be a complete OJB to JPA conversion
                * work on completion of converting Rice internally to use JPA
                * work with the other Kuali project teams to enact a conversion from OJB to JPA
      Show
      Motivations    1. OJB is an inactive product           * one developer remaining           * much less activity and resources then some of the other offerings out there which support JPA such as Hibernate and Toplink           * last release was in December 2005    2. JPA is part of the standard Java platform, OJB is not.    3. JPA is pluggable, allowing for usage of a different JPA implementation if desired.    4. Kuali Student is already using JPA Statement of Direction The TRC JPA Working Group is recommending the following steps for proceeding with adding JPA support to Rice and the other Kuali projects:    1. JPA 2.0 will be the target version of JPA    2. We will use Hibernate as the reference implementation    3. We will try to stick to the JPA specification as much as possible           * Where needed, Vendor-specific (Hibernate) features should preferably be implemented through configuration properties/xml rather than annotations    4. Changes will have to be made to the API and so this will be an impacting change in Rice    5. This needs to be coordinated with other Kuali Project release schedules    6. We will will include a Criteria API in the converted version of Rice    7. We recommend removing OJB support when Rice is converted to JPA    8. Each project will identify a representative from their team to participate in the development of the JPA framework infrastructure in Rice.    9. Rice team (in conjunction with contributed Kuali project resources) will:           * work on any required analysis and development to implement JPA support in Rice           * develop documentation on conversion guide and best practices           * deliver a basic conversion script                 o focus will be on the straightforward OJB to JPA conversion items to save projects time doing manual conversion and will not be a complete OJB to JPA conversion           * work on completion of converting Rice internally to use JPA           * work with the other Kuali project teams to enact a conversion from OJB to JPA
    • Impact if not Implemented:
      Kuali Rice software might suffer from lack of adoption because of an inability to evolve with modern technology. Kuali will continue to need to maintain it's own custom fork of the OJB code in order to patch bugs when encountered.
    • Priority - KFS:
      Critical
    • Priority - KC:
      Critical
    • Priority - KS:
      No Priority
    • Priority - Rice:
      Critical
    • Theme:
      Industry Standards
    • Application Impact:
      High
    • Effort Estimate:
      High ~ 1000 hrs

      Description

      We should replace the usage of OJB as our ORM tool with the JPA (Java Persistence API) standard.

        Issue Links

          Activity

          Hide
          Chris Coppola (Inactive) added a comment -

          Targeting for the v1.1 release. This was unanimously agreed to by the roadmap working group in Chicago.

          Show
          Chris Coppola (Inactive) added a comment - Targeting for the v1.1 release. This was unanimously agreed to by the roadmap working group in Chicago.
          Hide
          Cath Fairlie (Inactive) added a comment -

          This issue does not impact KS directly so we have not set a priority as we do not want to sway the voting. However, we generally support this direction.

          Show
          Cath Fairlie (Inactive) added a comment - This issue does not impact KS directly so we have not set a priority as we do not want to sway the voting. However, we generally support this direction.
          Hide
          Farooq Sadiq (Inactive) added a comment -

          Test editing form

          Show
          Farooq Sadiq (Inactive) added a comment - Test editing form
          Hide
          Eric Westfall added a comment -

          Just to help drive home the importance of us getting off of OJB, on April 13th the following was announced to the OJB mailing list:

          A heads up for the Apache ObJectRelationalBridge (OJB) user community that
          the OJB project has been 'moved to the Attic'.
          This means that the OJB developers (more formally its Project Management
          Committee) have voted to retire OJB and move the responsibility for its
          oversight over to the Attic project.

          Loosely speaking this means that the projects resources will be moved to a
          read-only state.

          You can read more about the Apache Attic and the process of moving to the
          Attic at http://attic.apache.org.

          You can follow this process in JIRA:

          https://issues.apache.org/jira/browse/ATTIC-113

          If you are looking for alternatives, current implementations of the JDO
          standard and/or the JPA standard should be a good starting point.

          Thanks,
          Kristian Waagan on behalf of Apache ObJectRelationalBridge + the Attic.

          Show
          Eric Westfall added a comment - Just to help drive home the importance of us getting off of OJB, on April 13th the following was announced to the OJB mailing list: A heads up for the Apache ObJectRelationalBridge (OJB) user community that the OJB project has been 'moved to the Attic'. This means that the OJB developers (more formally its Project Management Committee) have voted to retire OJB and move the responsibility for its oversight over to the Attic project. Loosely speaking this means that the projects resources will be moved to a read-only state. You can read more about the Apache Attic and the process of moving to the Attic at http://attic.apache.org . You can follow this process in JIRA: https://issues.apache.org/jira/browse/ATTIC-113 If you are looking for alternatives, current implementations of the JDO standard and/or the JPA standard should be a good starting point. Thanks, Kristian Waagan on behalf of Apache ObJectRelationalBridge + the Attic.
          Hide
          Jessica Coltrin (Inactive) added a comment -

          Per email conversation with Eric - based on the POC work, we expect that the high-level estimate can be reduced to 1000 hours. This is the amount of work to implement in Rice.

          Show
          Jessica Coltrin (Inactive) added a comment - Per email conversation with Eric - based on the POC work, we expect that the high-level estimate can be reduced to 1000 hours. This is the amount of work to implement in Rice.

            People

            • Assignee:
              Eric Westfall
              Reporter:
              Chris Coppola (Inactive)
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Structure Helper Panel