package org.keycloak.testsuite.arquillian.h2;
import org.h2.tools.Server;
import org.jboss.arquillian.core.api.annotation.Observes;
import org.jboss.arquillian.test.spi.event.suite.AfterSuite;
import org.jboss.arquillian.test.spi.event.suite.BeforeSuite;
import org.jboss.logging.Logger;
import java.sql.SQLException;
/**
* Starts H2 before suite and stops it after.
*
* @author tkyjovsk
*/
public class H2TestEnricher {
protected final Logger log = Logger.getLogger(this.getClass());
boolean runH2 = Boolean.parseBoolean(System.getProperty("run.h2", "false"));
private Server server = null;
public void startH2(@Observes(precedence = 2) BeforeSuite event) throws SQLException {
if (runH2) {
log.info("Starting H2 database.");
server = Server.createTcpServer();
server.start();
log.info(String.format("URL: %s", server.getURL()));
}
}
public void stopH2(@Observes(precedence = -2) AfterSuite event) {
if (runH2 && server.isRunning(false)) {
log.info("Stopping H2 database.");
server.stop();
assert !server.isRunning(false);
}
}
}