diff --git a/pom.xml b/pom.xml
index 578b14d..63e925c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,14 +5,14 @@
org.springframework.boot
spring-boot-starter-parent
- 1.4.2.RELEASE
+ 2.2.6.RELEASE
com.arhs-group
spring-cache-mongodb
- 1.0.2-SNAPSHOT
+ 1.0.3-SNAPSHOT
MongoDB for Spring Cache
Spring Cache implementation based on MongoDB
@@ -86,7 +86,7 @@
org.springframework.data
spring-data-mongodb
- 1.9.1.RELEASE
+ 2.2.6.RELEASE
ch.qos.logback
@@ -98,11 +98,21 @@
embedmongo-spring
1.3.0
test
+
+
+ de.flapdoodle.embed
+ de.flapdoodle.embed.process
+
+
+ de.flapdoodle.embed
+ de.flapdoodle.embed.mongo
+
+
de.flapdoodle.embed
de.flapdoodle.embed.mongo
- 1.46.1
+ 2.2.0
test
@@ -120,6 +130,10 @@
org.springframework.data
spring-data-mongodb
+
+ org.mongodb
+ mongo-java-driver
+
ch.qos.logback
logback-classic
@@ -143,7 +157,7 @@
org.jacoco
jacoco-maven-plugin
- 0.7.7.201606060606
+ 0.8.5
prepare-agent
@@ -161,7 +175,7 @@
org.sonatype.plugins
nexus-staging-maven-plugin
- 1.6.7
+ 1.6.8
true
ossrh
diff --git a/src/main/java/com/arhs/spring/cache/mongo/MongoCache.java b/src/main/java/com/arhs/spring/cache/mongo/MongoCache.java
index 2e7c01a..a2f76a4 100644
--- a/src/main/java/com/arhs/spring/cache/mongo/MongoCache.java
+++ b/src/main/java/com/arhs/spring/cache/mongo/MongoCache.java
@@ -24,18 +24,18 @@
package com.arhs.spring.cache.mongo;
import com.arhs.spring.cache.mongo.domain.CacheDocument;
-import com.mongodb.DBCollection;
-import com.mongodb.DBObject;
-import org.mockito.internal.matchers.Null;
+import com.mongodb.client.ListIndexesIterable;
+import com.mongodb.client.MongoCollection;
+import org.bson.Document;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cache.Cache;
import org.springframework.cache.support.SimpleValueWrapper;
import org.springframework.dao.DuplicateKeyException;
import org.springframework.data.domain.Sort;
-import org.springframework.data.mongodb.core.IndexOperations;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.index.Index;
+import org.springframework.data.mongodb.core.index.IndexOperations;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.CriteriaDefinition;
import org.springframework.data.mongodb.core.query.Query;
@@ -43,10 +43,10 @@
import java.io.*;
import java.util.Base64;
-import java.util.List;
import java.util.Optional;
import java.util.concurrent.Callable;
import java.util.concurrent.TimeUnit;
+import java.util.stream.StreamSupport;
/**
* Spring {@link org.springframework.cache.Cache} adapter implementation
@@ -330,15 +330,16 @@ private Index createExpireIndex() {
private void updateExpireIndex(Index newExpireIndex) {
final IndexOperations indexOperations = mongoTemplate.indexOps(collectionName);
- final DBCollection collection = mongoTemplate.getCollection(collectionName);
- final List indexes = collection.getIndexInfo();
+ final MongoCollection collection = mongoTemplate.getCollection(collectionName);
+ final ListIndexesIterable indexes = collection.listIndexes();
- final Optional expireOptional = indexes.stream()
+ final Optional expireOptional =
+ StreamSupport.stream(indexes.spliterator(), false)
.filter(index -> INDEX_NAME.equals(index.get("name")))
.findFirst();
if (expireOptional.isPresent()) {
- final DBObject expire = expireOptional.get();
+ final Document expire = expireOptional.get();
final long ttl = (long) expire.get("expireAfterSeconds");
if (ttl != this.ttl) {
diff --git a/src/test/java/com/arhs/spring/cache/mongo/TestConfiguration.java b/src/test/java/com/arhs/spring/cache/mongo/TestConfiguration.java
index f0bc11a..eb70e6b 100644
--- a/src/test/java/com/arhs/spring/cache/mongo/TestConfiguration.java
+++ b/src/test/java/com/arhs/spring/cache/mongo/TestConfiguration.java
@@ -23,15 +23,19 @@
*/
package com.arhs.spring.cache.mongo;
-import com.mongodb.MongoClient;
+import com.mongodb.MongoClientSettings;
+import com.mongodb.ServerAddress;
+import com.mongodb.client.MongoClient;
+import com.mongodb.client.MongoClients;
import cz.jirutka.spring.embedmongo.EmbeddedMongoBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.core.MongoTemplate;
-import org.springframework.data.mongodb.core.SimpleMongoDbFactory;
+import org.springframework.data.mongodb.core.SimpleMongoClientDbFactory;
import java.io.IOException;
import java.net.ServerSocket;
+import java.util.Arrays;
/**
* Spring Configuration for basic integration tests.
@@ -43,7 +47,6 @@ public class TestConfiguration {
private static final String DATABASE_NAME = "test";
private static final String IP_ADDRESS = "127.0.0.1";
- private static final String VERSION = "2.4.5";
/**
* Gets a {@link MongoTemplate} instance.
@@ -54,8 +57,9 @@ public class TestConfiguration {
@Bean
public MongoTemplate mongoTemplate() throws IOException {
final int port = allocateRandomPort();
- final MongoClient mongoClient = new EmbeddedMongoBuilder().version(VERSION).bindIp(IP_ADDRESS).port(port).build();
- final SimpleMongoDbFactory simpleMongoDbFactory = new SimpleMongoDbFactory(mongoClient, DATABASE_NAME);
+ new EmbeddedMongoBuilder().bindIp(IP_ADDRESS).port(port).build();
+ final MongoClient mongoClient = createMongoClientForPort(port);
+ final SimpleMongoClientDbFactory simpleMongoDbFactory = new SimpleMongoClientDbFactory(mongoClient, DATABASE_NAME);
return new MongoTemplate(simpleMongoDbFactory);
}
@@ -72,4 +76,12 @@ private static int allocateRandomPort() {
}
}
+ private static MongoClient createMongoClientForPort(int port) {
+ return MongoClients.create(
+ MongoClientSettings.builder()
+ .applyToClusterSettings(builder ->
+ builder.hosts(Arrays.asList(
+ new ServerAddress(IP_ADDRESS, port))))
+ .build());
+ }
}
diff --git a/src/test/java/com/arhs/spring/cache/mongo/UnitTestBase.java b/src/test/java/com/arhs/spring/cache/mongo/UnitTestBase.java
index 5c05776..f58ac83 100644
--- a/src/test/java/com/arhs/spring/cache/mongo/UnitTestBase.java
+++ b/src/test/java/com/arhs/spring/cache/mongo/UnitTestBase.java
@@ -25,7 +25,7 @@
import org.junit.After;
import org.junit.Assert;
-import org.springframework.boot.test.util.EnvironmentTestUtils;
+import org.springframework.boot.test.util.TestPropertyValues;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
/**
@@ -54,7 +54,7 @@ protected AnnotationConfigApplicationContext load(Class>[] configs, String...
AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext();
// Adds environment.
- EnvironmentTestUtils.addEnvironment(applicationContext, environment);
+ TestPropertyValues.of(environment).applyTo(applicationContext);
// Registers the configuration class and auto-configuration classes.
applicationContext.register(TestConfiguration.class);