The problem:
Each time an xar application is added, if it is to be configured it must alter
XWikiPreferences and the administration
application making the separation of different applications meaningless.
The goal:
Ability to install an application from an xar file and have configuration appear on the
appropriate administration sheet,
also the ability to remove an application easily without leaving anything behind.
My proposal:
Add a class called XWiki.Configurable, any document which contains an object of this class
is pulled into the appropriate
administration sheet via an includeForm call.
Concerns:
Upgradeability - We must be able to save the old configuration when the user does an
update.
I think this should be up to the individual application to detect that it has been
updated, get it's configuration back
from the document history and reinstall the old configuration.
Security - We can't allow just anyone to create a page which will be pulled into the
administration sheet.
It must be limited to those with admin or programming rights.
The Configurable class:
I think it should contain two fields, one telling which administration sheet it should be
displayed on and the other
holding a version number which is incremented every time an application's
configuration changes such that it cannot
simply copy the old configuration into the updated application, much like the database is
numbered according to the
revision number of the last schema change.
WDYT?
Caleb