Today, <wiki> means the value returned by WikiEngine.getApplicationName().
I think this needs to go. WikiEngine.getApplicationName() should probably be deprecated.
One easy way to make things match up is would be to declare the "wiki" permission parameter to be equivalent to what we'd call a "space" in JSPWiki 3.
Yes, that was exactly what I was thinking.
However, I think this might be a little problematic... because to date, the "wiki" parameter was meant to distinguish between multiple webapps, rather than distinguish between parts of a single webapp. This is important for global security policies, for example.
I think that with wikispaces, we can probably get rid of most of the reasons that people are running multiple wikis for. So you would typically run only a single engine, with a single local policy file.
For page URLs: <wiki>:<space>:<page>/<subpage> For page permission targets: <wiki>:<space>:<page>/<subpage>
I think that'll get rather complicated - especially if you put your other WikiEngine in a different URI space altogether. This is what I am doing right now - I have multiple WikiEngines running (under the same JVM) which are under a different virtualhost. So www.ecyrd.com and www.jspwiki.org both host a JSPWiki.
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.
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."
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.
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. /Janne
