Currently, the JPA based model does not support the goal of providing pluggable persistence. The following proposed model structure should simplify the task of providing a non-jpa based persistence layer. The changes in this proposal represent the MINIMUM amount of work to complete the conversion. All other model changes should happen in a separate proposal.

Proposed Maven Module Structure

rave-project
   |__rave-components
   |     |__rave-commons       //Common utility & helper classes
   |     |__rave-core          //Core service, model & repository interfaces.  Includes PURE POJO model implementations. 
   |     |__rave-jpa           //JPA implementation of the Rave models repositories
   |     |__rave-web           //All web specific components      
   |__rave-...                 //The rest stays as is

Functional Changes

  • All repositories will be expected to translate to their own representations of objects (IE JPA Entities)
  • The Interface for a model MUST be used
  • The POJO implementations are to be used only when creation of a new model instance is required in the service or web layers

Method of Change

All changes to the code will be made in a branch. Integration of the branch into trunk will be done via lazy consensus with a 72 hour waiting period once all JPA entities have been converted to interfaces.

  • No labels