package io.ebean;
import io.ebean.config.properties.PropertiesLoader;
import java.util.Properties;
class PrimaryServer {
private static Properties globalProperties;
private static String defaultServerName;
private static boolean skip;
static synchronized void setSkip(boolean skip) {
PrimaryServer.skip = skip;
}
static synchronized boolean isSkip() {
return skip;
}
static synchronized String getDefaultServerName() {
getProperties();
return defaultServerName;
}
static synchronized Properties getProperties() {
if (globalProperties == null) {
globalProperties = PropertiesLoader.load();
}
if (defaultServerName == null) {
defaultServerName = determineDefaultServerName();
}
return globalProperties;
}
private static String determineDefaultServerName() {
String defaultServerName = System.getenv("EBEAN_DB");
defaultServerName = System.getProperty("db", defaultServerName);
defaultServerName = System.getProperty("ebean_db", defaultServerName);
if (isEmpty(defaultServerName)) {
defaultServerName = System.getProperty("datasource.default");
if (isEmpty(defaultServerName)) {
defaultServerName = System.getProperty("ebean.default.datasource");
if (isEmpty(defaultServerName)) {
defaultServerName = globalProperties.getProperty("datasource.default");
if (isEmpty(defaultServerName)) {
defaultServerName = globalProperties.getProperty("ebean.default.datasource");
}
}
}
}
if (defaultServerName == null) {
defaultServerName = "db";
}
return defaultServerName;
}
private static boolean isEmpty(String value) {
return value == null || value.trim().isEmpty();
}
}