[ 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

Reply via email to