Hi xwikiers,
Since May and actively since end of August I'm working on a POC for
the future (long awaited) Extension Manager. It's now in a state where
you can play with it a bit !
So here is a quick advertisement.
You can find it on
http://svn.xwiki.org/svnroot/xwiki/contrib/sandbox/xwiki-extension/
What it does already:
- display remote extension and its dependencies as a tree
- install remote extension and its dependencies from repositories
- framework support any kind of extension using ExtensionInstaller
component interface but only jar installer is implemented right now
- framework support any kind of repository using RepositoryFactory
component interface but only maven is implemented right now
- load installed application when XWiki starts
Critical features not yet supported:
- miscellaneous rights protections in extension manager script service
- uninstall/upgrade support: need to find a way to remove a jar from
classloader. Note that you can remove an extension from local
repository and restart.
- xar installer: just need to provide a ExtensionInstaller
implementation with role hint "xar" since this needs access to the
whole model the first version will probably be implemented with old
APIs (XWikiDocument, etc.) on xwiki-core side
- install extension not coming from a repository: the current API is
very repository centric but you can do it "by hand" by putting
directly the extension jar file in the local repository.
- real descriptors in local repository for installed extensions (to
store in a repository independent way extension information as well as
some local only metadas like the fact that an extension as been
installed as a dependency of another etc.)
- others on
http://svn.xwiki.org/svnroot/xwiki/contrib/sandbox/xwiki-extension/README.t…
I'm preparing some design documentation that will go on
http://dev.xwiki.org/xwiki/bin/view/Design/ExtensionManagerProposal
but i don't have much time right now so it will probably be tomorrow
(GMT).
The current state is not final at all but it still introduce a lot of
APIs and design, lets call it an over designed POC. It needs to be
discussed in all it's aspects before having its experimental tag
removed. The plan is to distribute it with XE coming with 2.5 whatever
it's state (when it does not represent a risk for XE obviously) as an
experimental playground with all the required warnings in the UI and
promote it when we are happy with a first version.
Thanks,
--
Thomas Mortagne