Package com.xebialabs.xlrelease.osgi.api.plugins

# Interface PluginQueryApi

public interface PluginQueryApi
Non-REST access to the same plugin listings `PluginResource.list()`/`.search(String)` serve, returning plain `PluginInfo` rows instead of a JAX-RS `Response`.

Exists for callers that need this data without dragging JAX-RS (`Response`, content negotiation, the `MessageBodyWriter` it's rendered through) along with it - e.g. XL Release's MCP tools, which run inside an embedded OSGi bundle. `PluginInfo` is a purpose-built copy rather than the plugin manager's own `PluginDto`/`PluginDtoList`: those are Scala case classes whose field graph (metadata, version, status) pulls in several more xl-platform packages and the Scala/Pekko types they reference in turn - exporting all of that to OSGi bundles would be a far larger, less stable surface than the name/version/status this API actually needs to hand over.

Lives in this dedicated `.api` package - separate from `com.xebialabs.xlrelease.osgi`, which holds the OSGi runtime's own internal plumbing (`OsgiRuntimeService` etc.) - so that exporting it via `OsgiRuntimeService.systemPackages` for bundles to `Import-Package` exposes only interfaces meant to be bridged, not the runtime internals.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `List<PluginInfo>`
  `listInstalledPlugins()`
  `List<PluginInfo>`
  `searchPlugins(String query)`

- ## Method Details

  - ### listInstalledPlugins

    List<PluginInfo> listInstalledPlugins()

  - ### searchPlugins

    List<PluginInfo> searchPlugins(String query)