diff --git a/server/src/main/java/module-info.java b/server/src/main/java/module-info.java index 2a68b65bcdccb..73e9a2058b2b4 100644 --- a/server/src/main/java/module-info.java +++ b/server/src/main/java/module-info.java @@ -394,6 +394,7 @@ exports org.elasticsearch.action.downsample; exports org.elasticsearch.plugins.internal to + org.elasticsearch.inference, org.elasticsearch.metering, org.elasticsearch.stateless, org.elasticsearch.settings.secure, diff --git a/server/src/main/java/org/elasticsearch/indices/IndicesServiceBuilder.java b/server/src/main/java/org/elasticsearch/indices/IndicesServiceBuilder.java index d88bbfa3eba17..66e8f98f77fef 100644 --- a/server/src/main/java/org/elasticsearch/indices/IndicesServiceBuilder.java +++ b/server/src/main/java/org/elasticsearch/indices/IndicesServiceBuilder.java @@ -34,7 +34,7 @@ import org.elasticsearch.plugins.EnginePlugin; import org.elasticsearch.plugins.IndexStorePlugin; import org.elasticsearch.plugins.PluginsService; -import org.elasticsearch.plugins.SearchPlugin; +import org.elasticsearch.plugins.internal.InternalSearchPlugin; import org.elasticsearch.plugins.internal.rewriter.QueryRewriteInterceptor; import org.elasticsearch.script.ScriptService; import org.elasticsearch.search.aggregations.support.ValuesSourceRegistry; @@ -266,8 +266,8 @@ public IndicesService build() { .flatMap(m -> m.entrySet().stream()) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); - var queryRewriteInterceptors = pluginsService.filterPlugins(SearchPlugin.class) - .map(SearchPlugin::getQueryRewriteInterceptors) + var queryRewriteInterceptors = pluginsService.filterPlugins(InternalSearchPlugin.class) + .map(InternalSearchPlugin::getQueryRewriteInterceptors) .flatMap(List::stream) .collect(Collectors.toMap(QueryRewriteInterceptor::getQueryName, interceptor -> { if (interceptor.getQueryName() == null) { diff --git a/server/src/main/java/org/elasticsearch/plugins/SearchPlugin.java b/server/src/main/java/org/elasticsearch/plugins/SearchPlugin.java index e87e9ee85b29c..f5670ebd8a543 100644 --- a/server/src/main/java/org/elasticsearch/plugins/SearchPlugin.java +++ b/server/src/main/java/org/elasticsearch/plugins/SearchPlugin.java @@ -23,7 +23,6 @@ import org.elasticsearch.index.query.QueryParser; import org.elasticsearch.index.query.functionscore.ScoreFunctionBuilder; import org.elasticsearch.index.query.functionscore.ScoreFunctionParser; -import org.elasticsearch.plugins.internal.rewriter.QueryRewriteInterceptor; import org.elasticsearch.search.SearchExtBuilder; import org.elasticsearch.search.aggregations.Aggregation; import org.elasticsearch.search.aggregations.AggregationBuilder; @@ -129,14 +128,6 @@ default List> getQueries() { return emptyList(); } - /** - * @return Applicable {@link QueryRewriteInterceptor}s configured for this plugin. - * Note: This is internal to Elasticsearch's API and not extensible by external plugins. - */ - default List getQueryRewriteInterceptors() { - return emptyList(); - } - /** * The new {@link Aggregation}s added by this plugin. */ diff --git a/server/src/main/java/org/elasticsearch/plugins/internal/InternalSearchPlugin.java b/server/src/main/java/org/elasticsearch/plugins/internal/InternalSearchPlugin.java new file mode 100644 index 0000000000000..7ac18c4640a0b --- /dev/null +++ b/server/src/main/java/org/elasticsearch/plugins/internal/InternalSearchPlugin.java @@ -0,0 +1,27 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the "Elastic License + * 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side + * Public License v 1"; you may not use this file except in compliance with, at + * your election, the "Elastic License 2.0", the "GNU Affero General Public + * License v3.0 only", or the "Server Side Public License, v 1". + */ + +package org.elasticsearch.plugins.internal; + +import org.elasticsearch.plugins.internal.rewriter.QueryRewriteInterceptor; + +import java.util.List; + +import static java.util.Collections.emptyList; + +public interface InternalSearchPlugin { + + /** + * @return Applicable {@link QueryRewriteInterceptor}s configured for this plugin. + * Note: This is internal to Elasticsearch's API and not extensible by external plugins. + */ + default List getQueryRewriteInterceptors() { + return emptyList(); + } +} diff --git a/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/InferencePlugin.java b/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/InferencePlugin.java index 6ba529cb66eaa..830eab8c42366 100644 --- a/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/InferencePlugin.java +++ b/x-pack/plugin/inference/src/main/java/org/elasticsearch/xpack/inference/InferencePlugin.java @@ -39,6 +39,7 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.plugins.SearchPlugin; import org.elasticsearch.plugins.SystemIndexPlugin; +import org.elasticsearch.plugins.internal.InternalSearchPlugin; import org.elasticsearch.plugins.internal.rewriter.QueryRewriteInterceptor; import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestHandler; @@ -136,7 +137,14 @@ import static org.elasticsearch.xpack.inference.services.elastic.ElasticInferenceServiceFeature.DEPRECATED_ELASTIC_INFERENCE_SERVICE_FEATURE_FLAG; import static org.elasticsearch.xpack.inference.services.elastic.ElasticInferenceServiceFeature.ELASTIC_INFERENCE_SERVICE_FEATURE_FLAG; -public class InferencePlugin extends Plugin implements ActionPlugin, ExtensiblePlugin, SystemIndexPlugin, MapperPlugin, SearchPlugin { +public class InferencePlugin extends Plugin + implements + ActionPlugin, + ExtensiblePlugin, + SystemIndexPlugin, + MapperPlugin, + SearchPlugin, + InternalSearchPlugin { /** * When this setting is true the verification check that