[ http://issues.apache.org/jira/browse/JCR-65?page=comments#action_62026 ] Edgar Poce commented on JCR-65: -------------------------------
After many conversations with the dev team about persistence manager responsibilities I feel more in favor of non smart implementations. Now I see the chained persistence manager like a home made workaround and I think it should be discarded. Nevertheless, I like the idea of legacy system integration, which was the motivation of this implementation. I think that a framework for integrating legacy systems could be very useful. > ChainedPersistenceManager > ------------------------- > > Key: JCR-65 > URL: http://issues.apache.org/jira/browse/JCR-65 > Project: Jackrabbit > Type: New Feature > Reporter: Edgar Poce > Priority: Minor > Attachments: 05-03-15-chained-persistence.zip, uml-class.gif > > Overview > The package contains the classes that provide chaining of Persistence > Managers support through an implementation of the chain of responsibility > pattern. > The ChainedPersistenceManager class is the chain's external controller. > The current implementation uses composition instead of inheritance. The > concrete handlers (PersistenceManager) are private members instead of > subclasses. > For reading commands no evaluation is performed, the > ChainedPersistenceManager returns the response of the first handler that > finds the object. > For writing commands, the PersistenceManagerHandler class delegates > conditionally the persistence calls to the concrete implementation based on a > custom evaluation. > Custom PersistenceManagerEvaluator implementations can be set through > configuration. > Custom listeners can be added to the ChainedPersistenceManager class. It > allows to perform custom operations on "after init" and "before close" > events. > Warning > This package should be used only in a couple of cases and none of them is the > best practice. > * Sharing jcr data with others systems through a custom PersistenceManager > * Integrating a legacy system > Reliability, integrity and performance of the PersistenceManager are > *crucial* to the overall stability & performance of the repository. if e.g. > the data that a PersistenceManager is based upon is allowed to change through > external means the integrity of the repository would be at risk (think of > referential integrity/ node references e.g.). -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - If you want more information on JIRA, or have a bug to report see: http://www.atlassian.com/software/jira
