jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Edgar Poce (JIRA)" <j...@apache.org>
Subject [jira] Created: (JCR-65) ChainedPersistenceManager
Date Tue, 15 Mar 2005 20:36:20 GMT

         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

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. 


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:
If you want more information on JIRA, or have a bug to report see:

View raw message