jackrabbit-oak-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Thomas Mueller (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (OAK-264) MicroKernel.diff for depth limited, unspecified changes
Date Tue, 21 Aug 2012 09:51:38 GMT

    [ https://issues.apache.org/jira/browse/OAK-264?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13438565#comment-13438565
] 

Thomas Mueller commented on OAK-264:
------------------------------------

Here the proposed patch. The project oak-it/mk doesn't need to be changed (there is a test,
but it doesn't check for the end of the diff).

{code}
Index: src/main/java/org/apache/jackrabbit/mk/model/tree/DiffBuilder.java
===================================================================
--- src/main/java/org/apache/jackrabbit/mk/model/tree/DiffBuilder.java	(revision 1375443)
+++ src/main/java/org/apache/jackrabbit/mk/model/tree/DiffBuilder.java	(working copy)
@@ -144,7 +144,8 @@
                         super.childNodeChanged(name, before, after);
                     } else {
                         buff.tag('^');
-                        buff.value(p);
+                        buff.key(p);
+                        buff.object().endObject();
                         buff.newline();
                     }
                     ++levels;
Index: src/main/java/org/apache/jackrabbit/mk/api/MicroKernel.java
===================================================================
--- src/main/java/org/apache/jackrabbit/mk/api/MicroKernel.java	(revision 1375021)
+++ src/main/java/org/apache/jackrabbit/mk/api/MicroKernel.java	(working copy)
@@ -193,7 +193,7 @@
      * The {@code depth} limit applies to the subtree rooted at {@code path}.
      * It allows to limit the depth of the diff, i.e. only changes up to the
      * specified depth will be included in full detail. changes at paths exceeding
-     * the specified depth limit will be reported as {@code ^"/some/path"},
+     * the specified depth limit will be reported as {@code ^ "/some/path": {}},
      * indicating that there are unspecified changes below that path.
      * <table border="1">
      *   <tr>
{code}
                
> MicroKernel.diff for depth limited, unspecified changes
> -------------------------------------------------------
>
>                 Key: OAK-264
>                 URL: https://issues.apache.org/jira/browse/OAK-264
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: mk
>            Reporter: Thomas Mueller
>            Priority: Minor
>
> Currently the MicroKernel API specifies for the method "diff", if the depth parameter
is used, that unspecified changes below a certain path can be returned as:
>   ^ "/some/path"
> I would prefer the slightly more verbose:
>   ^ "/some/path": {}
> Reason: It is similar to how getNode() returns node names if the depth limited: "some":{"path":{}},
and it makes parsing unambiguous: there is always a ':' after the path, whether a property
was changed or a node was changed. Without the colon, the parser needs to look ahead to decide
whether a node was changed or a property was changed (the token after the path could be the
start of the next operation). And we could never ever support ':' as an operation because
that would make parsing ambiguous.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message