From 2d517eec5cd7ce5f88149b876ed57a06ad353e11 Mon Sep 17 00:00:00 2001 From: Ilayaperumal Gopinathan Date: Sun, 11 May 2025 09:54:54 +0100 Subject: [PATCH] Refactor chat memory repository artifacts for clarity - Rename the artifact ID of the chat memory repository artifacts: - `spring-ai-model-chat-memory-jdbc` -> `spring-ai-model-chat-memory-repository-jdbc` - `spring-ai-model-chat-memory-cassandra` -> `spring-ai-model-chat-memory-repository-cassandra` - `spring-ai-model-chat-memory-neo4j` -> `spring-ai-model-chat-memory-repository-neo4j` - Rename the package names to include "repository". Example: org.springframework.ai.chat.memory.repository.jdbc.JdbcChatMemoryRepository - This package renaming also requires to change the default schema location for the jdbc repository to include "repository" - Update the docs - Update the artifact IDs in the parent POM, BOM, autoconfiguration and starters - Update upgrade notes and docs to describe the changes Fix JdbcChatMemoryRepositoryPostgresqlIT - Make sure to set the dialect via datasource Signed-off-by: Ilayaperumal Gopinathan --- .../pom.xml | 2 +- ...ChatMemoryRepositoryAutoConfiguration.java | 4 ++-- ...ssandraChatMemoryRepositoryProperties.java | 2 +- ...atMemoryRepositoryAutoConfigurationIT.java | 2 +- ...draChatMemoryRepositoryPropertiesTest.java | 2 +- .../pom.xml | 2 +- ...ChatMemoryRepositoryAutoConfiguration.java | 6 +++--- .../JdbcChatMemoryRepositoryProperties.java | 4 ++-- ...yRepositoryHsqldbAutoConfigurationIT.java} | 9 +++++---- ...ositoryPostgresqlAutoConfigurationIT.java} | 4 ++-- ...itorySchemaInitializerPostgresqlTests.java | 2 +- ...positorySqlServerAutoConfigurationIT.java} | 4 ++-- .../pom.xml | 2 +- ...ChatMemoryRepositoryAutoConfiguration.java | 4 ++-- .../Neo4jChatMemoryRepositoryProperties.java | 2 +- ...o4JChatMemoryRepositoryPropertiesTest.java | 2 +- ...atMemoryRepositoryAutoConfigurationIT.java | 4 ++-- .../pom.xml | 8 ++++---- .../CassandraChatMemoryRepository.java | 2 +- .../CassandraChatMemoryRepositoryConfig.java | 2 +- .../repository}/cassandra/SchemaUtil.java | 2 +- .../CassandraChatMemoryRepositoryIT.java | 2 +- .../repository}/cassandra/CassandraImage.java | 2 +- .../README.md | 0 .../pom.xml | 4 ++-- .../HsqldbChatMemoryRepositoryDialect.java} | 4 ++-- .../jdbc/JdbcChatMemoryRepository.java | 10 +++++----- .../JdbcChatMemoryRepositoryDialect.java} | 18 +++++++++--------- .../MysqlChatMemoryRepositoryDialect.java} | 4 ++-- .../PostgresChatMemoryRepositoryDialect.java} | 4 ++-- ...SqlServerChatMemoryRepositoryDialect.java} | 4 ++-- .../JdbcChatMemoryRepositoryRuntimeHints.java | 4 ++-- .../memory/repository}/jdbc/package-info.java | 2 +- .../resources/META-INF/spring/aot.factories | 2 ++ .../memory/repository}/jdbc/schema-hsqldb.sql | 0 .../repository}/jdbc/schema-mariadb.sql | 0 .../repository}/jdbc/schema-postgresql.sql | 0 .../repository}/jdbc/schema-sqlserver.sql | 0 .../JdbcChatMemoryRepositoryPostgresqlIT.java | 19 ++++++++++++------- ...cChatMemoryRepositoryRuntimeHintsTest.java | 6 +++--- .../pom.xml | 8 ++++---- .../repository}/neo4j/MediaAttributes.java | 2 +- .../repository}/neo4j/MessageAttributes.java | 2 +- .../neo4j/Neo4jChatMemoryRepository.java | 2 +- .../Neo4jChatMemoryRepositoryConfig.java | 2 +- .../repository}/neo4j/ToolCallAttributes.java | 2 +- .../neo4j/ToolResponseAttributes.java | 2 +- .../Neo4JChatMemoryRepositoryConfigIT.java | 2 +- .../neo4j/Neo4jChatMemoryRepositoryIT.java | 2 +- .../resources/META-INF/spring/aot.factories | 2 -- pom.xml | 8 ++++---- spring-ai-bom/pom.xml | 6 +++--- .../modules/ROOT/pages/api/chat-memory.adoc | 8 ++++---- .../modules/ROOT/pages/upgrade-notes.adoc | 12 +++++++++++- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- 57 files changed, 119 insertions(+), 103 deletions(-) rename auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/{JdbcChatMemoryHsqldbAutoConfigurationIT.java => JdbcChatMemoryRepositoryHsqldbAutoConfigurationIT.java} (94%) rename auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/{JdbcChatMemoryPostgresqlAutoConfigurationIT.java => JdbcChatMemoryRepositoryPostgresqlAutoConfigurationIT.java} (97%) rename auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/{JdbcChatMemorySqlServerAutoConfigurationIT.java => JdbcChatMemoryRepositorySqlServerAutoConfigurationIT.java} (97%) rename memory/{spring-ai-model-chat-memory-cassandra => repository/spring-ai-model-chat-memory-repository-cassandra}/pom.xml (90%) rename memory/{spring-ai-model-chat-memory-cassandra/src/main/java/org/springframework/ai/chat/memory => repository/spring-ai-model-chat-memory-repository-cassandra/src/main/java/org/springframework/ai/chat/memory/repository}/cassandra/CassandraChatMemoryRepository.java (99%) rename memory/{spring-ai-model-chat-memory-cassandra/src/main/java/org/springframework/ai/chat/memory => repository/spring-ai-model-chat-memory-repository-cassandra/src/main/java/org/springframework/ai/chat/memory/repository}/cassandra/CassandraChatMemoryRepositoryConfig.java (99%) rename memory/{spring-ai-model-chat-memory-cassandra/src/main/java/org/springframework/ai/chat/memory => repository/spring-ai-model-chat-memory-repository-cassandra/src/main/java/org/springframework/ai/chat/memory/repository}/cassandra/SchemaUtil.java (96%) rename memory/{spring-ai-model-chat-memory-cassandra/src/test/java/org/springframework/ai/chat/memory => repository/spring-ai-model-chat-memory-repository-cassandra/src/test/java/org/springframework/ai/chat/memory/repository}/cassandra/CassandraChatMemoryRepositoryIT.java (99%) rename memory/{spring-ai-model-chat-memory-cassandra/src/test/java/org/springframework/ai/chat/memory => repository/spring-ai-model-chat-memory-repository-cassandra/src/test/java/org/springframework/ai/chat/memory/repository}/cassandra/CassandraImage.java (93%) rename memory/{spring-ai-model-chat-memory-jdbc => repository/spring-ai-model-chat-memory-repository-jdbc}/README.md (100%) rename memory/{spring-ai-model-chat-memory-jdbc => repository/spring-ai-model-chat-memory-repository-jdbc}/pom.xml (96%) rename memory/{spring-ai-model-chat-memory-jdbc/src/main/java/org/springframework/ai/chat/memory/jdbc/HsqldbChatMemoryDialect.java => repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository/jdbc/HsqldbChatMemoryRepositoryDialect.java} (89%) rename memory/{spring-ai-model-chat-memory-jdbc/src/main/java/org/springframework/ai/chat/memory => repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository}/jdbc/JdbcChatMemoryRepository.java (95%) rename memory/{spring-ai-model-chat-memory-jdbc/src/main/java/org/springframework/ai/chat/memory/jdbc/JdbcChatMemoryDialect.java => repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository/jdbc/JdbcChatMemoryRepositoryDialect.java} (76%) rename memory/{spring-ai-model-chat-memory-jdbc/src/main/java/org/springframework/ai/chat/memory/jdbc/MysqlChatMemoryDialect.java => repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository/jdbc/MysqlChatMemoryRepositoryDialect.java} (89%) rename memory/{spring-ai-model-chat-memory-jdbc/src/main/java/org/springframework/ai/chat/memory/jdbc/PostgresChatMemoryDialect.java => repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository/jdbc/PostgresChatMemoryRepositoryDialect.java} (89%) rename memory/{spring-ai-model-chat-memory-jdbc/src/main/java/org/springframework/ai/chat/memory/jdbc/SqlServerChatMemoryDialect.java => repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository/jdbc/SqlServerChatMemoryRepositoryDialect.java} (89%) rename memory/{spring-ai-model-chat-memory-jdbc/src/main/java/org/springframework/ai/chat/memory => repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository}/jdbc/aot/hint/JdbcChatMemoryRepositoryRuntimeHints.java (92%) rename memory/{spring-ai-model-chat-memory-jdbc/src/main/java/org/springframework/ai/chat/memory => repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository}/jdbc/package-info.java (92%) create mode 100644 memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/resources/META-INF/spring/aot.factories rename memory/{spring-ai-model-chat-memory-jdbc/src/main/resources/org/springframework/ai/chat/memory => repository/spring-ai-model-chat-memory-repository-jdbc/src/main/resources/org/springframework/ai/chat/memory/repository}/jdbc/schema-hsqldb.sql (100%) rename memory/{spring-ai-model-chat-memory-jdbc/src/main/resources/org/springframework/ai/chat/memory => repository/spring-ai-model-chat-memory-repository-jdbc/src/main/resources/org/springframework/ai/chat/memory/repository}/jdbc/schema-mariadb.sql (100%) rename memory/{spring-ai-model-chat-memory-jdbc/src/main/resources/org/springframework/ai/chat/memory => repository/spring-ai-model-chat-memory-repository-jdbc/src/main/resources/org/springframework/ai/chat/memory/repository}/jdbc/schema-postgresql.sql (100%) rename memory/{spring-ai-model-chat-memory-jdbc/src/main/resources/org/springframework/ai/chat/memory => repository/spring-ai-model-chat-memory-repository-jdbc/src/main/resources/org/springframework/ai/chat/memory/repository}/jdbc/schema-sqlserver.sql (100%) rename memory/{spring-ai-model-chat-memory-jdbc/src/test/java/org/springframework/ai/chat/memory => repository/spring-ai-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/chat/memory/repository}/jdbc/JdbcChatMemoryRepositoryPostgresqlIT.java (92%) rename memory/{spring-ai-model-chat-memory-jdbc/src/test/java/org/springframework/ai/chat/memory => repository/spring-ai-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/chat/memory/repository}/jdbc/aot/hint/JdbcChatMemoryRepositoryRuntimeHintsTest.java (93%) rename memory/{spring-ai-model-chat-memory-neo4j => repository/spring-ai-model-chat-memory-repository-neo4j}/pom.xml (92%) rename memory/{spring-ai-model-chat-memory-neo4j/src/main/java/org/springframework/ai/chat/memory => repository/spring-ai-model-chat-memory-repository-neo4j/src/main/java/org/springframework/ai/chat/memory/repository}/neo4j/MediaAttributes.java (93%) rename memory/{spring-ai-model-chat-memory-neo4j/src/main/java/org/springframework/ai/chat/memory => repository/spring-ai-model-chat-memory-repository-neo4j/src/main/java/org/springframework/ai/chat/memory/repository}/neo4j/MessageAttributes.java (93%) rename memory/{spring-ai-model-chat-memory-neo4j/src/main/java/org/springframework/ai/chat/memory => repository/spring-ai-model-chat-memory-repository-neo4j/src/main/java/org/springframework/ai/chat/memory/repository}/neo4j/Neo4jChatMemoryRepository.java (99%) rename memory/{spring-ai-model-chat-memory-neo4j/src/main/java/org/springframework/ai/chat/memory => repository/spring-ai-model-chat-memory-repository-neo4j/src/main/java/org/springframework/ai/chat/memory/repository}/neo4j/Neo4jChatMemoryRepositoryConfig.java (98%) rename memory/{spring-ai-model-chat-memory-neo4j/src/main/java/org/springframework/ai/chat/memory => repository/spring-ai-model-chat-memory-repository-neo4j/src/main/java/org/springframework/ai/chat/memory/repository}/neo4j/ToolCallAttributes.java (93%) rename memory/{spring-ai-model-chat-memory-neo4j/src/main/java/org/springframework/ai/chat/memory => repository/spring-ai-model-chat-memory-repository-neo4j/src/main/java/org/springframework/ai/chat/memory/repository}/neo4j/ToolResponseAttributes.java (93%) rename memory/{spring-ai-model-chat-memory-neo4j/src/test/java/org/springframework/ai/chat/memory => repository/spring-ai-model-chat-memory-repository-neo4j/src/test/java/org/springframework/ai/chat/memory/repository}/neo4j/Neo4JChatMemoryRepositoryConfigIT.java (97%) rename memory/{spring-ai-model-chat-memory-neo4j/src/test/java/org/springframework/ai/chat/memory => repository/spring-ai-model-chat-memory-repository-neo4j/src/test/java/org/springframework/ai/chat/memory/repository}/neo4j/Neo4jChatMemoryRepositoryIT.java (99%) delete mode 100644 memory/spring-ai-model-chat-memory-jdbc/src/main/resources/META-INF/spring/aot.factories diff --git a/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-cassandra/pom.xml b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-cassandra/pom.xml index 587452225..1685a8a5d 100644 --- a/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-cassandra/pom.xml +++ b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-cassandra/pom.xml @@ -25,7 +25,7 @@ org.springframework.ai - spring-ai-model-chat-memory-cassandra + spring-ai-model-chat-memory-repository-cassandra ${project.parent.version} diff --git a/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-cassandra/src/main/java/org/springframework/ai/model/chat/memory/repository/cassandra/autoconfigure/CassandraChatMemoryRepositoryAutoConfiguration.java b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-cassandra/src/main/java/org/springframework/ai/model/chat/memory/repository/cassandra/autoconfigure/CassandraChatMemoryRepositoryAutoConfiguration.java index dbc2c767d..404306723 100644 --- a/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-cassandra/src/main/java/org/springframework/ai/model/chat/memory/repository/cassandra/autoconfigure/CassandraChatMemoryRepositoryAutoConfiguration.java +++ b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-cassandra/src/main/java/org/springframework/ai/model/chat/memory/repository/cassandra/autoconfigure/CassandraChatMemoryRepositoryAutoConfiguration.java @@ -18,8 +18,8 @@ package org.springframework.ai.model.chat.memory.repository.cassandra.autoconfig import com.datastax.oss.driver.api.core.CqlSession; -import org.springframework.ai.chat.memory.cassandra.CassandraChatMemoryRepositoryConfig; -import org.springframework.ai.chat.memory.cassandra.CassandraChatMemoryRepository; +import org.springframework.ai.chat.memory.repository.cassandra.CassandraChatMemoryRepositoryConfig; +import org.springframework.ai.chat.memory.repository.cassandra.CassandraChatMemoryRepository; import org.springframework.ai.model.chat.memory.autoconfigure.ChatMemoryAutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration; diff --git a/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-cassandra/src/main/java/org/springframework/ai/model/chat/memory/repository/cassandra/autoconfigure/CassandraChatMemoryRepositoryProperties.java b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-cassandra/src/main/java/org/springframework/ai/model/chat/memory/repository/cassandra/autoconfigure/CassandraChatMemoryRepositoryProperties.java index 15b778f95..45c629f4f 100644 --- a/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-cassandra/src/main/java/org/springframework/ai/model/chat/memory/repository/cassandra/autoconfigure/CassandraChatMemoryRepositoryProperties.java +++ b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-cassandra/src/main/java/org/springframework/ai/model/chat/memory/repository/cassandra/autoconfigure/CassandraChatMemoryRepositoryProperties.java @@ -21,7 +21,7 @@ import java.time.Duration; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.ai.chat.memory.cassandra.CassandraChatMemoryRepositoryConfig; +import org.springframework.ai.chat.memory.repository.cassandra.CassandraChatMemoryRepositoryConfig; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.lang.Nullable; diff --git a/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-cassandra/src/test/java/org/springframework/ai/model/chat/memory/repository/cassandra/autoconfigure/CassandraChatMemoryRepositoryAutoConfigurationIT.java b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-cassandra/src/test/java/org/springframework/ai/model/chat/memory/repository/cassandra/autoconfigure/CassandraChatMemoryRepositoryAutoConfigurationIT.java index af898108c..90f41f86e 100644 --- a/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-cassandra/src/test/java/org/springframework/ai/model/chat/memory/repository/cassandra/autoconfigure/CassandraChatMemoryRepositoryAutoConfigurationIT.java +++ b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-cassandra/src/test/java/org/springframework/ai/model/chat/memory/repository/cassandra/autoconfigure/CassandraChatMemoryRepositoryAutoConfigurationIT.java @@ -26,7 +26,7 @@ import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.DockerImageName; -import org.springframework.ai.chat.memory.cassandra.CassandraChatMemoryRepository; +import org.springframework.ai.chat.memory.repository.cassandra.CassandraChatMemoryRepository; import org.springframework.ai.chat.messages.AssistantMessage; import org.springframework.ai.chat.messages.MessageType; import org.springframework.ai.chat.messages.UserMessage; diff --git a/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-cassandra/src/test/java/org/springframework/ai/model/chat/memory/repository/cassandra/autoconfigure/CassandraChatMemoryRepositoryPropertiesTest.java b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-cassandra/src/test/java/org/springframework/ai/model/chat/memory/repository/cassandra/autoconfigure/CassandraChatMemoryRepositoryPropertiesTest.java index e14c55be6..5138f11f1 100644 --- a/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-cassandra/src/test/java/org/springframework/ai/model/chat/memory/repository/cassandra/autoconfigure/CassandraChatMemoryRepositoryPropertiesTest.java +++ b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-cassandra/src/test/java/org/springframework/ai/model/chat/memory/repository/cassandra/autoconfigure/CassandraChatMemoryRepositoryPropertiesTest.java @@ -20,7 +20,7 @@ import java.time.Duration; import org.junit.jupiter.api.Test; -import org.springframework.ai.chat.memory.cassandra.CassandraChatMemoryRepositoryConfig; +import org.springframework.ai.chat.memory.repository.cassandra.CassandraChatMemoryRepositoryConfig; import static org.assertj.core.api.Assertions.assertThat; diff --git a/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/pom.xml b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/pom.xml index abccac328..60335dbab 100644 --- a/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/pom.xml +++ b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/pom.xml @@ -25,7 +25,7 @@ org.springframework.ai - spring-ai-model-chat-memory-jdbc + spring-ai-model-chat-memory-repository-jdbc ${project.parent.version} diff --git a/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositoryAutoConfiguration.java b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositoryAutoConfiguration.java index 0d2ae5c7d..6db6e0344 100644 --- a/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositoryAutoConfiguration.java +++ b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositoryAutoConfiguration.java @@ -18,8 +18,8 @@ package org.springframework.ai.model.chat.memory.repository.jdbc.autoconfigure; import javax.sql.DataSource; -import org.springframework.ai.chat.memory.jdbc.JdbcChatMemoryDialect; -import org.springframework.ai.chat.memory.jdbc.JdbcChatMemoryRepository; +import org.springframework.ai.chat.memory.repository.jdbc.JdbcChatMemoryRepositoryDialect; +import org.springframework.ai.chat.memory.repository.jdbc.JdbcChatMemoryRepository; import org.springframework.ai.model.chat.memory.autoconfigure.ChatMemoryAutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; @@ -45,7 +45,7 @@ public class JdbcChatMemoryRepositoryAutoConfiguration { @Bean @ConditionalOnMissingBean JdbcChatMemoryRepository jdbcChatMemoryRepository(JdbcTemplate jdbcTemplate, DataSource dataSource) { - JdbcChatMemoryDialect dialect = JdbcChatMemoryDialect.from(dataSource); + JdbcChatMemoryRepositoryDialect dialect = JdbcChatMemoryRepositoryDialect.from(dataSource); return JdbcChatMemoryRepository.builder().jdbcTemplate(jdbcTemplate).dialect(dialect).build(); } diff --git a/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositoryProperties.java b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositoryProperties.java index d7e9ddb7b..9ff1697a4 100644 --- a/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositoryProperties.java +++ b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositoryProperties.java @@ -30,7 +30,7 @@ public class JdbcChatMemoryRepositoryProperties { public static final String CONFIG_PREFIX = "spring.ai.chat.memory.repository.jdbc"; - private static final String DEFAULT_SCHEMA_LOCATION = "classpath:org/springframework/ai/chat/memory/jdbc/schema-@@platform@@.sql"; + private static final String DEFAULT_SCHEMA_LOCATION = "classpath:org/springframework/ai/chat/memory/repository/jdbc/schema-@@platform@@.sql"; /** * Whether to initialize the schema on startup. Values: embedded, always, never. @@ -40,7 +40,7 @@ public class JdbcChatMemoryRepositoryProperties { /** * Locations of schema (DDL) scripts. Supports comma-separated list. Default is - * classpath:org/springframework/ai/chat/memory/jdbc/schema-@@platform@@.sql + * classpath:org/springframework/ai/chat/memory/repository/jdbc/schema-@@platform@@.sql */ private String schema = DEFAULT_SCHEMA_LOCATION; diff --git a/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryHsqldbAutoConfigurationIT.java b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositoryHsqldbAutoConfigurationIT.java similarity index 94% rename from auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryHsqldbAutoConfigurationIT.java rename to auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositoryHsqldbAutoConfigurationIT.java index cadfeb96b..1572ddd69 100644 --- a/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryHsqldbAutoConfigurationIT.java +++ b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositoryHsqldbAutoConfigurationIT.java @@ -22,6 +22,7 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import org.springframework.ai.chat.memory.repository.jdbc.JdbcChatMemoryRepository; import org.springframework.ai.chat.messages.AssistantMessage; import org.springframework.ai.chat.messages.Message; import org.springframework.ai.chat.messages.UserMessage; @@ -39,7 +40,7 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.fail; @RunWith(SpringRunner.class) -@SpringBootTest(classes = JdbcChatMemoryHsqldbAutoConfigurationIT.TestConfig.class, +@SpringBootTest(classes = JdbcChatMemoryRepositoryHsqldbAutoConfigurationIT.TestConfig.class, properties = { "spring.datasource.url=jdbc:hsqldb:mem:chat_memory_auto_configuration_test;DB_CLOSE_DELAY=-1", "spring.datasource.username=sa", "spring.datasource.password=", "spring.datasource.driver-class-name=org.hsqldb.jdbcDriver", @@ -54,7 +55,7 @@ import static org.assertj.core.api.Assertions.fail; org.springframework.boot.autoconfigure.jdbc.JdbcTemplateAutoConfiguration.class, org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration.class, SqlInitializationAutoConfiguration.class }) -public class JdbcChatMemoryHsqldbAutoConfigurationIT { +public class JdbcChatMemoryRepositoryHsqldbAutoConfigurationIT { @Autowired private ApplicationContext context; @@ -130,7 +131,7 @@ public class JdbcChatMemoryHsqldbAutoConfigurationIT { try { java.util.Enumeration resources = Thread.currentThread() .getContextClassLoader() - .getResources("org/springframework/ai/chat/memory/jdbc/schema-hsqldb.sql"); + .getResources("org/springframework/ai/chat/memory/repository/jdbc/schema-hsqldb.sql"); System.out.println("--- schema-hsqldb.sql resources found on classpath ---"); while (resources.hasMoreElements()) { System.out.println(resources.nextElement()); @@ -157,7 +158,7 @@ public class JdbcChatMemoryHsqldbAutoConfigurationIT { // Now test the ChatMemory functionality assertThat(context.getBean(org.springframework.ai.chat.memory.ChatMemory.class)).isNotNull(); - assertThat(context.getBean(org.springframework.ai.chat.memory.jdbc.JdbcChatMemoryRepository.class)).isNotNull(); + assertThat(context.getBean(JdbcChatMemoryRepository.class)).isNotNull(); var chatMemory = context.getBean(org.springframework.ai.chat.memory.ChatMemory.class); var conversationId = java.util.UUID.randomUUID().toString(); diff --git a/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryPostgresqlAutoConfigurationIT.java b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositoryPostgresqlAutoConfigurationIT.java similarity index 97% rename from auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryPostgresqlAutoConfigurationIT.java rename to auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositoryPostgresqlAutoConfigurationIT.java index 2b97bbce7..b7bce37f6 100644 --- a/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryPostgresqlAutoConfigurationIT.java +++ b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositoryPostgresqlAutoConfigurationIT.java @@ -22,7 +22,7 @@ import java.util.UUID; import org.junit.jupiter.api.Test; import org.springframework.ai.chat.memory.ChatMemory; -import org.springframework.ai.chat.memory.jdbc.JdbcChatMemoryRepository; +import org.springframework.ai.chat.memory.repository.jdbc.JdbcChatMemoryRepository; import org.springframework.ai.chat.messages.AssistantMessage; import org.springframework.ai.chat.messages.Message; import org.springframework.ai.chat.messages.UserMessage; @@ -40,7 +40,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Linar Abzaltdinov * @author Yanming Zhou */ -class JdbcChatMemoryPostgresqlAutoConfigurationIT { +class JdbcChatMemoryRepositoryPostgresqlAutoConfigurationIT { private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() .withConfiguration(AutoConfigurations.of(JdbcChatMemoryRepositoryAutoConfiguration.class, diff --git a/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositorySchemaInitializerPostgresqlTests.java b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositorySchemaInitializerPostgresqlTests.java index d4d175fb7..03542a87d 100644 --- a/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositorySchemaInitializerPostgresqlTests.java +++ b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositorySchemaInitializerPostgresqlTests.java @@ -62,7 +62,7 @@ class JdbcChatMemoryRepositorySchemaInitializerPostgresqlTests { new JdbcChatMemoryRepositoryProperties()); assertThat(settings.getSchemaLocations()) - .containsOnly("classpath:org/springframework/ai/chat/memory/jdbc/schema-postgresql.sql"); + .containsOnly("classpath:org/springframework/ai/chat/memory/repository/jdbc/schema-postgresql.sql"); }); } diff --git a/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemorySqlServerAutoConfigurationIT.java b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositorySqlServerAutoConfigurationIT.java similarity index 97% rename from auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemorySqlServerAutoConfigurationIT.java rename to auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositorySqlServerAutoConfigurationIT.java index 72064374a..7638d6591 100644 --- a/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemorySqlServerAutoConfigurationIT.java +++ b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/model/chat/memory/repository/jdbc/autoconfigure/JdbcChatMemoryRepositorySqlServerAutoConfigurationIT.java @@ -10,7 +10,7 @@ import java.util.UUID; import org.junit.jupiter.api.Test; import org.springframework.ai.chat.memory.ChatMemory; -import org.springframework.ai.chat.memory.jdbc.JdbcChatMemoryRepository; +import org.springframework.ai.chat.memory.repository.jdbc.JdbcChatMemoryRepository; import org.springframework.ai.chat.messages.AssistantMessage; import org.springframework.ai.chat.messages.Message; import org.springframework.ai.chat.messages.UserMessage; @@ -27,7 +27,7 @@ import org.testcontainers.utility.DockerImageName; import static org.assertj.core.api.Assertions.assertThat; @Testcontainers -class JdbcChatMemorySqlServerAutoConfigurationIT { +class JdbcChatMemoryRepositorySqlServerAutoConfigurationIT { static final DockerImageName DEFAULT_IMAGE_NAME = DockerImageName .parse("mcr.microsoft.com/mssql/server:2022-latest"); diff --git a/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-neo4j/pom.xml b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-neo4j/pom.xml index c38ae7cc5..694de5ea7 100644 --- a/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-neo4j/pom.xml +++ b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-neo4j/pom.xml @@ -25,7 +25,7 @@ org.springframework.ai - spring-ai-model-chat-memory-neo4j + spring-ai-model-chat-memory-repository-neo4j ${project.parent.version} diff --git a/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-neo4j/src/main/java/org/springframework/ai/model/chat/memory/repository/neo4j/autoconfigure/Neo4jChatMemoryRepositoryAutoConfiguration.java b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-neo4j/src/main/java/org/springframework/ai/model/chat/memory/repository/neo4j/autoconfigure/Neo4jChatMemoryRepositoryAutoConfiguration.java index 10a902fa9..85a095326 100644 --- a/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-neo4j/src/main/java/org/springframework/ai/model/chat/memory/repository/neo4j/autoconfigure/Neo4jChatMemoryRepositoryAutoConfiguration.java +++ b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-neo4j/src/main/java/org/springframework/ai/model/chat/memory/repository/neo4j/autoconfigure/Neo4jChatMemoryRepositoryAutoConfiguration.java @@ -18,8 +18,8 @@ package org.springframework.ai.model.chat.memory.repository.neo4j.autoconfigure; import org.neo4j.driver.Driver; -import org.springframework.ai.chat.memory.neo4j.Neo4jChatMemoryRepositoryConfig; -import org.springframework.ai.chat.memory.neo4j.Neo4jChatMemoryRepository; +import org.springframework.ai.chat.memory.repository.neo4j.Neo4jChatMemoryRepositoryConfig; +import org.springframework.ai.chat.memory.repository.neo4j.Neo4jChatMemoryRepository; import org.springframework.ai.model.chat.memory.autoconfigure.ChatMemoryAutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; diff --git a/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-neo4j/src/main/java/org/springframework/ai/model/chat/memory/repository/neo4j/autoconfigure/Neo4jChatMemoryRepositoryProperties.java b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-neo4j/src/main/java/org/springframework/ai/model/chat/memory/repository/neo4j/autoconfigure/Neo4jChatMemoryRepositoryProperties.java index 43719b404..f58f8b75b 100644 --- a/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-neo4j/src/main/java/org/springframework/ai/model/chat/memory/repository/neo4j/autoconfigure/Neo4jChatMemoryRepositoryProperties.java +++ b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-neo4j/src/main/java/org/springframework/ai/model/chat/memory/repository/neo4j/autoconfigure/Neo4jChatMemoryRepositoryProperties.java @@ -16,7 +16,7 @@ package org.springframework.ai.model.chat.memory.repository.neo4j.autoconfigure; -import org.springframework.ai.chat.memory.neo4j.Neo4jChatMemoryRepositoryConfig; +import org.springframework.ai.chat.memory.repository.neo4j.Neo4jChatMemoryRepositoryConfig; import org.springframework.boot.context.properties.ConfigurationProperties; /** diff --git a/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-neo4j/src/test/java/org/springframework/ai/model/chat/memory/repository/neo4j/autoconfigure/Neo4JChatMemoryRepositoryPropertiesTest.java b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-neo4j/src/test/java/org/springframework/ai/model/chat/memory/repository/neo4j/autoconfigure/Neo4JChatMemoryRepositoryPropertiesTest.java index 251cd371e..4245c3aa6 100644 --- a/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-neo4j/src/test/java/org/springframework/ai/model/chat/memory/repository/neo4j/autoconfigure/Neo4JChatMemoryRepositoryPropertiesTest.java +++ b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-neo4j/src/test/java/org/springframework/ai/model/chat/memory/repository/neo4j/autoconfigure/Neo4JChatMemoryRepositoryPropertiesTest.java @@ -18,7 +18,7 @@ package org.springframework.ai.model.chat.memory.repository.neo4j.autoconfigure; import org.junit.jupiter.api.Test; -import org.springframework.ai.chat.memory.neo4j.Neo4jChatMemoryRepositoryConfig; +import org.springframework.ai.chat.memory.repository.neo4j.Neo4jChatMemoryRepositoryConfig; import static org.assertj.core.api.Assertions.assertThat; diff --git a/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-neo4j/src/test/java/org/springframework/ai/model/chat/memory/repository/neo4j/autoconfigure/Neo4jChatMemoryRepositoryAutoConfigurationIT.java b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-neo4j/src/test/java/org/springframework/ai/model/chat/memory/repository/neo4j/autoconfigure/Neo4jChatMemoryRepositoryAutoConfigurationIT.java index 9c9aec6d2..172ddefa6 100644 --- a/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-neo4j/src/test/java/org/springframework/ai/model/chat/memory/repository/neo4j/autoconfigure/Neo4jChatMemoryRepositoryAutoConfigurationIT.java +++ b/auto-configurations/models/chat/memory/repository/spring-ai-autoconfigure-model-chat-memory-repository-neo4j/src/test/java/org/springframework/ai/model/chat/memory/repository/neo4j/autoconfigure/Neo4jChatMemoryRepositoryAutoConfigurationIT.java @@ -25,13 +25,13 @@ import java.util.UUID; import org.junit.jupiter.api.Test; import org.springframework.ai.chat.memory.ChatMemoryRepository; -import org.springframework.ai.chat.memory.neo4j.Neo4jChatMemoryRepository; +import org.springframework.ai.chat.memory.repository.neo4j.Neo4jChatMemoryRepository; import org.testcontainers.containers.Neo4jContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.DockerImageName; -import org.springframework.ai.chat.memory.neo4j.Neo4jChatMemoryRepositoryConfig; +import org.springframework.ai.chat.memory.repository.neo4j.Neo4jChatMemoryRepositoryConfig; import org.springframework.ai.chat.messages.AssistantMessage; import org.springframework.ai.chat.messages.Message; import org.springframework.ai.chat.messages.SystemMessage; diff --git a/memory/spring-ai-model-chat-memory-cassandra/pom.xml b/memory/repository/spring-ai-model-chat-memory-repository-cassandra/pom.xml similarity index 90% rename from memory/spring-ai-model-chat-memory-cassandra/pom.xml rename to memory/repository/spring-ai-model-chat-memory-repository-cassandra/pom.xml index fc6c500b6..9769db0a2 100644 --- a/memory/spring-ai-model-chat-memory-cassandra/pom.xml +++ b/memory/repository/spring-ai-model-chat-memory-repository-cassandra/pom.xml @@ -23,12 +23,12 @@ org.springframework.ai spring-ai-parent 1.0.0-SNAPSHOT - ../../pom.xml + ../../../pom.xml - spring-ai-model-chat-memory-cassandra - Spring AI Apache Cassandra Chat Memory - Spring AI Apache Cassandra Chat Memory implementation + spring-ai-model-chat-memory-repository-cassandra + Spring AI Apache Cassandra Chat Memory Repository + Spring AI Apache Cassandra Chat Memory Repository implementation https://github.com/spring-projects/spring-ai diff --git a/memory/spring-ai-model-chat-memory-cassandra/src/main/java/org/springframework/ai/chat/memory/cassandra/CassandraChatMemoryRepository.java b/memory/repository/spring-ai-model-chat-memory-repository-cassandra/src/main/java/org/springframework/ai/chat/memory/repository/cassandra/CassandraChatMemoryRepository.java similarity index 99% rename from memory/spring-ai-model-chat-memory-cassandra/src/main/java/org/springframework/ai/chat/memory/cassandra/CassandraChatMemoryRepository.java rename to memory/repository/spring-ai-model-chat-memory-repository-cassandra/src/main/java/org/springframework/ai/chat/memory/repository/cassandra/CassandraChatMemoryRepository.java index 58c2ec26c..6c4984eb5 100644 --- a/memory/spring-ai-model-chat-memory-cassandra/src/main/java/org/springframework/ai/chat/memory/cassandra/CassandraChatMemoryRepository.java +++ b/memory/repository/spring-ai-model-chat-memory-repository-cassandra/src/main/java/org/springframework/ai/chat/memory/repository/cassandra/CassandraChatMemoryRepository.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.chat.memory.cassandra; +package org.springframework.ai.chat.memory.repository.cassandra; import java.time.Instant; import java.util.ArrayList; diff --git a/memory/spring-ai-model-chat-memory-cassandra/src/main/java/org/springframework/ai/chat/memory/cassandra/CassandraChatMemoryRepositoryConfig.java b/memory/repository/spring-ai-model-chat-memory-repository-cassandra/src/main/java/org/springframework/ai/chat/memory/repository/cassandra/CassandraChatMemoryRepositoryConfig.java similarity index 99% rename from memory/spring-ai-model-chat-memory-cassandra/src/main/java/org/springframework/ai/chat/memory/cassandra/CassandraChatMemoryRepositoryConfig.java rename to memory/repository/spring-ai-model-chat-memory-repository-cassandra/src/main/java/org/springframework/ai/chat/memory/repository/cassandra/CassandraChatMemoryRepositoryConfig.java index 3d2327266..939e41fec 100644 --- a/memory/spring-ai-model-chat-memory-cassandra/src/main/java/org/springframework/ai/chat/memory/cassandra/CassandraChatMemoryRepositoryConfig.java +++ b/memory/repository/spring-ai-model-chat-memory-repository-cassandra/src/main/java/org/springframework/ai/chat/memory/repository/cassandra/CassandraChatMemoryRepositoryConfig.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.chat.memory.cassandra; +package org.springframework.ai.chat.memory.repository.cassandra; import java.net.InetSocketAddress; import java.time.Duration; diff --git a/memory/spring-ai-model-chat-memory-cassandra/src/main/java/org/springframework/ai/chat/memory/cassandra/SchemaUtil.java b/memory/repository/spring-ai-model-chat-memory-repository-cassandra/src/main/java/org/springframework/ai/chat/memory/repository/cassandra/SchemaUtil.java similarity index 96% rename from memory/spring-ai-model-chat-memory-cassandra/src/main/java/org/springframework/ai/chat/memory/cassandra/SchemaUtil.java rename to memory/repository/spring-ai-model-chat-memory-repository-cassandra/src/main/java/org/springframework/ai/chat/memory/repository/cassandra/SchemaUtil.java index eeb1f5a15..de25d9673 100644 --- a/memory/spring-ai-model-chat-memory-cassandra/src/main/java/org/springframework/ai/chat/memory/cassandra/SchemaUtil.java +++ b/memory/repository/spring-ai-model-chat-memory-repository-cassandra/src/main/java/org/springframework/ai/chat/memory/repository/cassandra/SchemaUtil.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.chat.memory.cassandra; +package org.springframework.ai.chat.memory.repository.cassandra; import java.time.Duration; diff --git a/memory/spring-ai-model-chat-memory-cassandra/src/test/java/org/springframework/ai/chat/memory/cassandra/CassandraChatMemoryRepositoryIT.java b/memory/repository/spring-ai-model-chat-memory-repository-cassandra/src/test/java/org/springframework/ai/chat/memory/repository/cassandra/CassandraChatMemoryRepositoryIT.java similarity index 99% rename from memory/spring-ai-model-chat-memory-cassandra/src/test/java/org/springframework/ai/chat/memory/cassandra/CassandraChatMemoryRepositoryIT.java rename to memory/repository/spring-ai-model-chat-memory-repository-cassandra/src/test/java/org/springframework/ai/chat/memory/repository/cassandra/CassandraChatMemoryRepositoryIT.java index 0bf528985..67c00c799 100644 --- a/memory/spring-ai-model-chat-memory-cassandra/src/test/java/org/springframework/ai/chat/memory/cassandra/CassandraChatMemoryRepositoryIT.java +++ b/memory/repository/spring-ai-model-chat-memory-repository-cassandra/src/test/java/org/springframework/ai/chat/memory/repository/cassandra/CassandraChatMemoryRepositoryIT.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.chat.memory.cassandra; +package org.springframework.ai.chat.memory.repository.cassandra; import java.time.Duration; import java.util.List; diff --git a/memory/spring-ai-model-chat-memory-cassandra/src/test/java/org/springframework/ai/chat/memory/cassandra/CassandraImage.java b/memory/repository/spring-ai-model-chat-memory-repository-cassandra/src/test/java/org/springframework/ai/chat/memory/repository/cassandra/CassandraImage.java similarity index 93% rename from memory/spring-ai-model-chat-memory-cassandra/src/test/java/org/springframework/ai/chat/memory/cassandra/CassandraImage.java rename to memory/repository/spring-ai-model-chat-memory-repository-cassandra/src/test/java/org/springframework/ai/chat/memory/repository/cassandra/CassandraImage.java index ec3c76604..742d8cc70 100644 --- a/memory/spring-ai-model-chat-memory-cassandra/src/test/java/org/springframework/ai/chat/memory/cassandra/CassandraImage.java +++ b/memory/repository/spring-ai-model-chat-memory-repository-cassandra/src/test/java/org/springframework/ai/chat/memory/repository/cassandra/CassandraImage.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.chat.memory.cassandra; +package org.springframework.ai.chat.memory.repository.cassandra; import org.testcontainers.utility.DockerImageName; diff --git a/memory/spring-ai-model-chat-memory-jdbc/README.md b/memory/repository/spring-ai-model-chat-memory-repository-jdbc/README.md similarity index 100% rename from memory/spring-ai-model-chat-memory-jdbc/README.md rename to memory/repository/spring-ai-model-chat-memory-repository-jdbc/README.md diff --git a/memory/spring-ai-model-chat-memory-jdbc/pom.xml b/memory/repository/spring-ai-model-chat-memory-repository-jdbc/pom.xml similarity index 96% rename from memory/spring-ai-model-chat-memory-jdbc/pom.xml rename to memory/repository/spring-ai-model-chat-memory-repository-jdbc/pom.xml index a2e86e527..4f8364433 100644 --- a/memory/spring-ai-model-chat-memory-jdbc/pom.xml +++ b/memory/repository/spring-ai-model-chat-memory-repository-jdbc/pom.xml @@ -23,10 +23,10 @@ org.springframework.ai spring-ai-parent 1.0.0-SNAPSHOT - ../../pom.xml + ../../../pom.xml - spring-ai-model-chat-memory-jdbc + spring-ai-model-chat-memory-repository-jdbc Spring AI JDBC Chat Memory Spring AI JDBC Chat Memory implementation diff --git a/memory/spring-ai-model-chat-memory-jdbc/src/main/java/org/springframework/ai/chat/memory/jdbc/HsqldbChatMemoryDialect.java b/memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository/jdbc/HsqldbChatMemoryRepositoryDialect.java similarity index 89% rename from memory/spring-ai-model-chat-memory-jdbc/src/main/java/org/springframework/ai/chat/memory/jdbc/HsqldbChatMemoryDialect.java rename to memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository/jdbc/HsqldbChatMemoryRepositoryDialect.java index 39e9770f6..c833e3fff 100644 --- a/memory/spring-ai-model-chat-memory-jdbc/src/main/java/org/springframework/ai/chat/memory/jdbc/HsqldbChatMemoryDialect.java +++ b/memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository/jdbc/HsqldbChatMemoryRepositoryDialect.java @@ -14,12 +14,12 @@ * limitations under the License. */ -package org.springframework.ai.chat.memory.jdbc; +package org.springframework.ai.chat.memory.repository.jdbc; /** * HSQLDB-specific SQL dialect for chat memory repository. */ -public class HsqldbChatMemoryDialect implements JdbcChatMemoryDialect { +public class HsqldbChatMemoryRepositoryDialect implements JdbcChatMemoryRepositoryDialect { @Override public String getSelectMessagesSql() { diff --git a/memory/spring-ai-model-chat-memory-jdbc/src/main/java/org/springframework/ai/chat/memory/jdbc/JdbcChatMemoryRepository.java b/memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository/jdbc/JdbcChatMemoryRepository.java similarity index 95% rename from memory/spring-ai-model-chat-memory-jdbc/src/main/java/org/springframework/ai/chat/memory/jdbc/JdbcChatMemoryRepository.java rename to memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository/jdbc/JdbcChatMemoryRepository.java index 3fbbd3ffb..85d8c1c32 100644 --- a/memory/spring-ai-model-chat-memory-jdbc/src/main/java/org/springframework/ai/chat/memory/jdbc/JdbcChatMemoryRepository.java +++ b/memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository/jdbc/JdbcChatMemoryRepository.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.chat.memory.jdbc; +package org.springframework.ai.chat.memory.repository.jdbc; import java.sql.PreparedStatement; import java.sql.ResultSet; @@ -51,9 +51,9 @@ public class JdbcChatMemoryRepository implements ChatMemoryRepository { private final JdbcTemplate jdbcTemplate; - private final JdbcChatMemoryDialect dialect; + private final JdbcChatMemoryRepositoryDialect dialect; - private JdbcChatMemoryRepository(JdbcTemplate jdbcTemplate, JdbcChatMemoryDialect dialect) { + private JdbcChatMemoryRepository(JdbcTemplate jdbcTemplate, JdbcChatMemoryRepositoryDialect dialect) { Assert.notNull(jdbcTemplate, "jdbcTemplate cannot be null"); Assert.notNull(dialect, "dialect cannot be null"); this.jdbcTemplate = jdbcTemplate; @@ -146,7 +146,7 @@ public class JdbcChatMemoryRepository implements ChatMemoryRepository { private JdbcTemplate jdbcTemplate; - private JdbcChatMemoryDialect dialect; + private JdbcChatMemoryRepositoryDialect dialect; private Builder() { } @@ -156,7 +156,7 @@ public class JdbcChatMemoryRepository implements ChatMemoryRepository { return this; } - public Builder dialect(JdbcChatMemoryDialect dialect) { + public Builder dialect(JdbcChatMemoryRepositoryDialect dialect) { this.dialect = dialect; return this; } diff --git a/memory/spring-ai-model-chat-memory-jdbc/src/main/java/org/springframework/ai/chat/memory/jdbc/JdbcChatMemoryDialect.java b/memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository/jdbc/JdbcChatMemoryRepositoryDialect.java similarity index 76% rename from memory/spring-ai-model-chat-memory-jdbc/src/main/java/org/springframework/ai/chat/memory/jdbc/JdbcChatMemoryDialect.java rename to memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository/jdbc/JdbcChatMemoryRepositoryDialect.java index a186dd595..98533498d 100644 --- a/memory/spring-ai-model-chat-memory-jdbc/src/main/java/org/springframework/ai/chat/memory/jdbc/JdbcChatMemoryDialect.java +++ b/memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository/jdbc/JdbcChatMemoryRepositoryDialect.java @@ -14,14 +14,14 @@ * limitations under the License. */ -package org.springframework.ai.chat.memory.jdbc; +package org.springframework.ai.chat.memory.repository.jdbc; import javax.sql.DataSource; /** * Abstraction for database-specific SQL for chat memory repository. */ -public interface JdbcChatMemoryDialect { +public interface JdbcChatMemoryRepositoryDialect { /** * Returns the SQL to fetch messages for a conversation, ordered by timestamp, with @@ -51,25 +51,25 @@ public interface JdbcChatMemoryDialect { /** * Detects the dialect from the DataSource or JDBC URL. */ - static JdbcChatMemoryDialect from(DataSource dataSource) { + static JdbcChatMemoryRepositoryDialect from(DataSource dataSource) { // Simple detection (could be improved) try { String url = dataSource.getConnection().getMetaData().getURL().toLowerCase(); if (url.contains("postgresql")) - return new PostgresChatMemoryDialect(); + return new PostgresChatMemoryRepositoryDialect(); if (url.contains("mysql")) - return new MysqlChatMemoryDialect(); + return new MysqlChatMemoryRepositoryDialect(); if (url.contains("mariadb")) - return new MysqlChatMemoryDialect(); + return new MysqlChatMemoryRepositoryDialect(); if (url.contains("sqlserver")) - return new SqlServerChatMemoryDialect(); + return new SqlServerChatMemoryRepositoryDialect(); if (url.contains("hsqldb")) - return new HsqldbChatMemoryDialect(); + return new HsqldbChatMemoryRepositoryDialect(); // Add more as needed } catch (Exception ignored) { } - return new PostgresChatMemoryDialect(); // default + return new PostgresChatMemoryRepositoryDialect(); // default } } diff --git a/memory/spring-ai-model-chat-memory-jdbc/src/main/java/org/springframework/ai/chat/memory/jdbc/MysqlChatMemoryDialect.java b/memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository/jdbc/MysqlChatMemoryRepositoryDialect.java similarity index 89% rename from memory/spring-ai-model-chat-memory-jdbc/src/main/java/org/springframework/ai/chat/memory/jdbc/MysqlChatMemoryDialect.java rename to memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository/jdbc/MysqlChatMemoryRepositoryDialect.java index 8bc7d2c21..a41fd76ee 100644 --- a/memory/spring-ai-model-chat-memory-jdbc/src/main/java/org/springframework/ai/chat/memory/jdbc/MysqlChatMemoryDialect.java +++ b/memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository/jdbc/MysqlChatMemoryRepositoryDialect.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.chat.memory.jdbc; +package org.springframework.ai.chat.memory.repository.jdbc; /** * Dialect for MySQL. @@ -22,7 +22,7 @@ package org.springframework.ai.chat.memory.jdbc; * @author Mark Pollack * @since 1.0.0 */ -public class MysqlChatMemoryDialect implements JdbcChatMemoryDialect { +public class MysqlChatMemoryRepositoryDialect implements JdbcChatMemoryRepositoryDialect { @Override public String getSelectMessagesSql() { diff --git a/memory/spring-ai-model-chat-memory-jdbc/src/main/java/org/springframework/ai/chat/memory/jdbc/PostgresChatMemoryDialect.java b/memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository/jdbc/PostgresChatMemoryRepositoryDialect.java similarity index 89% rename from memory/spring-ai-model-chat-memory-jdbc/src/main/java/org/springframework/ai/chat/memory/jdbc/PostgresChatMemoryDialect.java rename to memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository/jdbc/PostgresChatMemoryRepositoryDialect.java index 424eb1aed..b22d298be 100644 --- a/memory/spring-ai-model-chat-memory-jdbc/src/main/java/org/springframework/ai/chat/memory/jdbc/PostgresChatMemoryDialect.java +++ b/memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository/jdbc/PostgresChatMemoryRepositoryDialect.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.chat.memory.jdbc; +package org.springframework.ai.chat.memory.repository.jdbc; /** * Dialect for Postgres. @@ -22,7 +22,7 @@ package org.springframework.ai.chat.memory.jdbc; * @author Mark Pollack * @since 1.0.0 */ -public class PostgresChatMemoryDialect implements JdbcChatMemoryDialect { +public class PostgresChatMemoryRepositoryDialect implements JdbcChatMemoryRepositoryDialect { @Override public String getSelectMessagesSql() { diff --git a/memory/spring-ai-model-chat-memory-jdbc/src/main/java/org/springframework/ai/chat/memory/jdbc/SqlServerChatMemoryDialect.java b/memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository/jdbc/SqlServerChatMemoryRepositoryDialect.java similarity index 89% rename from memory/spring-ai-model-chat-memory-jdbc/src/main/java/org/springframework/ai/chat/memory/jdbc/SqlServerChatMemoryDialect.java rename to memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository/jdbc/SqlServerChatMemoryRepositoryDialect.java index 48704a5f1..c4555de08 100644 --- a/memory/spring-ai-model-chat-memory-jdbc/src/main/java/org/springframework/ai/chat/memory/jdbc/SqlServerChatMemoryDialect.java +++ b/memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository/jdbc/SqlServerChatMemoryRepositoryDialect.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.chat.memory.jdbc; +package org.springframework.ai.chat.memory.repository.jdbc; /** * Dialect for SQL Server. @@ -22,7 +22,7 @@ package org.springframework.ai.chat.memory.jdbc; * @author Mark Pollack * @since 1.0.0 */ -public class SqlServerChatMemoryDialect implements JdbcChatMemoryDialect { +public class SqlServerChatMemoryRepositoryDialect implements JdbcChatMemoryRepositoryDialect { @Override public String getSelectMessagesSql() { diff --git a/memory/spring-ai-model-chat-memory-jdbc/src/main/java/org/springframework/ai/chat/memory/jdbc/aot/hint/JdbcChatMemoryRepositoryRuntimeHints.java b/memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository/jdbc/aot/hint/JdbcChatMemoryRepositoryRuntimeHints.java similarity index 92% rename from memory/spring-ai-model-chat-memory-jdbc/src/main/java/org/springframework/ai/chat/memory/jdbc/aot/hint/JdbcChatMemoryRepositoryRuntimeHints.java rename to memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository/jdbc/aot/hint/JdbcChatMemoryRepositoryRuntimeHints.java index 3ce817185..1aaa35bfd 100644 --- a/memory/spring-ai-model-chat-memory-jdbc/src/main/java/org/springframework/ai/chat/memory/jdbc/aot/hint/JdbcChatMemoryRepositoryRuntimeHints.java +++ b/memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository/jdbc/aot/hint/JdbcChatMemoryRepositoryRuntimeHints.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.chat.memory.jdbc.aot.hint; +package org.springframework.ai.chat.memory.repository.jdbc.aot.hint; import javax.sql.DataSource; @@ -34,7 +34,7 @@ class JdbcChatMemoryRepositoryRuntimeHints implements RuntimeHintsRegistrar { hints.reflection() .registerType(DataSource.class, hint -> hint.withMembers(MemberCategory.INVOKE_DECLARED_METHODS)); - hints.resources().registerPattern("org/springframework/ai/chat/memory/jdbc/schema-*.sql"); + hints.resources().registerPattern("org/springframework/ai/chat/memory/repository/jdbc/schema-*.sql"); } } diff --git a/memory/spring-ai-model-chat-memory-jdbc/src/main/java/org/springframework/ai/chat/memory/jdbc/package-info.java b/memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository/jdbc/package-info.java similarity index 92% rename from memory/spring-ai-model-chat-memory-jdbc/src/main/java/org/springframework/ai/chat/memory/jdbc/package-info.java rename to memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository/jdbc/package-info.java index a26f200de..17be305ed 100644 --- a/memory/spring-ai-model-chat-memory-jdbc/src/main/java/org/springframework/ai/chat/memory/jdbc/package-info.java +++ b/memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/java/org/springframework/ai/chat/memory/repository/jdbc/package-info.java @@ -16,7 +16,7 @@ @NonNullApi @NonNullFields -package org.springframework.ai.chat.memory.jdbc; +package org.springframework.ai.chat.memory.repository.jdbc; import org.springframework.lang.NonNullApi; import org.springframework.lang.NonNullFields; diff --git a/memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/resources/META-INF/spring/aot.factories b/memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/resources/META-INF/spring/aot.factories new file mode 100644 index 000000000..36fa0475c --- /dev/null +++ b/memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/resources/META-INF/spring/aot.factories @@ -0,0 +1,2 @@ +org.springframework.aot.hint.RuntimeHintsRegistrar=\ +org.springframework.ai.chat.memory.repository.jdbc.aot.hint.JdbcChatMemoryRepositoryRuntimeHints diff --git a/memory/spring-ai-model-chat-memory-jdbc/src/main/resources/org/springframework/ai/chat/memory/jdbc/schema-hsqldb.sql b/memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/resources/org/springframework/ai/chat/memory/repository/jdbc/schema-hsqldb.sql similarity index 100% rename from memory/spring-ai-model-chat-memory-jdbc/src/main/resources/org/springframework/ai/chat/memory/jdbc/schema-hsqldb.sql rename to memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/resources/org/springframework/ai/chat/memory/repository/jdbc/schema-hsqldb.sql diff --git a/memory/spring-ai-model-chat-memory-jdbc/src/main/resources/org/springframework/ai/chat/memory/jdbc/schema-mariadb.sql b/memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/resources/org/springframework/ai/chat/memory/repository/jdbc/schema-mariadb.sql similarity index 100% rename from memory/spring-ai-model-chat-memory-jdbc/src/main/resources/org/springframework/ai/chat/memory/jdbc/schema-mariadb.sql rename to memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/resources/org/springframework/ai/chat/memory/repository/jdbc/schema-mariadb.sql diff --git a/memory/spring-ai-model-chat-memory-jdbc/src/main/resources/org/springframework/ai/chat/memory/jdbc/schema-postgresql.sql b/memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/resources/org/springframework/ai/chat/memory/repository/jdbc/schema-postgresql.sql similarity index 100% rename from memory/spring-ai-model-chat-memory-jdbc/src/main/resources/org/springframework/ai/chat/memory/jdbc/schema-postgresql.sql rename to memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/resources/org/springframework/ai/chat/memory/repository/jdbc/schema-postgresql.sql diff --git a/memory/spring-ai-model-chat-memory-jdbc/src/main/resources/org/springframework/ai/chat/memory/jdbc/schema-sqlserver.sql b/memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/resources/org/springframework/ai/chat/memory/repository/jdbc/schema-sqlserver.sql similarity index 100% rename from memory/spring-ai-model-chat-memory-jdbc/src/main/resources/org/springframework/ai/chat/memory/jdbc/schema-sqlserver.sql rename to memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/main/resources/org/springframework/ai/chat/memory/repository/jdbc/schema-sqlserver.sql diff --git a/memory/spring-ai-model-chat-memory-jdbc/src/test/java/org/springframework/ai/chat/memory/jdbc/JdbcChatMemoryRepositoryPostgresqlIT.java b/memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/chat/memory/repository/jdbc/JdbcChatMemoryRepositoryPostgresqlIT.java similarity index 92% rename from memory/spring-ai-model-chat-memory-jdbc/src/test/java/org/springframework/ai/chat/memory/jdbc/JdbcChatMemoryRepositoryPostgresqlIT.java rename to memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/chat/memory/repository/jdbc/JdbcChatMemoryRepositoryPostgresqlIT.java index 5e5abc6ac..6e8b0a84c 100644 --- a/memory/spring-ai-model-chat-memory-jdbc/src/test/java/org/springframework/ai/chat/memory/jdbc/JdbcChatMemoryRepositoryPostgresqlIT.java +++ b/memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/chat/memory/repository/jdbc/JdbcChatMemoryRepositoryPostgresqlIT.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.chat.memory.jdbc; +package org.springframework.ai.chat.memory.repository.jdbc; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; @@ -40,6 +40,8 @@ import java.sql.Timestamp; import java.util.List; import java.util.UUID; +import javax.sql.DataSource; + import static org.assertj.core.api.Assertions.assertThat; /** @@ -50,7 +52,7 @@ import static org.assertj.core.api.Assertions.assertThat; */ @SpringBootTest(classes = JdbcChatMemoryRepositoryPostgresqlIT.TestConfiguration.class) @TestPropertySource(properties = "spring.datasource.url=jdbc:tc:postgresql:17:///") -@Sql(scripts = "classpath:org/springframework/ai/chat/memory/jdbc/schema-postgresql.sql") +@Sql(scripts = "classpath:org/springframework/ai/chat/memory/repository/jdbc/schema-postgresql.sql") class JdbcChatMemoryRepositoryPostgresqlIT { @Autowired @@ -77,7 +79,7 @@ class JdbcChatMemoryRepositoryPostgresqlIT { chatMemoryRepository.saveAll(conversationId, List.of(message)); - var query = "SELECT conversation_id, content, type, \"timestamp\" FROM ai_chat_memory WHERE conversation_id = ?"; + var query = "SELECT conversation_id, content, type, \"timestamp\" FROM SPRING_AI_CHAT_MEMORY WHERE conversation_id = ?"; var result = jdbcTemplate.queryForMap(query, conversationId); assertThat(result.size()).isEqualTo(4); @@ -96,7 +98,7 @@ class JdbcChatMemoryRepositoryPostgresqlIT { chatMemoryRepository.saveAll(conversationId, messages); - var query = "SELECT conversation_id, content, type, \"timestamp\" FROM ai_chat_memory WHERE conversation_id = ?"; + var query = "SELECT conversation_id, content, type, \"timestamp\" FROM SPRING_AI_CHAT_MEMORY WHERE conversation_id = ?"; var results = jdbcTemplate.queryForList(query, conversationId); assertThat(results.size()).isEqualTo(messages.size()); @@ -148,7 +150,7 @@ class JdbcChatMemoryRepositoryPostgresqlIT { chatMemoryRepository.deleteByConversationId(conversationId); - var count = jdbcTemplate.queryForObject("SELECT COUNT(*) FROM ai_chat_memory WHERE conversation_id = ?", + var count = jdbcTemplate.queryForObject("SELECT COUNT(*) FROM SPRING_AI_CHAT_MEMORY WHERE conversation_id = ?", Integer.class, conversationId); assertThat(count).isZero(); @@ -159,8 +161,11 @@ class JdbcChatMemoryRepositoryPostgresqlIT { static class TestConfiguration { @Bean - ChatMemoryRepository chatMemoryRepository(JdbcTemplate jdbcTemplate) { - return JdbcChatMemoryRepository.builder().jdbcTemplate(jdbcTemplate).build(); + ChatMemoryRepository chatMemoryRepository(JdbcTemplate jdbcTemplate, DataSource dataSource) { + return JdbcChatMemoryRepository.builder() + .jdbcTemplate(jdbcTemplate) + .dialect(JdbcChatMemoryRepositoryDialect.from(dataSource)) + .build(); } } diff --git a/memory/spring-ai-model-chat-memory-jdbc/src/test/java/org/springframework/ai/chat/memory/jdbc/aot/hint/JdbcChatMemoryRepositoryRuntimeHintsTest.java b/memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/chat/memory/repository/jdbc/aot/hint/JdbcChatMemoryRepositoryRuntimeHintsTest.java similarity index 93% rename from memory/spring-ai-model-chat-memory-jdbc/src/test/java/org/springframework/ai/chat/memory/jdbc/aot/hint/JdbcChatMemoryRepositoryRuntimeHintsTest.java rename to memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/chat/memory/repository/jdbc/aot/hint/JdbcChatMemoryRepositoryRuntimeHintsTest.java index d507c712e..fe9e5e9c1 100644 --- a/memory/spring-ai-model-chat-memory-jdbc/src/test/java/org/springframework/ai/chat/memory/jdbc/aot/hint/JdbcChatMemoryRepositoryRuntimeHintsTest.java +++ b/memory/repository/spring-ai-model-chat-memory-repository-jdbc/src/test/java/org/springframework/ai/chat/memory/repository/jdbc/aot/hint/JdbcChatMemoryRepositoryRuntimeHintsTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.chat.memory.jdbc.aot.hint; +package org.springframework.ai.chat.memory.repository.jdbc.aot.hint; import java.io.IOException; import java.util.Arrays; @@ -60,7 +60,7 @@ class JdbcChatMemoryRepositoryRuntimeHintsTest { this.jdbcChatMemoryRepositoryRuntimeHints.registerHints(this.hints, getClass().getClassLoader()); var predicate = RuntimeHintsPredicates.resource() - .forResource("org/springframework/ai/chat/memory/jdbc/" + schemaFileName); + .forResource("org/springframework/ai/chat/memory/repository/jdbc/" + schemaFileName); assertThat(predicate).accepts(this.hints); } @@ -74,7 +74,7 @@ class JdbcChatMemoryRepositoryRuntimeHintsTest { private static Stream getSchemaFileNames() throws IOException { var resources = new PathMatchingResourcePatternResolver() - .getResources("classpath*:org/springframework/ai/chat/memory/jdbc/schema-*.sql"); + .getResources("classpath*:org/springframework/ai/chat/memory/repository/jdbc/schema-*.sql"); return Arrays.stream(resources).map(Resource::getFilename); } diff --git a/memory/spring-ai-model-chat-memory-neo4j/pom.xml b/memory/repository/spring-ai-model-chat-memory-repository-neo4j/pom.xml similarity index 92% rename from memory/spring-ai-model-chat-memory-neo4j/pom.xml rename to memory/repository/spring-ai-model-chat-memory-repository-neo4j/pom.xml index 47e370364..f8fad8723 100644 --- a/memory/spring-ai-model-chat-memory-neo4j/pom.xml +++ b/memory/repository/spring-ai-model-chat-memory-repository-neo4j/pom.xml @@ -23,12 +23,12 @@ org.springframework.ai spring-ai-parent 1.0.0-SNAPSHOT - ../../pom.xml + ../../../pom.xml - spring-ai-model-chat-memory-neo4j - Spring AI Neo4j Chat Memory - Spring AI Neo4j Chat Memory implementation + spring-ai-model-chat-memory-repository-neo4j + Spring AI Neo4j Chat Memory Repository + Spring AI Neo4j Chat Memory Repository implementation https://github.com/spring-projects/spring-ai diff --git a/memory/spring-ai-model-chat-memory-neo4j/src/main/java/org/springframework/ai/chat/memory/neo4j/MediaAttributes.java b/memory/repository/spring-ai-model-chat-memory-repository-neo4j/src/main/java/org/springframework/ai/chat/memory/repository/neo4j/MediaAttributes.java similarity index 93% rename from memory/spring-ai-model-chat-memory-neo4j/src/main/java/org/springframework/ai/chat/memory/neo4j/MediaAttributes.java rename to memory/repository/spring-ai-model-chat-memory-repository-neo4j/src/main/java/org/springframework/ai/chat/memory/repository/neo4j/MediaAttributes.java index 126e8247c..03e84022e 100644 --- a/memory/spring-ai-model-chat-memory-neo4j/src/main/java/org/springframework/ai/chat/memory/neo4j/MediaAttributes.java +++ b/memory/repository/spring-ai-model-chat-memory-repository-neo4j/src/main/java/org/springframework/ai/chat/memory/repository/neo4j/MediaAttributes.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.chat.memory.neo4j; +package org.springframework.ai.chat.memory.repository.neo4j; /** * @author Enrico Rampazzo diff --git a/memory/spring-ai-model-chat-memory-neo4j/src/main/java/org/springframework/ai/chat/memory/neo4j/MessageAttributes.java b/memory/repository/spring-ai-model-chat-memory-repository-neo4j/src/main/java/org/springframework/ai/chat/memory/repository/neo4j/MessageAttributes.java similarity index 93% rename from memory/spring-ai-model-chat-memory-neo4j/src/main/java/org/springframework/ai/chat/memory/neo4j/MessageAttributes.java rename to memory/repository/spring-ai-model-chat-memory-repository-neo4j/src/main/java/org/springframework/ai/chat/memory/repository/neo4j/MessageAttributes.java index a20b6c199..f34d5c808 100644 --- a/memory/spring-ai-model-chat-memory-neo4j/src/main/java/org/springframework/ai/chat/memory/neo4j/MessageAttributes.java +++ b/memory/repository/spring-ai-model-chat-memory-repository-neo4j/src/main/java/org/springframework/ai/chat/memory/repository/neo4j/MessageAttributes.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.chat.memory.neo4j; +package org.springframework.ai.chat.memory.repository.neo4j; /** * @author Enrico Rampazzo diff --git a/memory/spring-ai-model-chat-memory-neo4j/src/main/java/org/springframework/ai/chat/memory/neo4j/Neo4jChatMemoryRepository.java b/memory/repository/spring-ai-model-chat-memory-repository-neo4j/src/main/java/org/springframework/ai/chat/memory/repository/neo4j/Neo4jChatMemoryRepository.java similarity index 99% rename from memory/spring-ai-model-chat-memory-neo4j/src/main/java/org/springframework/ai/chat/memory/neo4j/Neo4jChatMemoryRepository.java rename to memory/repository/spring-ai-model-chat-memory-repository-neo4j/src/main/java/org/springframework/ai/chat/memory/repository/neo4j/Neo4jChatMemoryRepository.java index 6260a42a3..e922dd121 100644 --- a/memory/spring-ai-model-chat-memory-neo4j/src/main/java/org/springframework/ai/chat/memory/neo4j/Neo4jChatMemoryRepository.java +++ b/memory/repository/spring-ai-model-chat-memory-repository-neo4j/src/main/java/org/springframework/ai/chat/memory/repository/neo4j/Neo4jChatMemoryRepository.java @@ -1,4 +1,4 @@ -package org.springframework.ai.chat.memory.neo4j; +package org.springframework.ai.chat.memory.repository.neo4j; import org.neo4j.driver.Session; import org.neo4j.driver.Transaction; diff --git a/memory/spring-ai-model-chat-memory-neo4j/src/main/java/org/springframework/ai/chat/memory/neo4j/Neo4jChatMemoryRepositoryConfig.java b/memory/repository/spring-ai-model-chat-memory-repository-neo4j/src/main/java/org/springframework/ai/chat/memory/repository/neo4j/Neo4jChatMemoryRepositoryConfig.java similarity index 98% rename from memory/spring-ai-model-chat-memory-neo4j/src/main/java/org/springframework/ai/chat/memory/neo4j/Neo4jChatMemoryRepositoryConfig.java rename to memory/repository/spring-ai-model-chat-memory-repository-neo4j/src/main/java/org/springframework/ai/chat/memory/repository/neo4j/Neo4jChatMemoryRepositoryConfig.java index 273af4a72..98be326c5 100644 --- a/memory/spring-ai-model-chat-memory-neo4j/src/main/java/org/springframework/ai/chat/memory/neo4j/Neo4jChatMemoryRepositoryConfig.java +++ b/memory/repository/spring-ai-model-chat-memory-repository-neo4j/src/main/java/org/springframework/ai/chat/memory/repository/neo4j/Neo4jChatMemoryRepositoryConfig.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.chat.memory.neo4j; +package org.springframework.ai.chat.memory.repository.neo4j; import org.neo4j.driver.Driver; import org.slf4j.Logger; diff --git a/memory/spring-ai-model-chat-memory-neo4j/src/main/java/org/springframework/ai/chat/memory/neo4j/ToolCallAttributes.java b/memory/repository/spring-ai-model-chat-memory-repository-neo4j/src/main/java/org/springframework/ai/chat/memory/repository/neo4j/ToolCallAttributes.java similarity index 93% rename from memory/spring-ai-model-chat-memory-neo4j/src/main/java/org/springframework/ai/chat/memory/neo4j/ToolCallAttributes.java rename to memory/repository/spring-ai-model-chat-memory-repository-neo4j/src/main/java/org/springframework/ai/chat/memory/repository/neo4j/ToolCallAttributes.java index f71cf8f76..3407d04ac 100644 --- a/memory/spring-ai-model-chat-memory-neo4j/src/main/java/org/springframework/ai/chat/memory/neo4j/ToolCallAttributes.java +++ b/memory/repository/spring-ai-model-chat-memory-repository-neo4j/src/main/java/org/springframework/ai/chat/memory/repository/neo4j/ToolCallAttributes.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.chat.memory.neo4j; +package org.springframework.ai.chat.memory.repository.neo4j; /* * @author Enrico Rampazzo diff --git a/memory/spring-ai-model-chat-memory-neo4j/src/main/java/org/springframework/ai/chat/memory/neo4j/ToolResponseAttributes.java b/memory/repository/spring-ai-model-chat-memory-repository-neo4j/src/main/java/org/springframework/ai/chat/memory/repository/neo4j/ToolResponseAttributes.java similarity index 93% rename from memory/spring-ai-model-chat-memory-neo4j/src/main/java/org/springframework/ai/chat/memory/neo4j/ToolResponseAttributes.java rename to memory/repository/spring-ai-model-chat-memory-repository-neo4j/src/main/java/org/springframework/ai/chat/memory/repository/neo4j/ToolResponseAttributes.java index b725aa795..df9192e56 100644 --- a/memory/spring-ai-model-chat-memory-neo4j/src/main/java/org/springframework/ai/chat/memory/neo4j/ToolResponseAttributes.java +++ b/memory/repository/spring-ai-model-chat-memory-repository-neo4j/src/main/java/org/springframework/ai/chat/memory/repository/neo4j/ToolResponseAttributes.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.chat.memory.neo4j; +package org.springframework.ai.chat.memory.repository.neo4j; /* * @author Enrico Rampazzo diff --git a/memory/spring-ai-model-chat-memory-neo4j/src/test/java/org/springframework/ai/chat/memory/neo4j/Neo4JChatMemoryRepositoryConfigIT.java b/memory/repository/spring-ai-model-chat-memory-repository-neo4j/src/test/java/org/springframework/ai/chat/memory/repository/neo4j/Neo4JChatMemoryRepositoryConfigIT.java similarity index 97% rename from memory/spring-ai-model-chat-memory-neo4j/src/test/java/org/springframework/ai/chat/memory/neo4j/Neo4JChatMemoryRepositoryConfigIT.java rename to memory/repository/spring-ai-model-chat-memory-repository-neo4j/src/test/java/org/springframework/ai/chat/memory/repository/neo4j/Neo4JChatMemoryRepositoryConfigIT.java index 3a50d07a2..6a8f01b9f 100644 --- a/memory/spring-ai-model-chat-memory-neo4j/src/test/java/org/springframework/ai/chat/memory/neo4j/Neo4JChatMemoryRepositoryConfigIT.java +++ b/memory/repository/spring-ai-model-chat-memory-repository-neo4j/src/test/java/org/springframework/ai/chat/memory/repository/neo4j/Neo4JChatMemoryRepositoryConfigIT.java @@ -1,4 +1,4 @@ -package org.springframework.ai.chat.memory.neo4j; +package org.springframework.ai.chat.memory.repository.neo4j; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.BeforeAll; diff --git a/memory/spring-ai-model-chat-memory-neo4j/src/test/java/org/springframework/ai/chat/memory/neo4j/Neo4jChatMemoryRepositoryIT.java b/memory/repository/spring-ai-model-chat-memory-repository-neo4j/src/test/java/org/springframework/ai/chat/memory/repository/neo4j/Neo4jChatMemoryRepositoryIT.java similarity index 99% rename from memory/spring-ai-model-chat-memory-neo4j/src/test/java/org/springframework/ai/chat/memory/neo4j/Neo4jChatMemoryRepositoryIT.java rename to memory/repository/spring-ai-model-chat-memory-repository-neo4j/src/test/java/org/springframework/ai/chat/memory/repository/neo4j/Neo4jChatMemoryRepositoryIT.java index 1de9ca070..a9f0e28b2 100644 --- a/memory/spring-ai-model-chat-memory-neo4j/src/test/java/org/springframework/ai/chat/memory/neo4j/Neo4jChatMemoryRepositoryIT.java +++ b/memory/repository/spring-ai-model-chat-memory-repository-neo4j/src/test/java/org/springframework/ai/chat/memory/repository/neo4j/Neo4jChatMemoryRepositoryIT.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.ai.chat.memory.neo4j; +package org.springframework.ai.chat.memory.repository.neo4j; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; diff --git a/memory/spring-ai-model-chat-memory-jdbc/src/main/resources/META-INF/spring/aot.factories b/memory/spring-ai-model-chat-memory-jdbc/src/main/resources/META-INF/spring/aot.factories deleted file mode 100644 index 7169645c1..000000000 --- a/memory/spring-ai-model-chat-memory-jdbc/src/main/resources/META-INF/spring/aot.factories +++ /dev/null @@ -1,2 +0,0 @@ -org.springframework.aot.hint.RuntimeHintsRegistrar=\ -org.springframework.ai.chat.memory.jdbc.aot.hint.JdbcChatMemoryRepositoryRuntimeHints diff --git a/pom.xml b/pom.xml index 41bde0630..599bf8b42 100644 --- a/pom.xml +++ b/pom.xml @@ -41,9 +41,9 @@ spring-ai-rag advisors/spring-ai-advisors-vector-store - memory/spring-ai-model-chat-memory-cassandra - memory/spring-ai-model-chat-memory-jdbc - memory/spring-ai-model-chat-memory-neo4j + memory/repository/spring-ai-model-chat-memory-repository-cassandra + memory/repository/spring-ai-model-chat-memory-repository-jdbc + memory/repository/spring-ai-model-chat-memory-repository-neo4j @@ -169,7 +169,7 @@ models/spring-ai-ollama models/spring-ai-openai models/spring-ai-postgresml - models/spring-ai-stability-ai + models/spring-ai-stability-ai models/spring-ai-transformers models/spring-ai-vertex-ai-embedding models/spring-ai-vertex-ai-gemini diff --git a/spring-ai-bom/pom.xml b/spring-ai-bom/pom.xml index 66875160c..38f3c6b86 100644 --- a/spring-ai-bom/pom.xml +++ b/spring-ai-bom/pom.xml @@ -206,19 +206,19 @@ org.springframework.ai - spring-ai-model-chat-memory-cassandra + spring-ai-model-chat-memory-repository-cassandra ${project.version} org.springframework.ai - spring-ai-model-chat-memory-jdbc + spring-ai-model-chat-memory-repository-jdbc ${project.version} org.springframework.ai - spring-ai-model-chat-memory-neo4j + spring-ai-model-chat-memory-repository-neo4j ${project.version} diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat-memory.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat-memory.adoc index 893f350cf..959db0f28 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat-memory.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/api/chat-memory.adoc @@ -105,7 +105,7 @@ ChatMemory chatMemory = MessageWindowChatMemory.builder() .build(); ---- -If you'd rather create the `JdbcChatMemoryRepository` manually, you can do so by providing a `JdbcTemplate` instance and optionally a custom `JdbcChatMemoryDialect`: +If you'd rather create the `JdbcChatMemoryRepository` manually, you can do so by providing a `JdbcTemplate` instance and optionally a custom `JdbcChatMemoryRepositoryDialect`: [source,java] ---- @@ -129,7 +129,7 @@ Spring AI supports multiple relational databases via a dialect abstraction. The - SQL Server - HSQLDB -The correct dialect is auto-detected from the JDBC URL. You can extend support for other databases by implementing the `JdbcChatMemoryDialect` interface. +The correct dialect is auto-detected from the JDBC URL. You can extend support for other databases by implementing the `JdbcChatMemoryRepositoryDialect` interface. ==== Configuration Properties @@ -137,7 +137,7 @@ The correct dialect is auto-detected from the JDBC URL. You can extend support f |=== |Property | Description | Default Value | `spring.ai.chat.memory.repository.jdbc.initialize-schema` | Controls when to initialize the schema. Values: `embedded` (default), `always`, `never`. | `embedded` -| `spring.ai.chat.memory.repository.jdbc.schema` | Location of the schema script to use for initialization. Supports `classpath:` URLs and platform placeholders. | `classpath:org/springframework/ai/chat/memory/jdbc/schema-@@platform@@.sql` +| `spring.ai.chat.memory.repository.jdbc.schema` | Location of the schema script to use for initialization. Supports `classpath:` URLs and platform placeholders. | `classpath:org/springframework/ai/chat/memory/repository/jdbc/schema-@@platform@@.sql` |=== ==== Schema Initialization @@ -162,7 +162,7 @@ spring.ai.chat.memory.repository.jdbc.schema=classpath:/custom/path/schema-mysql ==== Extending Dialects -To add support for a new database, implement the `JdbcChatMemoryDialect` interface and provide SQL for selecting, inserting, and deleting messages. You can then pass your custom dialect to the repository builder. +To add support for a new database, implement the `JdbcChatMemoryRepositoryDialect` interface and provide SQL for selecting, inserting, and deleting messages. You can then pass your custom dialect to the repository builder. [source,java] ---- diff --git a/spring-ai-docs/src/main/antora/modules/ROOT/pages/upgrade-notes.adoc b/spring-ai-docs/src/main/antora/modules/ROOT/pages/upgrade-notes.adoc index b275bd51f..ddb45c9d7 100644 --- a/spring-ai-docs/src/main/antora/modules/ROOT/pages/upgrade-notes.adoc +++ b/spring-ai-docs/src/main/antora/modules/ROOT/pages/upgrade-notes.adoc @@ -60,9 +60,19 @@ Hopefully Watson will reappear in a future version of Spring AI In 1.0.0-RC1, the chat memory modules, starters, and autoconfiguration classes for Cassandra, JDBC, and Neo4j have been renamed to include the `repository` suffix for clarity. This impacts artifact IDs, Java package names, and class names. For example: - Artifact IDs: +- `spring-ai-model-chat-memory-jdbc` -> `spring-ai-model-chat-memory-repository-jdbc` - `spring-ai-autoconfigure-model-chat-memory-jdbc` → `spring-ai-autoconfigure-model-chat-memory-repository-jdbc` - `spring-ai-starter-model-chat-memory-jdbc` → `spring-ai-starter-model-chat-memory-repository-jdbc` -- Java packages now use `.repository.` (e.g., `org.springframework.ai.model.chat.memory.repository.jdbc.autoconfigure`). + +- `spring-ai-model-chat-memory-cassandra` -> `spring-ai-model-chat-memory-repository-cassandra` +- `spring-ai-autoconfigure-model-chat-memory-cassandra` → `spring-ai-autoconfigure-model-chat-memory-repository-cassandra` +- `spring-ai-starter-model-chat-memory-cassandra` → `spring-ai-starter-model-chat-memory-repository-cassandra` + +- `spring-ai-model-chat-memory-neo4j` -> `spring-ai-model-chat-memory-repository-neo4j` +- `spring-ai-autoconfigure-model-chat-memory-neo4j` → `spring-ai-autoconfigure-model-chat-memory-repository-neo4j` +- `spring-ai-starter-model-chat-memory-neo4j` → `spring-ai-starter-model-chat-memory-repository-neo4j` + +- Java packages now use `.repository.` (e.g., `org.springframework.ai.chat.memory.repository.jdbc.JdbcChatMemoryRepository` and `org.springframework.ai.model.chat.memory.repository.jdbc.autoconfigure.JdbcChatMemoryRepositoryAutoConfiguration`). - Main autoconfiguration classes are now named `JdbcChatMemoryRepositoryAutoConfiguration`, `CassandraChatMemoryRepositoryAutoConfiguration`, etc. **Migration Required:** diff --git a/spring-ai-spring-boot-starters/spring-ai-starter-model-chat-memory-repository-cassandra/pom.xml b/spring-ai-spring-boot-starters/spring-ai-starter-model-chat-memory-repository-cassandra/pom.xml index 75588a699..381083d99 100644 --- a/spring-ai-spring-boot-starters/spring-ai-starter-model-chat-memory-repository-cassandra/pom.xml +++ b/spring-ai-spring-boot-starters/spring-ai-starter-model-chat-memory-repository-cassandra/pom.xml @@ -56,7 +56,7 @@ org.springframework.ai - spring-ai-model-chat-memory-cassandra + spring-ai-model-chat-memory-repository-cassandra ${project.parent.version} diff --git a/spring-ai-spring-boot-starters/spring-ai-starter-model-chat-memory-repository-jdbc/pom.xml b/spring-ai-spring-boot-starters/spring-ai-starter-model-chat-memory-repository-jdbc/pom.xml index d4564f918..040e1cfa8 100644 --- a/spring-ai-spring-boot-starters/spring-ai-starter-model-chat-memory-repository-jdbc/pom.xml +++ b/spring-ai-spring-boot-starters/spring-ai-starter-model-chat-memory-repository-jdbc/pom.xml @@ -56,7 +56,7 @@ org.springframework.ai - spring-ai-model-chat-memory-jdbc + spring-ai-model-chat-memory-repository-jdbc ${project.parent.version} diff --git a/spring-ai-spring-boot-starters/spring-ai-starter-model-chat-memory-repository-neo4j/pom.xml b/spring-ai-spring-boot-starters/spring-ai-starter-model-chat-memory-repository-neo4j/pom.xml index 172792dfa..112f51f8f 100644 --- a/spring-ai-spring-boot-starters/spring-ai-starter-model-chat-memory-repository-neo4j/pom.xml +++ b/spring-ai-spring-boot-starters/spring-ai-starter-model-chat-memory-repository-neo4j/pom.xml @@ -56,7 +56,7 @@ org.springframework.ai - spring-ai-model-chat-memory-neo4j + spring-ai-model-chat-memory-repository-neo4j ${project.parent.version}