Return-Path: X-Original-To: apmail-jackrabbit-dev-archive@www.apache.org Delivered-To: apmail-jackrabbit-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 2BF279A2A for ; Wed, 14 Dec 2011 13:11:15 +0000 (UTC) Received: (qmail 52974 invoked by uid 500); 14 Dec 2011 13:11:14 -0000 Delivered-To: apmail-jackrabbit-dev-archive@jackrabbit.apache.org Received: (qmail 52940 invoked by uid 500); 14 Dec 2011 13:11:14 -0000 Mailing-List: contact dev-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@jackrabbit.apache.org Delivered-To: mailing list dev@jackrabbit.apache.org Received: (qmail 52933 invoked by uid 99); 14 Dec 2011 13:11:14 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 14 Dec 2011 13:11:14 +0000 X-ASF-Spam-Status: No, hits=-2.3 required=5.0 tests=RCVD_IN_DNSWL_MED,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of mueller@adobe.com designates 64.18.1.35 as permitted sender) Received: from [64.18.1.35] (HELO exprod6og115.obsmtp.com) (64.18.1.35) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 14 Dec 2011 13:11:05 +0000 Received: from outbound-smtp-2.corp.adobe.com ([193.104.215.16]) by exprod6ob115.postini.com ([64.18.5.12]) with SMTP ID DSNKTuigVHeJH0gyOSq1QAY+EGUs77uAJOtZ@postini.com; Wed, 14 Dec 2011 05:10:45 PST Received: from inner-relay-1.corp.adobe.com (inner-relay-1.corp.adobe.com [153.32.1.51]) by outbound-smtp-2.corp.adobe.com (8.12.10/8.12.10) with ESMTP id pBEDAhlQ024893 for ; Wed, 14 Dec 2011 05:10:43 -0800 (PST) Received: from nacas02.corp.adobe.com (nacas02.corp.adobe.com [10.8.189.100]) by inner-relay-1.corp.adobe.com (8.12.10/8.12.10) with ESMTP id pBEDAgL7001206 for ; Wed, 14 Dec 2011 05:10:42 -0800 (PST) Received: from eurcas01.eur.adobe.com (10.128.4.27) by nacas02.corp.adobe.com (10.8.189.100) with Microsoft SMTP Server (TLS) id 8.3.192.1; Wed, 14 Dec 2011 05:10:42 -0800 Received: from eurmbx01.eur.adobe.com ([10.128.4.32]) by eurcas01.eur.adobe.com ([10.128.4.27]) with mapi; Wed, 14 Dec 2011 13:10:41 +0000 From: Thomas Mueller To: "dev@jackrabbit.apache.org" Date: Wed, 14 Dec 2011 13:10:37 +0000 Subject: Re: [Jackrabbit Wiki] Update of "Jsop" by stefan Thread-Topic: [Jackrabbit Wiki] Update of "Jsop" by stefan Thread-Index: Acy6Ycc41xtPu75hTtSD/Jyb/Q+yPw== Message-ID: In-Reply-To: <4EE88C8C.20703@apache.org> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/14.13.0.110805 acceptlanguage: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Hi, In my view, we should try to stay compatible with DavEx JSOP, except for those cases where DavEx JSOP is problematic: - I think it didn't require paths to be double quoted? - Move operations were defined as > "/from": "/to" [#before|#after], which is problematic from a parser point of view, because optional token at the end of "logical line" are ambiguous (the token might belong to the next logical line). >Sling JSOP I believe the 'diff' part within Sling isn't implemented yet, right? I guess The Sling JSOP should be compatible with what we do for Jackrabbit 3 as much as possible, but the use cases might be slightly different. >IETF JSON Diff I think our work will influence IETF JSON Diff. The "test" and "move" operation were already added, I guess the "copy" operations will be added as well, because it simply makes sense to have such an operation. I think the standards are still ambiguous in a few areas. One is the exact specification of a "path" and "path element". I saw that draft-pbryan-json-patch-02.txt assumes a number at the end of a path is an array index: "Moving an Array Element" - "/foo/1" refers to the second element in the array "/foo". That could mean number are not allowed as path elements (there could be no node called "/foo/1"). Another problem we ran into is adding a 'options mechanism' in the getNodes call. One idea is to append ";hash" to the path if the server should include the content hash for each node. That means getNode("/foo;hash") would return the node "/foo", together with the ":hash" property (in our implementation). But that would mean semicolons are not allowed in path elements. Then, one idea was the convention to append the data type to the property name, for example "/foo/lastModified*date" would mean the value type is date. While that could only be a convention, it might make sense to document it in the standard as such. Regards, Thomas