Skip to content

Commit e483254

Browse files
committed
Implement review fixes
* Rename packages and classes to Mongo prefix from MongoDb. * Drop already provided dependency on client
1 parent bec831e commit e483254

File tree

12 files changed

+71
-76
lines changed

12 files changed

+71
-76
lines changed

auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-mongodb/pom.xml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,11 +53,6 @@
5353
<optional>true</optional>
5454
</dependency>
5555

56-
<dependency>
57-
<groupId>org.mongodb</groupId>
58-
<artifactId>mongodb-driver-sync</artifactId>
59-
</dependency>
60-
6156
<!-- Test dependencies -->
6257
<dependency>
6358
<groupId>org.springframework.ai</groupId>
Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.ai.model.chat.memory.mongodb.autoconfigure;
17+
package org.springframework.ai.model.chat.memory.mongo.autoconfigure;
1818

19-
import org.springframework.ai.chat.memory.mongodb.MongoDbChatMemory;
20-
import org.springframework.ai.chat.memory.mongodb.MongoDbChatMemoryConfig;
19+
import org.springframework.ai.chat.memory.mongo.MongoChatMemory;
20+
import org.springframework.ai.chat.memory.mongo.MongoChatMemoryConfig;
2121
import org.springframework.boot.autoconfigure.AutoConfiguration;
2222
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
2323
import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
@@ -26,20 +26,20 @@
2626
import org.springframework.data.mongodb.core.MongoTemplate;
2727

