Extension Manager - API
Services
Extension Manager comes with many Java APIs to manipulate extensions. The main entry points takes the form of various components that one can injected.
org.xwiki.extension.ExtensionManager
The main entry point, expose various cross repositories common needs.
org.xwiki.extension.repository.CoreExtensionRepository
Manipulate core extensions. The extensions that are part of the sealed distribution (generally the WAR and the JARs exposed by the application server) and which are not upgradable.
org.xwiki.extension.repository.LocalExtensionRepository
Manipulate local (which also includes installed) extensions.
org.xwiki.extension.repository.InstalledExtensionRepository
Manipulate installed extensions.
org.xwiki.extension.repository.ExtensionRepositoryManager
Manipulate remote extension repositoryies and expose ExtensionRepository API but involving all registered repositories.
Extension points components interfaces
It's possible to extends Extension Manager in various ways.
org.xwiki.extension.repository.ExtensionRepositoryFactory
- role hint: the type of repository supported ("maven", "xwiki, etc.)
Create ExtensionRepository objects.
org.xwiki.extension.handler.ExtensionHandler
- role hint: the type of extensions supported ("jar", "xar", etc.)
Is called to apply extension type specific installation/uninstallation/upgrade actions (load components from jar extensions, import xar pages, etc.).
org.xwiki.extension.repository.ExtensionRepositorySource
- role hint: just need to be unique among all ExtensionRepositorySource implementations
Provide a list of ExtensionRepositoryId representing the remote repositories where ExtensionRepositoryManager will search.