DATAMONGO-2378 - Favor com.mongodb.client.MongoClient (over already deprecated com.mongodb.MongoClient) where possible.
Original pull request: #793.
This commit is contained in:
committed by
Mark Paluch
parent
4a012d5654
commit
565132c619
@@ -42,8 +42,10 @@ import com.mongodb.MongoClient;
|
||||
* @author Mark Paluch
|
||||
* @see MongoConfigurationSupport
|
||||
* @see AbstractMongoClientConfiguration
|
||||
* @deprecated since 2.2 in favor of {@link AbstractMongoClientConfiguration}.
|
||||
*/
|
||||
@Configuration
|
||||
@Deprecated
|
||||
public abstract class AbstractMongoConfiguration extends MongoConfigurationSupport {
|
||||
|
||||
/**
|
||||
|
||||
@@ -34,14 +34,29 @@ import com.mongodb.client.MongoDatabase;
|
||||
@ManagedResource(description = "Mongo Admin Operations")
|
||||
public class MongoAdmin implements MongoAdminOperations {
|
||||
|
||||
private final MongoClient mongoClient;
|
||||
private final Object mongoClient;
|
||||
|
||||
/**
|
||||
* @param mongoClient
|
||||
* @deprecated since 2.2 in favor of {@link MongoAdmin(com.mongodb.client.MongoClient)}.
|
||||
*/
|
||||
@Deprecated
|
||||
public MongoAdmin(MongoClient mongoClient) {
|
||||
|
||||
Assert.notNull(mongoClient, "MongoClient must not be null!");
|
||||
this.mongoClient = mongoClient;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param client the underlying {@link com.mongodb.client.MongoClient} used for data access.
|
||||
* @since 2.2
|
||||
*/
|
||||
public MongoAdmin(com.mongodb.client.MongoClient client) {
|
||||
|
||||
Assert.notNull(client, "Client must not be null!");
|
||||
this.mongoClient = client;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.springframework.data.mongodb.core.core.MongoAdminOperations#dropDatabase(java.lang.String)
|
||||
*/
|
||||
@@ -73,6 +88,11 @@ public class MongoAdmin implements MongoAdminOperations {
|
||||
}
|
||||
|
||||
MongoDatabase getDB(String databaseName) {
|
||||
return mongoClient.getDatabase(databaseName);
|
||||
|
||||
if (mongoClient instanceof MongoClient) {
|
||||
return ((MongoClient) mongoClient).getDatabase(databaseName);
|
||||
}
|
||||
|
||||
return ((com.mongodb.client.MongoClient) mongoClient).getDatabase(databaseName);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,7 +38,11 @@ import com.mongodb.ServerAddress;
|
||||
* @author Christoph Strobl
|
||||
* @author Mark Paluch
|
||||
* @since 1.7
|
||||
* @deprecated since 2.2 - There is no replacement for this {@link org.springframework.beans.factory.FactoryBean} at
|
||||
* this time. However moving forward the {@link org.springframework.beans.factory.FactoryBean} will be
|
||||
* suitable to provide instances of {@link com.mongodb.client.MongoClient}.
|
||||
*/
|
||||
@Deprecated
|
||||
public class MongoClientFactoryBean extends AbstractFactoryBean<MongoClient> implements PersistenceExceptionTranslator {
|
||||
|
||||
private static final PersistenceExceptionTranslator DEFAULT_EXCEPTION_TRANSLATOR = new MongoExceptionTranslator();
|
||||
|
||||
@@ -37,7 +37,11 @@ import com.mongodb.WriteConcern;
|
||||
* @author Oliver Gierke
|
||||
* @author Mark Paluch
|
||||
* @since 1.7
|
||||
* @deprecated since 2.2 - There is no replacement for this {@link org.springframework.beans.factory.FactoryBean}.
|
||||
* However moving forward there will be a dedicated factory bean for {@link com.mongodb.MongoClientSettings}
|
||||
* replacing {@link MongoClientOptions}.
|
||||
*/
|
||||
@Deprecated
|
||||
public class MongoClientOptionsFactoryBean extends AbstractFactoryBean<MongoClientOptions> {
|
||||
|
||||
private static final MongoClientOptions DEFAULT_MONGO_OPTIONS = MongoClientOptions.builder().build();
|
||||
|
||||
@@ -216,7 +216,9 @@ public class MongoTemplate implements MongoOperations, ApplicationContextAware,
|
||||
*
|
||||
* @param mongoClient must not be {@literal null}.
|
||||
* @param databaseName must not be {@literal null} or empty.
|
||||
* @deprecated since 2.2 in favor of {@link #MongoTemplate(com.mongodb.client.MongoClient, String)}.
|
||||
*/
|
||||
@Deprecated
|
||||
public MongoTemplate(MongoClient mongoClient, String databaseName) {
|
||||
this(new SimpleMongoDbFactory(mongoClient, databaseName), (MongoConverter) null);
|
||||
}
|
||||
|
||||
@@ -21,9 +21,7 @@ import com.mongodb.ClientSessionOptions;
|
||||
import com.mongodb.DB;
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.MongoClientURI;
|
||||
import com.mongodb.WriteConcern;
|
||||
import com.mongodb.client.ClientSession;
|
||||
import com.mongodb.client.MongoCollection;
|
||||
import com.mongodb.client.MongoDatabase;
|
||||
|
||||
/**
|
||||
@@ -35,7 +33,9 @@ import com.mongodb.client.MongoDatabase;
|
||||
* @author Christoph Strobl
|
||||
* @author George Moraitis
|
||||
* @author Mark Paluch
|
||||
* @deprecated since 2.2 in favor of {@link SimpleMongoClientDbFactory}.
|
||||
*/
|
||||
@Deprecated
|
||||
public class SimpleMongoDbFactory extends MongoDbFactorySupport<MongoClient> implements DisposableBean {
|
||||
|
||||
/**
|
||||
|
||||
@@ -15,10 +15,15 @@
|
||||
*/
|
||||
package org.springframework.data.mongodb.monitor;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.bson.Document;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.ServerAddress;
|
||||
import com.mongodb.client.MongoDatabase;
|
||||
import com.mongodb.connection.ServerDescription;
|
||||
|
||||
/**
|
||||
* Base class to encapsulate common configuration settings when connecting to a database
|
||||
@@ -29,21 +34,54 @@ import com.mongodb.client.MongoDatabase;
|
||||
*/
|
||||
public abstract class AbstractMonitor {
|
||||
|
||||
private final MongoClient mongoClient;
|
||||
private final Object mongoClient;
|
||||
|
||||
/**
|
||||
* @param mongoClient
|
||||
* @deprecated since 2.2 in favor of {@link #AbstractMonitor(com.mongodb.client.MongoClient)}
|
||||
*/
|
||||
@Deprecated
|
||||
protected AbstractMonitor(MongoClient mongoClient) {
|
||||
this.mongoClient = mongoClient;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mongoClient
|
||||
* @since 2.2
|
||||
*/
|
||||
protected AbstractMonitor(com.mongodb.client.MongoClient mongoClient) {
|
||||
this.mongoClient = mongoClient;
|
||||
}
|
||||
|
||||
public Document getServerStatus() {
|
||||
return getDb("admin").runCommand(new Document("serverStatus", 1).append("rangeDeleter", 1).append("repl", 1));
|
||||
}
|
||||
|
||||
public MongoDatabase getDb(String databaseName) {
|
||||
return mongoClient.getDatabase(databaseName);
|
||||
|
||||
if (mongoClient instanceof MongoClient) {
|
||||
return ((MongoClient) mongoClient).getDatabase(databaseName);
|
||||
}
|
||||
|
||||
return ((com.mongodb.client.MongoClient) mongoClient).getDatabase(databaseName);
|
||||
}
|
||||
|
||||
protected MongoClient getMongoClient() {
|
||||
return mongoClient;
|
||||
|
||||
if (mongoClient instanceof MongoClient) {
|
||||
return (MongoClient) mongoClient;
|
||||
}
|
||||
|
||||
throw new IllegalStateException("A com.mongodb.MongoClient is required but was com.mongodb.client.MongoClient");
|
||||
}
|
||||
|
||||
protected List<ServerAddress> hosts() {
|
||||
|
||||
if (mongoClient instanceof MongoClient) {
|
||||
return ((MongoClient) mongoClient).getServerAddressList();
|
||||
}
|
||||
|
||||
return ((com.mongodb.client.MongoClient) mongoClient).getClusterDescription().getServerDescriptions().stream()
|
||||
.map(ServerDescription::getAddress).collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,10 +32,25 @@ import com.mongodb.Mongo;
|
||||
@ManagedResource(description = "Assertion Metrics")
|
||||
public class AssertMetrics extends AbstractMonitor {
|
||||
|
||||
/**
|
||||
*
|
||||
* @param mongoClient
|
||||
* @deprecated since 2.2 in favor of {@link #AssertMetrics(com.mongodb.client.MongoClient)}
|
||||
*/
|
||||
@Deprecated
|
||||
public AssertMetrics(MongoClient mongoClient) {
|
||||
super(mongoClient);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param mongoClient
|
||||
* @since 2.2
|
||||
*/
|
||||
public AssertMetrics(com.mongodb.client.MongoClient mongoClient) {
|
||||
super(mongoClient);
|
||||
}
|
||||
|
||||
@ManagedMetric(metricType = MetricType.COUNTER, displayName = "Regular")
|
||||
public int getRegular() {
|
||||
return getBtree("regular");
|
||||
|
||||
@@ -32,10 +32,23 @@ import com.mongodb.MongoClient;
|
||||
@ManagedResource(description = "Background Flushing Metrics")
|
||||
public class BackgroundFlushingMetrics extends AbstractMonitor {
|
||||
|
||||
/**
|
||||
* @param mongoClient
|
||||
* @deprecated since 2.2 in favor of {@link #BackgroundFlushingMetrics(com.mongodb.client.MongoClient)}
|
||||
*/
|
||||
@Deprecated
|
||||
public BackgroundFlushingMetrics(MongoClient mongoClient) {
|
||||
super(mongoClient);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mongoClient
|
||||
* @since 2.2
|
||||
*/
|
||||
public BackgroundFlushingMetrics(com.mongodb.client.MongoClient mongoClient) {
|
||||
super(mongoClient);
|
||||
}
|
||||
|
||||
@ManagedMetric(metricType = MetricType.COUNTER, displayName = "Flushes")
|
||||
public int getFlushes() {
|
||||
return getFlushingData("flushes", java.lang.Integer.class);
|
||||
|
||||
@@ -30,10 +30,23 @@ import com.mongodb.MongoClient;
|
||||
@ManagedResource(description = "Btree Metrics")
|
||||
public class BtreeIndexCounters extends AbstractMonitor {
|
||||
|
||||
/**
|
||||
* @param mongoClient
|
||||
* @deprecated since 2.2 in favor of {@link #BtreeIndexCounters(com.mongodb.client.MongoClient)}
|
||||
*/
|
||||
@Deprecated
|
||||
public BtreeIndexCounters(MongoClient mongoClient) {
|
||||
super(mongoClient);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mongoClient
|
||||
* @since 2.2
|
||||
*/
|
||||
public BtreeIndexCounters(com.mongodb.client.MongoClient mongoClient) {
|
||||
super(mongoClient);
|
||||
}
|
||||
|
||||
@ManagedMetric(metricType = MetricType.GAUGE, displayName = "Accesses")
|
||||
public int getAccesses() {
|
||||
return getBtree("accesses");
|
||||
|
||||
@@ -30,10 +30,24 @@ import com.mongodb.MongoClient;
|
||||
@ManagedResource(description = "Connection metrics")
|
||||
public class ConnectionMetrics extends AbstractMonitor {
|
||||
|
||||
/**
|
||||
*
|
||||
* @param mongoClient
|
||||
* @deprecated since 2.2 in favor of {@link #ConnectionMetrics(com.mongodb.client.MongoClient)}
|
||||
*/
|
||||
@Deprecated
|
||||
public ConnectionMetrics(MongoClient mongoClient) {
|
||||
super(mongoClient);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mongoClient
|
||||
* @since 2.2
|
||||
*/
|
||||
public ConnectionMetrics(com.mongodb.client.MongoClient mongoClient) {
|
||||
super(mongoClient);
|
||||
}
|
||||
|
||||
@ManagedMetric(metricType = MetricType.GAUGE, displayName = "Current Connections")
|
||||
public int getCurrent() {
|
||||
return getConnectionData("current", java.lang.Integer.class);
|
||||
|
||||
@@ -31,10 +31,23 @@ import com.mongodb.MongoClient;
|
||||
@ManagedResource(description = "Global Lock Metrics")
|
||||
public class GlobalLockMetrics extends AbstractMonitor {
|
||||
|
||||
/**
|
||||
* @param mongoClient
|
||||
* @deprecated since 2.2 in favor of {@link #GlobalLockMetrics(com.mongodb.client.MongoClient)}
|
||||
*/
|
||||
@Deprecated
|
||||
public GlobalLockMetrics(MongoClient mongoClient) {
|
||||
super(mongoClient);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mongoClient
|
||||
* @since 2.2
|
||||
*/
|
||||
public GlobalLockMetrics(com.mongodb.client.MongoClient mongoClient) {
|
||||
super(mongoClient);
|
||||
}
|
||||
|
||||
@ManagedMetric(metricType = MetricType.COUNTER, displayName = "Total time")
|
||||
public double getTotalTime() {
|
||||
return getGlobalLockData("totalTime", java.lang.Double.class);
|
||||
|
||||
@@ -30,10 +30,23 @@ import com.mongodb.MongoClient;
|
||||
@ManagedResource(description = "Memory Metrics")
|
||||
public class MemoryMetrics extends AbstractMonitor {
|
||||
|
||||
/**
|
||||
* @param mongoClient
|
||||
* @deprecated since 2.2 in favor of {@link #MemoryMetrics(com.mongodb.client.MongoClient)}
|
||||
*/
|
||||
@Deprecated
|
||||
public MemoryMetrics(MongoClient mongoClient) {
|
||||
super(mongoClient);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mongoClient
|
||||
* @since 2.2
|
||||
*/
|
||||
public MemoryMetrics(com.mongodb.client.MongoClient mongoClient) {
|
||||
super(mongoClient);
|
||||
}
|
||||
|
||||
@ManagedMetric(metricType = MetricType.COUNTER, displayName = "Memory address size")
|
||||
public int getBits() {
|
||||
return getMemData("bits", java.lang.Integer.class);
|
||||
|
||||
@@ -31,10 +31,23 @@ import com.mongodb.MongoClient;
|
||||
@ManagedResource(description = "Operation Counters")
|
||||
public class OperationCounters extends AbstractMonitor {
|
||||
|
||||
/**
|
||||
* @param mongoClient
|
||||
* @deprecated since 2.2 in favor of {@link #OperationCounters(com.mongodb.client.MongoClient)}
|
||||
*/
|
||||
@Deprecated
|
||||
public OperationCounters(MongoClient mongoClient) {
|
||||
super(mongoClient);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mongoClient
|
||||
* @since 2.2
|
||||
*/
|
||||
public OperationCounters(com.mongodb.client.MongoClient mongoClient) {
|
||||
super(mongoClient);
|
||||
}
|
||||
|
||||
@ManagedMetric(metricType = MetricType.COUNTER, displayName = "Insert operation count")
|
||||
public int getInsertCount() {
|
||||
return getOpCounter("insert");
|
||||
|
||||
@@ -23,6 +23,7 @@ import org.springframework.jmx.export.annotation.ManagedResource;
|
||||
import org.springframework.jmx.support.MetricType;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
/**
|
||||
* Expose basic server information via JMX
|
||||
@@ -51,7 +52,7 @@ public class ServerInfo extends AbstractMonitor {
|
||||
* UnknownHostException is not necessary anymore, but clients could have
|
||||
* called this method in a try..catch(UnknownHostException) already
|
||||
*/
|
||||
return getMongoClient().getAddress().getHost();
|
||||
return StringUtils.collectionToDelimitedString(hosts(), ";");
|
||||
}
|
||||
|
||||
@ManagedMetric(displayName = "Uptime Estimate")
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
|
||||
/*
|
||||
* Copyright 2014-2019 the original author or authors.
|
||||
*
|
||||
@@ -13,10 +14,10 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
|
||||
|
||||
import com.mongodb.Mongo;
|
||||
import com.mongodb.MongoClient;
|
||||
|
||||
/**
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
package org.springframework.data.mongodb;
|
||||
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.ArgumentMatchers.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
import static org.mockito.Mockito.any;
|
||||
|
||||
@@ -34,7 +34,7 @@ import org.springframework.data.mongodb.SessionAwareMethodInterceptor.MethodCach
|
||||
import org.springframework.test.util.ReflectionTestUtils;
|
||||
import org.springframework.util.ClassUtils;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.MongoClientSettings;
|
||||
import com.mongodb.client.ClientSession;
|
||||
import com.mongodb.client.MongoCollection;
|
||||
import com.mongodb.client.MongoDatabase;
|
||||
@@ -138,7 +138,7 @@ public class SessionAwareMethodInterceptorUnitTests {
|
||||
MongoDatabase otherDb = mock(MongoDatabase.class);
|
||||
when(targetDatabase.withCodecRegistry(any())).thenReturn(otherDb);
|
||||
|
||||
MongoDatabase target = database.withCodecRegistry(MongoClient.getDefaultCodecRegistry());
|
||||
MongoDatabase target = database.withCodecRegistry(MongoClientSettings.getDefaultCodecRegistry());
|
||||
assertThat(target).isInstanceOf(Proxy.class).isNotSameAs(database).isNotSameAs(targetDatabase);
|
||||
|
||||
target.drop();
|
||||
@@ -152,7 +152,7 @@ public class SessionAwareMethodInterceptorUnitTests {
|
||||
MongoCollection otherCollection = mock(MongoCollection.class);
|
||||
when(targetCollection.withCodecRegistry(any())).thenReturn(otherCollection);
|
||||
|
||||
MongoCollection target = collection.withCodecRegistry(MongoClient.getDefaultCodecRegistry());
|
||||
MongoCollection target = collection.withCodecRegistry(MongoClientSettings.getDefaultCodecRegistry());
|
||||
assertThat(target).isInstanceOf(Proxy.class).isNotSameAs(collection).isNotSameAs(targetCollection);
|
||||
|
||||
target.drop();
|
||||
|
||||
@@ -38,11 +38,12 @@ import org.springframework.data.mongodb.core.mapping.MongoMappingContext;
|
||||
import org.springframework.data.mongodb.core.mapping.MongoPersistentEntity;
|
||||
import org.springframework.data.mongodb.repository.MongoRepository;
|
||||
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.client.MongoClient;
|
||||
|
||||
/**
|
||||
* Integration tests for auditing via Java config.
|
||||
@@ -65,7 +66,7 @@ public class AuditingViaJavaConfigRepositoriesTests {
|
||||
@Configuration
|
||||
@EnableMongoAuditing(auditorAwareRef = "auditorProvider")
|
||||
@EnableMongoRepositories(basePackageClasses = AuditablePersonRepository.class, considerNestedRepositories = true)
|
||||
static class Config extends AbstractMongoConfiguration {
|
||||
static class Config extends AbstractMongoClientConfiguration {
|
||||
|
||||
@Override
|
||||
protected String getDatabaseName() {
|
||||
@@ -74,7 +75,7 @@ public class AuditingViaJavaConfigRepositoriesTests {
|
||||
|
||||
@Override
|
||||
public MongoClient mongoClient() {
|
||||
return new MongoClient();
|
||||
return MongoTestUtils.client();
|
||||
}
|
||||
|
||||
@Bean
|
||||
@@ -197,11 +198,11 @@ public class AuditingViaJavaConfigRepositoriesTests {
|
||||
|
||||
@Configuration
|
||||
@EnableMongoAuditing
|
||||
static class SimpleConfig extends AbstractMongoConfiguration {
|
||||
static class SimpleConfig extends AbstractMongoClientConfiguration {
|
||||
|
||||
@Override
|
||||
public MongoClient mongoClient() {
|
||||
return new MongoClient();
|
||||
return MongoTestUtils.client();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -29,10 +29,11 @@ import org.springframework.context.support.AbstractApplicationContext;
|
||||
import org.springframework.context.support.ClassPathXmlApplicationContext;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
import org.springframework.data.mongodb.MongoDbFactory;
|
||||
import org.springframework.data.mongodb.core.SimpleMongoClientDbFactory;
|
||||
import org.springframework.data.mongodb.core.SimpleMongoDbFactory;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
import org.springframework.test.util.ReflectionTestUtils;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.MongoClientURI;
|
||||
import com.mongodb.MongoURI;
|
||||
import com.mongodb.WriteConcern;
|
||||
@@ -59,7 +60,7 @@ public class MongoDbFactoryParserIntegrationTests {
|
||||
@Test // DATAMONGO-2199
|
||||
public void testWriteConcern() throws Exception {
|
||||
|
||||
SimpleMongoDbFactory dbFactory = new SimpleMongoDbFactory(new MongoClient("localhost"), "database");
|
||||
SimpleMongoClientDbFactory dbFactory = new SimpleMongoClientDbFactory(MongoTestUtils.client(), "database");
|
||||
dbFactory.setWriteConcern(WriteConcern.ACKNOWLEDGED);
|
||||
dbFactory.getDb();
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ import org.springframework.data.util.Version;
|
||||
import org.springframework.test.util.ReflectionTestUtils;
|
||||
|
||||
import com.mongodb.ClientSessionOptions;
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.client.MongoClient;
|
||||
import com.mongodb.client.ClientSession;
|
||||
|
||||
/**
|
||||
|
||||
@@ -32,12 +32,13 @@ import org.springframework.dao.UncategorizedDataAccessException;
|
||||
import org.springframework.data.mongodb.core.query.Query;
|
||||
import org.springframework.data.mongodb.core.script.ExecutableMongoScript;
|
||||
import org.springframework.data.mongodb.core.script.NamedMongoScript;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
import org.springframework.data.mongodb.test.util.MongoVersionRule;
|
||||
import org.springframework.data.util.Version;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.client.MongoClient;
|
||||
|
||||
/**
|
||||
* Integration tests for {@link DefaultScriptOperations}.
|
||||
@@ -59,14 +60,13 @@ public class DefaultScriptOperationsTests {
|
||||
|
||||
@Bean
|
||||
public MongoClient mongoClient() {
|
||||
return new MongoClient();
|
||||
return MongoTestUtils.client();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public MongoTemplate template() throws Exception {
|
||||
return new MongoTemplate(mongoClient(), DB_NAME);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static final String JAVASCRIPT_COLLECTION_NAME = "system.js";
|
||||
|
||||
@@ -43,8 +43,7 @@ import org.springframework.data.mongodb.core.index.GeospatialIndex;
|
||||
import org.springframework.data.mongodb.core.mapping.Field;
|
||||
import org.springframework.data.mongodb.core.query.BasicQuery;
|
||||
import org.springframework.data.mongodb.core.query.NearQuery;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
|
||||
/**
|
||||
* Integration tests for {@link ExecutableFindOperationSupport}.
|
||||
@@ -67,7 +66,8 @@ public class ExecutableFindOperationSupportTests {
|
||||
@Before
|
||||
public void setUp() {
|
||||
|
||||
template = new MongoTemplate(new SimpleMongoDbFactory(new MongoClient(), "ExecutableFindOperationSupportTests"));
|
||||
template = new MongoTemplate(
|
||||
new SimpleMongoClientDbFactory(MongoTestUtils.client(), "ExecutableFindOperationSupportTests"));
|
||||
template.dropCollection(STAR_WARS);
|
||||
template.dropCollection(STAR_WARS_PLANETS);
|
||||
|
||||
|
||||
@@ -27,8 +27,8 @@ import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.springframework.data.annotation.Id;
|
||||
import org.springframework.data.mongodb.core.mapping.Field;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.client.result.DeleteResult;
|
||||
|
||||
/**
|
||||
@@ -48,7 +48,8 @@ public class ExecutableRemoveOperationSupportTests {
|
||||
@Before
|
||||
public void setUp() {
|
||||
|
||||
template = new MongoTemplate(new SimpleMongoDbFactory(new MongoClient(), "ExecutableRemoveOperationSupportTests"));
|
||||
template = new MongoTemplate(
|
||||
new SimpleMongoClientDbFactory(MongoTestUtils.client(), "ExecutableRemoveOperationSupportTests"));
|
||||
template.dropCollection(STAR_WARS);
|
||||
|
||||
han = new Person();
|
||||
|
||||
@@ -30,8 +30,8 @@ import org.springframework.data.annotation.Id;
|
||||
import org.springframework.data.mongodb.core.mapping.Field;
|
||||
import org.springframework.data.mongodb.core.query.Query;
|
||||
import org.springframework.data.mongodb.core.query.Update;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.client.result.UpdateResult;
|
||||
|
||||
/**
|
||||
@@ -51,7 +51,8 @@ public class ExecutableUpdateOperationSupportTests {
|
||||
@Before
|
||||
public void setUp() {
|
||||
|
||||
template = new MongoTemplate(new SimpleMongoDbFactory(new MongoClient(), "ExecutableUpdateOperationSupportTests"));
|
||||
template = new MongoTemplate(
|
||||
new SimpleMongoClientDbFactory(MongoTestUtils.client(), "ExecutableUpdateOperationSupportTests"));
|
||||
template.dropCollection(STAR_WARS);
|
||||
|
||||
han = new Person();
|
||||
|
||||
@@ -27,15 +27,16 @@ import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
|
||||
import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration;
|
||||
import org.springframework.data.mongodb.core.query.Collation;
|
||||
import org.springframework.data.mongodb.core.query.Collation.Alternate;
|
||||
import org.springframework.data.mongodb.core.query.Collation.ComparisonLevel;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
import org.springframework.data.mongodb.test.util.MongoVersionRule;
|
||||
import org.springframework.data.util.Version;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.client.MongoClient;
|
||||
|
||||
/**
|
||||
* @author Christoph Strobl
|
||||
@@ -48,11 +49,11 @@ public class MongoTemplateCollationTests {
|
||||
public static final String COLLECTION_NAME = "collation-1";
|
||||
|
||||
@Configuration
|
||||
static class Config extends AbstractMongoConfiguration {
|
||||
static class Config extends AbstractMongoClientConfiguration {
|
||||
|
||||
@Override
|
||||
public MongoClient mongoClient() {
|
||||
return new MongoClient();
|
||||
return MongoTestUtils.client();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -28,15 +28,14 @@ import java.util.List;
|
||||
import org.bson.types.ObjectId;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import org.springframework.data.annotation.Id;
|
||||
import org.springframework.data.mongodb.core.convert.LazyLoadingProxy;
|
||||
import org.springframework.data.mongodb.core.convert.LazyLoadingTestUtils;
|
||||
import org.springframework.data.mongodb.core.mapping.DBRef;
|
||||
import org.springframework.data.mongodb.core.mapping.Document;
|
||||
import org.springframework.data.mongodb.core.mapping.MongoId;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.client.model.Filters;
|
||||
|
||||
/**
|
||||
@@ -53,7 +52,7 @@ public class MongoTemplateDbRefTests {
|
||||
@Before
|
||||
public void setUp() {
|
||||
|
||||
template = new MongoTemplate(new MongoClient(), "mongo-template-dbref-tests");
|
||||
template = new MongoTemplate(MongoTestUtils.client(), "mongo-template-dbref-tests");
|
||||
|
||||
template.dropCollection(RefCycleLoadingIntoDifferentTypeRoot.class);
|
||||
template.dropCollection(RefCycleLoadingIntoDifferentTypeIntermediate.class);
|
||||
@@ -65,7 +64,7 @@ public class MongoTemplateDbRefTests {
|
||||
template.dropCollection(WithListRefToAnotherDb.class);
|
||||
template.dropCollection(WithLazyListRefToAnotherDb.class);
|
||||
|
||||
otherDbTemplate = new MongoTemplate(new MongoClient(), "mongo-template-dbref-tests-other-db");
|
||||
otherDbTemplate = new MongoTemplate(MongoTestUtils.client(), "mongo-template-dbref-tests-other-db");
|
||||
otherDbTemplate.dropCollection(JustSomeType.class);
|
||||
}
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ import org.springframework.data.annotation.Id;
|
||||
import org.springframework.data.domain.Persistable;
|
||||
import org.springframework.data.mongodb.MongoDbFactory;
|
||||
import org.springframework.data.mongodb.MongoTransactionManager;
|
||||
import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
|
||||
import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration;
|
||||
import org.springframework.data.mongodb.test.util.AfterTransactionAssertion;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
import org.springframework.data.mongodb.test.util.MongoVersionRule;
|
||||
@@ -52,8 +52,8 @@ import org.springframework.test.context.transaction.AfterTransaction;
|
||||
import org.springframework.test.context.transaction.BeforeTransaction;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.ReadPreference;
|
||||
import com.mongodb.client.MongoClient;
|
||||
import com.mongodb.client.MongoCollection;
|
||||
import com.mongodb.client.model.Filters;
|
||||
|
||||
@@ -73,7 +73,7 @@ public class MongoTemplateTransactionTests {
|
||||
static final String COLLECTION_NAME = "assassins";
|
||||
|
||||
@Configuration
|
||||
static class Config extends AbstractMongoConfiguration {
|
||||
static class Config extends AbstractMongoClientConfiguration {
|
||||
|
||||
@Bean
|
||||
public MongoClient mongoClient() {
|
||||
@@ -109,7 +109,7 @@ public class MongoTemplateTransactionTests {
|
||||
}
|
||||
|
||||
@AfterTransaction
|
||||
public void verifyDbState() {
|
||||
public void verifyDbState() {
|
||||
|
||||
MongoCollection<Document> collection = client.getDatabase(DB_NAME).withReadPreference(ReadPreference.primary())
|
||||
.getCollection(COLLECTION_NAME);
|
||||
|
||||
@@ -88,7 +88,6 @@ import org.springframework.test.util.ReflectionTestUtils;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import com.mongodb.DB;
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.MongoException;
|
||||
import com.mongodb.MongoNamespace;
|
||||
import com.mongodb.ReadPreference;
|
||||
@@ -97,6 +96,7 @@ import com.mongodb.client.AggregateIterable;
|
||||
import com.mongodb.client.DistinctIterable;
|
||||
import com.mongodb.client.FindIterable;
|
||||
import com.mongodb.client.MapReduceIterable;
|
||||
import com.mongodb.client.MongoClient;
|
||||
import com.mongodb.client.MongoCollection;
|
||||
import com.mongodb.client.MongoCursor;
|
||||
import com.mongodb.client.MongoDatabase;
|
||||
|
||||
@@ -32,16 +32,18 @@ import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.dao.DataIntegrityViolationException;
|
||||
import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration;
|
||||
import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
|
||||
import org.springframework.data.mongodb.core.CollectionOptions.ValidationOptions;
|
||||
import org.springframework.data.mongodb.core.mapping.Field;
|
||||
import org.springframework.data.mongodb.core.query.Criteria;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
import org.springframework.data.mongodb.test.util.MongoVersionRule;
|
||||
import org.springframework.data.util.Version;
|
||||
import org.springframework.lang.Nullable;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.client.MongoClient;
|
||||
import com.mongodb.client.model.ValidationAction;
|
||||
import com.mongodb.client.model.ValidationLevel;
|
||||
|
||||
@@ -61,11 +63,11 @@ public class MongoTemplateValidationTests {
|
||||
static final String COLLECTION_NAME = "validation-1";
|
||||
|
||||
@Configuration
|
||||
static class Config extends AbstractMongoConfiguration {
|
||||
static class Config extends AbstractMongoClientConfiguration {
|
||||
|
||||
@Override
|
||||
public MongoClient mongoClient() {
|
||||
return new MongoClient();
|
||||
return MongoTestUtils.client();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -25,16 +25,16 @@ import java.util.Optional;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
|
||||
import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration;
|
||||
import org.springframework.data.mongodb.repository.MongoRepository;
|
||||
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.client.MongoClient;
|
||||
|
||||
/**
|
||||
* Integration tests for DATAMONGO-1289.
|
||||
@@ -48,7 +48,7 @@ public class NoExplicitIdTests {
|
||||
|
||||
@Configuration
|
||||
@EnableMongoRepositories(considerNestedRepositories = true)
|
||||
static class Config extends AbstractMongoConfiguration {
|
||||
static class Config extends AbstractMongoClientConfiguration {
|
||||
|
||||
@Override
|
||||
protected String getDatabaseName() {
|
||||
@@ -57,7 +57,7 @@ public class NoExplicitIdTests {
|
||||
|
||||
@Override
|
||||
public MongoClient mongoClient() {
|
||||
return new MongoClient();
|
||||
return MongoTestUtils.client();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -17,15 +17,16 @@ package org.springframework.data.mongodb.core;
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.client.MongoClient;
|
||||
|
||||
@Configuration
|
||||
public class PersonExampleAppConfig {
|
||||
|
||||
@Bean
|
||||
public MongoClient mongoClient() {
|
||||
return new MongoClient("localhost");
|
||||
return MongoTestUtils.client();
|
||||
}
|
||||
|
||||
@Bean
|
||||
|
||||
@@ -32,8 +32,7 @@ import org.springframework.data.mongodb.core.mapping.Field;
|
||||
import org.springframework.data.mongodb.core.query.Criteria;
|
||||
import org.springframework.data.mongodb.core.query.Query;
|
||||
import org.springframework.data.mongodb.core.query.UntypedExampleMatcher;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
|
||||
/**
|
||||
* Integration tests for Query-by-example.
|
||||
@@ -50,7 +49,7 @@ public class QueryByExampleTests {
|
||||
@Before
|
||||
public void setUp() {
|
||||
|
||||
operations = new MongoTemplate(new MongoClient(), "query-by-example");
|
||||
operations = new MongoTemplate(MongoTestUtils.client(), "query-by-example");
|
||||
operations.remove(new Query(), Person.class);
|
||||
|
||||
p1 = new Person();
|
||||
|
||||
@@ -48,8 +48,8 @@ import org.springframework.data.mongodb.core.mapping.Field;
|
||||
import org.springframework.data.mongodb.core.query.BasicQuery;
|
||||
import org.springframework.data.mongodb.core.query.Criteria;
|
||||
import org.springframework.data.mongodb.core.query.NearQuery;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.reactivestreams.client.MongoClients;
|
||||
|
||||
/**
|
||||
@@ -70,7 +70,8 @@ public class ReactiveFindOperationSupportTests {
|
||||
@Before
|
||||
public void setUp() {
|
||||
|
||||
blocking = new MongoTemplate(new SimpleMongoDbFactory(new MongoClient(), "ExecutableFindOperationSupportTests"));
|
||||
blocking = new MongoTemplate(
|
||||
new SimpleMongoClientDbFactory(MongoTestUtils.client(), "ExecutableFindOperationSupportTests"));
|
||||
recreateCollection(STAR_WARS, false);
|
||||
|
||||
insertObjects();
|
||||
@@ -161,8 +162,7 @@ public class ReactiveFindOperationSupportTests {
|
||||
public void findAllByWithCollectionUsingMappingInformation() {
|
||||
|
||||
template.query(Jedi.class).inCollection(STAR_WARS).matching(query(where("name").is("luke"))).all()
|
||||
.as(StepVerifier::create)
|
||||
.consumeNextWith(it -> assertThat(it).isInstanceOf(Jedi.class)) //
|
||||
.as(StepVerifier::create).consumeNextWith(it -> assertThat(it).isInstanceOf(Jedi.class)) //
|
||||
.verifyComplete();
|
||||
}
|
||||
|
||||
@@ -170,8 +170,7 @@ public class ReactiveFindOperationSupportTests {
|
||||
public void findAllByWithCollection() {
|
||||
|
||||
template.query(Human.class).inCollection(STAR_WARS).matching(query(where("firstname").is("luke"))).all()
|
||||
.as(StepVerifier::create)
|
||||
.expectNextCount(1) //
|
||||
.as(StepVerifier::create).expectNextCount(1) //
|
||||
.verifyComplete();
|
||||
}
|
||||
|
||||
@@ -179,8 +178,7 @@ public class ReactiveFindOperationSupportTests {
|
||||
public void findAllByWithProjection() {
|
||||
|
||||
template.query(Person.class).as(Jedi.class).matching(query(where("firstname").is("luke"))).all()
|
||||
.as(StepVerifier::create)
|
||||
.consumeNextWith(it -> assertThat(it).isInstanceOf(Jedi.class)) //
|
||||
.as(StepVerifier::create).consumeNextWith(it -> assertThat(it).isInstanceOf(Jedi.class)) //
|
||||
.verifyComplete();
|
||||
}
|
||||
|
||||
@@ -188,8 +186,7 @@ public class ReactiveFindOperationSupportTests {
|
||||
public void findAllByWithClosedInterfaceProjection() {
|
||||
|
||||
template.query(Person.class).as(PersonProjection.class).matching(query(where("firstname").is("luke"))).all()
|
||||
.as(StepVerifier::create)
|
||||
.consumeNextWith(it -> {
|
||||
.as(StepVerifier::create).consumeNextWith(it -> {
|
||||
|
||||
assertThat(it).isInstanceOf(PersonProjection.class);
|
||||
assertThat(it.getFirstname()).isEqualTo("luke");
|
||||
@@ -410,8 +407,7 @@ public class ReactiveFindOperationSupportTests {
|
||||
public void countShouldReturnNrOfElementsMatchingQuery() {
|
||||
|
||||
template.query(Person.class).matching(query(where("firstname").is(luke.getFirstname()))).count()
|
||||
.as(StepVerifier::create)
|
||||
.expectNext(1L) //
|
||||
.as(StepVerifier::create).expectNext(1L) //
|
||||
.verifyComplete();
|
||||
}
|
||||
|
||||
@@ -432,8 +428,7 @@ public class ReactiveFindOperationSupportTests {
|
||||
public void existsShouldReturnTrueIfAtLeastOneElementMatchesQuery() {
|
||||
|
||||
template.query(Person.class).matching(query(where("firstname").is(luke.getFirstname()))).exists()
|
||||
.as(StepVerifier::create)
|
||||
.expectNext(true) //
|
||||
.as(StepVerifier::create).expectNext(true) //
|
||||
.verifyComplete();
|
||||
}
|
||||
|
||||
@@ -449,8 +444,7 @@ public class ReactiveFindOperationSupportTests {
|
||||
public void distinctReturnsEmptyListIfNoMatchFound() {
|
||||
|
||||
template.query(Person.class).distinct("actually-not-property-in-use").as(String.class).all()
|
||||
.as(StepVerifier::create)
|
||||
.verifyComplete();
|
||||
.as(StepVerifier::create).verifyComplete();
|
||||
}
|
||||
|
||||
@Test // DATAMONGO-1761
|
||||
@@ -596,8 +590,7 @@ public class ReactiveFindOperationSupportTests {
|
||||
blocking.save(luke);
|
||||
|
||||
template.query(Object.class).inCollection(STAR_WARS).distinct("father").as(Jedi.class).all()
|
||||
.as(StepVerifier::create)
|
||||
.expectNext(new Jedi("anakin")) //
|
||||
.as(StepVerifier::create).expectNext(new Jedi("anakin")) //
|
||||
.verifyComplete();
|
||||
}
|
||||
|
||||
|
||||
@@ -26,8 +26,8 @@ import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.springframework.data.annotation.Id;
|
||||
import org.springframework.data.mongodb.core.mapping.Field;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.reactivestreams.client.MongoClients;
|
||||
|
||||
/**
|
||||
@@ -47,7 +47,8 @@ public class ReactiveRemoveOperationSupportTests {
|
||||
@Before
|
||||
public void setUp() {
|
||||
|
||||
blocking = new MongoTemplate(new SimpleMongoDbFactory(new MongoClient(), "ExecutableRemoveOperationSupportTests"));
|
||||
blocking = new MongoTemplate(
|
||||
new SimpleMongoClientDbFactory(MongoTestUtils.client(), "ExecutableRemoveOperationSupportTests"));
|
||||
blocking.dropCollection(STAR_WARS);
|
||||
|
||||
han = new Person();
|
||||
@@ -83,8 +84,8 @@ public class ReactiveRemoveOperationSupportTests {
|
||||
public void removeAllMatchingWithAlternateDomainTypeAndCollection() {
|
||||
|
||||
template.remove(Jedi.class).inCollection(STAR_WARS).matching(query(where("name").is("luke"))).all()
|
||||
.as(StepVerifier::create)
|
||||
.consumeNextWith(actual -> assertThat(actual.getDeletedCount()).isEqualTo(1L)).verifyComplete();
|
||||
.as(StepVerifier::create).consumeNextWith(actual -> assertThat(actual.getDeletedCount()).isEqualTo(1L))
|
||||
.verifyComplete();
|
||||
}
|
||||
|
||||
@Test // DATAMONGO-1719
|
||||
|
||||
@@ -20,6 +20,7 @@ import static org.springframework.data.mongodb.core.query.Criteria.*;
|
||||
import static org.springframework.data.mongodb.core.query.Query.*;
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
import reactor.test.StepVerifier;
|
||||
|
||||
import org.bson.BsonString;
|
||||
@@ -50,7 +51,7 @@ public class ReactiveUpdateOperationSupportTests {
|
||||
@Before
|
||||
public void setUp() {
|
||||
|
||||
blocking = new MongoTemplate(new SimpleMongoDbFactory(new MongoClient(), "ExecutableUpdateOperationSupportTests"));
|
||||
blocking = new MongoTemplate(new SimpleMongoClientDbFactory(MongoTestUtils.client(), "ExecutableUpdateOperationSupportTests"));
|
||||
blocking.dropCollection(STAR_WARS);
|
||||
|
||||
han = new Person();
|
||||
|
||||
@@ -43,7 +43,6 @@ import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
import org.junit.rules.TestRule;
|
||||
import org.mockito.Mockito;
|
||||
|
||||
import org.springframework.aop.Advisor;
|
||||
import org.springframework.aop.framework.Advised;
|
||||
import org.springframework.dao.DataAccessException;
|
||||
@@ -71,8 +70,8 @@ import org.springframework.data.util.Version;
|
||||
import org.springframework.test.util.ReflectionTestUtils;
|
||||
|
||||
import com.mongodb.ClientSessionOptions;
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.client.ClientSession;
|
||||
import com.mongodb.client.MongoClient;
|
||||
import com.mongodb.client.MongoCollection;
|
||||
import com.mongodb.client.MongoDatabase;
|
||||
|
||||
@@ -98,7 +97,7 @@ public class SessionBoundMongoTemplateTests {
|
||||
|
||||
client = MongoTestUtils.replSetClient();
|
||||
|
||||
MongoDbFactory factory = new SimpleMongoDbFactory(client, "session-bound-mongo-template-tests") {
|
||||
MongoDbFactory factory = new SimpleMongoClientDbFactory(client, "session-bound-mongo-template-tests") {
|
||||
|
||||
@Override
|
||||
public MongoDatabase getDb() throws DataAccessException {
|
||||
|
||||
@@ -31,7 +31,6 @@ import org.junit.runner.RunWith;
|
||||
import org.mockito.Answers;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
import org.springframework.data.geo.Metrics;
|
||||
import org.springframework.data.geo.Point;
|
||||
import org.springframework.data.mongodb.MongoDbFactory;
|
||||
@@ -46,12 +45,12 @@ import org.springframework.data.mongodb.core.query.NearQuery;
|
||||
import org.springframework.data.mongodb.core.query.Query;
|
||||
import org.springframework.data.mongodb.core.query.Update;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.client.AggregateIterable;
|
||||
import com.mongodb.client.ClientSession;
|
||||
import com.mongodb.client.DistinctIterable;
|
||||
import com.mongodb.client.FindIterable;
|
||||
import com.mongodb.client.MapReduceIterable;
|
||||
import com.mongodb.client.MongoClient;
|
||||
import com.mongodb.client.MongoCollection;
|
||||
import com.mongodb.client.MongoCursor;
|
||||
import com.mongodb.client.MongoDatabase;
|
||||
@@ -125,7 +124,7 @@ public class SessionBoundMongoTemplateUnitTests {
|
||||
when(cursor.hasNext()).thenReturn(false);
|
||||
when(findIterable.projection(any())).thenReturn(findIterable);
|
||||
|
||||
factory = new SimpleMongoDbFactory(client, "foo");
|
||||
factory = new SimpleMongoClientDbFactory(client, "foo");
|
||||
|
||||
this.mappingContext = new MongoMappingContext();
|
||||
this.converter = new MappingMongoConverter(new DefaultDbRefResolver(factory), mappingContext);
|
||||
|
||||
@@ -26,14 +26,13 @@ import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
import org.springframework.aop.framework.AopProxyUtils;
|
||||
import org.springframework.data.mongodb.MongoDbFactory;
|
||||
import org.springframework.test.util.ReflectionTestUtils;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.MongoClientURI;
|
||||
import com.mongodb.client.ClientSession;
|
||||
import com.mongodb.client.MongoClient;
|
||||
import com.mongodb.client.MongoDatabase;
|
||||
|
||||
/**
|
||||
@@ -64,9 +63,9 @@ public class SimpleMongoDbFactoryUnitTests {
|
||||
@Test // DATADOC-254
|
||||
@SuppressWarnings("deprecation")
|
||||
public void allowsDatabaseNames() {
|
||||
new SimpleMongoDbFactory(mongo, "foo-bar");
|
||||
new SimpleMongoDbFactory(mongo, "foo_bar");
|
||||
new SimpleMongoDbFactory(mongo, "foo01231bar");
|
||||
new SimpleMongoClientDbFactory(mongo, "foo-bar");
|
||||
new SimpleMongoClientDbFactory(mongo, "foo_bar");
|
||||
new SimpleMongoClientDbFactory(mongo, "foo01231bar");
|
||||
}
|
||||
|
||||
@Test // DATADOC-295
|
||||
@@ -93,7 +92,7 @@ public class SimpleMongoDbFactoryUnitTests {
|
||||
|
||||
when(mongo.getDatabase("foo")).thenReturn(database);
|
||||
|
||||
MongoDbFactory factory = new SimpleMongoDbFactory(mongo, "foo");
|
||||
MongoDbFactory factory = new SimpleMongoClientDbFactory(mongo, "foo");
|
||||
MongoDbFactory wrapped = factory.withSession(clientSession).withSession(clientSession);
|
||||
|
||||
InvocationHandler invocationHandler = Proxy.getInvocationHandler(wrapped.getDb());
|
||||
@@ -105,7 +104,7 @@ public class SimpleMongoDbFactoryUnitTests {
|
||||
}
|
||||
|
||||
private void rejectsDatabaseName(String databaseName) {
|
||||
assertThatThrownBy(() -> new SimpleMongoDbFactory(mongo, databaseName))
|
||||
assertThatThrownBy(() -> new SimpleMongoClientDbFactory(mongo, databaseName))
|
||||
.isInstanceOf(IllegalArgumentException.class);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,13 +21,14 @@ import java.util.List;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.core.convert.converter.Converter;
|
||||
import org.springframework.data.convert.CustomConversions;
|
||||
import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
|
||||
import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration;
|
||||
import org.springframework.data.mongodb.core.convert.MongoCustomConversions;
|
||||
import org.springframework.data.mongodb.core.mapping.MongoMappingContext;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.client.MongoClient;
|
||||
|
||||
public class TestMongoConfiguration extends AbstractMongoConfiguration {
|
||||
public class TestMongoConfiguration extends AbstractMongoClientConfiguration {
|
||||
|
||||
@Override
|
||||
public String getDatabaseName() {
|
||||
@@ -37,7 +38,7 @@ public class TestMongoConfiguration extends AbstractMongoConfiguration {
|
||||
@Override
|
||||
@Bean
|
||||
public MongoClient mongoClient() {
|
||||
return new MongoClient("127.0.0.1", 27017);
|
||||
return MongoTestUtils.client();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -27,15 +27,17 @@ import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.data.annotation.Id;
|
||||
import org.springframework.data.annotation.LastModifiedDate;
|
||||
import org.springframework.data.annotation.Version;
|
||||
import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration;
|
||||
import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
|
||||
import org.springframework.data.mongodb.config.EnableMongoAuditing;
|
||||
import org.springframework.data.mongodb.core.KAuditableVersionedEntity;
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
import org.springframework.data.mongodb.core.query.Criteria;
|
||||
import org.springframework.data.mongodb.core.query.Query;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.client.MongoClient;
|
||||
|
||||
/**
|
||||
* @author Christoph Strobl
|
||||
@@ -45,11 +47,11 @@ public class MongoTemplateAuditingTests {
|
||||
|
||||
@Configuration
|
||||
@EnableMongoAuditing
|
||||
static class Conf extends AbstractMongoConfiguration {
|
||||
static class Conf extends AbstractMongoClientConfiguration {
|
||||
|
||||
@Override
|
||||
public MongoClient mongoClient() {
|
||||
return new MongoClient();
|
||||
return MongoTestUtils.client();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
package org.springframework.data.mongodb.core.convert;
|
||||
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
import static org.mockito.ArgumentMatchers.isNull;
|
||||
import static org.mockito.ArgumentMatchers.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
import static org.mockito.Mockito.any;
|
||||
|
||||
@@ -32,11 +32,12 @@ import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.springframework.data.annotation.Id;
|
||||
import org.springframework.data.mongodb.MongoDbFactory;
|
||||
import org.springframework.data.mongodb.core.SimpleMongoDbFactory;
|
||||
import org.springframework.data.mongodb.core.SimpleMongoClientDbFactory;
|
||||
import org.springframework.data.mongodb.core.mapping.DBRef;
|
||||
import org.springframework.data.mongodb.core.mapping.MongoMappingContext;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.client.MongoClient;
|
||||
import com.mongodb.client.MongoClients;
|
||||
|
||||
/**
|
||||
* Integration tests for {@link MappingMongoConverter}.
|
||||
@@ -54,10 +55,10 @@ public class MappingMongoConverterTests {
|
||||
@Before
|
||||
public void setUp() {
|
||||
|
||||
client = new MongoClient();
|
||||
client.dropDatabase("mapping-converter-tests");
|
||||
client = MongoClients.create();
|
||||
client.getDatabase("mapping-converter-tests").drop();
|
||||
|
||||
MongoDbFactory factory = new SimpleMongoDbFactory(client, "mapping-converter-tests");
|
||||
MongoDbFactory factory = new SimpleMongoClientDbFactory(client, "mapping-converter-tests");
|
||||
|
||||
dbRefResolver = spy(new DefaultDbRefResolver(factory));
|
||||
mappingContext = new MongoMappingContext();
|
||||
|
||||
@@ -34,17 +34,18 @@ import org.springframework.data.geo.GeoResults;
|
||||
import org.springframework.data.geo.Metrics;
|
||||
import org.springframework.data.geo.Point;
|
||||
import org.springframework.data.geo.Polygon;
|
||||
import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
|
||||
import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration;
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
import org.springframework.data.mongodb.core.TestEntities;
|
||||
import org.springframework.data.mongodb.core.Venue;
|
||||
import org.springframework.data.mongodb.core.query.NearQuery;
|
||||
import org.springframework.data.mongodb.core.query.Query;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.WriteConcern;
|
||||
import com.mongodb.client.MongoClient;
|
||||
|
||||
/**
|
||||
* @author Christoph Strobl
|
||||
@@ -55,7 +56,7 @@ import com.mongodb.WriteConcern;
|
||||
public abstract class AbstractGeoSpatialTests {
|
||||
|
||||
@Configuration
|
||||
static class TestConfig extends AbstractMongoConfiguration {
|
||||
static class TestConfig extends AbstractMongoClientConfiguration {
|
||||
|
||||
@Override
|
||||
protected String getDatabaseName() {
|
||||
@@ -64,7 +65,7 @@ public abstract class AbstractGeoSpatialTests {
|
||||
|
||||
@Override
|
||||
public MongoClient mongoClient() {
|
||||
return new MongoClient();
|
||||
return MongoTestUtils.client();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ import org.springframework.data.annotation.PersistenceConstructor;
|
||||
import org.springframework.data.geo.GeoResults;
|
||||
import org.springframework.data.geo.Metrics;
|
||||
import org.springframework.data.geo.Point;
|
||||
import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
|
||||
import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration;
|
||||
import org.springframework.data.mongodb.core.CollectionCallback;
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
import org.springframework.data.mongodb.core.index.GeoSpatialIndexType;
|
||||
@@ -47,12 +47,13 @@ import org.springframework.data.mongodb.core.mapping.Document;
|
||||
import org.springframework.data.mongodb.core.query.NearQuery;
|
||||
import org.springframework.data.mongodb.core.query.Query;
|
||||
import org.springframework.data.mongodb.test.util.BasicDbListBuilder;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.MongoException;
|
||||
import com.mongodb.WriteConcern;
|
||||
import com.mongodb.client.MongoClient;
|
||||
import com.mongodb.client.MongoCollection;
|
||||
|
||||
/**
|
||||
@@ -64,7 +65,7 @@ import com.mongodb.client.MongoCollection;
|
||||
public class GeoJsonTests {
|
||||
|
||||
@Configuration
|
||||
static class TestConfig extends AbstractMongoConfiguration {
|
||||
static class TestConfig extends AbstractMongoClientConfiguration {
|
||||
|
||||
@Override
|
||||
protected String getDatabaseName() {
|
||||
@@ -73,7 +74,7 @@ public class GeoJsonTests {
|
||||
|
||||
@Override
|
||||
public MongoClient mongoClient() {
|
||||
return new MongoClient();
|
||||
return MongoTestUtils.client();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -38,6 +38,7 @@ import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.data.mongodb.MongoCollectionUtils;
|
||||
import org.springframework.data.mongodb.MongoDbFactory;
|
||||
import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration;
|
||||
import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
|
||||
import org.springframework.data.mongodb.core.MongoOperations;
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
@@ -46,11 +47,12 @@ import org.springframework.data.mongodb.core.convert.NoOpDbRefResolver;
|
||||
import org.springframework.data.mongodb.core.mapping.Document;
|
||||
import org.springframework.data.mongodb.core.mapping.Field;
|
||||
import org.springframework.data.mongodb.core.mapping.MongoMappingContext;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
import org.springframework.test.annotation.DirtiesContext;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.client.MongoClient;
|
||||
|
||||
/**
|
||||
* Integration tests for index handling.
|
||||
@@ -69,11 +71,11 @@ public class IndexingIntegrationTests {
|
||||
@Autowired ConfigurableApplicationContext context;
|
||||
|
||||
@Configuration
|
||||
static class Config extends AbstractMongoConfiguration {
|
||||
static class Config extends AbstractMongoClientConfiguration {
|
||||
|
||||
@Override
|
||||
public MongoClient mongoClient() {
|
||||
return new MongoClient();
|
||||
return MongoTestUtils.client();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -27,7 +27,6 @@ import org.junit.Test;
|
||||
import org.junit.rules.ExpectedException;
|
||||
import org.junit.rules.RuleChain;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.dao.DataIntegrityViolationException;
|
||||
@@ -39,12 +38,12 @@ import org.springframework.data.mongodb.core.index.MongoPersistentEntityIndexRes
|
||||
import org.springframework.data.mongodb.core.mapping.Document;
|
||||
import org.springframework.data.mongodb.core.mapping.MongoMappingContext;
|
||||
import org.springframework.data.mongodb.test.util.CleanMongoDB;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
import org.springframework.data.mongodb.test.util.MongoVersionRule;
|
||||
import org.springframework.data.util.Version;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.MongoCommandException;
|
||||
|
||||
/**
|
||||
@@ -99,7 +98,7 @@ public class MongoPersistentEntityIndexCreatorIntegrationTests {
|
||||
expectedException.expectMessage("lastname");
|
||||
expectedException.expectCause(IsInstanceOf.<Throwable> instanceOf(MongoCommandException.class));
|
||||
|
||||
MongoTemplate mongoTemplate = new MongoTemplate(new MongoClient(), "issue");
|
||||
MongoTemplate mongoTemplate = new MongoTemplate(MongoTestUtils.client(), "issue");
|
||||
|
||||
MongoPersistentEntityIndexCreator indexCreator = new MongoPersistentEntityIndexCreator(new MongoMappingContext(),
|
||||
mongoTemplate);
|
||||
|
||||
@@ -16,13 +16,13 @@
|
||||
package org.springframework.data.mongodb.core.mapping;
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
|
||||
import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration;
|
||||
import org.springframework.data.mongodb.core.mapping.event.LoggingEventListener;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
|
||||
import com.mongodb.Mongo;
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.client.MongoClient;
|
||||
|
||||
public class GeoIndexedAppConfig extends AbstractMongoConfiguration {
|
||||
public class GeoIndexedAppConfig extends AbstractMongoClientConfiguration {
|
||||
|
||||
public static String GEO_DB = "database";
|
||||
public static String GEO_COLLECTION = "geolocation";
|
||||
@@ -35,7 +35,7 @@ public class GeoIndexedAppConfig extends AbstractMongoConfiguration {
|
||||
@Override
|
||||
@Bean
|
||||
public MongoClient mongoClient() {
|
||||
return new MongoClient("127.0.0.1");
|
||||
return MongoTestUtils.client();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -17,7 +17,6 @@ package org.springframework.data.mongodb.core.mapping;
|
||||
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
|
||||
import java.net.UnknownHostException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -31,11 +30,12 @@ import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.dao.DataAccessException;
|
||||
import org.springframework.data.mongodb.core.CollectionCallback;
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.MongoException;
|
||||
import com.mongodb.client.MongoClient;
|
||||
import com.mongodb.client.MongoCollection;
|
||||
import com.mongodb.client.MongoDatabase;
|
||||
|
||||
@@ -55,18 +55,18 @@ public class GeoIndexedTests {
|
||||
@Autowired MongoMappingContext mappingContext;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
public void setUp() {
|
||||
cleanDb();
|
||||
}
|
||||
|
||||
@After
|
||||
public void cleanUp() throws Exception {
|
||||
public void cleanUp() {
|
||||
cleanDb();
|
||||
}
|
||||
|
||||
private void cleanDb() throws UnknownHostException {
|
||||
private void cleanDb() {
|
||||
|
||||
MongoClient mongo = new MongoClient();
|
||||
MongoClient mongo = MongoTestUtils.client();
|
||||
MongoDatabase db = mongo.getDatabase(GeoIndexedAppConfig.GEO_DB);
|
||||
|
||||
for (String coll : collectionsToDrop) {
|
||||
|
||||
@@ -20,6 +20,7 @@ import static org.springframework.data.mongodb.core.DocumentTestUtils.*;
|
||||
import static org.springframework.data.mongodb.core.query.Criteria.*;
|
||||
import static org.springframework.data.mongodb.core.query.Query.*;
|
||||
|
||||
import com.mongodb.client.MongoClients;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
|
||||
@@ -33,7 +34,6 @@ import org.junit.AfterClass;
|
||||
import org.junit.Before;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
|
||||
import org.springframework.data.annotation.Id;
|
||||
@@ -47,8 +47,8 @@ import org.springframework.data.mongodb.repository.query.MongoEntityInformation;
|
||||
import org.springframework.data.mongodb.repository.support.MongoRepositoryFactory;
|
||||
import org.springframework.data.mongodb.repository.support.QuerydslMongoPredicateExecutor;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.WriteConcern;
|
||||
import com.mongodb.client.MongoClient;
|
||||
import com.mongodb.client.MongoDatabase;
|
||||
|
||||
/**
|
||||
@@ -75,7 +75,7 @@ public class ApplicationContextEventTests {
|
||||
|
||||
@BeforeClass
|
||||
public static void beforeClass() {
|
||||
mongo = new MongoClient();
|
||||
mongo = MongoClients.create();
|
||||
}
|
||||
|
||||
@AfterClass
|
||||
|
||||
@@ -17,12 +17,14 @@ package org.springframework.data.mongodb.core.mapping.event;
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration;
|
||||
import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.client.MongoClient;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
|
||||
@Configuration
|
||||
public class ApplicationContextEventTestsAppConfig extends AbstractMongoConfiguration {
|
||||
public class ApplicationContextEventTestsAppConfig extends AbstractMongoClientConfiguration {
|
||||
|
||||
@Override
|
||||
public String getDatabaseName() {
|
||||
@@ -32,7 +34,7 @@ public class ApplicationContextEventTestsAppConfig extends AbstractMongoConfigur
|
||||
@Override
|
||||
@Bean
|
||||
public MongoClient mongoClient() {
|
||||
return new MongoClient("127.0.0.1");
|
||||
return MongoTestUtils.client();
|
||||
}
|
||||
|
||||
@Bean
|
||||
|
||||
@@ -37,8 +37,10 @@ import org.springframework.dao.DataAccessException;
|
||||
import org.springframework.data.annotation.Id;
|
||||
import org.springframework.data.mongodb.MongoDbFactory;
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
import org.springframework.data.mongodb.core.SimpleMongoClientDbFactory;
|
||||
import org.springframework.data.mongodb.core.SimpleMongoDbFactory;
|
||||
import org.springframework.data.mongodb.core.messaging.SubscriptionRequest.RequestOptions;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
import org.springframework.data.mongodb.test.util.ReplicaSet;
|
||||
import org.springframework.test.annotation.IfProfileValue;
|
||||
import org.springframework.util.ErrorHandler;
|
||||
@@ -71,7 +73,7 @@ public class DefaultMessageListenerContainerTests {
|
||||
@Before
|
||||
public void setUp() {
|
||||
|
||||
dbFactory = new SimpleMongoDbFactory(new MongoClient(), DATABASE_NAME);
|
||||
dbFactory = new SimpleMongoClientDbFactory(MongoTestUtils.client(), DATABASE_NAME);
|
||||
template = new MongoTemplate(dbFactory);
|
||||
|
||||
template.dropCollection(COLLECTION_NAME);
|
||||
|
||||
@@ -40,6 +40,7 @@ import org.springframework.data.mongodb.core.messaging.Message.MessageProperties
|
||||
import org.springframework.data.mongodb.core.messaging.TailableCursorRequest.TailableCursorRequestOptions;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
|
||||
/**
|
||||
* Integration test for subscribing to a capped {@link com.mongodb.client.MongoCollection} inside the
|
||||
@@ -68,7 +69,7 @@ public class TailableCursorTests {
|
||||
@Before
|
||||
public void setUp() {
|
||||
|
||||
template = new MongoTemplate(new MongoClient(), "tailable-cursor-tests");
|
||||
template = new MongoTemplate(MongoTestUtils.client(), "tailable-cursor-tests");
|
||||
|
||||
template.dropCollection(User.class);
|
||||
template.createCollection(User.class, CollectionOptions.empty().capped().maxDocuments(10000).size(10000));
|
||||
|
||||
@@ -19,6 +19,7 @@ import static org.assertj.core.api.Assertions.*;
|
||||
import static org.springframework.data.mongodb.core.query.Criteria.*;
|
||||
import static org.springframework.data.mongodb.core.query.Query.*;
|
||||
|
||||
import com.mongodb.client.MongoClients;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
@@ -33,7 +34,7 @@ import org.springframework.data.mongodb.core.MongoOperations;
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
import org.springframework.util.Base64Utils;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.client.MongoClient;
|
||||
|
||||
/**
|
||||
* Integration tests for {@link Criteria} usage as part of a {@link Query}.
|
||||
@@ -58,7 +59,7 @@ public class CriteriaTests {
|
||||
@Before
|
||||
public void setUp() {
|
||||
|
||||
client = new MongoClient();
|
||||
client = MongoClients.create();
|
||||
ops = new MongoTemplate(client, "criteria-tests");
|
||||
|
||||
ops.dropCollection(DocumentWithBitmask.class);
|
||||
|
||||
@@ -29,18 +29,19 @@ import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
|
||||
import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration;
|
||||
import org.springframework.data.mongodb.core.CollectionOptions;
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
import org.springframework.data.mongodb.core.convert.MongoJsonSchemaMapper;
|
||||
import org.springframework.data.mongodb.core.mapping.Field;
|
||||
import org.springframework.data.mongodb.core.validation.Validator;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
import org.springframework.data.mongodb.test.util.MongoVersionRule;
|
||||
import org.springframework.data.util.Version;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.client.MongoClient;
|
||||
import com.mongodb.client.MongoDatabase;
|
||||
import com.mongodb.client.model.CreateCollectionOptions;
|
||||
import com.mongodb.client.model.ValidationAction;
|
||||
@@ -59,11 +60,11 @@ public class MongoJsonSchemaTests {
|
||||
public static @ClassRule MongoVersionRule REQUIRES_AT_LEAST_3_6_0 = MongoVersionRule.atLeast(Version.parse("3.6.0"));
|
||||
|
||||
@Configuration
|
||||
static class Config extends AbstractMongoConfiguration {
|
||||
static class Config extends AbstractMongoClientConfiguration {
|
||||
|
||||
@Override
|
||||
public MongoClient mongoClient() {
|
||||
return new MongoClient();
|
||||
return MongoTestUtils.client();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -60,7 +60,7 @@ public class MongoMonitorIntegrationTests {
|
||||
}
|
||||
|
||||
assertThat(hostName).isNotNull();
|
||||
assertThat(hostName).isEqualTo("127.0.0.1");
|
||||
assertThat(hostName).isEqualTo("127.0.0.1:27017");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -23,8 +23,6 @@ import java.util.*;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.mongodb.client.FindIterable;
|
||||
import com.mongodb.client.model.CreateCollectionOptions;
|
||||
import org.bson.Document;
|
||||
import org.bson.types.ObjectId;
|
||||
import org.junit.Before;
|
||||
@@ -32,7 +30,7 @@ import org.junit.Test;
|
||||
import org.springframework.core.Constants;
|
||||
import org.springframework.data.annotation.PersistenceConstructor;
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
import org.springframework.data.mongodb.core.SimpleMongoDbFactory;
|
||||
import org.springframework.data.mongodb.core.SimpleMongoClientDbFactory;
|
||||
import org.springframework.data.mongodb.core.convert.DefaultDbRefResolver;
|
||||
import org.springframework.data.mongodb.core.convert.MappingMongoConverter;
|
||||
import org.springframework.data.mongodb.core.convert.MongoConverter;
|
||||
@@ -43,15 +41,13 @@ import org.springframework.util.Assert;
|
||||
import org.springframework.util.StopWatch;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import com.mongodb.BasicDBList;
|
||||
import com.mongodb.BasicDBObject;
|
||||
import com.mongodb.DBCollection;
|
||||
import com.mongodb.DBCursor;
|
||||
import com.mongodb.DBObject;
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.WriteConcern;
|
||||
import com.mongodb.client.FindIterable;
|
||||
import com.mongodb.client.MongoClient;
|
||||
import com.mongodb.client.MongoClients;
|
||||
import com.mongodb.client.MongoCollection;
|
||||
import com.mongodb.client.MongoDatabase;
|
||||
import com.mongodb.client.model.CreateCollectionOptions;
|
||||
|
||||
/**
|
||||
* Test class to execute performance tests for plain MongoDB driver usage, {@link MongoTemplate} and the repositories
|
||||
@@ -80,16 +76,16 @@ public class PerformanceTests {
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
|
||||
this.mongo = new MongoClient();
|
||||
this.mongo = MongoClients.create();
|
||||
|
||||
SimpleMongoDbFactory mongoDbFactory = new SimpleMongoDbFactory(this.mongo, DATABASE_NAME);
|
||||
SimpleMongoClientDbFactory mongoDbFactory = new SimpleMongoClientDbFactory(this.mongo, DATABASE_NAME);
|
||||
|
||||
MongoMappingContext context = new MongoMappingContext();
|
||||
context.setInitialEntitySet(Collections.singleton(Person.class));
|
||||
context.afterPropertiesSet();
|
||||
|
||||
this.converter = new MappingMongoConverter(new DefaultDbRefResolver(mongoDbFactory), context);
|
||||
this.operations = new MongoTemplate(new SimpleMongoDbFactory(this.mongo, DATABASE_NAME), converter);
|
||||
this.operations = new MongoTemplate(new SimpleMongoClientDbFactory(this.mongo, DATABASE_NAME), converter);
|
||||
|
||||
MongoRepositoryFactoryBean<PersonRepository, Person, ObjectId> factory = new MongoRepositoryFactoryBean<PersonRepository, Person, ObjectId>(
|
||||
PersonRepository.class);
|
||||
@@ -106,11 +102,11 @@ public class PerformanceTests {
|
||||
public void doWithWriteConcern(String constantName, WriteConcern concern) {
|
||||
writeHeadline("WriteConcern: " + constantName);
|
||||
System.out.println(String.format("Writing %s objects using plain driver took %sms", NUMBER_OF_PERSONS,
|
||||
writingObjectsUsingPlainDriver(NUMBER_OF_PERSONS)));
|
||||
writingObjectsUsingPlainDriver(NUMBER_OF_PERSONS, concern)));
|
||||
System.out.println(String.format("Writing %s objects using template took %sms", NUMBER_OF_PERSONS,
|
||||
writingObjectsUsingMongoTemplate(NUMBER_OF_PERSONS)));
|
||||
writingObjectsUsingMongoTemplate(NUMBER_OF_PERSONS, concern)));
|
||||
System.out.println(String.format("Writing %s objects using repository took %sms", NUMBER_OF_PERSONS,
|
||||
writingObjectsUsingRepositories(NUMBER_OF_PERSONS)));
|
||||
writingObjectsUsingRepositories(NUMBER_OF_PERSONS, concern)));
|
||||
writeFooter();
|
||||
}
|
||||
});
|
||||
@@ -174,13 +170,10 @@ public class PerformanceTests {
|
||||
|
||||
@Test
|
||||
public void writeAndRead() throws Exception {
|
||||
|
||||
mongo.setWriteConcern(WriteConcern.ACKNOWLEDGED);
|
||||
|
||||
readsAndWrites(NUMBER_OF_PERSONS, ITERATIONS);
|
||||
readsAndWrites(NUMBER_OF_PERSONS, ITERATIONS, WriteConcern.ACKNOWLEDGED);
|
||||
}
|
||||
|
||||
private void readsAndWrites(int numberOfPersons, int iterations) {
|
||||
private void readsAndWrites(int numberOfPersons, int iterations, WriteConcern writeConcern) {
|
||||
|
||||
Statistics statistics = new Statistics("Reading " + numberOfPersons + " - After %s iterations");
|
||||
|
||||
@@ -188,9 +181,11 @@ public class PerformanceTests {
|
||||
|
||||
setupCollections();
|
||||
|
||||
statistics.registerTime(Api.DRIVER, Mode.WRITE, writingObjectsUsingPlainDriver(numberOfPersons));
|
||||
statistics.registerTime(Api.TEMPLATE, Mode.WRITE, writingObjectsUsingMongoTemplate(numberOfPersons));
|
||||
statistics.registerTime(Api.REPOSITORY, Mode.WRITE, writingObjectsUsingRepositories(numberOfPersons));
|
||||
statistics.registerTime(Api.DRIVER, Mode.WRITE, writingObjectsUsingPlainDriver(numberOfPersons, writeConcern));
|
||||
statistics.registerTime(Api.TEMPLATE, Mode.WRITE,
|
||||
writingObjectsUsingMongoTemplate(numberOfPersons, writeConcern));
|
||||
statistics.registerTime(Api.REPOSITORY, Mode.WRITE,
|
||||
writingObjectsUsingRepositories(numberOfPersons, writeConcern));
|
||||
|
||||
statistics.registerTime(Api.DRIVER, Mode.READ, readingUsingPlainDriver());
|
||||
statistics.registerTime(Api.TEMPLATE, Mode.READ, readingUsingTemplate());
|
||||
@@ -240,8 +235,6 @@ public class PerformanceTests {
|
||||
}
|
||||
|
||||
WriteConcern writeConcern = (WriteConcern) constants.asObject(constantName);
|
||||
mongo.setWriteConcern(writeConcern);
|
||||
|
||||
setupCollections();
|
||||
|
||||
callback.doWithWriteConcern(constantName, writeConcern);
|
||||
@@ -276,9 +269,11 @@ public class PerformanceTests {
|
||||
return document;
|
||||
}
|
||||
|
||||
private long writingObjectsUsingPlainDriver(int numberOfPersons) {
|
||||
private long writingObjectsUsingPlainDriver(int numberOfPersons, WriteConcern writeConcern) {
|
||||
|
||||
MongoCollection<Document> collection = mongo.getDatabase(DATABASE_NAME).getCollection("driver");
|
||||
MongoCollection<Document> collection = mongo.getDatabase(DATABASE_NAME).getCollection("driver")
|
||||
.withWriteConcern(writeConcern);
|
||||
;
|
||||
List<Person> persons = getPersonObjects(numberOfPersons);
|
||||
|
||||
executeWatched(() -> persons.stream().map(Person::toDocument).map(it -> {
|
||||
@@ -290,7 +285,7 @@ public class PerformanceTests {
|
||||
return watch.getLastTaskTimeMillis();
|
||||
}
|
||||
|
||||
private long writingObjectsUsingRepositories(int numberOfPersons) {
|
||||
private long writingObjectsUsingRepositories(int numberOfPersons, WriteConcern writeConcern) {
|
||||
|
||||
List<Person> persons = getPersonObjects(numberOfPersons);
|
||||
|
||||
@@ -299,9 +294,10 @@ public class PerformanceTests {
|
||||
return watch.getLastTaskTimeMillis();
|
||||
}
|
||||
|
||||
private long writingObjectsUsingMongoTemplate(int numberOfPersons) {
|
||||
private long writingObjectsUsingMongoTemplate(int numberOfPersons, WriteConcern writeConcern) {
|
||||
|
||||
List<Person> persons = getPersonObjects(numberOfPersons);
|
||||
operations.setWriteConcern(writeConcern);
|
||||
|
||||
executeWatched(() -> persons.stream()//
|
||||
.peek(it -> operations.save(it, "template"))//
|
||||
@@ -465,7 +461,7 @@ public class PerformanceTests {
|
||||
public static Address from(Document source) {
|
||||
String zipCode = (String) source.get("zipCode");
|
||||
String city = (String) source.get("city");
|
||||
BasicDBList types = (BasicDBList) source.get("types");
|
||||
List<Document> types = (List<Document>) source.get("types");
|
||||
|
||||
return new Address(zipCode, city, new HashSet<AddressType>(readFromBasicDBList(types, AddressType.class)));
|
||||
}
|
||||
@@ -479,7 +475,7 @@ public class PerformanceTests {
|
||||
}
|
||||
}
|
||||
|
||||
private static <T extends Enum<T>> List<T> readFromBasicDBList(BasicDBList source, Class<T> type) {
|
||||
private static <T extends Enum<T>> List<T> readFromBasicDBList(List<Document> source, Class<T> type) {
|
||||
|
||||
List<T> result = new ArrayList<T>(source.size());
|
||||
for (Object object : source) {
|
||||
@@ -488,8 +484,8 @@ public class PerformanceTests {
|
||||
return result;
|
||||
}
|
||||
|
||||
private static <T extends Enum<T>> BasicDBList toBasicDBList(Collection<T> enums) {
|
||||
BasicDBList result = new BasicDBList();
|
||||
private static <T extends Enum<T>> List<String> toBasicDBList(Collection<T> enums) {
|
||||
List<String> result = new ArrayList<>();
|
||||
for (T element : enums) {
|
||||
result.add(element.toString());
|
||||
}
|
||||
@@ -522,7 +518,7 @@ public class PerformanceTests {
|
||||
|
||||
public static Order from(Document source) {
|
||||
|
||||
BasicDBList lineItemsSource = (BasicDBList) source.get("lineItems");
|
||||
List<Document> lineItemsSource = (List<Document>) source.get("lineItems");
|
||||
List<LineItem> lineItems = new ArrayList<PerformanceTests.LineItem>(lineItemsSource.size());
|
||||
for (Object lineItemSource : lineItemsSource) {
|
||||
lineItems.add(LineItem.from((Document) lineItemSource));
|
||||
@@ -628,8 +624,8 @@ public class PerformanceTests {
|
||||
Document toDocument();
|
||||
}
|
||||
|
||||
private static BasicDBList writeAll(Collection<? extends Convertible> convertibles) {
|
||||
BasicDBList result = new BasicDBList();
|
||||
private static List<Document> writeAll(Collection<? extends Convertible> convertibles) {
|
||||
List<Document> result = new ArrayList<>();
|
||||
for (Convertible convertible : convertibles) {
|
||||
result.add(convertible.toDocument());
|
||||
}
|
||||
|
||||
@@ -26,18 +26,18 @@ import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
|
||||
import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration;
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
import org.springframework.data.mongodb.test.util.MongoVersion;
|
||||
import org.springframework.data.mongodb.test.util.MongoVersionRule;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.client.MongoClient;
|
||||
|
||||
/**
|
||||
* @author Christoph Strobl
|
||||
@@ -52,7 +52,7 @@ public class ComplexIdRepositoryIntegrationTests {
|
||||
|
||||
@Configuration
|
||||
@EnableMongoRepositories
|
||||
static class Config extends AbstractMongoConfiguration {
|
||||
static class Config extends AbstractMongoClientConfiguration {
|
||||
|
||||
@Override
|
||||
protected String getDatabaseName() {
|
||||
@@ -61,7 +61,7 @@ public class ComplexIdRepositoryIntegrationTests {
|
||||
|
||||
@Override
|
||||
public MongoClient mongoClient() {
|
||||
return new MongoClient();
|
||||
return MongoTestUtils.client();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -25,7 +25,6 @@ import org.junit.Before;
|
||||
import org.junit.ClassRule;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.annotation.Id;
|
||||
import org.springframework.data.domain.Page;
|
||||
@@ -33,13 +32,14 @@ import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.data.domain.Sort;
|
||||
import org.springframework.data.domain.Sort.Direction;
|
||||
import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
|
||||
import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration;
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
import org.springframework.data.mongodb.core.index.TextIndexDefinition.TextIndexDefinitionBuilder;
|
||||
import org.springframework.data.mongodb.core.index.TextIndexed;
|
||||
import org.springframework.data.mongodb.core.mapping.TextScore;
|
||||
import org.springframework.data.mongodb.core.query.TextCriteria;
|
||||
import org.springframework.data.mongodb.repository.support.MongoRepositoryFactory;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
import org.springframework.data.mongodb.test.util.MongoVersionRule;
|
||||
import org.springframework.data.util.Version;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
@@ -47,7 +47,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
import org.springframework.util.ClassUtils;
|
||||
import org.springframework.util.ObjectUtils;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.client.MongoClient;
|
||||
|
||||
/**
|
||||
* Integration tests for text searches on repository.
|
||||
@@ -194,7 +194,7 @@ public class MongoRepositoryTextSearchIntegrationTests {
|
||||
}
|
||||
|
||||
@org.springframework.context.annotation.Configuration
|
||||
public static class Configuration extends AbstractMongoConfiguration {
|
||||
public static class Configuration extends AbstractMongoClientConfiguration {
|
||||
|
||||
@Override
|
||||
protected String getDatabaseName() {
|
||||
@@ -203,7 +203,7 @@ public class MongoRepositoryTextSearchIntegrationTests {
|
||||
|
||||
@Override
|
||||
public MongoClient mongoClient() {
|
||||
return new MongoClient();
|
||||
return MongoTestUtils.client();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -29,14 +29,13 @@ import org.junit.ClassRule;
|
||||
import org.junit.Test;
|
||||
import org.junit.rules.RuleChain;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.data.domain.Persistable;
|
||||
import org.springframework.data.mongodb.MongoDbFactory;
|
||||
import org.springframework.data.mongodb.MongoTransactionManager;
|
||||
import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
|
||||
import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration;
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
|
||||
import org.springframework.data.mongodb.test.util.AfterTransactionAssertion;
|
||||
@@ -52,9 +51,9 @@ import org.springframework.test.context.transaction.AfterTransaction;
|
||||
import org.springframework.test.context.transaction.BeforeTransaction;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.ReadPreference;
|
||||
import com.mongodb.WriteConcern;
|
||||
import com.mongodb.client.MongoClient;
|
||||
import com.mongodb.client.MongoCollection;
|
||||
import com.mongodb.client.model.Filters;
|
||||
|
||||
@@ -74,7 +73,7 @@ public class PersonRepositoryTransactionalTests {
|
||||
|
||||
@Configuration
|
||||
@EnableMongoRepositories
|
||||
static class Config extends AbstractMongoConfiguration {
|
||||
static class Config extends AbstractMongoClientConfiguration {
|
||||
|
||||
@Bean
|
||||
public MongoClient mongoClient() {
|
||||
|
||||
@@ -21,9 +21,11 @@ import javax.enterprise.inject.Produces;
|
||||
import org.springframework.data.mongodb.MongoDbFactory;
|
||||
import org.springframework.data.mongodb.core.MongoOperations;
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
import org.springframework.data.mongodb.core.SimpleMongoClientDbFactory;
|
||||
import org.springframework.data.mongodb.core.SimpleMongoDbFactory;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
|
||||
/**
|
||||
* Simple component exposing a {@link MongoOperations} instance as CDI bean.
|
||||
@@ -36,7 +38,7 @@ class MongoTemplateProducer {
|
||||
@ApplicationScoped
|
||||
public MongoOperations createMongoTemplate() {
|
||||
|
||||
MongoDbFactory factory = new SimpleMongoDbFactory(new MongoClient(), "database");
|
||||
MongoDbFactory factory = new SimpleMongoClientDbFactory(MongoTestUtils.client(), "database");
|
||||
return new MongoTemplate(factory);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,8 +23,10 @@ import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.data.mongodb.core.MongoOperations;
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
import org.springframework.data.mongodb.core.SimpleMongoClientDbFactory;
|
||||
import org.springframework.data.mongodb.core.SimpleMongoDbFactory;
|
||||
import org.springframework.data.mongodb.repository.PersonRepository;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
@@ -45,7 +47,7 @@ public class MongoRepositoriesRegistrarIntegrationTests {
|
||||
|
||||
@Bean
|
||||
public MongoOperations mongoTemplate() throws Exception {
|
||||
return new MongoTemplate(new SimpleMongoDbFactory(new MongoClient(), "database"));
|
||||
return new MongoTemplate(new SimpleMongoClientDbFactory(MongoTestUtils.client(), "database"));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -34,7 +34,8 @@ import org.springframework.util.StringUtils;
|
||||
|
||||
import com.mongodb.DB;
|
||||
import com.mongodb.DBCollection;
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.client.MongoClient;
|
||||
import com.mongodb.client.MongoClients;
|
||||
import com.mongodb.client.MongoCollection;
|
||||
import com.mongodb.client.MongoDatabase;
|
||||
|
||||
@@ -87,7 +88,7 @@ public class CleanMongoDB implements TestRule {
|
||||
* @throws UnknownHostException
|
||||
*/
|
||||
public CleanMongoDB(String host, int port) throws UnknownHostException {
|
||||
this(new MongoClient(host, port));
|
||||
this(MongoTestUtils.client(host, port));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -289,7 +290,7 @@ public class CleanMongoDB implements TestRule {
|
||||
return false;
|
||||
}
|
||||
|
||||
client.dropDatabase(dbName);
|
||||
client.getDatabase(dbName).drop();
|
||||
LOGGER.debug("Dropping DB '{}'. ", dbName);
|
||||
return true;
|
||||
}
|
||||
@@ -360,7 +361,7 @@ public class CleanMongoDB implements TestRule {
|
||||
|
||||
boolean isInternal = false;
|
||||
if (client == null) {
|
||||
client = new MongoClient();
|
||||
client = MongoClients.create();
|
||||
isInternal = true;
|
||||
}
|
||||
|
||||
|
||||
@@ -29,11 +29,10 @@ import org.junit.runner.RunWith;
|
||||
import org.junit.runners.model.Statement;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
import org.springframework.data.mongodb.test.util.CleanMongoDB.Struct;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.client.ListDatabasesIterable;
|
||||
import com.mongodb.client.MongoClient;
|
||||
import com.mongodb.client.MongoCollection;
|
||||
import com.mongodb.client.MongoDatabase;
|
||||
|
||||
@@ -54,7 +53,7 @@ public class CleanMongoDBTests {
|
||||
private @Mock MongoClient mongoClientMock;
|
||||
|
||||
// Some Mock DBs
|
||||
private @Mock MongoDatabase db1mock, db2mock;
|
||||
private @Mock MongoDatabase db1mock, db2mock, admin;
|
||||
private @Mock MongoCollection<Document> db1collection1mock, db1collection2mock, db2collection1mock;
|
||||
|
||||
@SuppressWarnings({ "serial", "unchecked" })
|
||||
@@ -93,7 +92,7 @@ public class CleanMongoDBTests {
|
||||
|
||||
cleaner.apply(baseStatementMock, descriptionMock).evaluate();
|
||||
|
||||
verify(mongoClientMock, never()).dropDatabase(eq("admin"));
|
||||
verify(admin, never()).drop();
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -104,7 +103,7 @@ public class CleanMongoDBTests {
|
||||
|
||||
cleaner.apply(baseStatementMock, descriptionMock).evaluate();
|
||||
|
||||
verify(mongoClientMock, never()).dropDatabase(eq("db1"));
|
||||
verify(db1mock, never()).drop();
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -114,8 +113,8 @@ public class CleanMongoDBTests {
|
||||
|
||||
cleaner.apply(baseStatementMock, descriptionMock).evaluate();
|
||||
|
||||
verify(mongoClientMock, times(1)).dropDatabase(eq("db1"));
|
||||
verify(mongoClientMock, times(1)).dropDatabase(eq("db2"));
|
||||
verify(db1mock).drop();
|
||||
verify(db2mock).drop();
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -126,8 +125,8 @@ public class CleanMongoDBTests {
|
||||
|
||||
cleaner.apply(baseStatementMock, descriptionMock).evaluate();
|
||||
|
||||
verify(mongoClientMock, times(1)).dropDatabase(eq("db2"));
|
||||
verify(mongoClientMock, never()).dropDatabase(eq("db1"));
|
||||
verify(db2mock).drop();
|
||||
verify(db1mock, never()).drop();
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -137,9 +136,9 @@ public class CleanMongoDBTests {
|
||||
|
||||
cleaner.apply(baseStatementMock, descriptionMock).evaluate();
|
||||
|
||||
verify(mongoClientMock, never()).dropDatabase(eq("db1"));
|
||||
verify(mongoClientMock, never()).dropDatabase(eq("db2"));
|
||||
verify(mongoClientMock, never()).dropDatabase(eq("admin"));
|
||||
verify(db1mock, never()).drop();
|
||||
verify(db2mock, never()).drop();
|
||||
verify(admin, never()).drop();
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -187,9 +186,9 @@ public class CleanMongoDBTests {
|
||||
|
||||
cleaner.apply(baseStatementMock, descriptionMock).evaluate();
|
||||
|
||||
verify(mongoClientMock, never()).dropDatabase(eq("db1"));
|
||||
verify(mongoClientMock, never()).dropDatabase(eq("db2"));
|
||||
verify(mongoClientMock, never()).dropDatabase(eq("admin"));
|
||||
verify(db1mock, never()).drop();
|
||||
verify(db2mock, never()).drop();
|
||||
verify(admin, never()).drop();
|
||||
|
||||
verify(db1collection1mock, times(1)).dropIndexes();
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package org.springframework.data.mongodb.test.util;
|
||||
|
||||
import com.mongodb.client.MongoClient;
|
||||
import reactor.core.publisher.Mono;
|
||||
import reactor.test.StepVerifier;
|
||||
|
||||
@@ -22,7 +23,6 @@ import java.time.Duration;
|
||||
|
||||
import org.bson.Document;
|
||||
|
||||
import com.mongodb.MongoClientURI;
|
||||
import com.mongodb.ReadPreference;
|
||||
import com.mongodb.WriteConcern;
|
||||
import com.mongodb.client.MongoCollection;
|
||||
@@ -35,8 +35,17 @@ import com.mongodb.reactivestreams.client.Success;
|
||||
*/
|
||||
public class MongoTestUtils {
|
||||
|
||||
|
||||
private static final String CONNECTION_STRING_PATTERN = "mongodb://%s:%s/";
|
||||
public static final String CONNECTION_STRING = "mongodb://localhost:27017/?replicaSet=rs0"; // &readPreference=primary&w=majority
|
||||
|
||||
public static MongoClient client() {
|
||||
return client("localhost", 27017);
|
||||
}
|
||||
|
||||
public static MongoClient client(String host, int port) {
|
||||
return com.mongodb.client.MongoClients.create(String.format(CONNECTION_STRING_PATTERN, host, port));
|
||||
}
|
||||
/**
|
||||
* Create a {@link com.mongodb.client.MongoCollection} if it does not exist, or drop and recreate it if it does.
|
||||
*
|
||||
@@ -45,7 +54,7 @@ public class MongoTestUtils {
|
||||
* @param client must not be {@literal null}.
|
||||
*/
|
||||
public static MongoCollection<Document> createOrReplaceCollection(String dbName, String collectionName,
|
||||
com.mongodb.MongoClient client) {
|
||||
com.mongodb.client.MongoClient client) {
|
||||
|
||||
MongoDatabase database = client.getDatabase(dbName).withWriteConcern(WriteConcern.MAJORITY)
|
||||
.withReadPreference(ReadPreference.primary());
|
||||
@@ -149,9 +158,8 @@ public class MongoTestUtils {
|
||||
*
|
||||
* @return new instance of {@link com.mongodb.MongoClient}.
|
||||
*/
|
||||
public static com.mongodb.MongoClient replSetClient() {
|
||||
|
||||
return new com.mongodb.MongoClient(new MongoClientURI(CONNECTION_STRING));
|
||||
public static com.mongodb.client.MongoClient replSetClient() {
|
||||
return com.mongodb.client.MongoClients.create(CONNECTION_STRING);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -27,7 +27,7 @@ import org.junit.runners.model.Statement;
|
||||
import org.springframework.data.util.Version;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.client.MongoClient;
|
||||
import com.mongodb.client.MongoDatabase;
|
||||
|
||||
/**
|
||||
@@ -128,7 +128,6 @@ public class MongoVersionRule implements TestRule {
|
||||
Version maxVersion = MongoVersionRule.this.maxVersion.equals(ANY) ? DEFAULT_HIGH
|
||||
: MongoVersionRule.this.maxVersion;
|
||||
|
||||
|
||||
if (description.getAnnotation(MongoVersion.class) != null) {
|
||||
MongoVersion version = description.getAnnotation(MongoVersion.class);
|
||||
if (version != null) {
|
||||
@@ -176,8 +175,7 @@ public class MongoVersionRule implements TestRule {
|
||||
|
||||
try {
|
||||
|
||||
MongoClient client;
|
||||
client = new MongoClient(host, port);
|
||||
MongoClient client = MongoTestUtils.client(host, port);
|
||||
MongoDatabase database = client.getDatabase("test");
|
||||
Document result = database.runCommand(new Document("buildInfo", 1));
|
||||
client.close();
|
||||
|
||||
@@ -25,7 +25,7 @@ import org.junit.runner.Description;
|
||||
import org.junit.runners.model.Statement;
|
||||
import org.springframework.test.annotation.IfProfileValue;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.client.MongoClient;
|
||||
|
||||
/**
|
||||
* {@link TestRule} evaluating if MongoDB Server is running with {@code --replSet} flag.
|
||||
@@ -94,7 +94,7 @@ public class ReplicaSet implements TestRule {
|
||||
|
||||
if (runsAsReplicaSet.get() == null) {
|
||||
|
||||
try (MongoClient client = new MongoClient()) {
|
||||
try (MongoClient client = MongoTestUtils.client()) {
|
||||
|
||||
boolean tmp = client.getDatabase("admin").runCommand(new Document("getCmdLineOpts", "1"))
|
||||
.get("argv", List.class).contains("--replSet");
|
||||
|
||||
@@ -120,7 +120,7 @@ import org.springframework.data.mongodb.core.MongoOperations;
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
import org.springframework.data.mongodb.core.query.Query;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.client.MongoClients;
|
||||
|
||||
public class MongoApp {
|
||||
|
||||
@@ -128,7 +128,7 @@ public class MongoApp {
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
|
||||
MongoOperations mongoOps = new MongoTemplate(new MongoClient(), "database");
|
||||
MongoOperations mongoOps = new MongoTemplate(MongoClients.create(), "database");
|
||||
mongoOps.insert(new Person("Joe", 34));
|
||||
|
||||
log.info(mongoOps.findOne(new Query(where("name").is("Joe")), Person.class));
|
||||
@@ -591,7 +591,7 @@ import org.springframework.data.mongodb.core.MongoOperations;
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
import org.springframework.data.mongodb.core.SimpleMongoDbFactory;
|
||||
|
||||
import com.mongodb.MongoClient;
|
||||
import com.mongodb.client.MongoClients;
|
||||
|
||||
public class MongoApp {
|
||||
|
||||
@@ -599,7 +599,7 @@ public class MongoApp {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
MongoOperations mongoOps = new MongoTemplate(new SimpleMongoDbFactory(new MongoClient(), "database"));
|
||||
MongoOperations mongoOps = new MongoTemplate(new SimpleMongoClientDbFactory(MongoClients.create(), "database"));
|
||||
|
||||
Person p = new Person("Joe", 34);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user