2828
/**
29-
* Spring Boot auto-configuration for {@link MongoDbChatMemory}.
29+
* Spring Boot auto-configuration for {@link MongoChatMemory}.
3030
*
3131
* @author Łukasz Jernaś
3232
* @since 1.0.0
3333
*/
3434
@AutoConfiguration(after = MongoAutoConfiguration.class)
35-
@EnableConfigurationProperties(MongoDbChatMemoryProperties.class)
36-
public class MongoDbChatMemoryAutoConfiguration {
35+
@EnableConfigurationProperties(MongoChatMemoryProperties.class)
36+
public class MongoChatMemoryAutoConfiguration {
3737

3838
@Bean
3939
@ConditionalOnMissingBean
40-
public MongoDbChatMemory chatMemory(MongoTemplate mongoTemplate) {
41-
var config = MongoDbChatMemoryConfig.builder().withTemplate(mongoTemplate).build();
42-
return new MongoDbChatMemory(config);
40+
public MongoChatMemory chatMemory(MongoTemplate mongoTemplate) {
41+
var config = MongoChatMemoryConfig.builder().withTemplate(mongoTemplate).build();
42+
return new MongoChatMemory(config);
4343
}
4444

4545
}
Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.ai.model.chat.memory.mongodb.autoconfigure;
17+
package org.springframework.ai.model.chat.memory.mongo.autoconfigure;
1818

1919
import org.slf4j.Logger;
2020
import org.slf4j.LoggerFactory;
21-
import org.springframework.ai.chat.memory.mongodb.Conversation;
21+
import org.springframework.ai.chat.memory.mongo.Conversation;
2222
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
2323
import org.springframework.context.event.ContextRefreshedEvent;
2424
import org.springframework.context.event.EventListener;
@@ -33,48 +33,48 @@
3333
* field if the TTL is set in properties.
3434
*
3535
* @author Łukasz Jernaś
36-
* @see MongoDbChatMemoryProperties
36+
* @see MongoChatMemoryProperties
3737
* @since 1.0.0
3838
*/
3939
@Component
4040
@ConditionalOnProperty(value = "spring.ai.chat.memory.mongodb.create-indices", havingValue = "true")
41-
public class MongoDbChatMemoryIndexCreator {
41+
public class MongoChatMemoryIndexCreator {
4242

43-
private static final Logger logger = LoggerFactory.getLogger(MongoDbChatMemoryIndexCreator.class);
43+
private static final Logger logger = LoggerFactory.getLogger(MongoChatMemoryIndexCreator.class);
4444

4545
private final MongoTemplate mongoTemplate;
4646

47-
private final MongoDbChatMemoryProperties mongoDbChatMemoryProperties;
47+
private final MongoChatMemoryProperties mongoChatMemoryProperties;
4848

49-
public MongoDbChatMemoryIndexCreator(MongoTemplate mongoTemplate,
50-
MongoDbChatMemoryProperties mongoDbChatMemoryProperties) {
49+
public MongoChatMemoryIndexCreator(MongoTemplate mongoTemplate,
50+
MongoChatMemoryProperties mongoChatMemoryProperties) {
5151
this.mongoTemplate = mongoTemplate;
52-
this.mongoDbChatMemoryProperties = mongoDbChatMemoryProperties;
52+
this.mongoChatMemoryProperties = mongoChatMemoryProperties;
5353
}
5454

5555
@EventListener(ContextRefreshedEvent.class)
5656
public void initIndicesAfterStartup() {
5757
logger.info("Creating MongoDB indices for ChatMemory");
5858
// Create a main index
5959
mongoTemplate.indexOps(Conversation.class)
60-
.ensureIndex(new Index().on("conversationId", Sort.Direction.ASC).on("timestamp", Sort.Direction.DESC));
60+
.ensureIndex(new Index().on("conversationId", Sort.Direction.ASC).on("timestamp", Sort.Direction.DESC));
6161

6262
createOrUpdateTtlIndex();
6363
}
6464

6565
private void createOrUpdateTtlIndex() {
66-
if (!this.mongoDbChatMemoryProperties.getTtl().isZero()) {
66+
if (!this.mongoChatMemoryProperties.getTtl().isZero()) {
6767
// Check for existing TTL index
6868
mongoTemplate.indexOps(Conversation.class).getIndexInfo().forEach(idx -> {
6969
if (idx.getExpireAfter().isPresent()
70-
&& !idx.getExpireAfter().get().equals(this.mongoDbChatMemoryProperties.getTtl())) {
70+
&& !idx.getExpireAfter().get().equals(this.mongoChatMemoryProperties.getTtl())) {
7171
logger.warn("Dropping existing TTL index, because TTL is different");
7272
mongoTemplate.indexOps(Conversation.class).dropIndex(idx.getName());
7373
}
7474
});
7575
mongoTemplate.indexOps(Conversation.class)
76-
.ensureIndex(new Index().on("timestamp", Sort.Direction.ASC)
77-
.expire(this.mongoDbChatMemoryProperties.getTtl()));
76+
.ensureIndex(new Index().on("timestamp", Sort.Direction.ASC)
77+
.expire(this.mongoChatMemoryProperties.getTtl()));
7878
}
7979
}
8080

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.ai.model.chat.memory.mongodb.autoconfigure;
17+
package org.springframework.ai.model.chat.memory.mongo.autoconfigure;
1818

1919
import org.springframework.boot.context.properties.ConfigurationProperties;
2020

@@ -24,8 +24,8 @@
2424
* @author Łukasz Jernaś
2525
* @since 1.0.0
2626
*/
27-
@ConfigurationProperties(MongoDbChatMemoryProperties.CONFIG_PREFIX)
28-
public class MongoDbChatMemoryProperties {
27+
@ConfigurationProperties(MongoChatMemoryProperties.CONFIG_PREFIX)
28+
public class MongoChatMemoryProperties {
2929

3030
public static final String CONFIG_PREFIX = "spring.ai.chat.memory.mongodb";
3131

auto-configurations/models/chat/memory/spring-ai-autoconfigure-model-chat-memory-mongodb/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,4 @@
1313
# See the License for the specific language governing permissions and
1414
# limitations under the License.
1515
#
16-
org.springframework.ai.model.chat.memory.mongodb.autoconfigure.MongoDbChatMemoryAutoConfiguration
16+
org.springframework.ai.model.chat.memory.mongo.autoconfigure.MongoChatMemoryAutoConfiguration
Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.ai.model.chat.memory.mongodb.autoconfigure;
17+
package org.springframework.ai.model.chat.memory.mongo.autoconfigure;
1818

1919
import org.junit.jupiter.api.Test;
20-
import org.springframework.ai.chat.memory.mongodb.MongoDbChatMemory;
20+
import org.springframework.ai.chat.memory.mongo.MongoChatMemory;
2121
import org.springframework.ai.chat.messages.AssistantMessage;
2222
import org.springframework.ai.chat.messages.Message;
2323
import org.springframework.ai.chat.messages.SystemMessage;
@@ -37,17 +37,17 @@
3737
import static org.assertj.core.api.Assertions.assertThat;
3838

3939
@Testcontainers
40-
class MongoDbChatMemoryAutoConfigurationIT {
40+
class MongoChatMemoryAutoConfigurationIT {
4141

4242
@Container
4343
@ServiceConnection
4444
static MongoDBContainer mongoDbContainer = new MongoDBContainer("mongo:8.0.6");
4545

4646
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()
47-
.withConfiguration(AutoConfigurations.of(MongoDbChatMemoryAutoConfiguration.class, MongoAutoConfiguration.class,
48-
MongoDataAutoConfiguration.class, MongoDbChatMemoryIndexCreator.class))
49-
.withPropertyValues(String.format("spring.data.mongodb.uri=%s/ai_test", mongoDbContainer.getConnectionString()),
50-
"spring.ai.chat.memory.mongodb.create-indexes=true", "spring.ai.chat.memory.mongodb.ttl=PT1M");
47+
.withConfiguration(AutoConfigurations.of(MongoDbChatMemoryAutoConfiguration.class, MongoAutoConfiguration.class,
48+
MongoDataAutoConfiguration.class, MongoChatMemoryIndexCreator.class))
49+
.withPropertyValues(String.format("spring.data.mongodb.uri=%s/ai_test", mongoDbContainer.getConnectionString()),
50+
"spring.ai.chat.memory.mongodb.create-indexes=true", "spring.ai.chat.memory.mongodb.ttl=PT1M");
5151

5252
@Test
5353
void mongodbChatMemoryBean_exists() {
@@ -57,7 +57,7 @@ void mongodbChatMemoryBean_exists() {
5757
@Test
5858
void allMethods_shouldExecute() {
5959
this.contextRunner.run(context -> {
60-
var chatMemory = context.getBean(MongoDbChatMemory.class);
60+
var chatMemory = context.getBean(MongoChatMemory.class);
6161
var conversationId = UUID.randomUUID().toString();
6262
var systemMessage = new SystemMessage("Some system message");
6363

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,26 +14,26 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.ai.model.chat.memory.mongodb.autoconfigure;
17+
package org.springframework.ai.model.chat.memory.mongo.autoconfigure;
1818

1919
import org.junit.jupiter.api.Test;
2020

2121
import java.time.Duration;
2222

2323
import static org.assertj.core.api.Assertions.assertThat;
2424

25-
public class MongoDbChatMemoryPropertiesTests {
25+
public class MongoChatMemoryPropertiesTests {
2626

2727
@Test
2828
void defaultValues_set() {
29-
var properties = new MongoDbChatMemoryProperties();
29+
var properties = new MongoChatMemoryProperties();
3030
assertThat(properties.getTtl()).isEqualTo(Duration.ZERO);
3131
assertThat(properties.isCreateIndices()).isFalse();
3232
}
3333

3434
@Test
3535
void overrideValues() {
36-
var properties = new MongoDbChatMemoryProperties();
36+
var properties = new MongoChatMemoryProperties();
3737
properties.setTtl(Duration.ofMinutes(1));
3838
properties.setCreateIndices(true);
3939

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.ai.chat.memory.mongodb;
17+
package org.springframework.ai.chat.memory.mongo;
1818

1919
import org.jspecify.annotations.NullMarked;
2020
import org.springframework.data.mongodb.core.mapping.Document;
Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.ai.chat.memory.mongodb;
17+
package org.springframework.ai.chat.memory.mongo;
1818

1919
import org.jspecify.annotations.NonNull;
2020
import org.jspecify.annotations.Nullable;
@@ -43,26 +43,26 @@
4343
* @author Łukasz Jernaś
4444
* @since 1.0.0
4545
*/
46-
public class MongoDbChatMemory implements ChatMemory {
46+
public class MongoChatMemory implements ChatMemory {
4747

4848
private final MongoTemplate mongoTemplate;
4949

50-
private static final Logger logger = LoggerFactory.getLogger(MongoDbChatMemory.class);
50+
private static final Logger logger = LoggerFactory.getLogger(MongoChatMemory.class);
5151

52-
public MongoDbChatMemory(MongoDbChatMemoryConfig config) {
52+
public MongoChatMemory(MongoChatMemoryConfig config) {
5353
this.mongoTemplate = config.mongoTemplate;
5454
}
5555

56-
public static MongoDbChatMemory create(MongoDbChatMemoryConfig config) {
57-
return new MongoDbChatMemory(config);
56+
public static MongoChatMemory create(MongoChatMemoryConfig config) {
57+
return new MongoChatMemory(config);
5858
}
5959

6060
@Override
6161
public List<Message> get(String conversationId, int lastN) {
6262
var messages = mongoTemplate.query(Conversation.class)
63-
.matching(query(where("conversationId").is(conversationId)).with(Sort.by("timestamp").descending())
64-
.limit(lastN));
65-
return messages.stream().map(MongoDbChatMemory::mapMessage).collect(Collectors.toList());
63+
.matching(query(where("conversationId").is(conversationId)).with(Sort.by("timestamp").descending())
64+
.limit(lastN));
65+
return messages.stream().map(MongoChatMemory::mapMessage).collect(Collectors.toList());
6666
}
6767

6868
@Override
@@ -73,9 +73,9 @@ public void clear(String conversationId) {
7373
@Override
7474
public void add(@NonNull String conversationId, @NonNull List<Message> messages) {
7575
var conversations = messages.stream()
76-
.map(message -> new Conversation(conversationId,
77-
new Conversation.Message(message.getText(), message.getMessageType().name()), Instant.now()))
78-
.toList();
76+
.map(message -> new Conversation(conversationId,
77+
new Conversation.Message(message.getText(), message.getMessageType().name()), Instant.now()))
78+
.toList();
7979
mongoTemplate.insert(conversations, Conversation.class);
8080
}
8181

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,23 +14,23 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.ai.chat.memory.mongodb;
17+
package org.springframework.ai.chat.memory.mongo;
1818

1919
import org.jspecify.annotations.NonNull;
2020
import org.springframework.data.mongodb.core.MongoTemplate;
2121
import org.springframework.util.Assert;
2222

2323
/**
24-
* Configuration for {@link MongoDbChatMemory}.
24+
* Configuration for {@link MongoChatMemory}.
2525
*
2626
* @author Łukasz Jernaś
2727
* @since 1.0.0
2828
*/
29-
public class MongoDbChatMemoryConfig {
29+
public class MongoChatMemoryConfig {
3030

3131
final MongoTemplate mongoTemplate;
3232

33-
private MongoDbChatMemoryConfig(Builder builder) {
33+
private MongoChatMemoryConfig(Builder builder) {
3434
this.mongoTemplate = builder.mongoTemplate;
3535
}
3636

@@ -52,10 +52,10 @@ public Builder withTemplate(@NonNull MongoTemplate mongoTemplate) {
5252
return this;
5353
}
5454

55-
public MongoDbChatMemoryConfig build() {
55+
public MongoChatMemoryConfig build() {
5656
Assert.notNull(this.mongoTemplate, "MongoTemplate must not be null");
5757

58-
return new MongoDbChatMemoryConfig(this);
58+
return new MongoChatMemoryConfig(this);
5959
}
6060

6161
}
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.ai.chat.memory.mongodb;
17+
package org.springframework.ai.chat.memory.mongo;
1818

1919
import org.junit.jupiter.api.Test;
2020
import org.springframework.data.mongodb.core.MongoTemplate;
@@ -26,20 +26,20 @@
2626
/**
2727
* @author Łukasz Jernaś
2828
*/
29-
public class MongoDbChatMemoryConfigTest {
29+
public class MongoChatMemoryConfigTest {
3030

3131
@Test
3232
void setValues() {
3333
var mongoClient = mock(MongoTemplate.class);
34-
var config = MongoDbChatMemoryConfig.builder().withTemplate(mongoClient).build();
34+
var config = MongoChatMemoryConfig.builder().withTemplate(mongoClient).build();
3535

3636
assertThat(config.mongoTemplate).isEqualTo(mongoClient);
3737

3838
}
3939

4040
@Test
4141
void buildWithNullMongoTemplate_shouldThrow() {
42-
assertThatThrownBy(() -> MongoDbChatMemoryConfig.builder().build());
42+
assertThatThrownBy(() -> MongoChatMemoryConfig.builder().build());
4343
}
4444

4545
}

0 commit comments

Comments
 (0)