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.