Return-Path: Delivered-To: apmail-incubator-chemistry-dev-archive@minotaur.apache.org Received: (qmail 45016 invoked from network); 20 Nov 2009 14:30:24 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 20 Nov 2009 14:30:24 -0000 Received: (qmail 39585 invoked by uid 500); 20 Nov 2009 14:30:24 -0000 Delivered-To: apmail-incubator-chemistry-dev-archive@incubator.apache.org Received: (qmail 39514 invoked by uid 500); 20 Nov 2009 14:30:24 -0000 Mailing-List: contact chemistry-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: chemistry-dev@incubator.apache.org Delivered-To: mailing list chemistry-dev@incubator.apache.org Received: (qmail 39504 invoked by uid 99); 20 Nov 2009 14:30:23 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 20 Nov 2009 14:30:23 +0000 X-ASF-Spam-Status: No, hits=-2.6 required=5.0 tests=BAYES_00 X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of fguillaume@nuxeo.com designates 216.239.58.189 as permitted sender) Received: from [216.239.58.189] (HELO gv-out-0910.google.com) (216.239.58.189) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 20 Nov 2009 14:30:21 +0000 Received: by gv-out-0910.google.com with SMTP id c6so563969gvd.17 for ; Fri, 20 Nov 2009 06:29:59 -0800 (PST) MIME-Version: 1.0 Received: by 10.103.64.19 with SMTP id r19mr721866muk.8.1258727398706; Fri, 20 Nov 2009 06:29:58 -0800 (PST) In-Reply-To: References: Date: Fri, 20 Nov 2009 15:29:58 +0100 Message-ID: <646a352f0911200629i7a68f032h33cceff975bef9d1@mail.gmail.com> Subject: Re: Versioning Services Problem From: Florent Guillaume To: chemistry-dev@incubator.apache.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Hm I think there's a misunderstanding about the roles of these components. The module chemistry-atompub-client is here to be a bridge between the APIs and the AtomPub protocol. It must not contain any implementation logic of the CMIS service itself. Only backends (like "Simple", or our own Nuxeo backend for instance) must contain the mapping logic between the vendor storage engine and the CMIS APIs. So deciding how versioning is implemented or when/how properties are set doesn't have its place in chemistry-atompub-client. Florent On Thu, Nov 19, 2009 at 3:55 PM, Emanuele Lombardi wrote: > I'm implementing it in chemistry-atompub-client > APPDocument and APPConnection as new feature. > > Emanuele > >> On Thu, Nov 19, 2009 at 2:32 PM, Emanuele Lombardi >> wrote: >> > Hi Florent, >> > I'm sorry, but I don't speak english very well. I try to explain my qu= estion. >> > I'm implementing the versioning services in particular the checkOut/ch= eckIn operations. >> >> You're implementing it in what codebase? Is this your code for a >> backend of your own? Or are you implementing it for the JCR bindings? >> Or in the "Simple" codebase (which, I repeat, is here to exercise the >> APIs and server/client bindings)? >> >> Florent >> >> > The CMIS spec say "The value of the cmis:isVersionSeriesCheckedOut pro= perty MUST be TRUE." on other Documents in the Version Series. So I retriev= e all the documents in the checked out document's version series and set th= eir poperty cmis:isVersionSeriesCheckedOut=3Dtrue and then I call the save = method on the document. >> > After the implementation I write unit test using Simple Implementation= and when I assert if cmis:isVersionSeriesCheckedOut is true it fail becaus= e the property is readOnly and the save method don't modify it. >> > >> > Thanks and I hope this explanation is comprensible >> > >> > Emanuele >> > >> > >> > >> > >> >> Hi Emanuele, >> >> >> >> I don't understand what code your talking about. You seem to talk >> >> about the internals of a repository exposed through Chemistry, in >> >> which you want to have the property cmis:isVersionSeriesCheckedOut >> >> take different values. But this is a system property, entirely manage= d >> >> by the backend repository or its mapping the the Chemistry model, so = I >> >> don't understand why changing its exposed value would be a problem. >> >> >> >> If you're talking about the current "Simple" implementation used in >> >> the unit tests, then versioning isn't implemented yet, and the >> >> management of cmis:isVersionSeriesCheckedOut (which is tied to >> >> versioning) is not coded either. >> >> >> >> The PROP_IS_VERSION_SERIES_CHECKED_OUT of SimpleType is how we expose >> >> this property to user code. We cannot have it be "read-write when >> >> checked out", as this is a system property and the CMIS spec mandates >> >> it to be "Read Only". >> >> >> >> Keep in mind that the "Simple" implementation is not really meant to >> >> be a base for implementing a new repository (except for very simple >> >> classes like SimpleObjectId), it's there mainly for unit tests and to >> >> prove that the different levels of the APIs and client/server mapping= s >> >> work all right together. >> >> >> >> Florent >> >> >> >> >> >> On Tue, Nov 17, 2009 at 10:48 AM, Emanuele Lombardi >> >> wrote: >> >> > Thanks Florent, >> >> > Now I have another problem, when I invoke the checkOut service on a= document I must, for example, set the property IsVersionSeriesCheckedOut o= n other documents in the version series. But this property is read-only and= the putEntry method don't update it. >> >> > My proposal is to set the propertyDefinition updatability to "read-= write when checked out". Is it possible? >> >> > >> >> > Thanks >> >> > Emanuele >> >> > >> >> >> Hi Emanuele, >> >> >> >> >> >> As it happens I'm working on adding update code right now, I shoul= d >> >> >> have something working tomorrow (for the trunk). >> >> >> >> >> >> Florent >> >> >> >> >> >> >> >> >> On Wed, Oct 28, 2009 at 3:56 PM, Emanuele Lombardi >> >> >> wrote: >> >> >> > Hi, >> >> >> > I'm working on versioning services, but I have a problem :The Up= dating of CmisObject's properties. >> >> >> > >> >> >> > My procedure: >> >> >> > First I set the property value by CMISObject#setValue method and= last I call the save method. The save method if is an update require a ser= ver method not yet implemented and I try to implement it (the method is "or= g.apache.chemistry.atompub.server.CMISObjectsCollection.putEntry(ObjectEntr= y, String, Date, List, String, Content, RequestContext)") But my im= plementation doesn't work. If I'm not able to save the modified properties = on the repository I can't test the versioning services. >> >> >> > Can you help me? I attach my code. >> >> >> > >> >> >> > Thanks >> >> >> > >> >> >> > Emanuele --=20 Florent Guillaume, Director of R&D, Nuxeo Open Source, Java EE based, Enterprise Content Management (ECM) http://www.nuxeo.com http://www.nuxeo.org +33 1 40 33 79 87