fr.ird.observe.entities.ObserveTopiaConfiguration Maven / Gradle / Ivy
package fr.ird.observe.entities;
/*-
* #%L
* ObServe Toolkit :: Common Persistence
* %%
* Copyright (C) 2017 - 2020 IRD, Ultreia.io
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public
* License along with this program. If not, see
* .
* #L%
*/
import org.nuiton.topia.persistence.BeanTopiaConfiguration;
import org.nuiton.topia.persistence.HibernateAvailableSettings;
import org.nuiton.topia.persistence.jdbc.JdbcConfiguration;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Path;
import java.util.Map;
import java.util.Properties;
import java.util.TreeMap;
/**
* Created on 23/08/15.
*
* @author Tony Chemit - [email protected]
*/
public class ObserveTopiaConfiguration extends BeanTopiaConfiguration {
private static final long serialVersionUID = 1L;
private static final Map HIBERNATE_GLOBAL_PROPERTIES;
private final boolean h2Configuration;
protected final boolean showSql;
private final Path temporaryDirectory;
static {
Properties p = new Properties();
try (InputStream stream = ObserveTopiaConfiguration.class.getResourceAsStream("/hibernate.properties")) {
try {
p.load(stream);
} catch (IOException e) {
throw new IllegalStateException(e);
}
} catch (IOException e) {
throw new IllegalStateException(e);
}
HIBERNATE_GLOBAL_PROPERTIES = new TreeMap<>();
for (String s : p.stringPropertyNames()) {
HIBERNATE_GLOBAL_PROPERTIES.put(s, p.getProperty(s));
}
}
public ObserveTopiaConfiguration(JdbcConfiguration jdbcConfiguration, Path temporaryDirectory, boolean h2Configuration, boolean showSql) {
super(jdbcConfiguration);
this.temporaryDirectory = temporaryDirectory;
this.h2Configuration = h2Configuration;
this.showSql = showSql;
if (showSql) {
hibernateExtraConfiguration.put(HibernateAvailableSettings.SHOW_SQL, Boolean.TRUE.toString());
}
hibernateExtraConfiguration.putAll(HIBERNATE_GLOBAL_PROPERTIES);
}
public boolean isH2Configuration() {
return h2Configuration;
}
public boolean isShowSql() {
return showSql;
}
public Path getTemporaryDirectory() {
return temporaryDirectory;
}
}