List Info

Thread: which nodes to lock?




which nodes to lock?
user name
2007-01-30 12:32:30
hi!


i'm trying to implement proper checkout (aka locking) for
tinymce.
andreas told me to

 > - set the transaction policy of the usecase to
"pessimistic"
 > - return the document's repository node in
getNodesToLock()

in order to find out how to do that, i looked for clues in
other 
modules. in webdav, i found the Put.java usecase handler,
and i figured 
the same locking that's good for webdav uploads should be ok
for an 
editor usecase as well. but it seems there is a whole bunch
of nodes 
being locked:

/**
  * see
org.apache.lenya.cms.usecase.AbstractUsecase#getNodesToLock(
)
  */
protected Node[] getNodesToLock() throws UsecaseException {
     try {
         Document doc = getSourceDocument();
         List nodes = new ArrayList();
         NodeSet set = SiteUtil.getSubSite(this.manager,
                 doc.getLink().getNode());
         Document[] documents = set.getDocuments();
         for (int i = 0; i < documents.length; i++) {
             nodes.add(documents[i].getRepositoryNode());
         }
         SiteStructure structure =
getSourceDocument().area().getSite();
         nodes.add(structure.getRepositoryNode());
         return (Node[]) nodes.toArray(new
Node[nodes.size()]);
     } catch (Exception e) {
         throw new UsecaseException(e);
     }
}

let me see. i edit a document 
"mysite.org/mypub/authoring/some/path/to/foo.html"
.
does that mean i have to lock "/some.html",
"/some/path.html", 
"/some/path/to.html" and finally
"/some/path/to/foo.html"?

i can see how that made sense with the old repository
implementation, 
but is it really necessary now that we have moved to UUIDs
and each 
document is addressed directly?
the answer probably depends on how we want to handle
sitetree updates. 
there was some discussion about this a while ago, but i
can't remember 
what was decided.

if i lock all those nodes, i can be sure that nobody makes
changes to 
the relevant sub-sitetree while somebody is editing a file.
but it also 
means that when someone is editing *any* document, you can't
edit any of 
its ancestors, right?

help!


jörn



-- 
Jörn Nettingsmeier

"Hofstadter's Law: It always takes longer than you
expect,
even when you take into account Hofstadter's Law."
	- Douglas R. Hofstadter

------------------------------------------------------------
---------
To unsubscribe, e-mail: dev-unsubscribelenya.apache.org
For additional commands, e-mail: dev-helplenya.apache.org


[1]

about | contact  Other archives ( Real Estate discussion Medical topics )