[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

Similar issues:
KULRICE-4736Support for dynamic business objects
KULRICE-1551Build KOM business objects
KULRICE-1312Create Business Objects for KOM
KULRICE-4102Maintenance Document framework assumes objects are persistable
KULRICE-9552Deprecate old business object classes and document replacements (if any)
KULRICE-10974Advanced Lookup Demo - Create Business Objects
KULRICE-4576Looks like there is a bug in the KNS framework with nested collections and externalizable business objects.
KULRICE-9795Convert the PersistableAttachment framework for KRAD
KULRICE-14041Maint docs for business objects where notes associated with business object lose notes during ad hoc routing
KULRICE-5200Addition of attachmentFile (Struts class) on the PersistableBusinessObject has rendered all business objects non-serializable
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 Sun Jul 12 10:44:27 CDT 2020 using JIRA 6.1.5#6160-sha1:a61a0fc278117a0da0ec9b89167b8f29b6afdab2.