Extension Manager - API

Last modified by Thomas Mortagne on 2022/11/30 13:35

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.

Get Connected