1
votes

I'm having an issue with an elastic search plugin I'm trying to write...basically I need my own settings (like passed in as System props or defined in elasticsearch.yml)...originally I started on an earlier version of elastic search for development and testing, but since I have upgraded to 6.1.1. However...now my setting gets loaded by my plugin, but then immediately fails validation... org.elasticsearch.bootstrap.StartupException: "java.lang.IllegalArgumentException: unknown setting [my.setting] please check that any required plugins are installed, or check the breaking changes documentation for removed settings"

Documentation in breaking changes 5.4 (https://www.elastic.co/guide/en/elasticsearch/reference/5.4/breaking_50_settings_changes.html) says "From Elasticsearch 5.0 on all settings are validated before they are applied. Node level and default index level settings are validated on node startup, dynamic cluster and index setting are validated before they are updated/added to the cluster state.

Every setting must be a known setting. All settings must have been registered with the node or transport client they are used with. This implies that plugins that define custom settings must register all of their settings during plugin loading using the SettingsModule#registerSettings(Setting) method."

However...SettingsModule#registerSettings(Setting) is private...and from what I can tell always has been since it was introduced...what am I missing?

1

1 Answers

1
votes

Was simpler than I thought...kudos to

My plugin already extended org.elasticsearch.plugins.Plugin, and I just had to provide any Settings I need "registered" by overriding public List> getSettings() in Plugin. Kudos to Ivan Brusic for pointing me in the right direction on the ElasticSearch forums.