From 70df7755d1045a9e53c074043a620578df1d8301 Mon Sep 17 00:00:00 2001
From: Alexander Dietrich <dietrich@adobe.com>
Date: Thu, 13 Jun 2013 17:44:06 +0200
Subject: [PATCH] Make downloadPath configurable in Maven

---
 .../embedmongo/StartEmbeddedMongoMojo.java    | 29 ++++++++++++++++++-
 1 file changed, 28 insertions(+), 1 deletion(-)

diff --git a/src/main/java/com/github/joelittlejohn/embedmongo/StartEmbeddedMongoMojo.java b/src/main/java/com/github/joelittlejohn/embedmongo/StartEmbeddedMongoMojo.java
index 02ae7a3..1d25f8e 100644
--- a/src/main/java/com/github/joelittlejohn/embedmongo/StartEmbeddedMongoMojo.java
+++ b/src/main/java/com/github/joelittlejohn/embedmongo/StartEmbeddedMongoMojo.java
@@ -15,7 +15,7 @@
  */
 package com.github.joelittlejohn.embedmongo;
 
-import static java.util.Collections.*;
+import static java.util.Collections.singletonList;
 
 import java.io.File;
 import java.io.IOException;
@@ -45,15 +45,19 @@ import de.flapdoodle.embed.mongo.MongodStarter;
 import de.flapdoodle.embed.mongo.config.AbstractMongoConfig.Net;
 import de.flapdoodle.embed.mongo.config.AbstractMongoConfig.Storage;
 import de.flapdoodle.embed.mongo.config.AbstractMongoConfig.Timeout;
+import de.flapdoodle.embed.mongo.config.ArtifactStoreBuilder;
+import de.flapdoodle.embed.mongo.config.DownloadConfigBuilder;
 import de.flapdoodle.embed.mongo.config.MongodConfig;
 import de.flapdoodle.embed.mongo.config.RuntimeConfigBuilder;
 import de.flapdoodle.embed.mongo.distribution.Version;
 import de.flapdoodle.embed.process.config.IRuntimeConfig;
 import de.flapdoodle.embed.process.config.io.ProcessOutput;
+import de.flapdoodle.embed.process.config.store.IDownloadConfig;
 import de.flapdoodle.embed.process.distribution.GenericVersion;
 import de.flapdoodle.embed.process.distribution.IVersion;
 import de.flapdoodle.embed.process.exceptions.DistributionException;
 import de.flapdoodle.embed.process.runtime.Network;
+import de.flapdoodle.embed.process.store.IArtifactStore;
 
 /**
  * When invoked, this goal starts an instance of mongo. The required binaries
@@ -159,6 +163,15 @@ public class StartEmbeddedMongoMojo extends AbstractMojo {
      */
     private String logFileEncoding;
 
+    /**
+     * The base URL to be used when downloading MongoDB
+     * 
+     * @parameter expression="${embedmongo.downloadPath}"
+     *            default-value="http://fastdl.mongodb.org/"
+     * @since 0.1.10
+     */
+    private String downloadPath;
+
     /**
      * The proxy user to be used when downloading MongoDB
      * 
@@ -197,6 +210,7 @@ public class StartEmbeddedMongoMojo extends AbstractMojo {
             IRuntimeConfig runtimeConfig = new RuntimeConfigBuilder()
                     .defaults(Command.MongoD)
                     .processOutput(getOutputConfig())
+                    .artifactStore(getArtifactStore())
                     .build();
 
             if (randomPort) {
@@ -260,6 +274,19 @@ public class StartEmbeddedMongoMojo extends AbstractMojo {
         }
 
     }
+    
+    private IArtifactStore getArtifactStore()
+    {
+        IDownloadConfig downloadConfig = new DownloadConfigBuilder()
+                .defaultsForCommand(Command.MongoD)
+                .downloadPath(downloadPath)
+                .build();
+        IArtifactStore artifactStore = new ArtifactStoreBuilder()
+                .defaults(Command.MongoD)
+                .download(downloadConfig)
+                .build();
+        return artifactStore;
+    }
 
     private void addProxySelector() {
 
-- 
GitLab