diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/common/settings/ImmutableSettings.java b/modules/elasticsearch/src/main/java/org/elasticsearch/common/settings/ImmutableSettings.java index ff7e3863a82..b824710c1c6 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/common/settings/ImmutableSettings.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/common/settings/ImmutableSettings.java @@ -76,7 +76,11 @@ public class ImmutableSettings implements Settings { } @Override public Settings getComponentSettings(Class component) { - return getComponentSettings("org.elasticsearch", component); + if (component.getName().startsWith("org.elasticsearch")) { + return getComponentSettings("org.elasticsearch", component); + } + // not starting with org.elasticsearch, just remove the first package part (probably org/net/com) + return getComponentSettings(component.getName().substring(0, component.getName().indexOf('.')), component); } @Override public Settings getComponentSettings(String prefix, Class component) { diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/common/settings/Settings.java b/modules/elasticsearch/src/main/java/org/elasticsearch/common/settings/Settings.java index 5e5c44be02c..939320cc2f5 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/common/settings/Settings.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/common/settings/Settings.java @@ -41,7 +41,8 @@ public interface Settings { /** * Component settings for a specific component. Returns all the settings for the given class, where the - * FQN of the class is used, without the org.elasticsearch prefix. + * FQN of the class is used, without the org.elasticsearch prefix. If there is no org.elasticsearch + * prefix, then the prefix used is the first part of the package name (org / com / ...) */ Settings getComponentSettings(Class component); diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/AbstractIndexComponent.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/AbstractIndexComponent.java index fdc87b1ec13..36accb7882b 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/AbstractIndexComponent.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/AbstractIndexComponent.java @@ -40,6 +40,12 @@ public abstract class AbstractIndexComponent implements IndexComponent { protected final Settings componentSettings; + /** + * Constructs a new index component, with the index name and its settings. + * + * @param index The index name + * @param indexSettings The index settings + */ protected AbstractIndexComponent(Index index, @IndexSettings Settings indexSettings) { this.index = index; this.indexSettings = indexSettings; @@ -48,6 +54,13 @@ public abstract class AbstractIndexComponent implements IndexComponent { this.logger = Loggers.getLogger(getClass(), indexSettings, index); } + /** + * Constructs a new index component, with the index name and its settings, as well as settings prefix. + * + * @param index The index name + * @param indexSettings The index settings + * @param prefixSettings A settings prefix (like "com.mycompany") to simplify extracting the component settings + */ protected AbstractIndexComponent(Index index, @IndexSettings Settings indexSettings, String prefixSettings) { this.index = index; this.indexSettings = indexSettings; diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/index/analysis/AbstractIndexAnalyzerProvider.java b/modules/elasticsearch/src/main/java/org/elasticsearch/index/analysis/AbstractIndexAnalyzerProvider.java index 5ab3e43018e..a660c361df9 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/index/analysis/AbstractIndexAnalyzerProvider.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/index/analysis/AbstractIndexAnalyzerProvider.java @@ -32,11 +32,31 @@ public abstract class AbstractIndexAnalyzerProvider extends private final String name; + /** + * Constructs a new analyzer component, with the index name and its settings and the analyzer name. + * + * @param index The index name + * @param indexSettings The index settings + * @param name The analyzer name + */ public AbstractIndexAnalyzerProvider(Index index, @IndexSettings Settings indexSettings, String name) { super(index, indexSettings); this.name = name; } + /** + * Constructs a new analyzer component, with the index name and its settings and the analyzer name. + * + * @param index The index name + * @param indexSettings The index settings + * @param prefixSettings A settings prefix (like "com.mycompany") to simplify extracting the component settings + * @param name The analyzer name + */ + public AbstractIndexAnalyzerProvider(Index index, @IndexSettings Settings indexSettings, String prefixSettings, String name) { + super(index, indexSettings, prefixSettings); + this.name = name; + } + @Override public String name() { return this.name; }