in example plugins a pluginApiVersion is more appropriate than elasticsearchVersion as it better implies that it can be different then the version of ES cluster
New stable plugins example with injected settings.
Plugin developer creates an interface and annotates it with @AnalysisSettings.
The constructor in a plugin component (annotated with @NamedComponent) has to be annotated with @Inject
Upon plugin component creation an implementation of the interface will be created - a dynamic proxy - which will delegate methods from interface to properties in a Settings instance.
This PR introduces an example of using all currently supported types : int, long, double, string and list (of strings)
relates ##88980
Add example stable plugin. This example plugin creates and tests
some trivial analysis components. Once we implement settings for
stable plugins, we will be able to make the example plugin a little bit
more interesting.
Co-authored-by: William Brafford <william.brafford@elastic.co>