From f3460926487286a7351f7fc98b0cab90b2d1a93b Mon Sep 17 00:00:00 2001 From: Soby Chacko Date: Tue, 13 May 2025 08:47:47 -0400 Subject: [PATCH] HttpHost regression issues in OpenSearchVectorStoreAutoConfiguration Changes introduced for https://github.com/spring-projects/spring-ai/issues/2954 introduced a regression in the way OpenSearch works with test containers. Restore the retrieval of HttpHost from OpenSearchConnectionDetails insted of getting them directly from properties. Signed-off-by: Soby Chacko --- .../OpenSearchVectorStoreAutoConfiguration.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-opensearch/src/main/java/org/springframework/ai/vectorstore/opensearch/autoconfigure/OpenSearchVectorStoreAutoConfiguration.java b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-opensearch/src/main/java/org/springframework/ai/vectorstore/opensearch/autoconfigure/OpenSearchVectorStoreAutoConfiguration.java index fcf9fb45f..92e117f2f 100644 --- a/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-opensearch/src/main/java/org/springframework/ai/vectorstore/opensearch/autoconfigure/OpenSearchVectorStoreAutoConfiguration.java +++ b/auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-opensearch/src/main/java/org/springframework/ai/vectorstore/opensearch/autoconfigure/OpenSearchVectorStoreAutoConfiguration.java @@ -105,8 +105,14 @@ public class OpenSearchVectorStoreAutoConfiguration { @Bean @ConditionalOnMissingBean - OpenSearchClient openSearchClient(OpenSearchVectorStoreProperties properties, Optional sslBundles) { - HttpHost[] httpHosts = properties.getUris().stream().map(this::createHttpHost).toArray(HttpHost[]::new); + OpenSearchClient openSearchClient(OpenSearchVectorStoreProperties properties, + OpenSearchConnectionDetails connectionDetails, Optional sslBundles) { + + HttpHost[] httpHosts = connectionDetails.getUris() + .stream() + .map(s -> createHttpHost(s)) + .toArray(HttpHost[]::new); + Optional basicCredentialsProvider = Optional.ofNullable(properties.getUsername()) .map(username -> createBasicCredentialsProvider(httpHosts, username, properties.getPassword()));