Hi Shaun,

I think this is a very good use of workspaces.

Option 1: Use a separate DRAFT and LIVE workspace, and use event listeners
or scheduled process to 'publish' or 'unpublish' pages into the LIVE
workspace.
But, the usage of references means that publishing or unpublishing can break
referential integrity if 'dependent' items are not published/unpublished at
the same time.
Web Content Management is just about my favorite domain ;)

I think "Option 1" is the right way of doing it, which is what we use in
our product.

Personally, I would not use JCR references throughout the WCM domain.
I think one has to assume that "assets" on a website may have different
live-cycles. I would discourage the use of JCR references between assets
that have different live cycles and I would use hierarchical containment
for assets that share the same live cycle.
I think that a WCM application needs to assume dangling references or
possibly better use paths for many usecases.

Q1: is option 2 an appropriate use of workspaces?
I think "option 1" is the way to go.

Q2: are there any convenient mechanisms to determine 'dependent items'? I
presume you'd just need to recurse through everything referenced by your
'page'.
I think everything that belongs to a "page" should be hierarchically contained.

Something like...

/news/2007/07/10/world/asia/10cnd-pakistan
/news/2007/07/10/world/asia/10cnd-pakistan/images/man.jpg

Other assets like ...

/medialibrary/logo.gif

...have a different live cycle. I would refer to
by path and gracefully fail if it the path does not exist.

The same is also true for linking from one article to another.
Since I would expose the paths as URLs they should be fairly
stable to begin with.

regards,
david

Reply via email to