Settings api for stable plugins (#91467)

Stable plugins do not have a dependency on server, therefore cannot access Settings, NodeSettings or IndexSettings classes. Plugins implementing new stable plugin api will use set of annotations to mark an interface that works a as a facade for settings used by their plugin.
This will allow to validate the values provided against the restrictions defined in the plugin's settings interface

This commit introduces set of annotations in libs/plugin-api that allow to annotate an interface in plugins that will be later injected into a plugin instance. These annotations can possibly be used not only by analysis plugins in the future.
The implementation of the interface generated in server is using dynamic proxy mechanism.

relates #88980
This commit is contained in:
Przemyslaw Gomulka 2022-12-13 16:41:13 +01:00 committed by GitHub
parent 3ba16aff6a
commit 38f3b634c5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
22 changed files with 1190 additions and 267 deletions

View file

@ -8,4 +8,5 @@
module org.elasticsearch.plugin.api {
exports org.elasticsearch.plugin.api;
exports org.elasticsearch.plugin.api.settings;
}