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-unsubscribe lenya.apache.org
For additional commands, e-mail: dev-help lenya.apache.org
|