org.webpieces.plugin.hsqldb.H2DbModule Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of plugin-h2db Show documentation
Show all versions of plugin-h2db Show documentation
Webpieces in-memory database plugin
package org.webpieces.plugin.hsqldb;
import java.sql.SQLException;
import org.h2.tools.Server;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.webpieces.plugin.backend.spi.BackendGuiDescriptor;
import org.webpieces.util.SneakyThrow;
import com.google.inject.AbstractModule;
import com.google.inject.multibindings.Multibinder;
public class H2DbModule extends AbstractModule {
private static final Logger log = LoggerFactory.getLogger(H2DbModule.class);
private H2DbConfig config;
private ServerConfig svrConfig = new ServerConfig();
public H2DbModule(H2DbConfig config) {
this.config = config;
}
@Override
protected void configure() {
Multibinder backendBinder = Multibinder.newSetBinder(binder(), BackendGuiDescriptor.class);
backendBinder.addBinding().to(H2DbGuiDescriptor.class);
bind(H2DbConfig.class).toInstance(config);
bind(ServerConfig.class).toInstance(svrConfig);
try {
String args[];
//if this port1 is 0, server.getPort will get the real port later in this method
int port1 = config.getPort().get();
if(config.getConvertDomain() == null) {
args = new String[] { "-webPort", port1+"" };
} else {
//if we are converting a domain, definitely need to allow other ip addresses in..
//this is because we are exposing a domain url on the web to hit
args = new String[] { "-webPort", port1+"", "-webAllowOthers"};
}
log.info("Creating H2 webserver for html GUI interface to serve up as a webpage(for development servers)");
// start the TCP Server
Server server = Server.createWebServer(args);
log.info("Starting H2 webserver");
server.start();
int port = server.getPort();
log.info("H2 webserver started on port="+port);
if(config.getConvertDomain() == null) {
log.info("H2 webserver setting webpage to use="+port);
this.svrConfig.setPort(port);
} else {
log.info("H2 webserver using the domain converter="+config.getConvertDomain());
}
return;
} catch(Exception e) {
throw SneakyThrow.sneak(e);
}
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy