Since XWiki 12.10 Extension Manager comes with a local index of available extensions.

It's used by default in the Extension Manager UI when searching for extension to install. Aside from gathering all the extensions availables on the configured searchable repositories (including if they are recommended and their ratings) it also add the following metadata:

  • validate each extension on each namespace and store the result, this info is used in the Extesion Manager UI to search by default only compatible extensions for the current namespace (and the root namespace on main wiki)
  • 13.3+ the extension index contains metadata to help filter extensions by components. It's possible to directly filter extension in Extension Manager search UI using the syntax components_org.xwiki.my.package.Role:hint or shortcuts for some well known components roles:
    • components_org.xwiki.rendering.macro.Macro -> component_macro
    • components_org.xwiki.script.service.ScriptService -> component_scriptservice
    • components_org.xwiki.rendering.parser.Parser -> component_parser
    • components_org.xwiki.rendering.renderer.PrintRendererFactory -> component_renderer
    • components_org.xwiki.rendering.renderer.BlockRenderer -> component_blockrenderer
    • components_org.xwiki.filter.input.InputFilterStreamFactory -> component_inputFilter
    • components_org.xwiki.filter.output.OutputFilterStreamFactory -> component_outputFilter

The main entry point is the org.xwiki.extension.index.ExtensionIndex component and extensions returned by the index implement the org.xwiki.extension.index.IndexedExtension interface which provide some information specific to the extension stored in the index (like whether or not it's compatible with a specific namespace).

Tags:
    

Get Connected