Commit 9d71be89 authored by Andy Wilkinson's avatar Andy Wilkinson

Use HTTPS for embedded MongoDB downloads by default

Closes gh-17191
parent be077d7f
...@@ -39,6 +39,9 @@ import de.flapdoodle.embed.mongo.distribution.Feature; ...@@ -39,6 +39,9 @@ import de.flapdoodle.embed.mongo.distribution.Feature;
import de.flapdoodle.embed.mongo.distribution.IFeatureAwareVersion; import de.flapdoodle.embed.mongo.distribution.IFeatureAwareVersion;
import de.flapdoodle.embed.process.config.IRuntimeConfig; import de.flapdoodle.embed.process.config.IRuntimeConfig;
import de.flapdoodle.embed.process.config.io.ProcessOutput; import de.flapdoodle.embed.process.config.io.ProcessOutput;
import de.flapdoodle.embed.process.config.store.IDownloadPath;
import de.flapdoodle.embed.process.distribution.Distribution;
import de.flapdoodle.embed.process.distribution.Platform;
import de.flapdoodle.embed.process.io.Processors; import de.flapdoodle.embed.process.io.Processors;
import de.flapdoodle.embed.process.io.Slf4jLevel; import de.flapdoodle.embed.process.io.Slf4jLevel;
import de.flapdoodle.embed.process.io.progress.Slf4jProgressListener; import de.flapdoodle.embed.process.io.progress.Slf4jProgressListener;
...@@ -190,8 +193,9 @@ public class EmbeddedMongoAutoConfiguration { ...@@ -190,8 +193,9 @@ public class EmbeddedMongoAutoConfiguration {
} }
private ArtifactStoreBuilder getArtifactStore(Logger logger) { private ArtifactStoreBuilder getArtifactStore(Logger logger) {
return new ExtractedArtifactStoreBuilder().defaults(Command.MongoD).download(new DownloadConfigBuilder() return new ExtractedArtifactStoreBuilder().defaults(Command.MongoD)
.defaultsForCommand(Command.MongoD).progressListener(new Slf4jProgressListener(logger)).build()); .download(new HttpsDownloadConfigBuilder().defaultsForCommand(Command.MongoD)
.progressListener(new Slf4jProgressListener(logger)).build());
} }
} }
...@@ -270,4 +274,27 @@ public class EmbeddedMongoAutoConfiguration { ...@@ -270,4 +274,27 @@ public class EmbeddedMongoAutoConfiguration {
} }
private static class HttpsDownloadConfigBuilder extends DownloadConfigBuilder {
@Override
public DownloadConfigBuilder defaultsForCommand(Command command) {
super.defaultsForCommand(command);
downloadPath().setDefault(new PlatformDependentHttpsDownloadPath());
return this;
}
private static class PlatformDependentHttpsDownloadPath implements IDownloadPath {
@Override
public String getPath(Distribution distribution) {
if (distribution.getPlatform() == Platform.Windows) {
return "https://downloads.mongodb.org/";
}
return "https://fastdl.mongodb.org/";
}
}
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment