View Javadoc
1   package de.funfried.maven.plugin.zonky.utils;
2   
3   import java.io.File;
4   import java.io.IOException;
5   import java.util.concurrent.TimeoutException;
6   
7   import org.apache.commons.io.FileUtils;
8   import org.apache.commons.io.IOUtils;
9   
10  import io.zonky.test.db.postgres.embedded.EmbeddedPostgres;
11  
12  /**
13   * Zonky utility class.
14   *
15   * @author fbahle
16   */
17  public class ZonkyUtil {
18  	private ZonkyUtil() {
19  	}
20  
21  	public static EmbeddedPostgres start(int port, File workingDirectory, File dataDirectory) throws IOException {
22  		return EmbeddedPostgres.builder().setCleanDataDirectory(false).setOverrideWorkingDirectory(workingDirectory).setDataDirectory(dataDirectory).setPort(port).start();
23  	}
24  
25  	public static void stop(EmbeddedPostgres embeddedPostgres, File workingDirectory, File dataDirectory) throws IOException, InterruptedException, TimeoutException {
26  		if (embeddedPostgres != null) {
27  			int port = embeddedPostgres.getPort();
28  
29  			IOUtils.closeQuietly(embeddedPostgres);
30  
31  			ProcessUtil.killProcessByPort(port);
32  
33  			FileUtils.deleteQuietly(workingDirectory);
34  			FileUtils.deleteQuietly(dataDirectory);
35  		}
36  	}
37  }