in src/main/kotlin/org/opensearch/indexmanagement/IndexManagementPlugin.kt [271:348]
override fun createComponents(
client: Client,
clusterService: ClusterService,
threadPool: ThreadPool,
resourceWatcherService: ResourceWatcherService,
scriptService: ScriptService,
xContentRegistry: NamedXContentRegistry,
environment: Environment,
nodeEnvironment: NodeEnvironment,
namedWriteableRegistry: NamedWriteableRegistry,
indexNameExpressionResolver: IndexNameExpressionResolver,
repositoriesServiceSupplier: Supplier<RepositoriesService>
): Collection<Any> {
val settings = environment.settings()
this.clusterService = clusterService
rollupInterceptor = RollupInterceptor(clusterService, settings, indexNameExpressionResolver)
val jvmService = JvmService(environment.settings())
val transformRunner = TransformRunner.initialize(
client,
clusterService,
xContentRegistry,
settings,
indexNameExpressionResolver,
jvmService,
threadPool
)
fieldCapsFilter = FieldCapsFilter(clusterService, settings, indexNameExpressionResolver)
this.indexNameExpressionResolver = indexNameExpressionResolver
val indexEvaluator = IndexEvaluator(settings, clusterService)
val skipFlag = SkipExecution(client, clusterService)
val rollupRunner = RollupRunner
.registerClient(client)
.registerClusterService(clusterService)
.registerNamedXContentRegistry(xContentRegistry)
.registerScriptService(scriptService)
.registerSettings(settings)
.registerThreadPool(threadPool)
.registerMapperService(RollupMapperService(client, clusterService, indexNameExpressionResolver))
.registerIndexer(RollupIndexer(settings, clusterService, client))
.registerSearcher(RollupSearchService(settings, clusterService, client))
.registerMetadataServices(RollupMetadataService(client, xContentRegistry))
.registerConsumers()
.registerClusterConfigurationProvider(skipFlag)
indexManagementIndices = IndexManagementIndices(settings, client.admin().indices(), clusterService)
val indexStateManagementHistory =
IndexStateManagementHistory(
settings,
client,
threadPool,
clusterService,
indexManagementIndices
)
val managedIndexRunner = ManagedIndexRunner
.registerClient(client)
.registerClusterService(clusterService)
.registerNamedXContentRegistry(xContentRegistry)
.registerScriptService(scriptService)
.registerSettings(settings)
.registerConsumers() // registerConsumers must happen after registerSettings/clusterService
.registerIMIndex(indexManagementIndices)
.registerHistoryIndex(indexStateManagementHistory)
.registerSkipFlag(skipFlag)
.registerThreadPool(threadPool)
val metadataService = MetadataService(client, clusterService, skipFlag, indexManagementIndices)
val templateService = ISMTemplateService(client, clusterService, xContentRegistry, indexManagementIndices)
val managedIndexCoordinator = ManagedIndexCoordinator(
environment.settings(),
client, clusterService, threadPool, indexManagementIndices, metadataService, templateService, indexEvaluator
)
return listOf(
managedIndexRunner, rollupRunner, transformRunner, indexManagementIndices, managedIndexCoordinator, indexStateManagementHistory, indexEvaluator
)
}