You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Michael Dürig (JIRA)" <ji...@apache.org> on 2014/02/19 15:00:21 UTC
[jira] [Assigned] (OAK-1438) Generalise Root.commit(String) to
Root.commit(Map)
[ https://issues.apache.org/jira/browse/OAK-1438?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Michael Dürig reassigned OAK-1438:
----------------------------------
Assignee: Michael Dürig
> 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
> Assignee: 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)