Layout Manager Refactoring

Goals

Brainstorming, Requirements and Design for refactoring uPortal profile and layout management and persistence. These ideas will be reviewed and collated into formal plan and implemented hopefully for uPortal 4.1.

  • JPA2 user dao with strongly defined user data model, this could be merged with the local account dao that was added in 4.0
  • JPA2 profile dao with strongly defined profile datamodel.
  • JPA2 layout dao with strongly typed data datamodel, like all the other JPA daos in uPortal the only way of interacting with layout data should be manipulating the model and the DAO APIs.
  • Appropriate relationships between user, profile and layout objects to allow for one user to have different layouts based on the device profile being used
  • The ability to merge multiple layouts and layout fragments and user customizations into a final layout (what DLM does right now)
  • The ability to generate a StAX event reader for a layout data model. This will be used to feed into the XML based rendering pipeline.
  • Merging of the portlet entity data model and registry with the layout data model, portlet entity data would be directly attached to layout nodes

Data Model Notes

  1. Not sure the actual FK relationship between UserLayout and UserProfile since the UserLayoutKey needs to be in the mix somehow
  2. UserLayout will store a relational tree model of layout nodes (folders, portlet, dlm nodes)
  3. The portlet entity data model will be merged into the portlet nodes of the layout data model

TODO copy notes from uPortal Layout Management - Requirements