Hi Angela, we are using the Jackrabbit Standalone Server and access it via WebDav. So it's case b_. Well what we do is to rebuild the JCR API in PHP. We have a PHP session that simulates the JCR session. All changes made are cached by the PHP session. On $session->save() all changes are written to Jackrabbit via webdav. It's working great unless for references to new nodes within a session due to the unavailability of uuids. So our thought for the proceeding within PHP was the following:
- start a PHP session - begin transaction - do some work in the PHP cache like adding nodes and properties (unless poperties containing references) - save session (write everything to Jackrabbit, uuids of new referencable nodes should be available after that) - create all references in the PHP cache - save session again (write references to Jackrabbit) - commit transaction We would like to do it this way because that would give us the ability to do a rollback in case of an error during all the writing. So I would be great if uuids of new referenceable nodes would be available immediately after they were created via webdav within a transaction. Kind regards, Johannes -------- Original-Nachricht -------- > Datum: Fri, 10 Jun 2011 10:27:31 +0200 > Von: Angela Schreiber <[email protected]> > An: [email protected] > Betreff: Re: Adding nodes with references within a single transaction via > webdav > hi johannes > > the subject "Adding nodes with references within a single transaction > via webdav" somehow leaves me uncertain if i understand your issue. > > a_ are you taking about a jcr2spi repository? > b_ or are you talking about the webdav server implementation? > > > What we definitely need for our CMF are references between JCR nodes. > E.g. you would like to assign pages to menu items or you would like to have a > picture on several pages and so on. > > But one big problem for us is that you are not able to reference a node > until it is persisted. We also had a look at transactions: same issue. > Referenceable nodes will get their uuid not before the transaction is > committed. So we are not able to persist two or more content items with > references > to each other within the same transaction. Well this behavior is totally in > accordance to the spec. > > in case of a_: > > that's correct. node are only referenceable once the jcr:uuid property > has been persisted. the reason for this is that the final nature of the > uuid is defined by the backend and there is little jcr2spi can do about > this (except if there was an explicit call to the spi-implementation to > generate the uuid which would as well generated some extra round trips). > > in case of b_: > i think that should be possible as the underlying jcr implementation is > a jackrabbit-core which makes a node referenceable immediately. > > kind regards > angela -- Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir belohnen Sie mit bis zu 50,- Euro! https://freundschaftswerbung.gmx.de
