From 797c7d349d029da37a762e326e1b96a5c57ecdbe Mon Sep 17 00:00:00 2001 From: Christian Tzolov Date: Sat, 22 Jun 2024 14:34:03 +0200 Subject: [PATCH] Fix a merge bug in OpenSearchConfiguration#openSearchClient Resolves #923 --- .../OpenSearchVectorStoreAutoConfiguration.java | 13 ++++++++----- .../OpenSearchVectorStoreProperties.java | 2 +- ...vusContainerConnectionDetailsFactoryTest.java | 4 ---- ...rchContainerConnectionDetailsFactoryTest.java | 16 ++++++++-------- 4 files changed, 17 insertions(+), 18 deletions(-) diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/opensearch/OpenSearchVectorStoreAutoConfiguration.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/opensearch/OpenSearchVectorStoreAutoConfiguration.java index 97c8a2055..b18638db6 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/opensearch/OpenSearchVectorStoreAutoConfiguration.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/opensearch/OpenSearchVectorStoreAutoConfiguration.java @@ -71,12 +71,15 @@ public class OpenSearchVectorStoreAutoConfiguration { @Bean @ConditionalOnMissingBean - OpenSearchClient openSearchClient(OpenSearchVectorStoreProperties properties) { - HttpHost[] httpHosts = properties.getUris().stream().map(s -> createHttpHost(s)).toArray(HttpHost[]::new); + OpenSearchClient openSearchClient(OpenSearchConnectionDetails connectionDetails) { + HttpHost[] httpHosts = connectionDetails.getUris() + .stream() + .map(s -> createHttpHost(s)) + .toArray(HttpHost[]::new); ApacheHttpClient5TransportBuilder transportBuilder = ApacheHttpClient5TransportBuilder.builder(httpHosts); - - Optional.ofNullable(properties.getUsername()) - .map(username -> createBasicCredentialsProvider(httpHosts[0], username, properties.getPassword())) + Optional.ofNullable(connectionDetails.getUsername()) + .map(username -> createBasicCredentialsProvider(httpHosts[0], username, + connectionDetails.getPassword())) .ifPresent(basicCredentialsProvider -> transportBuilder .setHttpClientConfigCallback(httpAsyncClientBuilder -> httpAsyncClientBuilder .setDefaultCredentialsProvider(basicCredentialsProvider))); diff --git a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/opensearch/OpenSearchVectorStoreProperties.java b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/opensearch/OpenSearchVectorStoreProperties.java index 6650500e6..e82c3defb 100644 --- a/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/opensearch/OpenSearchVectorStoreProperties.java +++ b/spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/opensearch/OpenSearchVectorStoreProperties.java @@ -27,7 +27,7 @@ public class OpenSearchVectorStoreProperties { /** * Comma-separated list of the OpenSearch instances to use. */ - private List uris; + private List uris = List.of(); private String indexName; diff --git a/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/milvus/MilvusContainerConnectionDetailsFactoryTest.java b/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/milvus/MilvusContainerConnectionDetailsFactoryTest.java index 8320dad60..930a96142 100644 --- a/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/milvus/MilvusContainerConnectionDetailsFactoryTest.java +++ b/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/milvus/MilvusContainerConnectionDetailsFactoryTest.java @@ -57,10 +57,6 @@ class MilvusContainerConnectionDetailsFactoryTest { new Document(ResourceUtils.getText("classpath:/test/data/time.shelter.txt")), new Document( ResourceUtils.getText("classpath:/test/data/great.depression.txt"), Map.of("depression", "bad"))); - private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() - .withConfiguration(AutoConfigurations.of(MilvusVectorStoreAutoConfiguration.class)) - .withUserConfiguration(Config.class); - @Autowired private VectorStore vectorStore; diff --git a/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/opensearch/OpenSearchContainerConnectionDetailsFactoryTest.java b/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/opensearch/OpenSearchContainerConnectionDetailsFactoryTest.java index a2b2f3ba1..85eef247f 100644 --- a/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/opensearch/OpenSearchContainerConnectionDetailsFactoryTest.java +++ b/spring-ai-spring-boot-testcontainers/src/test/java/org/springframework/ai/testcontainers/service/connection/opensearch/OpenSearchContainerConnectionDetailsFactoryTest.java @@ -15,6 +15,14 @@ */ package org.springframework.ai.testcontainers.service.connection.opensearch; +import static org.assertj.core.api.Assertions.assertThat; +import static org.hamcrest.Matchers.hasSize; + +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.util.List; +import java.util.Map; + import org.awaitility.Awaitility; import org.junit.jupiter.api.Test; import org.opensearch.testcontainers.OpensearchContainer; @@ -34,14 +42,6 @@ import org.springframework.core.io.DefaultResourceLoader; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; -import java.io.IOException; -import java.nio.charset.StandardCharsets; -import java.util.List; -import java.util.Map; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.hamcrest.Matchers.hasSize; - @SpringBootTest(properties = { "spring.ai.vectorstore.opensearch.index-name=" + OpenSearchContainerConnectionDetailsFactoryTest.DOCUMENT_INDEX, "spring.ai.vectorstore.opensearch.mapping-json="