Skip to content

Commit a68083f

Browse files
committed
Make it possible for Ingest Processors to access AnalysisRegistry
The analysis registry will be used in PMML plugin ingest processor.
1 parent b8f4c92 commit a68083f

File tree

4 files changed

+16
-6
lines changed

4 files changed

+16
-6
lines changed

core/src/main/java/org/elasticsearch/ingest/IngestService.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727

2828
import org.elasticsearch.common.settings.Settings;
2929
import org.elasticsearch.env.Environment;
30+
import org.elasticsearch.index.analysis.AnalysisRegistry;
3031
import org.elasticsearch.plugins.IngestPlugin;
3132
import org.elasticsearch.script.ScriptService;
3233
import org.elasticsearch.threadpool.ThreadPool;
@@ -40,10 +41,12 @@ public class IngestService {
4041
private final PipelineExecutionService pipelineExecutionService;
4142

4243
public IngestService(Settings settings, ThreadPool threadPool,
43-
Environment env, ScriptService scriptService, List<IngestPlugin> ingestPlugins) {
44+
Environment env, ScriptService scriptService, AnalysisRegistry analysisRegistry,
45+
List<IngestPlugin> ingestPlugins) {
46+
4447
final TemplateService templateService = new InternalTemplateService(scriptService);
4548
Processor.Parameters parameters = new Processor.Parameters(env, scriptService, templateService,
46-
threadPool.getThreadContext());
49+
analysisRegistry, threadPool.getThreadContext());
4750
Map<String, Processor.Factory> processorFactories = new HashMap<>();
4851
for (IngestPlugin ingestPlugin : ingestPlugins) {
4952
Map<String, Processor.Factory> newProcessors = ingestPlugin.getProcessors(parameters);

core/src/main/java/org/elasticsearch/ingest/Processor.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
import org.elasticsearch.common.util.concurrent.ThreadContext;
2323
import org.elasticsearch.env.Environment;
24+
import org.elasticsearch.index.analysis.AnalysisRegistry;
2425
import org.elasticsearch.script.ScriptService;
2526

2627
import java.util.Map;
@@ -86,18 +87,24 @@ class Parameters {
8687
*/
8788
public final TemplateService templateService;
8889

90+
/**
91+
* Provide analyzer support
92+
*/
93+
public final AnalysisRegistry analysisRegistry;
94+
8995
/**
9096
* Allows processors to read headers set by {@link org.elasticsearch.action.support.ActionFilter}
9197
* instances that have run prior to in ingest.
9298
*/
9399
public final ThreadContext threadContext;
94100

95101
public Parameters(Environment env, ScriptService scriptService, TemplateService templateService,
96-
ThreadContext threadContext) {
102+
AnalysisRegistry analysisRegistry, ThreadContext threadContext) {
97103
this.env = env;
98104
this.scriptService = scriptService;
99105
this.templateService = templateService;
100106
this.threadContext = threadContext;
107+
this.analysisRegistry = analysisRegistry;
101108
}
102109

103110
}

core/src/main/java/org/elasticsearch/node/Node.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,7 @@ protected Node(final Environment environment, Collection<Class<? extends Plugin>
311311
final TribeService tribeService = new TribeService(settings, clusterService, nodeEnvironment.nodeId());
312312
resourcesToClose.add(tribeService);
313313
final IngestService ingestService = new IngestService(settings, threadPool, this.environment,
314-
scriptModule.getScriptService(), pluginsService.filterPlugins(IngestPlugin.class));
314+
scriptModule.getScriptService(), analysisModule.getAnalysisRegistry(), pluginsService.filterPlugins(IngestPlugin.class));
315315

316316
ModulesBuilder modules = new ModulesBuilder();
317317
// plugin modules must be added here, before others or we can get crazy injection errors...

core/src/test/java/org/elasticsearch/ingest/IngestServiceTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public Map<String, Processor.Factory> getProcessors(Processor.Parameters paramet
3939

4040
public void testIngestPlugin() {
4141
ThreadPool tp = Mockito.mock(ThreadPool.class);
42-
IngestService ingestService = new IngestService(Settings.EMPTY, tp, null, null, Collections.singletonList(DUMMY_PLUGIN));
42+
IngestService ingestService = new IngestService(Settings.EMPTY, tp, null, null, null, Collections.singletonList(DUMMY_PLUGIN));
4343
Map<String, Processor.Factory> factories = ingestService.getPipelineStore().getProcessorFactories();
4444
assertTrue(factories.containsKey("foo"));
4545
assertEquals(1, factories.size());
@@ -48,7 +48,7 @@ public void testIngestPlugin() {
4848
public void testIngestPluginDuplicate() {
4949
ThreadPool tp = Mockito.mock(ThreadPool.class);
5050
IllegalArgumentException e = expectThrows(IllegalArgumentException.class, () ->
51-
new IngestService(Settings.EMPTY, tp, null, null, Arrays.asList(DUMMY_PLUGIN, DUMMY_PLUGIN))
51+
new IngestService(Settings.EMPTY, tp, null, null, null, Arrays.asList(DUMMY_PLUGIN, DUMMY_PLUGIN))
5252
);
5353
assertTrue(e.getMessage(), e.getMessage().contains("already registered"));
5454
}

0 commit comments

Comments
 (0)