Hi J,

I had already tried your approach with multiple workspaces. The problem with
that is, I don't want a workspace for every user, since there might be a lot
of users.
Do you have a lot of users that do reading and a few that actually modify
something? Or do generally all users read and write?

If there are only few users (or even "Activities" for multiple users working
together on a bigger "change set") that actually make modifications, then
you may allow the users to start their "change project" as they begin
making changes which would then result in the creation of a new
fully populated workspace, which is used during the course of the
modification until the changes are checked back in, which could
also result in the disposal of the workspace.

I guess architecturally it sounds like the cleanest solution would be
to have something that we at some point of the specification called
a "Dynamic Workspace" meaning that a dynamic workspace would
be based on another workspace and from an implementation perspective
would not incur the cost of actually duplicating the content.
Since we found that this really is an implementation detail, we took it
out of the JCR spec. So I guess, it would be up to the Jackrabbit
implementation to be able to provide something like that, which I
personally think would be fantastic. This almost sounds like
a very clever "copy on write" implementation, with quite an impact
on things like the search index, referential integrity and for the
first time forcing "cross-workspace" dependencies.

...and that actually would be a good topic for the dev-list ;)

regards,
david

Reply via email to