Migrate Couchbase vector store auto-configuration to dedicated module
- Update dependencies and module names in maven pom.xml files affecting couchbase vector store support - Rename artifact from spring-ai-couchbase-store-spring-boot-starter to spring-ai-starter-vector-store-couchbase - Update imports and related cleanup - Update corresponding documentation references Signed-off-by: Soby Chacko <soby.chacko@broadcom.com>
This commit is contained in:
@@ -0,0 +1,113 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~ Copyright 2023-2025 the original author or authors.
|
||||
~
|
||||
~ Licensed under the Apache License, Version 2.0 (the "License");
|
||||
~ you may not use this file except in compliance with the License.
|
||||
~ You may obtain a copy of the License at
|
||||
~
|
||||
~ https://www.apache.org/licenses/LICENSE-2.0
|
||||
~
|
||||
~ Unless required by applicable law or agreed to in writing, software
|
||||
~ distributed under the License is distributed on an "AS IS" BASIS,
|
||||
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
~ See the License for the specific language governing permissions and
|
||||
~ limitations under the License.
|
||||
-->
|
||||
|
||||
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>org.springframework.ai</groupId>
|
||||
<artifactId>spring-ai</artifactId>
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
<relativePath>../../../pom.xml</relativePath>
|
||||
</parent>
|
||||
<artifactId>spring-ai-autoconfigure-vector-store-couchbase</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<name>Spring AI Auto Configuration for Couchbase vector store</name>
|
||||
<description>Spring AI Auto Configuration for Couchbase vector store</description>
|
||||
<url>https://github.com/spring-projects/spring-ai</url>
|
||||
|
||||
<scm>
|
||||
<url>https://github.com/spring-projects/spring-ai</url>
|
||||
<connection>git://github.com/spring-projects/spring-ai.git</connection>
|
||||
<developerConnection>git@github.com:spring-projects/spring-ai.git</developerConnection>
|
||||
</scm>
|
||||
|
||||
<dependencies>
|
||||
<!-- production dependencies -->
|
||||
<dependency>
|
||||
<groupId>org.springframework.ai</groupId>
|
||||
<artifactId>spring-ai-couchbase-store</artifactId>
|
||||
<version>${project.parent.version}</version>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-configuration-processor</artifactId>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
<!-- test dependencies -->
|
||||
<dependency>
|
||||
<groupId>org.springframework.ai</groupId>
|
||||
<artifactId>spring-ai-test</artifactId>
|
||||
<version>${project.parent.version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-test</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-testcontainers</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.testcontainers</groupId>
|
||||
<artifactId>testcontainers</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.testcontainers</groupId>
|
||||
<artifactId>junit-jupiter</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.awaitility</groupId>
|
||||
<artifactId>awaitility</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.testcontainers</groupId>
|
||||
<artifactId>couchbase</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.ai</groupId>
|
||||
<artifactId>spring-ai-transformers</artifactId>
|
||||
<version>${project.parent.version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.ai</groupId>
|
||||
<artifactId>spring-ai-autoconfigure-retry</artifactId>
|
||||
<version>${project.parent.version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.ai</groupId>
|
||||
<artifactId>spring-ai-autoconfigure-model-openai</artifactId>
|
||||
<version>${project.parent.version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2023 - 2024 the original author or authors.
|
||||
* Copyright 2023 - 2025 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -13,7 +13,7 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.springframework.ai.autoconfigure.vectorstore.couchbase;
|
||||
package org.springframework.ai.vectorstore.couchbase.autoconfigure;
|
||||
|
||||
import com.couchbase.client.java.Cluster;
|
||||
import org.springframework.ai.embedding.EmbeddingModel;
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2023 - 2024 the original author or authors.
|
||||
* Copyright 2023 - 2025 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -13,11 +13,11 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.springframework.ai.autoconfigure.vectorstore.couchbase;
|
||||
package org.springframework.ai.vectorstore.couchbase.autoconfigure;
|
||||
|
||||
import org.springframework.ai.autoconfigure.vectorstore.CommonVectorStoreProperties;
|
||||
import org.springframework.ai.vectorstore.CouchbaseIndexOptimization;
|
||||
import org.springframework.ai.vectorstore.CouchbaseSimilarityFunction;
|
||||
import org.springframework.ai.vectorstore.properties.CommonVectorStoreProperties;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
|
||||
/**
|
||||
@@ -0,0 +1,16 @@
|
||||
#
|
||||
# Copyright 2025-2025 the original author or authors.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
org.springframework.ai.vectorstore.couchbase.autoconfigure.CouchbaseSearchVectorStoreAutoConfiguration
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2023 - 2024 the original author or authors.
|
||||
* Copyright 2023 - 2025 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -13,7 +13,7 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.springframework.ai.autoconfigure.vectorstore.couchbase;
|
||||
package org.springframework.ai.vectorstore.couchbase.autoconfigure;
|
||||
|
||||
import org.testcontainers.couchbase.BucketDefinition;
|
||||
import org.testcontainers.utility.DockerImageName;
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2023 - 2024 the original author or authors.
|
||||
* Copyright 2023 - 2025 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -13,13 +13,13 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.springframework.ai.autoconfigure.vectorstore.couchbase;
|
||||
package org.springframework.ai.vectorstore.couchbase.autoconfigure;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable;
|
||||
import org.springframework.ai.autoconfigure.openai.OpenAiAutoConfiguration;
|
||||
import org.springframework.ai.autoconfigure.retry.SpringAiRetryAutoConfiguration;
|
||||
import org.springframework.ai.document.Document;
|
||||
import org.springframework.ai.model.openai.autoconfigure.OpenAiEmbeddingAutoConfiguration;
|
||||
import org.springframework.ai.retry.autoconfigure.SpringAiRetryAutoConfiguration;
|
||||
import org.springframework.ai.vectorstore.CouchbaseIndexOptimization;
|
||||
import org.springframework.ai.vectorstore.CouchbaseSimilarityFunction;
|
||||
import org.springframework.ai.vectorstore.SearchRequest;
|
||||
@@ -39,7 +39,10 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.springframework.ai.autoconfigure.vectorstore.couchbase.CouchbaseContainerMetadata.*;
|
||||
import static org.springframework.ai.vectorstore.couchbase.autoconfigure.CouchbaseContainerMetadata.COUCHBASE_IMAGE_ENTERPRISE;
|
||||
import static org.springframework.ai.vectorstore.couchbase.autoconfigure.CouchbaseContainerMetadata.PASSWORD;
|
||||
import static org.springframework.ai.vectorstore.couchbase.autoconfigure.CouchbaseContainerMetadata.USERNAME;
|
||||
import static org.springframework.ai.vectorstore.couchbase.autoconfigure.CouchbaseContainerMetadata.bucketDefinition;
|
||||
|
||||
/**
|
||||
* @author Laurent Doguin
|
||||
@@ -63,7 +66,7 @@ class CouchbaseSearchVectorStoreAutoConfigurationIT {
|
||||
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()
|
||||
.withConfiguration(AutoConfigurations.of(CouchbaseAutoConfiguration.class,
|
||||
CouchbaseSearchVectorStoreAutoConfiguration.class, RestClientAutoConfiguration.class,
|
||||
SpringAiRetryAutoConfiguration.class, OpenAiAutoConfiguration.class))
|
||||
SpringAiRetryAutoConfiguration.class, OpenAiEmbeddingAutoConfiguration.class))
|
||||
.withPropertyValues("spring.couchbase.connection-string=" + couchbaseContainer.getConnectionString(),
|
||||
"spring.couchbase.username=" + couchbaseContainer.getUsername(),
|
||||
"spring.couchbase.password=" + couchbaseContainer.getPassword(),
|
||||
@@ -112,7 +115,7 @@ class CouchbaseSearchVectorStoreAutoConfigurationIT {
|
||||
new ApplicationContextRunner()
|
||||
.withConfiguration(AutoConfigurations.of(CouchbaseAutoConfiguration.class,
|
||||
CouchbaseSearchVectorStoreAutoConfiguration.class, RestClientAutoConfiguration.class,
|
||||
SpringAiRetryAutoConfiguration.class, OpenAiAutoConfiguration.class))
|
||||
SpringAiRetryAutoConfiguration.class, OpenAiEmbeddingAutoConfiguration.class))
|
||||
.withPropertyValues("spring.couchbase.connection-string=" + couchbaseContainer.getConnectionString(),
|
||||
"spring.couchbase.username=" + couchbaseContainer.getUsername(),
|
||||
"spring.couchbase.password=" + couchbaseContainer.getPassword(),
|
||||
5
pom.xml
5
pom.xml
@@ -65,8 +65,6 @@
|
||||
<module>auto-configurations/models/spring-ai-autoconfigure-model-watsonx-ai</module>
|
||||
<module>auto-configurations/models/spring-ai-autoconfigure-model-zhipuai</module>
|
||||
|
||||
|
||||
|
||||
<module>auto-configurations/mcp/spring-ai-autoconfigure-mcp-client</module>
|
||||
<module>auto-configurations/mcp/spring-ai-autoconfigure-mcp-server</module>
|
||||
|
||||
@@ -74,6 +72,7 @@
|
||||
<module>auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-azure-cosmos-db</module>
|
||||
<module>auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-cassandra</module>
|
||||
<module>auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-chroma</module>
|
||||
<module>auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-couchbase</module>
|
||||
<module>auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-elasticsearch</module>
|
||||
<module>auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-gemfire</module>
|
||||
<module>auto-configurations/vector-stores/spring-ai-autoconfigure-vector-store-hanadb</module>
|
||||
@@ -124,12 +123,12 @@
|
||||
<module>vector-stores/spring-ai-weaviate-store</module>
|
||||
|
||||
<module>spring-ai-spring-boot-starters/spring-ai-starter-coherence-store</module>
|
||||
<module>spring-ai-spring-boot-starters/spring-ai-starter-couchbase-store</module>
|
||||
<module>spring-ai-spring-boot-starters/spring-ai-starter-vector-store-aws-opensearch</module>
|
||||
<module>spring-ai-spring-boot-starters/spring-ai-starter-vector-store-azure</module>
|
||||
<module>spring-ai-spring-boot-starters/spring-ai-starter-vector-store-azure-cosmos-db</module>
|
||||
<module>spring-ai-spring-boot-starters/spring-ai-starter-vector-store-cassandra</module>
|
||||
<module>spring-ai-spring-boot-starters/spring-ai-starter-vector-store-chroma</module>
|
||||
<module>spring-ai-spring-boot-starters/spring-ai-starter-vector-store-couchbase</module>
|
||||
<module>spring-ai-spring-boot-starters/spring-ai-starter-vector-store-elasticsearch</module>
|
||||
<module>spring-ai-spring-boot-starters/spring-ai-starter-vector-store-gemfire</module>
|
||||
<module>spring-ai-spring-boot-starters/spring-ai-starter-vector-store-hanadb</module>
|
||||
|
||||
@@ -23,7 +23,7 @@ To enable it, add the following dependency to your project's Maven `pom.xml` fil
|
||||
----
|
||||
<dependency>
|
||||
<groupId>org.springframework.ai</groupId>
|
||||
<artifactId>spring-ai-couchbase-store-spring-boot-starter</artifactId>
|
||||
<artifactId>spring-ai-starter-vector-store-couchbase</artifactId>
|
||||
</dependency>
|
||||
----
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
<relativePath>../../pom.xml</relativePath>
|
||||
</parent>
|
||||
<artifactId>spring-ai-couchbase-store-spring-boot-starter</artifactId>
|
||||
<artifactId>spring-ai-starter-vector-store-couchbase</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<name>Spring AI Starter - Couchbase Store</name>
|
||||
<description>Spring AI Couchbase Store Auto Configuration</description>
|
||||
@@ -28,10 +28,14 @@
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.ai</groupId>
|
||||
<artifactId>spring-ai-spring-boot-autoconfigure</artifactId>
|
||||
<artifactId>spring-ai-autoconfigure-vector-store-couchbase</artifactId>
|
||||
<version>${project.parent.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.ai</groupId>
|
||||
<artifactId>spring-ai-autoconfigure-vector-store-observation</artifactId>
|
||||
<version>${project.parent.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.ai</groupId>
|
||||
<artifactId>spring-ai-couchbase-store</artifactId>
|
||||
Reference in New Issue
Block a user