Raised the default version of Mongo to 3.6.5 when using Embedded Mongo.
While MongoDB 3.6.7 has been released, 3.6.5 is the latest version that's supported by the version of Embedded Mongo that we're currently using. Closes gh-14476
This commit is contained in:
parent
0a2d2e6bdb
commit
1a4ad96dd0
|
|
@ -35,6 +35,7 @@ import de.flapdoodle.embed.mongo.config.RuntimeConfigBuilder;
|
|||
import de.flapdoodle.embed.mongo.config.Storage;
|
||||
import de.flapdoodle.embed.mongo.distribution.Feature;
|
||||
import de.flapdoodle.embed.mongo.distribution.IFeatureAwareVersion;
|
||||
import de.flapdoodle.embed.mongo.distribution.Version;
|
||||
import de.flapdoodle.embed.mongo.distribution.Versions;
|
||||
import de.flapdoodle.embed.process.config.IRuntimeConfig;
|
||||
import de.flapdoodle.embed.process.config.io.ProcessOutput;
|
||||
|
|
@ -125,11 +126,8 @@ public class EmbeddedMongoAutoConfiguration {
|
|||
@Bean
|
||||
@ConditionalOnMissingBean
|
||||
public IMongodConfig embeddedMongoConfiguration() throws IOException {
|
||||
IFeatureAwareVersion featureAwareVersion = Versions.withFeatures(
|
||||
new GenericVersion(this.embeddedProperties.getVersion()),
|
||||
this.embeddedProperties.getFeatures().toArray(new Feature[0]));
|
||||
MongodConfigBuilder builder = new MongodConfigBuilder()
|
||||
.version(featureAwareVersion);
|
||||
.version(determineVersion());
|
||||
EmbeddedMongoProperties.Storage storage = this.embeddedProperties.getStorage();
|
||||
if (storage != null) {
|
||||
String databaseDir = storage.getDatabaseDir();
|
||||
|
|
@ -149,6 +147,20 @@ public class EmbeddedMongoAutoConfiguration {
|
|||
return builder.build();
|
||||
}
|
||||
|
||||
private IFeatureAwareVersion determineVersion() {
|
||||
if (this.embeddedProperties.getFeatures() == null) {
|
||||
for (Version version : Version.values()) {
|
||||
if (version.asInDownloadPath()
|
||||
.equals(this.embeddedProperties.getVersion())) {
|
||||
return version;
|
||||
}
|
||||
}
|
||||
}
|
||||
return Versions.withFeatures(
|
||||
new GenericVersion(this.embeddedProperties.getVersion()),
|
||||
this.embeddedProperties.getFeatures().toArray(new Feature[0]));
|
||||
}
|
||||
|
||||
private InetAddress getHost() throws UnknownHostException {
|
||||
if (this.properties.getHost() == null) {
|
||||
return InetAddress.getByAddress(Network.localhostIsIPv6()
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2012-2017 the original author or authors.
|
||||
* Copyright 2012-2018 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
|
@ -16,8 +16,6 @@
|
|||
|
||||
package org.springframework.boot.autoconfigure.mongo.embedded;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import de.flapdoodle.embed.mongo.distribution.Feature;
|
||||
|
|
@ -37,15 +35,15 @@ public class EmbeddedMongoProperties {
|
|||
/**
|
||||
* Version of Mongo to use.
|
||||
*/
|
||||
private String version = "3.2.2";
|
||||
private String version = "3.6.5";
|
||||
|
||||
private final Storage storage = new Storage();
|
||||
|
||||
/**
|
||||
* Comma-separated list of features to enable.
|
||||
* Comma-separated list of features to enable. Uses the defaults of the configured
|
||||
* version by default.
|
||||
*/
|
||||
private Set<Feature> features = new HashSet<>(
|
||||
Collections.singletonList(Feature.SYNC_DELAY));
|
||||
private Set<Feature> features = null;
|
||||
|
||||
public String getVersion() {
|
||||
return this.version;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2012-2017 the original author or authors.
|
||||
* Copyright 2012-2018 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
|
@ -60,19 +60,20 @@ public class EmbeddedMongoAutoConfigurationTests {
|
|||
|
||||
@Test
|
||||
public void defaultVersion() {
|
||||
assertVersionConfiguration(null, "3.2.2");
|
||||
assertVersionConfiguration(null, "3.6.5");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void customVersion() {
|
||||
assertVersionConfiguration("2.7.1", "2.7.1");
|
||||
assertVersionConfiguration("3.6.3", "3.6.3");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void customFeatures() {
|
||||
load("spring.mongodb.embedded.features=TEXT_SEARCH, SYNC_DELAY");
|
||||
load("spring.mongodb.embedded.features=TEXT_SEARCH, SYNC_DELAY, ONLY_WITH_SSL, NO_HTTP_INTERFACE_ARG");
|
||||
assertThat(this.context.getBean(EmbeddedMongoProperties.class).getFeatures())
|
||||
.contains(Feature.TEXT_SEARCH, Feature.SYNC_DELAY);
|
||||
.containsExactly(Feature.TEXT_SEARCH, Feature.SYNC_DELAY,
|
||||
Feature.ONLY_WITH_SSL, Feature.NO_HTTP_INTERFACE_ARG);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
|||
Loading…
Reference in New Issue