From 163b3f0bd2d6e71ddcff7b3faea94c9e6792a943 Mon Sep 17 00:00:00 2001
From: Michael Mosmann <michael@mosmann.de>
Date: Thu, 5 Sep 2013 06:07:01 +0200
Subject: [PATCH] new process release

---
 pom.xml                                       |  4 ++--
 .../embed/mongo/MongodExecutable.java         |  5 +++--
 .../flapdoodle/embed/mongo/MongodProcess.java |  5 +++--
 .../flapdoodle/embed/mongo/MongodStarter.java |  5 +++--
 .../embed/mongo/MongosExecutable.java         |  5 +++--
 .../flapdoodle/embed/mongo/MongosProcess.java |  6 +++---
 .../flapdoodle/embed/mongo/MongosStarter.java |  5 +++--
 .../java/de/flapdoodle/embed/mongo/Paths.java | 21 ++++++++-----------
 .../embed/mongo/runtime/Mongod.java           |  5 +++--
 .../embed/mongo/runtime/Mongos.java           |  5 +++--
 .../embed/mongo/MongoDBRuntimeTest.java       |  8 ++++---
 11 files changed, 40 insertions(+), 34 deletions(-)

diff --git a/pom.xml b/pom.xml
index c8ddf89..19e87b6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -246,13 +246,13 @@
 		<dependency>
 			<groupId>de.flapdoodle.embed</groupId>
 			<artifactId>de.flapdoodle.embed.process</artifactId>
-			<version>1.32</version>
+			<version>1.33</version>
 		</dependency>
 
 		<dependency>
 			<groupId>org.mongodb</groupId>
 			<artifactId>mongo-java-driver</artifactId>
-			<version>2.11.0</version>
+			<version>2.11.2</version>
 			<scope>compile</scope>
 			<optional>true</optional>
 		</dependency>
diff --git a/src/main/java/de/flapdoodle/embed/mongo/MongodExecutable.java b/src/main/java/de/flapdoodle/embed/mongo/MongodExecutable.java
index e2f9063..7ee661e 100644
--- a/src/main/java/de/flapdoodle/embed/mongo/MongodExecutable.java
+++ b/src/main/java/de/flapdoodle/embed/mongo/MongodExecutable.java
@@ -27,6 +27,7 @@ import java.util.logging.Logger;
 import de.flapdoodle.embed.mongo.config.IMongodConfig;
 import de.flapdoodle.embed.process.config.IRuntimeConfig;
 import de.flapdoodle.embed.process.distribution.Distribution;
