All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.xlrit.gears.engine.init.H2ServerInitializer Maven / Gradle / Ivy

package com.xlrit.gears.engine.init;

import org.h2.tools.Server;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import jakarta.annotation.PreDestroy;
import java.sql.SQLException;

@Component
public class H2ServerInitializer extends Initializer {
	private static final Logger LOG = LoggerFactory.getLogger(H2ServerInitializer.class);

	@Value("${gears.init.h2server.enabled}")
	private boolean enabled;

	@Value("${gears.init.h2server.port}")
	private int port;

	private Server server;

	@Override
	public int getPhase() {
		return 150;
	}

	@Override
	public void initialize() {
		if (!enabled) return;

		try {
			this.server = Server.createTcpServer("-tcpPort", String.valueOf(port)).start();
			LOG.info("H2 server exposed on port {}", port);
		} catch (SQLException e) {
			LOG.error("Unable to start H2 server on port {}", port);
		}
	}

	@PreDestroy
	public void shutdown() {
		if (this.server != null) {
			this.server.shutdown();
			this.server = null;
		}
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy