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
14
15
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 }