diff --git a/build.gradle b/build.gradle index e743ddc13b..73c534c3c9 100644 --- a/build.gradle +++ b/build.gradle @@ -47,8 +47,8 @@ ext { apacheSshdVersion = '2.3.0' avroVersion = '1.9.1' aspectjVersion = '1.9.5' - assertjVersion = '3.14.0' - assertkVersion = '0.20' + assertjVersion = '3.15.0' + assertkVersion = '0.21' awaitilityVersion = '4.0.2' commonsDbcp2Version = '2.7.0' commonsIoVersion = '2.6' @@ -59,11 +59,11 @@ ext { googleJsr305Version = '3.0.2' groovyVersion = '2.5.9' hamcrestVersion = '2.2' - hazelcastVersion = '3.12.5' + hazelcastVersion = '3.12.6' hibernateVersion = '5.4.10.Final' hsqldbVersion = '2.5.0' h2Version = '1.4.200' - jacksonVersion = '2.10.1' + jacksonVersion = '2.10.2' javaxActivationVersion = '1.2.0' javaxMailVersion = '1.6.2' jmsApiVersion = '2.0.1' @@ -73,15 +73,15 @@ ext { jschVersion = '0.1.55' jsonpathVersion = '2.4.0' junit4Version = '4.13' - junitJupiterVersion = '5.5.2' + junitJupiterVersion = '5.6.0' jythonVersion = '2.7.0' kryoShadedVersion = '4.0.2' lettuceVersion = '5.2.1.RELEASE' log4jVersion = '2.13.0' micrometerVersion = '1.3.3' mockitoVersion = '3.2.4' - mongoDriverVersion = '1.13.0' - mysqlVersion = '8.0.18' + mongoDriverVersion = '4.0.0-beta1' + mysqlVersion = '8.0.19' pahoMqttClientVersion = '1.2.0' postgresVersion = '42.2.9' reactorVersion = 'Dysprosium-SR4' @@ -91,8 +91,8 @@ ext { servletApiVersion = '4.0.1' smackVersion = '4.3.4' springAmqpVersion = project.hasProperty('springAmqpVersion') ? project.springAmqpVersion : '2.2.3.RELEASE' - springDataVersion = project.hasProperty('springDataVersion') ? project.springDataVersion : 'Neumann-M2' - springSecurityVersion = project.hasProperty('springSecurityVersion') ? project.springSecurityVersion : '5.3.0.M1' + springDataVersion = project.hasProperty('springDataVersion') ? project.springDataVersion : 'Neumann-BUILD-SNAPSHOT' + springSecurityVersion = project.hasProperty('springSecurityVersion') ? project.springSecurityVersion : '5.3.0.BUILD-SNAPSHOT' springRetryVersion = '1.2.5.RELEASE' springVersion = project.hasProperty('springVersion') ? project.springVersion : '5.2.3.RELEASE' springWsVersion = '3.0.8.RELEASE' @@ -313,7 +313,7 @@ configure(javaProjects) { subproject -> checkstyle { configFile = file("$rootDir/src/checkstyle/checkstyle.xml") - toolVersion = project.hasProperty('checkstyleVersion') ? project.checkstyleVersion : '8.28' + toolVersion = project.hasProperty('checkstyleVersion') ? project.checkstyleVersion : '8.29' } jar { @@ -592,6 +592,7 @@ project('spring-integration-mongodb') { api ('org.springframework.data:spring-data-mongodb') { exclude group: 'org.springframework' } + optionalApi "org.mongodb:mongodb-driver-sync:$mongoDriverVersion" optionalApi "org.mongodb:mongodb-driver-reactivestreams:$mongoDriverVersion" } } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index ba94df8451..1b16c34a71 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/spring-integration-core/src/test/java/org/springframework/integration/channel/reactive/ReactiveStreamsConsumerTests.java b/spring-integration-core/src/test/java/org/springframework/integration/channel/reactive/ReactiveStreamsConsumerTests.java index abd543b718..fad351b1bc 100644 --- a/spring-integration-core/src/test/java/org/springframework/integration/channel/reactive/ReactiveStreamsConsumerTests.java +++ b/spring-integration-core/src/test/java/org/springframework/integration/channel/reactive/ReactiveStreamsConsumerTests.java @@ -18,6 +18,7 @@ package org.springframework.integration.channel.reactive; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatExceptionOfType; +import static org.awaitility.Awaitility.await; import static org.mockito.ArgumentMatchers.any; import static org.mockito.BDDMockito.willAnswer; import static org.mockito.Mockito.mock; @@ -181,7 +182,9 @@ public class ReactiveStreamsConsumerTests { BlockingQueue> messages = new LinkedBlockingQueue<>(); willAnswer(i -> { - messages.put(i.getArgument(0)); + Message message = i.getArgument(0); + LOGGER.debug("Polled message: " + message); + messages.put(message); return null; }) .given(testSubscriber) @@ -220,6 +223,8 @@ public class ReactiveStreamsConsumerTests { testChannel.send(testMessage2); + await().untilAsserted(() -> assertThat(messages).hasSizeGreaterThan(0)); + LOGGER.debug("Messages to poll: " + messages); message = messages.poll(10, TimeUnit.SECONDS); diff --git a/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/dsl/MongoDb.java b/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/dsl/MongoDb.java index 7326840d4f..c455ac6b47 100644 --- a/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/dsl/MongoDb.java +++ b/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/dsl/MongoDb.java @@ -16,7 +16,7 @@ package org.springframework.integration.mongodb.dsl; -import org.springframework.data.mongodb.MongoDbFactory; +import org.springframework.data.mongodb.MongoDatabaseFactory; import org.springframework.data.mongodb.ReactiveMongoDatabaseFactory; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.ReactiveMongoOperations; @@ -37,13 +37,13 @@ public final class MongoDb { /** * Create a {@link MongoDbOutboundGatewaySpec} builder instance - * based on the provided {@link MongoDbFactory} and {@link MongoConverter}. - * @param mongoDbFactory the {@link MongoDbFactory} to use. + * based on the provided {@link MongoDatabaseFactory} and {@link MongoConverter}. + * @param mongoDbFactory the {@link MongoDatabaseFactory} to use. * @param mongoConverter the {@link MongoConverter} to use. * @return the {@link MongoDbOutboundGatewaySpec} instance */ public static MongoDbOutboundGatewaySpec outboundGateway( - MongoDbFactory mongoDbFactory, MongoConverter mongoConverter) { + MongoDatabaseFactory mongoDbFactory, MongoConverter mongoConverter) { return new MongoDbOutboundGatewaySpec(mongoDbFactory, mongoConverter); } diff --git a/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/dsl/MongoDbOutboundGatewaySpec.java b/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/dsl/MongoDbOutboundGatewaySpec.java index 25b5ae4f45..4658f53673 100644 --- a/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/dsl/MongoDbOutboundGatewaySpec.java +++ b/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/dsl/MongoDbOutboundGatewaySpec.java @@ -18,7 +18,7 @@ package org.springframework.integration.mongodb.dsl; import java.util.function.Function; -import org.springframework.data.mongodb.MongoDbFactory; +import org.springframework.data.mongodb.MongoDatabaseFactory; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.convert.MongoConverter; import org.springframework.data.mongodb.core.query.Query; @@ -40,7 +40,7 @@ import org.springframework.messaging.Message; public class MongoDbOutboundGatewaySpec extends MessageHandlerSpec { - MongoDbOutboundGatewaySpec(MongoDbFactory mongoDbFactory, MongoConverter mongoConverter) { + MongoDbOutboundGatewaySpec(MongoDatabaseFactory mongoDbFactory, MongoConverter mongoConverter) { this.target = new MongoDbOutboundGateway(mongoDbFactory, mongoConverter); this.target.setRequiresReply(true); } diff --git a/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/inbound/MongoDbMessageSource.java b/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/inbound/MongoDbMessageSource.java index a16674560d..ced393184d 100644 --- a/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/inbound/MongoDbMessageSource.java +++ b/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/inbound/MongoDbMessageSource.java @@ -18,7 +18,7 @@ package org.springframework.integration.mongodb.inbound; import java.util.List; -import org.springframework.data.mongodb.MongoDbFactory; +import org.springframework.data.mongodb.MongoDatabaseFactory; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.convert.MongoConverter; @@ -67,7 +67,7 @@ import com.mongodb.DBObject; public class MongoDbMessageSource extends AbstractMessageSource { @Nullable - private final MongoDbFactory mongoDbFactory; + private final MongoDatabaseFactory mongoDbFactory; private final Expression queryExpression; @@ -86,13 +86,13 @@ public class MongoDbMessageSource extends AbstractMessageSource { private volatile boolean initialized = false; /** - * Creates an instance with the provided {@link MongoDbFactory} and SpEL expression + * Creates an instance with the provided {@link MongoDatabaseFactory} and SpEL expression * which should resolve to a MongoDb 'query' string (see https://www.mongodb.org/display/DOCS/Querying). * The 'queryExpression' will be evaluated on every call to the {@link #receive()} method. * @param mongoDbFactory The mongodb factory. * @param queryExpression The query expression. */ - public MongoDbMessageSource(MongoDbFactory mongoDbFactory, Expression queryExpression) { + public MongoDbMessageSource(MongoDatabaseFactory mongoDbFactory, Expression queryExpression) { Assert.notNull(mongoDbFactory, "'mongoDbFactory' must not be null"); Assert.notNull(queryExpression, "'queryExpression' must not be null"); this.mongoDbFactory = mongoDbFactory; @@ -154,7 +154,7 @@ public class MongoDbMessageSource extends AbstractMessageSource { /** * Allows you to provide a custom {@link MongoConverter} used to assist in deserialization * data read from MongoDb. Only allowed if this instance was constructed with a - * {@link MongoDbFactory}. + * {@link MongoDatabaseFactory}. * @param mongoConverter The mongo converter. */ public void setMongoConverter(MongoConverter mongoConverter) { diff --git a/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/metadata/MongoDbMetadataStore.java b/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/metadata/MongoDbMetadataStore.java index b4b55ac8ee..4aa96428e4 100644 --- a/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/metadata/MongoDbMetadataStore.java +++ b/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/metadata/MongoDbMetadataStore.java @@ -21,7 +21,7 @@ import java.util.Map; import org.bson.Document; -import org.springframework.data.mongodb.MongoDbFactory; +import org.springframework.data.mongodb.MongoDatabaseFactory; import org.springframework.data.mongodb.core.FindAndModifyOptions; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; @@ -58,21 +58,21 @@ public class MongoDbMetadataStore implements ConcurrentMetadataStore { private final String collectionName; /** - * Configure the MongoDbMetadataStore by provided {@link MongoDbFactory} and + * Configure the MongoDbMetadataStore by provided {@link MongoDatabaseFactory} and * default collection name - {@link #DEFAULT_COLLECTION_NAME}. * @param factory the mongodb factory */ - public MongoDbMetadataStore(MongoDbFactory factory) { + public MongoDbMetadataStore(MongoDatabaseFactory factory) { this(factory, DEFAULT_COLLECTION_NAME); } /** - * Configure the MongoDbMetadataStore by provided {@link MongoDbFactory} and + * Configure the MongoDbMetadataStore by provided {@link MongoDatabaseFactory} and * collection name * @param factory the mongodb factory * @param collectionName the collection name where it persists the data */ - public MongoDbMetadataStore(MongoDbFactory factory, String collectionName) { + public MongoDbMetadataStore(MongoDatabaseFactory factory, String collectionName) { this(new MongoTemplate(factory), collectionName); } diff --git a/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/outbound/MongoDbOutboundGateway.java b/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/outbound/MongoDbOutboundGateway.java index b3a5f37053..72b036c519 100644 --- a/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/outbound/MongoDbOutboundGateway.java +++ b/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/outbound/MongoDbOutboundGateway.java @@ -18,7 +18,7 @@ package org.springframework.integration.mongodb.outbound; import org.bson.Document; -import org.springframework.data.mongodb.MongoDbFactory; +import org.springframework.data.mongodb.MongoDatabaseFactory; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.convert.DefaultDbRefResolver; @@ -46,7 +46,7 @@ import org.springframework.util.Assert; */ public class MongoDbOutboundGateway extends AbstractReplyProducingMessageHandler { - private MongoDbFactory mongoDbFactory; + private MongoDatabaseFactory mongoDbFactory; private MongoConverter mongoConverter; @@ -64,12 +64,12 @@ public class MongoDbOutboundGateway extends AbstractReplyProducingMessageHandler private Expression collectionNameExpression; - public MongoDbOutboundGateway(MongoDbFactory mongoDbFactory) { + public MongoDbOutboundGateway(MongoDatabaseFactory mongoDbFactory) { this(mongoDbFactory, new MappingMongoConverter(new DefaultDbRefResolver(mongoDbFactory), new MongoMappingContext())); } - public MongoDbOutboundGateway(MongoDbFactory mongoDbFactory, MongoConverter mongoConverter) { + public MongoDbOutboundGateway(MongoDatabaseFactory mongoDbFactory, MongoConverter mongoConverter) { Assert.notNull(mongoDbFactory, "mongoDatabaseFactory must not be null."); Assert.notNull(mongoConverter, "mongoConverter must not be null."); this.mongoDbFactory = mongoDbFactory; diff --git a/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/outbound/MongoDbStoringMessageHandler.java b/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/outbound/MongoDbStoringMessageHandler.java index 640d18245c..899d649d6a 100644 --- a/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/outbound/MongoDbStoringMessageHandler.java +++ b/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/outbound/MongoDbStoringMessageHandler.java @@ -16,7 +16,7 @@ package org.springframework.integration.mongodb.outbound; -import org.springframework.data.mongodb.MongoDbFactory; +import org.springframework.data.mongodb.MongoDatabaseFactory; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.convert.MongoConverter; @@ -42,7 +42,7 @@ public class MongoDbStoringMessageHandler extends AbstractMessageHandler { private volatile MongoOperations mongoTemplate; - private volatile MongoDbFactory mongoDbFactory; + private volatile MongoDatabaseFactory mongoDbFactory; private volatile MongoConverter mongoConverter; @@ -53,11 +53,11 @@ public class MongoDbStoringMessageHandler extends AbstractMessageHandler { private volatile boolean initialized = false; /** - * Will construct this instance using provided {@link MongoDbFactory} + * Will construct this instance using provided {@link MongoDatabaseFactory} * * @param mongoDbFactory The mongodb factory. */ - public MongoDbStoringMessageHandler(MongoDbFactory mongoDbFactory) { + public MongoDbStoringMessageHandler(MongoDatabaseFactory mongoDbFactory) { Assert.notNull(mongoDbFactory, "'mongoDbFactory' must not be null"); this.mongoDbFactory = mongoDbFactory; @@ -78,7 +78,7 @@ public class MongoDbStoringMessageHandler extends AbstractMessageHandler { /** * Allows you to provide custom {@link MongoConverter} used to assist in serialization * of data written to MongoDb. Only allowed if this instance was constructed with a - * {@link MongoDbFactory}. + * {@link MongoDatabaseFactory}. * * @param mongoConverter The mongo converter. */ diff --git a/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/store/AbstractConfigurableMongoDbMessageStore.java b/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/store/AbstractConfigurableMongoDbMessageStore.java index 12de65c946..cfc917e0a5 100644 --- a/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/store/AbstractConfigurableMongoDbMessageStore.java +++ b/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/store/AbstractConfigurableMongoDbMessageStore.java @@ -32,7 +32,7 @@ import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.dao.DuplicateKeyException; import org.springframework.data.domain.Sort; -import org.springframework.data.mongodb.MongoDbFactory; +import org.springframework.data.mongodb.MongoDatabaseFactory; import org.springframework.data.mongodb.core.FindAndModifyOptions; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.convert.DefaultDbRefResolver; @@ -76,7 +76,7 @@ public abstract class AbstractConfigurableMongoDbMessageStore extends AbstractMe protected final String collectionName; // NOSONAR - final - protected final MongoDbFactory mongoDbFactory; // NOSONAR - final + protected final MongoDatabaseFactory mongoDbFactory; // NOSONAR - final private MongoTemplate mongoTemplate; @@ -94,11 +94,11 @@ public abstract class AbstractConfigurableMongoDbMessageStore extends AbstractMe this.mongoDbFactory = null; } - public AbstractConfigurableMongoDbMessageStore(MongoDbFactory mongoDbFactory, String collectionName) { + public AbstractConfigurableMongoDbMessageStore(MongoDatabaseFactory mongoDbFactory, String collectionName) { this(mongoDbFactory, null, collectionName); } - public AbstractConfigurableMongoDbMessageStore(MongoDbFactory mongoDbFactory, + public AbstractConfigurableMongoDbMessageStore(MongoDatabaseFactory mongoDbFactory, MappingMongoConverter mappingMongoConverter, String collectionName) { Assert.notNull(mongoDbFactory, "'mongoDbFactory' must not be null"); Assert.hasText(collectionName, "'collectionName' must not be empty"); diff --git a/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/store/ConfigurableMongoDbMessageStore.java b/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/store/ConfigurableMongoDbMessageStore.java index 26dd1a91cb..cd6894cc81 100644 --- a/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/store/ConfigurableMongoDbMessageStore.java +++ b/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/store/ConfigurableMongoDbMessageStore.java @@ -25,7 +25,7 @@ import java.util.stream.Collectors; import java.util.stream.StreamSupport; import org.springframework.data.domain.Sort; -import org.springframework.data.mongodb.MongoDbFactory; +import org.springframework.data.mongodb.MongoDatabaseFactory; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.convert.MappingMongoConverter; import org.springframework.data.mongodb.core.query.Criteria; @@ -68,19 +68,19 @@ public class ConfigurableMongoDbMessageStore extends AbstractConfigurableMongoDb super(mongoTemplate, collectionName); } - public ConfigurableMongoDbMessageStore(MongoDbFactory mongoDbFactory) { + public ConfigurableMongoDbMessageStore(MongoDatabaseFactory mongoDbFactory) { this(mongoDbFactory, null, DEFAULT_COLLECTION_NAME); } - public ConfigurableMongoDbMessageStore(MongoDbFactory mongoDbFactory, MappingMongoConverter mappingMongoConverter) { + public ConfigurableMongoDbMessageStore(MongoDatabaseFactory mongoDbFactory, MappingMongoConverter mappingMongoConverter) { this(mongoDbFactory, mappingMongoConverter, DEFAULT_COLLECTION_NAME); } - public ConfigurableMongoDbMessageStore(MongoDbFactory mongoDbFactory, String collectionName) { + public ConfigurableMongoDbMessageStore(MongoDatabaseFactory mongoDbFactory, String collectionName) { this(mongoDbFactory, null, collectionName); } - public ConfigurableMongoDbMessageStore(MongoDbFactory mongoDbFactory, MappingMongoConverter mappingMongoConverter, + public ConfigurableMongoDbMessageStore(MongoDatabaseFactory mongoDbFactory, MappingMongoConverter mappingMongoConverter, String collectionName) { super(mongoDbFactory, mappingMongoConverter, collectionName); diff --git a/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/store/MongoDbChannelMessageStore.java b/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/store/MongoDbChannelMessageStore.java index 8dcd713e17..17173ddc2f 100644 --- a/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/store/MongoDbChannelMessageStore.java +++ b/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/store/MongoDbChannelMessageStore.java @@ -17,7 +17,7 @@ package org.springframework.integration.mongodb.store; import org.springframework.data.domain.Sort; -import org.springframework.data.mongodb.MongoDbFactory; +import org.springframework.data.mongodb.MongoDatabaseFactory; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.convert.MappingMongoConverter; import org.springframework.data.mongodb.core.index.Index; @@ -61,19 +61,19 @@ public class MongoDbChannelMessageStore extends AbstractConfigurableMongoDbMessa super(mongoTemplate, collectionName); } - public MongoDbChannelMessageStore(MongoDbFactory mongoDbFactory) { + public MongoDbChannelMessageStore(MongoDatabaseFactory mongoDbFactory) { this(mongoDbFactory, null, DEFAULT_COLLECTION_NAME); } - public MongoDbChannelMessageStore(MongoDbFactory mongoDbFactory, MappingMongoConverter mappingMongoConverter) { + public MongoDbChannelMessageStore(MongoDatabaseFactory mongoDbFactory, MappingMongoConverter mappingMongoConverter) { this(mongoDbFactory, mappingMongoConverter, DEFAULT_COLLECTION_NAME); } - public MongoDbChannelMessageStore(MongoDbFactory mongoDbFactory, String collectionName) { + public MongoDbChannelMessageStore(MongoDatabaseFactory mongoDbFactory, String collectionName) { this(mongoDbFactory, null, collectionName); } - public MongoDbChannelMessageStore(MongoDbFactory mongoDbFactory, MappingMongoConverter mappingMongoConverter, + public MongoDbChannelMessageStore(MongoDatabaseFactory mongoDbFactory, MappingMongoConverter mappingMongoConverter, String collectionName) { super(mongoDbFactory, mappingMongoConverter, collectionName); } diff --git a/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/store/MongoDbMessageStore.java b/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/store/MongoDbMessageStore.java index 224d091048..784fb25dbb 100644 --- a/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/store/MongoDbMessageStore.java +++ b/spring-integration-mongodb/src/main/java/org/springframework/integration/mongodb/store/MongoDbMessageStore.java @@ -47,7 +47,7 @@ import org.springframework.data.convert.ReadingConverter; import org.springframework.data.convert.WritingConverter; import org.springframework.data.domain.Sort; import org.springframework.data.mapping.context.MappingContext; -import org.springframework.data.mongodb.MongoDbFactory; +import org.springframework.data.mongodb.MongoDatabaseFactory; import org.springframework.data.mongodb.core.BulkOperations; import org.springframework.data.mongodb.core.FindAndModifyOptions; import org.springframework.data.mongodb.core.MongoTemplate; @@ -141,19 +141,19 @@ public class MongoDbMessageStore extends AbstractMessageGroupStore private String[] whiteListPatterns; /** - * Create a MongoDbMessageStore using the provided {@link MongoDbFactory}.and the default collection name. + * Create a MongoDbMessageStore using the provided {@link MongoDatabaseFactory}.and the default collection name. * @param mongoDbFactory The mongodb factory. */ - public MongoDbMessageStore(MongoDbFactory mongoDbFactory) { + public MongoDbMessageStore(MongoDatabaseFactory mongoDbFactory) { this(mongoDbFactory, null); } /** - * Create a MongoDbMessageStore using the provided {@link MongoDbFactory} and collection name. + * Create a MongoDbMessageStore using the provided {@link MongoDatabaseFactory} and collection name. * @param mongoDbFactory The mongodb factory. * @param collectionName The collection name. */ - public MongoDbMessageStore(MongoDbFactory mongoDbFactory, @Nullable String collectionName) { + public MongoDbMessageStore(MongoDatabaseFactory mongoDbFactory, @Nullable String collectionName) { Assert.notNull(mongoDbFactory, "mongoDbFactory must not be null"); this.converter = new MessageReadingMongoConverter(mongoDbFactory, new MongoMappingContext()); this.template = new MongoTemplate(mongoDbFactory, this.converter); @@ -523,7 +523,7 @@ public class MongoDbMessageStore extends AbstractMessageGroupStore private Object[] customConverters; - MessageReadingMongoConverter(MongoDbFactory mongoDbFactory, + MessageReadingMongoConverter(MongoDatabaseFactory mongoDbFactory, MappingContext, MongoPersistentProperty> mappingContext) { super(new DefaultDbRefResolver(mongoDbFactory), mappingContext); } diff --git a/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/config/MongoDbInboundChannelAdapterParserTests.java b/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/config/MongoDbInboundChannelAdapterParserTests.java index 3fa67fb828..8004db2c90 100644 --- a/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/config/MongoDbInboundChannelAdapterParserTests.java +++ b/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/config/MongoDbInboundChannelAdapterParserTests.java @@ -25,7 +25,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.parsing.BeanDefinitionParsingException; import org.springframework.context.support.ClassPathXmlApplicationContext; -import org.springframework.data.mongodb.MongoDbFactory; +import org.springframework.data.mongodb.MongoDatabaseFactory; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.convert.MongoConverter; import org.springframework.expression.common.LiteralExpression; @@ -49,7 +49,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; public class MongoDbInboundChannelAdapterParserTests { @Autowired - private MongoDbFactory mongoDbFactory; + private MongoDatabaseFactory mongoDbFactory; @Autowired private MongoConverter mongoConverter; diff --git a/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/config/MongoDbOutboundChannelAdapterIntegrationTests.java b/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/config/MongoDbOutboundChannelAdapterIntegrationTests.java index d65c940d8a..9e9e1cb4bb 100644 --- a/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/config/MongoDbOutboundChannelAdapterIntegrationTests.java +++ b/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/config/MongoDbOutboundChannelAdapterIntegrationTests.java @@ -21,7 +21,7 @@ import static org.assertj.core.api.Assertions.assertThat; import org.junit.Test; import org.springframework.context.support.ClassPathXmlApplicationContext; -import org.springframework.data.mongodb.MongoDbFactory; +import org.springframework.data.mongodb.MongoDatabaseFactory; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.BasicQuery; import org.springframework.integration.mongodb.rules.MongoDbAvailable; @@ -49,7 +49,7 @@ public class MongoDbOutboundChannelAdapterIntegrationTests extends MongoDbAvaila Message message = new GenericMessage(this.createPerson("Bob")); channel.send(message); - MongoDbFactory mongoDbFactory = this.prepareMongoFactory(); + MongoDatabaseFactory mongoDbFactory = this.prepareMongoFactory(); MongoTemplate template = new MongoTemplate(mongoDbFactory); assertThat(template.find(new BasicQuery("{'name' : 'Bob'}"), Person.class, "data")).isNotNull(); context.close(); @@ -58,7 +58,7 @@ public class MongoDbOutboundChannelAdapterIntegrationTests extends MongoDbAvaila @Test @MongoDbAvailable public void testWithNamedCollection() throws Exception { - MongoDbFactory mongoDbFactory = this.prepareMongoFactory("foo"); + MongoDatabaseFactory mongoDbFactory = this.prepareMongoFactory("foo"); ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("outbound-adapter-config.xml", this.getClass()); @@ -77,7 +77,7 @@ public class MongoDbOutboundChannelAdapterIntegrationTests extends MongoDbAvaila @Test @MongoDbAvailable public void testWithTemplate() throws Exception { - MongoDbFactory mongoDbFactory = this.prepareMongoFactory("foo"); + MongoDatabaseFactory mongoDbFactory = this.prepareMongoFactory("foo"); ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("outbound-adapter-config.xml", this.getClass()); @@ -100,7 +100,7 @@ public class MongoDbOutboundChannelAdapterIntegrationTests extends MongoDbAvaila BasicDBObject dbObject = BasicDBObject.parse("{'foo' : 'bar'}"); - MongoDbFactory mongoDbFactory = this.prepareMongoFactory("foo"); + MongoDatabaseFactory mongoDbFactory = this.prepareMongoFactory("foo"); ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("outbound-adapter-config.xml", this.getClass()); @@ -124,7 +124,7 @@ public class MongoDbOutboundChannelAdapterIntegrationTests extends MongoDbAvaila String object = "{'foo' : 'bar'}"; - MongoDbFactory mongoDbFactory = this.prepareMongoFactory("foo"); + MongoDatabaseFactory mongoDbFactory = this.prepareMongoFactory("foo"); ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("outbound-adapter-config.xml", this.getClass()); @@ -152,7 +152,7 @@ public class MongoDbOutboundChannelAdapterIntegrationTests extends MongoDbAvaila Message message = new GenericMessage(this.createPerson("Bob")); channel.send(message); - MongoDbFactory mongoDbFactory = this.prepareMongoFactory(); + MongoDatabaseFactory mongoDbFactory = this.prepareMongoFactory(); MongoTemplate template = new MongoTemplate(mongoDbFactory); assertThat(template.find(new BasicQuery("{'name' : 'Bob'}"), Person.class, "data")).isNotNull(); context.close(); diff --git a/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/config/MongoDbOutboundGatewayParserTests.java b/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/config/MongoDbOutboundGatewayParserTests.java index ff144671ba..d4ee5eb4ca 100644 --- a/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/config/MongoDbOutboundGatewayParserTests.java +++ b/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/config/MongoDbOutboundGatewayParserTests.java @@ -27,7 +27,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.parsing.BeanDefinitionParsingException; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; -import org.springframework.data.mongodb.MongoDbFactory; +import org.springframework.data.mongodb.MongoDatabaseFactory; import org.springframework.data.mongodb.core.convert.MongoConverter; import org.springframework.expression.common.LiteralExpression; import org.springframework.expression.spel.standard.SpelExpression; @@ -55,7 +55,7 @@ public class MongoDbOutboundGatewayParserTests { private ApplicationContext context; @Autowired - private MongoDbFactory mongoDbFactory; + private MongoDatabaseFactory mongoDbFactory; @Autowired private MongoConverter mongoConverter; diff --git a/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/dsl/MongoDbTests.java b/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/dsl/MongoDbTests.java index edfa474d73..22ba8c482a 100644 --- a/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/dsl/MongoDbTests.java +++ b/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/dsl/MongoDbTests.java @@ -32,7 +32,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.data.mongodb.MongoDbFactory; +import org.springframework.data.mongodb.MongoDatabaseFactory; import org.springframework.data.mongodb.core.BulkOperations; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.MongoTemplate; @@ -345,7 +345,7 @@ public class MongoDbTests extends MongoDbAvailableTests { } @Bean - public MongoDbFactory mongoDbFactory() { + public MongoDatabaseFactory mongoDbFactory() { return MONGO_DATABASE_FACTORY; } diff --git a/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/inbound/MongoDbMessageSourceTests.java b/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/inbound/MongoDbMessageSourceTests.java index 7a6e8ca9d0..40a6a62762 100644 --- a/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/inbound/MongoDbMessageSourceTests.java +++ b/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/inbound/MongoDbMessageSourceTests.java @@ -30,7 +30,7 @@ import org.junit.Test; import org.mockito.Mockito; import org.springframework.beans.factory.BeanFactory; -import org.springframework.data.mongodb.MongoDbFactory; +import org.springframework.data.mongodb.MongoDatabaseFactory; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.convert.MappingMongoConverter; @@ -58,7 +58,7 @@ public class MongoDbMessageSourceTests extends MongoDbAvailableTests { @Test public void withNullMongoDBFactory() { assertThatIllegalArgumentException() - .isThrownBy(() -> new MongoDbMessageSource((MongoDbFactory) null, mock(Expression.class))); + .isThrownBy(() -> new MongoDbMessageSource((MongoDatabaseFactory) null, mock(Expression.class))); } @Test @@ -70,13 +70,13 @@ public class MongoDbMessageSourceTests extends MongoDbAvailableTests { @Test public void withNullQueryExpression() { assertThatIllegalArgumentException() - .isThrownBy(() -> new MongoDbMessageSource(mock(MongoDbFactory.class), null)); + .isThrownBy(() -> new MongoDbMessageSource(mock(MongoDatabaseFactory.class), null)); } @Test @MongoDbAvailable public void validateSuccessfulQueryWithSingleElementIfOneInListAsDbObject() { - MongoDbFactory mongoDbFactory = this.prepareMongoFactory(); + MongoDatabaseFactory mongoDbFactory = this.prepareMongoFactory(); MongoTemplate template = new MongoTemplate(mongoDbFactory); template.save(this.createPerson(), "data"); @@ -96,7 +96,7 @@ public class MongoDbMessageSourceTests extends MongoDbAvailableTests { @Test @MongoDbAvailable public void validateSuccessfulQueryWithSingleElementIfOneInList() { - MongoDbFactory mongoDbFactory = prepareMongoFactory(); + MongoDatabaseFactory mongoDbFactory = prepareMongoFactory(); MongoTemplate template = new MongoTemplate(mongoDbFactory); template.save(this.createPerson(), "data"); @@ -117,7 +117,7 @@ public class MongoDbMessageSourceTests extends MongoDbAvailableTests { @Test @MongoDbAvailable public void validateSuccessfulQueryWithSingleElementIfOneInListAndSingleResult() { - MongoDbFactory mongoDbFactory = prepareMongoFactory(); + MongoDatabaseFactory mongoDbFactory = prepareMongoFactory(); MongoTemplate template = new MongoTemplate(mongoDbFactory); template.save(this.createPerson(), "data"); @@ -138,7 +138,7 @@ public class MongoDbMessageSourceTests extends MongoDbAvailableTests { @Test @MongoDbAvailable public void validateSuccessfulSubObjectQueryWithSingleElementIfOneInList() { - MongoDbFactory mongoDbFactory = prepareMongoFactory(); + MongoDatabaseFactory mongoDbFactory = prepareMongoFactory(); MongoTemplate template = new MongoTemplate(mongoDbFactory); template.save(this.createPerson(), "data"); @@ -180,7 +180,7 @@ public class MongoDbMessageSourceTests extends MongoDbAvailableTests { @SuppressWarnings("unchecked") private List queryMultipleElements(Expression queryExpression) { - MongoDbFactory mongoDbFactory = this.prepareMongoFactory(); + MongoDatabaseFactory mongoDbFactory = this.prepareMongoFactory(); MongoTemplate template = new MongoTemplate(mongoDbFactory); template.save(this.createPerson("Manny"), "data"); @@ -198,7 +198,7 @@ public class MongoDbMessageSourceTests extends MongoDbAvailableTests { @MongoDbAvailable public void validateSuccessfulQueryWithNullReturn() { - MongoDbFactory mongoDbFactory = this.prepareMongoFactory(); + MongoDatabaseFactory mongoDbFactory = this.prepareMongoFactory(); MongoTemplate template = new MongoTemplate(mongoDbFactory); template.save(this.createPerson("Manny"), "data"); @@ -217,7 +217,7 @@ public class MongoDbMessageSourceTests extends MongoDbAvailableTests { @MongoDbAvailable public void validateSuccessfulQueryWithCustomConverter() { - MongoDbFactory mongoDbFactory = this.prepareMongoFactory(); + MongoDatabaseFactory mongoDbFactory = this.prepareMongoFactory(); MongoTemplate template = new MongoTemplate(mongoDbFactory); template.save(this.createPerson("Manny"), "data"); @@ -243,7 +243,7 @@ public class MongoDbMessageSourceTests extends MongoDbAvailableTests { @MongoDbAvailable public void validateSuccessfulQueryWithMongoTemplate() { - MongoDbFactory mongoDbFactory = this.prepareMongoFactory(); + MongoDatabaseFactory mongoDbFactory = this.prepareMongoFactory(); MappingMongoConverter converter = new TestMongoConverter(mongoDbFactory, new MongoMappingContext()); converter.afterPropertiesSet(); @@ -269,7 +269,7 @@ public class MongoDbMessageSourceTests extends MongoDbAvailableTests { @MongoDbAvailable public void validatePipelineInModifyOut() { - MongoDbFactory mongoDbFactory = this.prepareMongoFactory(); + MongoDatabaseFactory mongoDbFactory = this.prepareMongoFactory(); MongoTemplate template = new MongoTemplate(mongoDbFactory); diff --git a/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/metadata/MongoDbMetadataStoreTests.java b/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/metadata/MongoDbMetadataStoreTests.java index 04b7118f8b..a6418a139f 100644 --- a/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/metadata/MongoDbMetadataStoreTests.java +++ b/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/metadata/MongoDbMetadataStoreTests.java @@ -21,7 +21,7 @@ import static org.assertj.core.api.Assertions.assertThat; import org.junit.Before; import org.junit.Test; -import org.springframework.data.mongodb.MongoDbFactory; +import org.springframework.data.mongodb.MongoDatabaseFactory; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.integration.mongodb.rules.MongoDbAvailable; import org.springframework.integration.mongodb.rules.MongoDbAvailableTests; @@ -45,7 +45,7 @@ public class MongoDbMetadataStoreTests extends MongoDbAvailableTests { @Before public void configure() { - final MongoDbFactory mongoDbFactory = this.prepareMongoFactory(DEFAULT_COLLECTION_NAME); + final MongoDatabaseFactory mongoDbFactory = this.prepareMongoFactory(DEFAULT_COLLECTION_NAME); this.store = new MongoDbMetadataStore(mongoDbFactory); } @@ -53,7 +53,7 @@ public class MongoDbMetadataStoreTests extends MongoDbAvailableTests { @Test public void testConfigureCustomCollection() { final String collectionName = "testMetadataStore"; - final MongoDbFactory mongoDbFactory = this.prepareMongoFactory(collectionName); + final MongoDatabaseFactory mongoDbFactory = this.prepareMongoFactory(collectionName); final MongoTemplate template = new MongoTemplate(mongoDbFactory); store = new MongoDbMetadataStore(template, collectionName); testBasics(); @@ -62,7 +62,7 @@ public class MongoDbMetadataStoreTests extends MongoDbAvailableTests { @MongoDbAvailable @Test public void testConfigureFactory() { - final MongoDbFactory mongoDbFactory = this.prepareMongoFactory(DEFAULT_COLLECTION_NAME); + final MongoDatabaseFactory mongoDbFactory = this.prepareMongoFactory(DEFAULT_COLLECTION_NAME); store = new MongoDbMetadataStore(mongoDbFactory); testBasics(); } @@ -71,7 +71,7 @@ public class MongoDbMetadataStoreTests extends MongoDbAvailableTests { @Test public void testConfigureFactorCustomCollection() { final String collectionName = "testMetadataStore"; - final MongoDbFactory mongoDbFactory = this.prepareMongoFactory(collectionName); + final MongoDatabaseFactory mongoDbFactory = this.prepareMongoFactory(collectionName); store = new MongoDbMetadataStore(mongoDbFactory, collectionName); testBasics(); } diff --git a/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/outbound/MongoDbOutboundGatewayTests.java b/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/outbound/MongoDbOutboundGatewayTests.java index 8116db8923..75122a4dd6 100644 --- a/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/outbound/MongoDbOutboundGatewayTests.java +++ b/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/outbound/MongoDbOutboundGatewayTests.java @@ -17,6 +17,7 @@ package org.springframework.integration.mongodb.outbound; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException; import static org.assertj.core.api.Assertions.fail; import java.util.Arrays; @@ -31,7 +32,7 @@ import org.junit.runner.RunWith; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.mongodb.MongoDbFactory; +import org.springframework.data.mongodb.MongoDatabaseFactory; import org.springframework.data.mongodb.core.BulkOperations; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.MongoTemplate; @@ -50,7 +51,7 @@ import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.junit4.SpringRunner; /** - * @author Xavier Padr? + * @author Xavier Padro * @author Gary Rssell * @author Artem Bilan * @@ -74,7 +75,7 @@ public class MongoDbOutboundGatewayTests extends MongoDbAvailableTests { private MongoConverter mongoConverter; @Autowired - private MongoDbFactory mongoDbFactory; + private MongoDatabaseFactory mongoDbFactory; @Before public void setUp() { @@ -95,14 +96,9 @@ public class MongoDbOutboundGatewayTests extends MongoDbAvailableTests { @Test @MongoDbAvailable public void testNoFactorySpecified() { - - try { - new MongoDbOutboundGateway((MongoDbFactory) null); - fail("Expected the test case to throw an IllegalArgumentException"); - } - catch (IllegalArgumentException e) { - assertThat(e.getMessage()).isEqualTo("MongoDbFactory translator must not be null!"); - } + assertThatIllegalArgumentException() + .isThrownBy(() -> new MongoDbOutboundGateway((MongoDatabaseFactory) null)) + .withMessage("MongoDbFactory translator must not be null!"); } @Test diff --git a/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/outbound/MongoDbOutboundGatewayXmlTests.java b/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/outbound/MongoDbOutboundGatewayXmlTests.java index f30baf55be..f1194819ad 100644 --- a/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/outbound/MongoDbOutboundGatewayXmlTests.java +++ b/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/outbound/MongoDbOutboundGatewayXmlTests.java @@ -27,7 +27,7 @@ import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; -import org.springframework.data.mongodb.MongoDbFactory; +import org.springframework.data.mongodb.MongoDatabaseFactory; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.integration.endpoint.EventDrivenConsumer; import org.springframework.integration.mongodb.rules.MongoDbAvailable; @@ -55,7 +55,7 @@ public class MongoDbOutboundGatewayXmlTests extends MongoDbAvailableTests { @Before public void setUp() { - MongoDbFactory mongoDbFactory = this.prepareMongoFactory(); + MongoDatabaseFactory mongoDbFactory = this.prepareMongoFactory(); MongoTemplate mongoTemplate = new MongoTemplate(mongoDbFactory); mongoTemplate.save(this.createPerson("Artem"), COLLECTION_NAME); @@ -66,7 +66,7 @@ public class MongoDbOutboundGatewayXmlTests extends MongoDbAvailableTests { @After public void cleanUp() { - MongoDbFactory mongoDbFactory = this.prepareMongoFactory(); + MongoDatabaseFactory mongoDbFactory = this.prepareMongoFactory(); MongoTemplate mongoTemplate = new MongoTemplate(mongoDbFactory); mongoTemplate.dropCollection(COLLECTION_NAME); diff --git a/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/outbound/MongoDbStoringMessageHandlerTests.java b/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/outbound/MongoDbStoringMessageHandlerTests.java index fec0569c08..4b273d4b75 100644 --- a/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/outbound/MongoDbStoringMessageHandlerTests.java +++ b/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/outbound/MongoDbStoringMessageHandlerTests.java @@ -29,7 +29,7 @@ import org.junit.Test; import org.mockito.Mockito; import org.springframework.beans.factory.BeanFactory; -import org.springframework.data.mongodb.MongoDbFactory; +import org.springframework.data.mongodb.MongoDatabaseFactory; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.convert.MappingMongoConverter; @@ -53,7 +53,7 @@ public class MongoDbStoringMessageHandlerTests extends MongoDbAvailableTests { private MongoTemplate template; - private MongoDbFactory mongoDbFactory; + private MongoDatabaseFactory mongoDbFactory; @Before public void setUp() { @@ -66,7 +66,7 @@ public class MongoDbStoringMessageHandlerTests extends MongoDbAvailableTests { @MongoDbAvailable public void withNullMongoDBFactory() { assertThatIllegalArgumentException() - .isThrownBy(() -> new MongoDbStoringMessageHandler((MongoDbFactory) null)); + .isThrownBy(() -> new MongoDbStoringMessageHandler((MongoDatabaseFactory) null)); } @Test diff --git a/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/rules/MongoDbAvailableTests.java b/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/rules/MongoDbAvailableTests.java index 8478e44eb1..cfc5181304 100644 --- a/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/rules/MongoDbAvailableTests.java +++ b/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/rules/MongoDbAvailableTests.java @@ -19,16 +19,17 @@ package org.springframework.integration.mongodb.rules; import java.time.Duration; import org.bson.Document; +import org.bson.UuidRepresentation; import org.bson.conversions.Bson; import org.junit.Rule; import org.springframework.dao.DataAccessException; import org.springframework.data.mapping.context.MappingContext; -import org.springframework.data.mongodb.MongoDbFactory; +import org.springframework.data.mongodb.MongoDatabaseFactory; import org.springframework.data.mongodb.ReactiveMongoDatabaseFactory; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.ReactiveMongoTemplate; -import org.springframework.data.mongodb.core.SimpleMongoClientDbFactory; +import org.springframework.data.mongodb.core.SimpleMongoClientDatabaseFactory; import org.springframework.data.mongodb.core.SimpleReactiveMongoDatabaseFactory; import org.springframework.data.mongodb.core.convert.DefaultDbRefResolver; import org.springframework.data.mongodb.core.convert.MappingMongoConverter; @@ -38,6 +39,7 @@ import org.springframework.data.mongodb.core.mapping.MongoPersistentProperty; import org.springframework.integration.mongodb.outbound.MessageCollectionCallback; import org.springframework.messaging.Message; +import com.mongodb.MongoClientSettings; import com.mongodb.MongoException; import com.mongodb.client.MongoClients; import com.mongodb.client.MongoCollection; @@ -58,14 +60,19 @@ public abstract class MongoDbAvailableTests { @Rule public MongoDbAvailableRule mongoDbAvailableRule = new MongoDbAvailableRule(); - public static final MongoDbFactory MONGO_DATABASE_FACTORY = - new SimpleMongoClientDbFactory(MongoClients.create(), "test"); + public static final MongoDatabaseFactory MONGO_DATABASE_FACTORY = + new SimpleMongoClientDatabaseFactory( + MongoClients.create( + MongoClientSettings.builder().uuidRepresentation(UuidRepresentation.STANDARD).build()), + "test"); public static final ReactiveMongoDatabaseFactory REACTIVE_MONGO_DATABASE_FACTORY = new SimpleReactiveMongoDatabaseFactory( - com.mongodb.reactivestreams.client.MongoClients.create(), "test"); + com.mongodb.reactivestreams.client.MongoClients.create( + MongoClientSettings.builder().uuidRepresentation(UuidRepresentation.STANDARD).build()), + "test"); - protected MongoDbFactory prepareMongoFactory(String... additionalCollectionsToDrop) { + protected MongoDatabaseFactory prepareMongoFactory(String... additionalCollectionsToDrop) { cleanupCollections(MONGO_DATABASE_FACTORY, additionalCollectionsToDrop); return MONGO_DATABASE_FACTORY; } @@ -87,7 +94,7 @@ public abstract class MongoDbAvailableTests { } } - protected void cleanupCollections(MongoDbFactory mongoDbFactory, String... additionalCollectionsToDrop) { + protected void cleanupCollections(MongoDatabaseFactory mongoDbFactory, String... additionalCollectionsToDrop) { MongoTemplate template = new MongoTemplate(mongoDbFactory); template.dropCollection("messages"); template.dropCollection("configurableStoreMessages"); @@ -182,7 +189,7 @@ public abstract class MongoDbAvailableTests { public static class TestMongoConverter extends MappingMongoConverter { public TestMongoConverter( - MongoDbFactory mongoDbFactory, + MongoDatabaseFactory mongoDbFactory, MappingContext, MongoPersistentProperty> mappingContext) { super(new DefaultDbRefResolver(mongoDbFactory), mappingContext); diff --git a/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/store/AbstractMongoDbMessageGroupStoreTests.java b/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/store/AbstractMongoDbMessageGroupStoreTests.java index 064513976c..6fe3d9a31e 100644 --- a/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/store/AbstractMongoDbMessageGroupStoreTests.java +++ b/spring-integration-mongodb/src/test/java/org/springframework/integration/mongodb/store/AbstractMongoDbMessageGroupStoreTests.java @@ -417,7 +417,7 @@ public abstract class AbstractMongoDbMessageGroupStoreTests extends MongoDbAvail // @Test // @MongoDbAvailable // public void testConcurrentModifications() throws Exception{ - // MongoDbFactory mongoDbFactory = this.prepareMongoFactory(); + // MongoDatabaseFactory mongoDbFactory = this.prepareMongoFactory(); // final MongoDbMessageStore store1 = new MongoDbMessageStore(mongoDbFactory); // final MongoDbMessageStore store2 = new MongoDbMessageStore(mongoDbFactory); // diff --git a/src/reference/asciidoc/mongodb.adoc b/src/reference/asciidoc/mongodb.adoc index cedf3220be..67a8c3827c 100644 --- a/src/reference/asciidoc/mongodb.adoc +++ b/src/reference/asciidoc/mongodb.adoc @@ -39,68 +39,60 @@ To enable reactive support, add the MongoDB reactive streams driver to your depe org.mongodb mongodb-driver-reactivestreams - 1.12.0 ---- .Gradle [source, groovy, subs="normal"] ---- -compile "org.mongodb:mongodb-driver-reactivestreams:1.12.0" +compile "org.mongodb:mongodb-driver-reactivestreams" ---- +For regular synchronous client you need to add its respective driver into dependencies: + +.Maven +[source, xml, subs="normal"] +---- + + org.mongodb + mongodb-driver-sync + +---- + +.Gradle +[source, groovy, subs="normal"] +---- +compile "org.mongodb:mongodb-driver-sync" +---- + +Both of them are `optional` in the framework for better end-user choice support. + To begin interacting with MongoDB, you first need to connect to it. Spring Integration builds on the support provided by another Spring project, https://projects.spring.io/spring-data-mongodb/[Spring Data MongoDB]. -It provides factory classes called `MongoDbFactory` and `ReactiveMongoDatabaseFactory`, which simplify integration with the MongoDB Client API. +It provides factory classes called `MongoDatabaseFactory` and `ReactiveMongoDatabaseFactory`, which simplify integration with the MongoDB Client API. TIP: Spring Data provides provides the blocking MongoDB driver by default but you may opt-in for reactive usage by including the above dependency. -==== Using `MongoDbFactory` +==== Using `MongoDatabaseFactory` -To connect to MongoDB you can use an implementation of the `MongoDbFactory` interface. -The following listing shows the `MongoDbFactory` interface: +To connect to MongoDB you can use an implementation of the `MongoDatabaseFactory` interface. + +The following example shows how to use `SimpleMongoClientDatabaseFactory`, the out-of-the-box implementation, in Java: ==== [source,java] ---- -public interface MongoDbFactory { - - /** - * Creates a default {@link DB} instance. - * - * @return the DB instance - * @throws DataAccessException - */ - DB getDb() throws DataAccessException; - - /** - * Creates a {@link DB} instance to access the database with the given name. - * - * @param dbName must not be {@literal null} or empty. - * - * @return the DB instance - * @throws DataAccessException - */ - DB getDb(String dbName) throws DataAccessException; -} +MongoDatabaseFactory mongoDbFactory = + new SimpleMongoClientDatabaseFactory(com.mongodb.client.MongoClients.create(), "test"); ---- ==== -The following example shows how to use `SimpleMongoDbFactory`, the out-of-the-box implementation, in Java: - -==== -[source,java] ----- -MongoDbFactory mongoDbFactory = new SimpleMongoDbFactory(com.mongodb.client.MongoClients.create(), "test"); ----- -==== - -The following example shows how to use `SimpleMongoDbFactory` in XML configuration: +The following example shows how to use `SimpleMongoClientDatabaseFactory` in XML configuration: ==== [source,xml] ---- - + @@ -109,7 +101,7 @@ The following example shows how to use `SimpleMongoDbFactory` in XML configurati ---- ==== -`SimpleMongoDbFactory` takes two arguments: a `Mongo` instance and a `String` that specifies the name of the database. +`SimpleMongoClientDatabaseFactory` takes two arguments: a `MongoClient` instance and a `String` that specifies the name of the database. If you need to configure properties such as `host`, `port`, and others, you can pass those by using one of the constructors provided by the underlying `MongoClients` class. For more information on how to configure MongoDB, see the https://docs.spring.io/spring-data/data-mongo/docs/current/reference/html/[Spring-Data-MongoDB] reference.