jackrabbit-oak-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stefan Guggisberg <stefan.guggisb...@gmail.com>
Subject Re: MicroKernel add/set property
Date Wed, 17 Oct 2012 12:58:50 GMT
On Tue, Oct 16, 2012 at 4:39 PM, Mete Atamel <matamel@adobe.com> wrote:
> Hi,
> I have 2 questions on MicroKernel add/set property that MicroKernel
> JavaDoc does not seem to answer.
> 1- What's the difference between adding a property vs. setting a property?
> Are the two following commits basically the same?
> mk.commit("/", "+\"a/key1\" : \"value1\"", null, null);
> mk.commit("/", "^\"a/key1\" : \"value1\"", null, null);

initially we used to only support the 'set property' (create-or-modify) syntax,
i.e.  ^"/some/property" : "some value"

however, in JCR there are 2 distinct event types:

in the mk journal/diff we therefore need to make the same distinction,
i.e. added properties are reported with the '+' syntax, whereas the '^'
syntax is used to represent property modifications.

> Or are there scenarios where adding a property acts differently than
> setting a property?
> 2- Is adding a property twice supposed to work or is it supposed to throw
> a MicroKernelException? For example, this seems to work with
> MicroKernelImpl but is it supposed to?
>         mk.commit("/", "+\"a/key1\" : \"value1\"", null, null);
>         mk.commit("/", "+\"a/key1\" : \"value1\"", null, null);

you're right, that seems to be a bug. could you please file a jira issue?

> What about setting a property twice?

that shouldn't be an issue. you can set a property more than once in a
single commit. only the last modification should be persisted.


> Thanks,
> Mete

View raw message