Dear Wiki user, You have subscribed to a wiki page or wiki category on "Rave Wiki" for change notification.
The "ArchitectureTopics/Persistence/ModelIsolation" page has been changed by ChrisGeer: http://wiki.apache.org/rave/ArchitectureTopics/Persistence/ModelIsolation?action=diff&rev1=3&rev2=4 - The current model is very tightly coupled with inter-related classes directly referencing each other to build a fairly complex model graph. This approach makes providing a mixed persistence mode very difficult. This proposal attempts to rectify the situation by defining "verticals" within the object model that can remain tightly coupled but using ids to reference "horizontal" objects. + The current model is very tightly coupled with inter-related classes directly referencing each other to build a fairly complex model graph. This approach makes providing a mixed persistence mode very difficult. This proposal attempts to rectify the situation by defining "verticals" within the object model that can remain tightly coupled but using ids to reference "horizontal" objects. This coupling also affects how objects should be persisted/acted-on as groups. Along with the entities below the () contain the service and repository objects that will manage the items. '''Verticals''' ---- - '''''Page''''' + '''''Page''''' (PageService, PageRepository) * Page * Region * RegionWidget @@ -12, +12 @@ * PageUser '''''Page Prototyping''''' - * PageTemplate - * PageTemplateRegion - * PageTemplateWidget + * PageTemplate (PageTemplateService, PageTemplateRepository) + * PageTemplateRegion (PageTemplateService, PageTemplateRepository) + * PageTemplateWidget (PageTemplateService, PageTemplateRepository) - '''''Page Rendering''''' + '''''Page Rendering''''' - * PageLayout + * PageLayout (PageLayoutService, PageLayoutRepository) - '''''Widget''''' + '''''Widget''''' (WidgetService, WidgetRepository) * Widget * WidgetComment * WidgetRating @@ -27, +27 @@ * Tag * Category - '''''Person''''' + '''''Person''''' (PersonService, PersonRepository) * Person * PersonProperty * Address * Organization '''''User''''' - * User - * Authority + * User (UserService, UserRepository) + * ApplicationData (UserService, UserRepository) + * Authority (AuthorityService, AuthorityRepository) '''''System''''' - * PortalPreference + * PortalPreference (PortalPreferenceService, PortalPreferenceRepository) '''''OAuth''''' * OAuthConsumerStore * OAuthTokenInfo - '''''Groups''''' + '''''Groups''''' (GroupService, GroupRepository) - * Group + * Group - '''''Application Data''''' - - * ApplicationData -
