Another thing is that we could also make different WikiEngines and
WikiSpaces in a single engine the same level - so "Foo:Bar" just
simply refers to a page called Bar in a wiki called Foo - regardless
of whether that lives in the same WikiEngine or some other
WikiEngine than all your other pages.
Ok. That actually makes a LOT of sense. The rule would be: "We don't
care how many webapps you have, but all of your space names should be
globally unique if you expect to apply a common policy to it." It
could cause some confusion, but these could be worked-around, and
there won't be confusion in the default cases.
That might be the best from e.g. load balancing point of view - your
URLs would stay the same even if you distributed your wikis among
multiple servers or multiple JVMs. You could then use e.g.
mod_rewrite or some other means to direct to the proper servlet
instance. It would also be easiest to the user - "I got this
wikispace called 'Foo', and it's now mine. I don't care where it
lives, and how it works, but it's mine."
PS. At the risk of opening a can of worms, we ought to externalize URL
re-writing in JSPWiki 3 via Response.encodeURL(). Experimenting with
that now... Heh.
Also, even if you don't do load-balancing, you still probably want
to make wiki space names unique across all WikiEngines which share
the same repository. Or else you have to somehow divide those up
there, too, adding one extra layer (or putting them each to a
different Workspace, which is also a possibility, but...)
Would you see GroupPermissions or WikiPermissions needing support
for spaces? I don't think GroupPermission would need them, because
there's no need to divide up the groups for a given wiki.
WikiPermission might need spaces, though (e.g., for createPages).
I agree, I think groups and account management should be per-
WikiEngine and per-property -file, common to all Spaces which are
running under this Engine.
Not sure what you mean here. What would define the "namespace" for
each WikiEngine or property file? How would you distinguish them? And
how would we explain that this is somehow different from a "space"? (I
am trying to visualize the policy file: explaining that the *:* for
PagePermission means <space>:<page>, but the * in GroupPermission
means <wikiengine-or-propertyfile>.)
We also need to be careful which properties we will allow to be
configured for each WikiSpace and which are common across all spaces
and cannot be overridden.
Also, I have a question. Would subpages recurse? Or would there
just be one subpage level underneath the page?
Indefinite nesting.
Dammit. I was hoping to escape without much work. :)
/Janne