Skip to content

Commit

Permalink
Raised the default version of Mongo to 3.6.5 when using Embedded Mongo.
Browse files Browse the repository at this point in the history
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
  • Loading branch information
wilkinsona committed Sep 17, 2018
1 parent 0a2d2e6 commit 1a4ad96
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
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;
Expand Down Expand Up @@ -125,11 +126,8 @@ private MongodStarter getMongodStarter(IRuntimeConfig runtimeConfig) {
@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();
Expand All @@ -149,6 +147,20 @@ public IMongodConfig embeddedMongoConfiguration() throws IOException {
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()
Expand Down
Original file line number Diff line number Diff line change
@@ -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.
Expand All @@ -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;
Expand All @@ -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;
Expand Down
Original file line number Diff line number Diff line change
@@ -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.
Expand Down Expand Up @@ -60,19 +60,20 @@ public void close() {

@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
Expand Down

0 comments on commit 1a4ad96

Please sign in to comment.