+import de.flapdoodle.embed.process.extract.IExtractedFileSet;
 import de.flapdoodle.embed.process.runtime.Executable;
 
 /**
@@ -35,8 +36,8 @@ import de.flapdoodle.embed.process.runtime.Executable;
 public class MongodExecutable extends Executable<IMongodConfig, MongodProcess> {
 
 	public MongodExecutable(Distribution distribution, IMongodConfig mongodConfig, IRuntimeConfig runtimeConfig,
-			File mongodExecutable) {
-		super(distribution, mongodConfig, runtimeConfig, mongodExecutable);
+			IExtractedFileSet files) {
+		super(distribution, mongodConfig, runtimeConfig, files);
 	}
 
 	private static Logger logger = Logger.getLogger(MongodExecutable.class.getName());
diff --git a/src/main/java/de/flapdoodle/embed/mongo/MongodProcess.java b/src/main/java/de/flapdoodle/embed/mongo/MongodProcess.java
index 5bfdd7a..19be901 100644
--- a/src/main/java/de/flapdoodle/embed/mongo/MongodProcess.java
+++ b/src/main/java/de/flapdoodle/embed/mongo/MongodProcess.java
@@ -31,6 +31,7 @@ import de.flapdoodle.embed.mongo.runtime.Mongod;
 import de.flapdoodle.embed.process.config.IRuntimeConfig;
 import de.flapdoodle.embed.process.config.ISupportConfig;
 import de.flapdoodle.embed.process.distribution.Distribution;
+import de.flapdoodle.embed.process.extract.IExtractedFileSet;
 import de.flapdoodle.embed.process.io.directories.PropertyOrPlatformTempDir;
 import de.flapdoodle.embed.process.io.file.Files;
 
@@ -84,8 +85,8 @@ public class MongodProcess extends AbstractMongoProcess<IMongodConfig, MongodExe
 	}
 
 	@Override
-	protected List<String> getCommandLine(Distribution distribution, IMongodConfig config, File exe) throws IOException {
-		return Mongod.enhanceCommandLinePlattformSpecific(distribution, Mongod.getCommandLine(getConfig(), exe, dbDir));
+	protected List<String> getCommandLine(Distribution distribution, IMongodConfig config, IExtractedFileSet files) throws IOException {
+		return Mongod.enhanceCommandLinePlattformSpecific(distribution, Mongod.getCommandLine(getConfig(), files, dbDir));
 	}
 
 	@Override
diff --git a/src/main/java/de/flapdoodle/embed/mongo/MongodStarter.java b/src/main/java/de/flapdoodle/embed/mongo/MongodStarter.java
index 4ba1297..2dd0698 100644
--- a/src/main/java/de/flapdoodle/embed/mongo/MongodStarter.java
+++ b/src/main/java/de/flapdoodle/embed/mongo/MongodStarter.java
@@ -27,6 +27,7 @@ import de.flapdoodle.embed.mongo.config.IMongodConfig;
 import de.flapdoodle.embed.mongo.config.RuntimeConfigBuilder;
 import de.flapdoodle.embed.process.config.IRuntimeConfig;
 import de.flapdoodle.embed.process.distribution.Distribution;
+import de.flapdoodle.embed.process.extract.IExtractedFileSet;
 import de.flapdoodle.embed.process.runtime.Starter;
 
 /**
@@ -49,7 +50,7 @@ public class MongodStarter extends Starter<IMongodConfig,MongodExecutable,Mongod
 	}
 	
 	@Override
-	protected MongodExecutable newExecutable(IMongodConfig mongodConfig, Distribution distribution, IRuntimeConfig runtime, File mongodExe) {
-		return new MongodExecutable(distribution, mongodConfig, runtime, mongodExe);
+	protected MongodExecutable newExecutable(IMongodConfig mongodConfig, Distribution distribution, IRuntimeConfig runtime, IExtractedFileSet files) {
+		return new MongodExecutable(distribution, mongodConfig, runtime, files);
 	}
 }
diff --git a/src/main/java/de/flapdoodle/embed/mongo/MongosExecutable.java b/src/main/java/de/flapdoodle/embed/mongo/MongosExecutable.java
index 8731957..fda8e40 100644
--- a/src/main/java/de/flapdoodle/embed/mongo/MongosExecutable.java
+++ b/src/main/java/de/flapdoodle/embed/mongo/MongosExecutable.java
@@ -27,6 +27,7 @@ import java.util.logging.Logger;
 import de.flapdoodle.embed.mongo.config.IMongosConfig;
 import de.flapdoodle.embed.process.config.IRuntimeConfig;
 import de.flapdoodle.embed.process.distribution.Distribution;
+import de.flapdoodle.embed.process.extract.IExtractedFileSet;
 import de.flapdoodle.embed.process.runtime.Executable;
 
 /**
@@ -35,8 +36,8 @@ import de.flapdoodle.embed.process.runtime.Executable;
 public class MongosExecutable extends Executable<IMongosConfig, MongosProcess> {
 
 	public MongosExecutable(Distribution distribution, IMongosConfig mongodConfig, IRuntimeConfig runtimeConfig,
-			File mongodExecutable) {
-		super(distribution, mongodConfig, runtimeConfig, mongodExecutable);
+			IExtractedFileSet files) {
+		super(distribution, mongodConfig, runtimeConfig, files);
 	}
 
 	private static Logger logger = Logger.getLogger(MongosExecutable.class.getName());
diff --git a/src/main/java/de/flapdoodle/embed/mongo/MongosProcess.java b/src/main/java/de/flapdoodle/embed/mongo/MongosProcess.java
index 6d8176b..234473b 100644
--- a/src/main/java/de/flapdoodle/embed/mongo/MongosProcess.java
+++ b/src/main/java/de/flapdoodle/embed/mongo/MongosProcess.java
@@ -20,7 +20,6 @@
  */
 package de.flapdoodle.embed.mongo;
 
-import java.io.File;
 import java.io.IOException;
 import java.util.List;
 
@@ -30,6 +29,7 @@ import de.flapdoodle.embed.mongo.runtime.Mongos;
 import de.flapdoodle.embed.process.config.IRuntimeConfig;
 import de.flapdoodle.embed.process.config.ISupportConfig;
 import de.flapdoodle.embed.process.distribution.Distribution;
