Michael Dürig created OAK-1438:
----------------------------------

             Summary: Generalise Root.commit(String) to Root.commit(Map)
                 Key: OAK-1438
                 URL: https://issues.apache.org/jira/browse/OAK-1438
             Project: Jackrabbit Oak
          Issue Type: Improvement
          Components: core
            Reporter: Michael Dürig


Currently {{Root.commit}} takes a message argument of type string. This is used 
in a single place for looping through the user data for observation, which 
stretches the initial intention. OTOH we might need a way to convey additional 
information from {{Root.commit}} to the commit validators (e.g. for OAK-1424). 
I therefore suggest to replace the message parameter with a info parameter of 
type Map<String, Object>:

{code}
    /**
     * Atomically persists all changes made to the tree attached to this root.
     * <p>
     * If {@code info} contains a mapping for {@link #COMMIT_PATH} and the
     * associated value is a string, implementations may throw a
     * {@code CommitFailedException} if there are changes outside of the subtree
     * designated by that path and the implementation does not support
     * such partial commits. However all implementation must handler the
     * case where a {@code path} designates a subtree that contains all
     * unpersisted changes.
     * <p>
     * The {@code info} map is passed to the underlying storage
     * as a part of the internal commit information attached to this commit.
     * The commit information will be made available to local observers but
     * will not be visible to observers on other cluster nodes.
     * <p>
     * After a successful operation the root is automatically
     * {@link #refresh() refreshed}, such that trees previously obtained
     * through {@link #getTree(String)} may become non existing.
     */
    void commit(Map<String, Object> info) throws CommitFailedException;
{code}



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to