Kuali Rice Development
  1. Kuali Rice Development
  2. KULRICE-9889

Move deprecated data code and services to the rice-kns module


    • Type: Improvement Improvement
    • Status: Closed Closed
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.4
    • Component/s: Development, JPA, Roadmap
    • Security Level: Public (Public: Anyone can view)
    • Labels:
    • Similar issues:
      KULRICE-9556Move all deprecated data/persistence code to rice-kns module
      KULRICE-9140Deprecate PersistenceStructureService and related old metadata services
      KULRICE-8939Move non-UIF dependent components out of KRAD app-framework module
      KULRICE-2645Move ParameterService from KFS to Rice KNS
      KULRICE-10905Refactor quickfinder (and other lookup code) to use new KRAD data module
      KULRICE-9139Deprecate BusinessObjectService, PersistenceService, and related services related to persistence
      KULRICE-9516Create an overview/intro for the krad-data module
      KULRICE-11373Module configurer changes required to have both the module spring MVC and the module services in the same context
      KULRICE-4387Remove all deprecated code
      KULRICE-4637Remove deprecated code
    • Sprint:
      JPA Sprint 4
    • KAI Review Status:
      Not Required
    • KTI Review Status:
      Not Required
    • Code Review Status:
      Not Required
    • Include in Release Notes?:


      The idea here is that we can isolate as much of that deprecated code as possible to the KNS module (which is effectively a deprecated module). This will allow those who aren't using the legacy framework at all to completely exclude the kns module from their project.

      Note that in order to do this, we will likely want to rework the way we do LegacyDataAdapter by creating a legacy and non-legacy implementation of that which are in kns and krad module respectively. When running legacy, both would be loaded and delegated to appropriately.

      When not running the legacy framework, only the non-legacy one would be loaded and would always be delegated to.

      As a result, KRAD code should not be using any deprecated code with the exception of the LegacyDataAdapter.

      A few things to keep in mind here:

      1. The idea here would be to move all deprecated services and classes into the KNS module. This includes things like BusinessObjectService, PersistenceService, ObjectUtils, PersistableBusinessObjectBase, etc.
      2. In order to do this, we will need to take the current LegacyDataAdapterImpl and split it into two implementations, the legacy and non-legacy portions. We'll wire the non-legacy version up in KRAD and the legacy version up in KNS. We'll also have an implementation of it which knows how to determine whether or not the "legacy" version of the adapter is available (i.e. have they loaded the KNS? Check the GRL for the service) and then delegate appropriately. All-in-all, this will result in three separate implementations of the LegacyDataAdapter.
      3. Be sure not to change the package names of any of this stuff to avoid breaking compatibility. This means that we will end up with some stuff under an org.kuali.rice.krad package inside of the kns module.
      4. We'll need to be sure to move any of those services out of the spring files for KRAD and into the spring files for KNS. Either that, or create some sort of special spring file that isolates all of the old stuff from the rest of the system, but still is loaded via KRADConfigurer. I think the former makes more sense though if possible.
      5. Our big challenge is going to be dealing with PersistableBusinessObjectBase since it is deprecated but is the parent class for a number of our non-deprecated classes (our various KRAD-internal BO's). We need to come up with a strategy for how best to handle this.


        Allen Fox (Inactive) added a comment -

        All complete except moving PBO and related deprecated entities

        Allen Fox (Inactive) added a comment - All complete except moving PBO and related deprecated entities


          • Assignee:
            Allen Fox (Inactive)
            Eric Westfall
          • Votes:
            0 Vote for this issue
            2 Start watching this issue


            • Created:

              Time Tracking

              Original Estimate - 2 days
              Remaining Estimate - 2 days
              Time Spent - Not Specified
              Not Specified


                  Structure Helper Panel