@Override
public Connection openConnection(JDBCSchemaConfig factory)
throws SQLException {
Properties properties = new Properties();
Optional.ofNullable(factory.getPassword())
.ifPresent(pass -> properties.setProperty("password", pass));
Optional.ofNullable(factory.getUsername())
.ifPresent(user -> properties.setProperty("user", user));
properties.setProperty("loginTimeout", "120");
properties.setProperty("socketTimeout", "120");
properties.setProperty("connectTimeout", "120");
if (factory.getEnableSSL() != null) {
properties.setProperty("ssl", factory.getEnableSSL().toString());
}
return new org.postgresql.Driver().connect(
format("jdbc:postgresql://%s:%s/%s",
factory.getHost(),
Optional.ofNullable(factory.getPort()).orElse(5432),
factory.getDatabase()), properties);
}
}, (jdbcSchemaConfig, table) -> ofNullable(jdbcSchemaConfig.getSchema())