jackrabbit-oak-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Dürig <mdue...@apache.org>
Subject Re: svn commit: r1545340 - in /jackrabbit/oak/trunk: oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/ oak-jcr/ oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/ oak-jcr/src/main/java/org/apache/jackrabbit/oak/...
Date Mon, 25 Nov 2013 17:15:30 GMT
On 25.11.13 5:43 , angela@apache.org wrote:
> Author: angela
> Date: Mon Nov 25 16:43:05 2013
> New Revision: 1545340

[...]

> Modified: jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/authorization/SessionMoveTest.java
> URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/test/java/org/apache/jackrabbit/oak/jcr/security/authorization/SessionMoveTest.java?rev=1545340&r1=1545339&r2=1545340&view=diff

[...]

> +    @Test
> +    public void testMoveAndRemoveProperty() throws Exception {
>           // TODO
>       }
>
>       @Test
> -    public void testMoveAndAddSubTree() throws Exception {
> +    public void testMoveAndAddReplacementAtSource() throws Exception {
>           // TODO
>       }
>

Just occurred to me that a while back I wrote down an exhaustive list of 
examples (in JSOP) for interactions of moves, deletes and adds:

1.   >/a:/b >/c:/d     =  >/c:/d >/a:b
2.   >/a:/b >/a/b:/c      illegal
3.   >/a:/b >/a:/c        illegal
4.   >/a/b:/c >/a:/d   =  >/a:/d >/d/b:/c
4.   >/a/b:/c >/a:/c/d
4'.  -/a/b -/a         =  -/a
4'.  >/a/b:/c -/a
5.   >/a:/b >/c:/d     =  >/c:/d >/a:b
6.   >/a:/b >/c:/a/d      illegal
7.   >/a:/b >/c:/a
8.   >/a/d:/b >/c:/a      illegal
9.   >/a:/b >/c:/d     =  >/c:/d >/a:b
10.  >/a:/b >/b/c:/d   =  >/a/c:/d >/a:/b
10'. +/b:{} >/b/c:/d      illegal
11.  >/a:/b >/b:/c     =  >/a:/c
12.  >/a:/b/c >/b:/d   =  >/b:/d >/a:/d/c
12'. >/a:/b/c -/b      =  -/b -/a = -/a -/b
13:  >/a:/b >/c:/d     =  >/c:/d >/a:b
14.  >/a:/b >/c:/b/d   =  >/c:/a/d >/a:/b
14.  >/a/b:/b >/a:/b/d
14'. +/b:{} >/c:/b/c
14'. +/b:{} >/c:/b/c/d    illegal
15.  >/a:/b >/c:/b        illegal
16.  >/a:/b/d >/c:/b      illegal

Maybe these are helpful for writing test cases and making sure we don't 
miss anything.

The examples are taken from the Javadoc [1] of the change log 
consolidation algorithm [2] I wrote almost 2 years ago. It seems to me 
MoveTracker is going into the same direction. However as it only tracks 
move operations I don't think we will be able to have it cope with all 
cases.

Michael

[1] http://markmail.org/message/3c22jqy6gzzkyxx2
[2] 
http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-microkernel/src/main/java/org/apache/jackrabbit/state/ChangeLog.java?view=markup

Mime
View raw message