diff --git a/src/main/java/org/opensearch/jobscheduler/JobSchedulerPlugin.java b/src/main/java/org/opensearch/jobscheduler/JobSchedulerPlugin.java index 3aa590dd..2ad38f94 100644 --- a/src/main/java/org/opensearch/jobscheduler/JobSchedulerPlugin.java +++ b/src/main/java/org/opensearch/jobscheduler/JobSchedulerPlugin.java @@ -10,6 +10,7 @@ import org.opensearch.action.ActionRequest; import org.opensearch.cluster.node.DiscoveryNodes; +import org.opensearch.common.inject.Module; import org.opensearch.common.settings.Setting; import org.opensearch.common.settings.Settings; import org.opensearch.common.settings.ClusterSettings; @@ -102,6 +103,11 @@ public Map getIndexToJobProviders() { return indexToJobProviders; } + @Override + public Collection createGuiceModules() { + return List.of(new JobSchedulerPluginModule()); + } + @Override public Collection getSystemIndexDescriptors(Settings settings) { return List.of( diff --git a/src/main/java/org/opensearch/jobscheduler/JobSchedulerPluginModule.java b/src/main/java/org/opensearch/jobscheduler/JobSchedulerPluginModule.java new file mode 100644 index 00000000..409ea0e5 --- /dev/null +++ b/src/main/java/org/opensearch/jobscheduler/JobSchedulerPluginModule.java @@ -0,0 +1,29 @@ +/* + * Copyright OpenSearch Contributors + * SPDX-License-Identifier: Apache-2.0 + * + * The OpenSearch Contributors require contributions made to + * this file be licensed under the Apache-2.0 license or a + * compatible open source license. + */ +package org.opensearch.jobscheduler; + +import org.opensearch.common.inject.AbstractModule; +import org.opensearch.jobscheduler.spi.utils.LockService; +import org.opensearch.jobscheduler.utils.LockServiceImpl; + +/** + * Guice Module to manage JobScheduler related objects + */ +public class JobSchedulerPluginModule extends AbstractModule { + + /** + * Constructor for JobSchedulerPluginModule + */ + public JobSchedulerPluginModule() {} + + @Override + protected void configure() { + bind(LockService.class).to(LockServiceImpl.class); + } +}