Skip to content

Commit e86088b

Browse files
committed
CPS SPI POC
1 parent 6268504 commit e86088b

File tree

3 files changed

+35
-1
lines changed

3 files changed

+35
-1
lines changed

server/src/main/java/module-info.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,8 @@
398398
org.elasticsearch.settings.secure,
399399
org.elasticsearch.serverless.constants,
400400
org.elasticsearch.serverless.apifiltering,
401-
org.elasticsearch.internal.security;
401+
org.elasticsearch.internal.security,
402+
org.elasticsearch.serverless.crossproject;
402403

403404
exports org.elasticsearch.telemetry.tracing;
404405
exports org.elasticsearch.telemetry;
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
/*
2+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3+
* or more contributor license agreements. Licensed under the "Elastic License
4+
* 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side
5+
* Public License v 1"; you may not use this file except in compliance with, at
6+
* your election, the "Elastic License 2.0", the "GNU Affero General Public
7+
* License v3.0 only", or the "Server Side Public License, v 1".
8+
*/
9+
10+
package org.elasticsearch.action.search;
11+
12+
public interface CrossClusterSearchExtension {
13+
14+
boolean forceReconnect();
15+
16+
class Noop implements CrossClusterSearchExtension {
17+
public Noop() {}
18+
19+
@Override
20+
public boolean forceReconnect() {
21+
return false;
22+
}
23+
}
24+
}

server/src/main/java/org/elasticsearch/node/NodeConstruction.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import org.elasticsearch.action.bulk.IncrementalBulkService;
2424
import org.elasticsearch.action.datastreams.autosharding.DataStreamAutoShardingService;
2525
import org.elasticsearch.action.ingest.ReservedPipelineAction;
26+
import org.elasticsearch.action.search.CrossClusterSearchExtension;
2627
import org.elasticsearch.action.search.OnlinePrewarmingService;
2728
import org.elasticsearch.action.search.OnlinePrewarmingServiceProvider;
2829
import org.elasticsearch.action.search.SearchExecutionStatsCollector;
@@ -1015,6 +1016,14 @@ public Map<String, String> queryFields() {
10151016

10161017
var reservedStateHandlerProviders = pluginsService.loadServiceProviders(ReservedStateHandlerProvider.class);
10171018

1019+
var crossClusterSearchExtension = pluginsService.loadSingletonServiceProvider(
1020+
CrossClusterSearchExtension.class,
1021+
CrossClusterSearchExtension.Noop::new
1022+
);
1023+
1024+
logger.info("Using cross-cluster search extension: [{}]", crossClusterSearchExtension.getClass().getName());
1025+
logger.info("Cross-cluster search force reconnect: [{}]", crossClusterSearchExtension.forceReconnect());
1026+
10181027
ActionModule actionModule = new ActionModule(
10191028
settings,
10201029
clusterModule.getIndexNameExpressionResolver(),

0 commit comments

Comments
 (0)