You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lenya.apache.org by Apache Wiki <wi...@apache.org> on 2008/06/26 19:06:40 UTC
[Lenya Wiki] Update of "JcrContentModelAreas" by AndreasHartmann
Dear Wiki user,
You have subscribed to a wiki page or wiki category on "Lenya Wiki" for change notification.
The following page has been changed by AndreasHartmann:
http://wiki.apache.org/lenya/JcrContentModelAreas
New page:
== Areas (Authoring, Staging, Live) ==
This section refers to areas as abstract concepts, not necessarily modeled as separated content areas.
Requirements:
* independent from each other (changes to /authoring/foo don't influence staging/foo)
* self-contained
Options:
=== Workspaces ===
Advantages:
* Physically separated nodes with same UUID possible ("corresponding nodes" concept)
* Separated, independent
* Self-contained
Issues:
* Changing the site structure requires to remove the involved nodes from all non-authoring areas (like now)
* Copying access control definitions?
* {{{Node.update(workspace)}}} copies the subtree:
* either nodes must be kept in a flat structure (no hierarchy)
* or nodes and properties must be copied manually
* or use referenceable child nodes
{{{
/de
/foo < mix:referenceable
/lenya:document < mix:referenceable
/jcr:content = "Hello"
/bar
}}}
Publish single node:
{{{
getItem("/de/foo/lenya:document").update("staging");
}}}
Publish subtree:
{{{
getItem("/de/foo").update("staging");
}}}
=== Separated Areas in a Single Workspace ===
Advantages:
* Simple access
Issues:
* Copying access control definitions required
* Different UUIDs:
* Either rewrite links
* Or don't use JCR UUIDs but custom String properties for UUIDs
=== Separated Areas in a Single Node ===
Example:
{{{
/foo
/lenya:authoring
/jcr:content = "Hello"
/lenya:staging
/jcr:content = "Hello"
/lenya:live
/jcr:content = "Hello"
/bar
/lenya:authoring
/…
}}}
Advantages:
* Simple
* Site structure can be changed without removing staged or published content
Issues:
* Areas not self-contained
* No direct URI-to-path mapping possible
* Changes to site structure would be visible in all areas immediately
=== Labelled Versions ===
* Issues:
* All changes applied immediately, without calling {{{Session.save()}}}
* Access control to version history?
Submit:
{{{
VersionHistory history = node.getVersionHistory();
Version base = node.getBaseVersion();
boolean move = true;
history.addVersionLabel(base.getName(), "staging", move);
}}}
Obtaining live version:
{{{
VersionHistory history = node.getVersionHistory();
Node liveVersion = history.getVersionByLabel("live");
Node liveNode = liveVersion.getChild("jcr:frozenNode");
}}}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lenya.apache.org
For additional commands, e-mail: dev-help@lenya.apache.org