+import de.flapdoodle.embed.process.extract.IExtractedFileSet;
 
 /**
  *
@@ -47,7 +47,7 @@ public class MongosProcess extends AbstractMongoProcess<IMongosConfig, MongosExe
 	}
 	
 	@Override
-	protected List<String> getCommandLine(Distribution distribution, IMongosConfig config, File exe) throws IOException {
-		return Mongos.getCommandLine(getConfig(), exe);
+	protected List<String> getCommandLine(Distribution distribution, IMongosConfig config, IExtractedFileSet files) throws IOException {
+		return Mongos.getCommandLine(getConfig(), files);
 	}
 }
diff --git a/src/main/java/de/flapdoodle/embed/mongo/MongosStarter.java b/src/main/java/de/flapdoodle/embed/mongo/MongosStarter.java
index ff763cb..a4bc1e9 100644
--- a/src/main/java/de/flapdoodle/embed/mongo/MongosStarter.java
+++ b/src/main/java/de/flapdoodle/embed/mongo/MongosStarter.java
@@ -27,6 +27,7 @@ import de.flapdoodle.embed.mongo.config.IMongosConfig;
 import de.flapdoodle.embed.mongo.config.RuntimeConfigBuilder;
 import de.flapdoodle.embed.process.config.IRuntimeConfig;
 import de.flapdoodle.embed.process.distribution.Distribution;
+import de.flapdoodle.embed.process.extract.IExtractedFileSet;
 import de.flapdoodle.embed.process.runtime.Starter;
 
 /**
@@ -49,7 +50,7 @@ public class MongosStarter extends Starter<IMongosConfig,MongosExecutable,Mongos
 	}
 
 	@Override
-	protected MongosExecutable newExecutable(IMongosConfig mongosConfig, Distribution distribution, IRuntimeConfig runtime, File mongodExe) {
-		return new MongosExecutable(distribution, mongosConfig, runtime, mongodExe);
+	protected MongosExecutable newExecutable(IMongosConfig mongosConfig, Distribution distribution, IRuntimeConfig runtime, IExtractedFileSet files) {
+		return new MongosExecutable(distribution, mongosConfig, runtime, files);
 	}
 }
diff --git a/src/main/java/de/flapdoodle/embed/mongo/Paths.java b/src/main/java/de/flapdoodle/embed/mongo/Paths.java
index a8baa8e..fbb67c0 100644
--- a/src/main/java/de/flapdoodle/embed/mongo/Paths.java
+++ b/src/main/java/de/flapdoodle/embed/mongo/Paths.java
@@ -28,6 +28,8 @@ import de.flapdoodle.embed.process.distribution.BitSize;
 import de.flapdoodle.embed.process.distribution.Distribution;
 import de.flapdoodle.embed.process.distribution.IVersion;
 import de.flapdoodle.embed.process.distribution.Platform;
+import de.flapdoodle.embed.process.config.store.FileSet;
+import de.flapdoodle.embed.process.config.store.FileType;
 import de.flapdoodle.embed.process.config.store.IDownloadConfig;
 import de.flapdoodle.embed.process.config.store.IPackageResolver;
 
@@ -44,29 +46,24 @@ public class Paths implements IPackageResolver {
 	}
 	
 	@Override
-	public Pattern executeablePattern(Distribution distribution) {
-		return Pattern.compile(".*" + executableFilename(distribution));
-	}
-
-	//CHECKSTYLE:OFF
-	@Override
-	public String executableFilename(Distribution distribution) {
-		String mongodPattern;
+	public FileSet getFileSet(Distribution distribution) {
+		String executableFileName;
 		switch (distribution.getPlatform()) {
 			case Linux:
 			case OS_X:
 			case Solaris:
-				mongodPattern = command.commandName();
+				executableFileName = command.commandName();
 				break;
 			case Windows:
-				mongodPattern = command.commandName()+".exe";
+				executableFileName = command.commandName()+".exe";
 				break;
 			default:
 				throw new IllegalArgumentException("Unknown Platform " + distribution.getPlatform());
 		}
-		return mongodPattern;
+		return FileSet.builder().addEntry(FileType.Executable, executableFileName).build();
 	}
-
+	
+	//CHECKSTYLE:OFF
 	@Override
 	public ArchiveType getArchiveType(Distribution distribution) {
 		ArchiveType archiveType;
diff --git a/src/main/java/de/flapdoodle/embed/mongo/runtime/Mongod.java b/src/main/java/de/flapdoodle/embed/mongo/runtime/Mongod.java
index ed0b3b2..4ccac12 100644
--- a/src/main/java/de/flapdoodle/embed/mongo/runtime/Mongod.java
+++ b/src/main/java/de/flapdoodle/embed/mongo/runtime/Mongod.java
@@ -40,6 +40,7 @@ import de.flapdoodle.embed.mongo.Command;
 import de.flapdoodle.embed.mongo.config.IMongodConfig;
 import de.flapdoodle.embed.mongo.config.SupportConfig;
 import de.flapdoodle.embed.process.distribution.Distribution;
+import de.flapdoodle.embed.process.extract.IExtractedFileSet;
 import de.flapdoodle.embed.process.runtime.NUMA;
 
 /**
@@ -117,10 +118,10 @@ public class Mongod extends AbstractMongo {
 		return defaultValue;
 	}
 
-	public static List<String> getCommandLine(IMongodConfig config, File mongodExecutable, File dbDir)
+	public static List<String> getCommandLine(IMongodConfig config, IExtractedFileSet files, File dbDir)
 			throws UnknownHostException {
 		List<String> ret = new ArrayList<String>();
-		ret.addAll(Arrays.asList(mongodExecutable.getAbsolutePath(), "-v", 
+		ret.addAll(Arrays.asList(files.executable().getAbsolutePath(), "-v", 
 				"--dbpath",
 				"" + dbDir.getAbsolutePath(), "--noprealloc", "--smallfiles", "--nojournal",
 				"--noauth"));
diff --git a/src/main/java/de/flapdoodle/embed/mongo/runtime/Mongos.java b/src/main/java/de/flapdoodle/embed/mongo/runtime/Mongos.java
index aadb60f..a4d3fe1 100644
--- a/src/main/java/de/flapdoodle/embed/mongo/runtime/Mongos.java
+++ b/src/main/java/de/flapdoodle/embed/mongo/runtime/Mongos.java
@@ -28,6 +28,7 @@ import java.util.List;
 import java.util.logging.Logger;
 
 import de.flapdoodle.embed.mongo.config.IMongosConfig;
+import de.flapdoodle.embed.process.extract.IExtractedFileSet;
 
 /**
  *
@@ -36,10 +37,10 @@ public class Mongos extends AbstractMongo {
 
 	private static Logger logger = Logger.getLogger(Mongos.class.getName());
 
-	public static List<String> getCommandLine(IMongosConfig config, File mongosExecutable)
+	public static List<String> getCommandLine(IMongosConfig config, IExtractedFileSet files)
 			throws UnknownHostException {
 		List<String> ret = new ArrayList<String>();
-		ret.addAll(Arrays.asList(mongosExecutable.getAbsolutePath(), "-v", 
+		ret.addAll(Arrays.asList(files.executable().getAbsolutePath(), "-v", 
 				"--chunkSize", "1"));
 		applyDefaultOptions(config, ret);
 		applyNet(config.net(),ret);
diff --git a/src/test/java/de/flapdoodle/embed/mongo/MongoDBRuntimeTest.java b/src/test/java/de/flapdoodle/embed/mongo/MongoDBRuntimeTest.java
index 11af32e..173e4fe 100644
--- a/src/test/java/de/flapdoodle/embed/mongo/MongoDBRuntimeTest.java
+++ b/src/test/java/de/flapdoodle/embed/mongo/MongoDBRuntimeTest.java
@@ -44,6 +44,7 @@ import de.flapdoodle.embed.process.distribution.BitSize;
 import de.flapdoodle.embed.process.distribution.Distribution;
 import de.flapdoodle.embed.process.distribution.IVersion;
 import de.flapdoodle.embed.process.distribution.Platform;
+import de.flapdoodle.embed.process.extract.IExtractedFileSet;
 import de.flapdoodle.embed.process.runtime.Network;
 
 // CHECKSTYLE:OFF
@@ -116,9 +117,10 @@ public class MongoDBRuntimeTest extends TestCase {
 
 	private void check(IRuntimeConfig runtime, Distribution distribution) throws IOException {
 		assertTrue("Check", runtime.getArtifactStore().checkDistribution(distribution));
-		File mongod = runtime.getArtifactStore().extractExe(distribution);
-		assertNotNull("Extracted", mongod);
-		assertTrue("Delete", mongod.delete());
+		IExtractedFileSet files = runtime.getArtifactStore().extractFileSet(distribution);
+		assertNotNull("Extracted", files);
+		assertNotNull("Extracted", files.executable());
+		assertTrue("Delete", files.executable().delete());
 	}
 
 	public void testCheck() throws IOException, InterruptedException {
-- 
GitLab