diff --git a/src/main/java/org/craftercms/deployer/utils/opensearch/AbstractOpenSearchFactory.java b/src/main/java/org/craftercms/deployer/utils/opensearch/AbstractOpenSearchFactory.java index 09da2735..61c9ea68 100644 --- a/src/main/java/org/craftercms/deployer/utils/opensearch/AbstractOpenSearchFactory.java +++ b/src/main/java/org/craftercms/deployer/utils/opensearch/AbstractOpenSearchFactory.java @@ -17,6 +17,8 @@ package org.craftercms.deployer.utils.opensearch; +import java.util.ArrayList; + import org.craftercms.commons.config.ConfigurationException; import org.opensearch.client.opensearch.OpenSearchClient; import org.slf4j.Logger; @@ -24,8 +26,6 @@ import org.springframework.beans.factory.BeanNameAware; import org.springframework.beans.factory.config.AbstractFactoryBean; -import java.util.ArrayList; - /** * Base implementation for factories capable of build single or multi-cluster OpenSearch services * @@ -56,6 +56,14 @@ public void setBeanName(final String name) { this.name = name; } + @Override + protected void destroyInstance(T instance) throws Exception { + logger.debug("Closing OpenSearch service for '{}'", name); + if (instance instanceof AutoCloseable closeable) { + closeable.close(); + } + } + @Override protected T createInstance() throws ConfigurationException { logger.debug("Creating instance for '{}'", name);