Extension Module

The Extension Module allows installing, uninstalling, upgrading and downgrading extensions on your XWiki Standard instance.

Extension Manager API

The available services of the Extension Manager API are:

  • ExtensionManager searches the provided extension as a dependency of another extension in all repositories including core and local repositories. The search order is:
    • core extensions
    • local extensions
    • features installed in current namespace or parent
    • remote extension in one of the configured remote repositories

The first found extension is returned.

  • CoreExtensionRepository is a virtual extension repository containing core extensions, i.e. extensions that are part of the sealed distribution and which are not upgradable.
  • LocalExtensionRepository is a repository storing local extension, i.e. the place were remote extension are stored after being downloaded and from where extension are actually installed by their respective handlers.
  • ExtensionRepositoryManager is the interface that creates and adds a new repository.

The available extension point component interfaces are: 

  • ExtensionRepositoryFactory creates a new extension repository. The role hint is the supported type of repository: "xwiki", "maven" etc. 
  • ExtensionHandler handles extension related tasks depending of their type: install, uninstall, upgrade, download. The role hint is the supported type of extensions: "jar", "xar", "skin" etc.
  • ExtensionRepositorySource provides a list of ExtensionRepositoryIds representing the remote repositories where "ExtensionRepositoryManager" will search.

Supported Repositories

For the moment, Extension Manager supports 2 repositories:

The "WEB-INF/xwiki.properties" file provides a dedicated section for configuring the list of remote repositories to use:

# Extension Manager
#-------------------------------------------------------------------------------------

#-# [Since 2.5]
#-# Repositories to use when searching and downloading extensions.
#-#
#-# The format is <id>:<type>:<url> where
#-# * id can be anything as long as there is only one
#-# * type is the type of the repository (maven, xwiki, etc.)
#-# * url is the URL or the root of the repository
#-#
#-# [Since 4.3] It's also possible to associate various properties to each repository.
#-# Here are the standard properties:
#-# * user: the user to use to authenticate to the repository
#-# * password: the password to use to authenticate to the repository
#-#
#-# Here is an example:
# extension.repositories=privatemavenid:maven:http://host.com/private/maven/
# extension.repositories.privatemavenid.auth.user=someuser
# extension.repositories.privatemavenid.auth.password=thepassword
#-#
#-# Here's an example to add your local Maven Repository
# extension.repositories=local:maven:file://${sys:user.home}/.m2/repository
#-#
#-# And an example to add the XWiki Maven Snapshot Repository
# extension.repositories=maven-xwiki-snapshot:maven:http://nexus.xwiki.org/nexus/content/groups/public-snapshots
#-#
#-# The default is:
# extension.repositories=maven-xwiki:maven:http://nexus.xwiki.org/nexus/content/groups/public
# extension.repositories=extensions.xwiki.org:xwiki:http://extensions.xwiki.org/xwiki/rest/

  

Related Pages

Search this space

 

Most popular tags

Failed to execute the [groovy] macro
  1. access rights
  2. activity stream
  3. annotation
  4. attachment
  5. comment
  6. Document Tree Macro
  7. export
  8. Extension Manager
  9. Flamingo skin
  10. global user
  11. Groovy event listener
  12. group
  13. nested page
  14. search
  15. skin
  16. syntax
  17. user
  18. user profile
  19. velocity macros
  20. wiki
  21. wysiwyg
  22. XWiki Applications
  23. xwikiattachment_archive table
  24. xwikiattachment table
  25. xwikiattrecyclebin table
  26. xwikiproperties table

[Display all tags from this space]