[KULRICE-3716] Create a "Business Object Observer" framework Created: 20/Nov/09  Updated: 16/Jan/15

Status: Open
Project: Kuali Rice Development
Component/s: Development
Affects Version/s: 1.0.1, KFS Release 3.0
Fix Version/s: Backlog

Type: Improvement Priority: Major
Reporter: Jonathan Keller Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: Old
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Rice Module:
Application Requirement:


This is related to thoughts on performance, specifically the role type services.

Performance could be improved if the type services cached information they gather when resolving roles. (Such as org parent/child relationships or fiscal officer user IDs.) Unfortunately, since the data can change, it's not always practical.

But, if there was a standard way to notify interested objects that a business object had just been saved, they type services could purge their cache entries appropriately.

So, what about a "BusinessObjectObserver" class. It would have a two methods:
List<Class<? extends BusinessObject>> getInterestedBusinessObjectClasses()
void businessObjectSaved( BusinessObject bo )

Upon service startup, the BusinessObjectService would perform a "getBeansOfType" on the spring context and register all of them in a local HashMap<Class<? extends BusinessObject>,List<BusinessObjectObserver>> which it would use in the BO service's save methods.

Generated at Fri Jan 22 09:43:38 CST 2021 using JIRA 7.0.11#70121-sha1:19d24976997c1d95f06f3e327e087be0b71f28d4.