gernotbelger@9030: /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde gernotbelger@9030: * Software engineering by Intevation GmbH gernotbelger@9030: * gernotbelger@9030: * This file is Free Software under the GNU AGPL (>=v3) gernotbelger@9030: * and comes with ABSOLUTELY NO WARRANTY! Check out the gernotbelger@9030: * documentation coming with Dive4Elements River for details. gernotbelger@9030: */ gernotbelger@9030: gernotbelger@9030: package org.dive4elements.river.backend; gernotbelger@9030: gernotbelger@9030: import org.dive4elements.artifacts.common.utils.Config; gernotbelger@9030: gernotbelger@9030: public class SedDBCredentials extends Credentials { gernotbelger@9030: public static final String XPATH_USER = "/artifact-database/seddb-database/user/text()"; gernotbelger@9030: gernotbelger@9030: public static final String XPATH_PASSWORD = "/artifact-database/seddb-database/password/text()"; gernotbelger@9030: gernotbelger@9030: public static final String XPATH_DIALECT = "/artifact-database/seddb-database/dialect/text()"; gernotbelger@9030: gernotbelger@9030: public static final String XPATH_DRIVER = "/artifact-database/seddb-database/driver/text()"; gernotbelger@9030: gernotbelger@9030: public static final String XPATH_URL = "/artifact-database/seddb-database/url/text()"; gernotbelger@9030: gernotbelger@9030: public static final String XPATH_CONNECTION_INIT_SQLS = "/artifact-database/seddb-database/connection-init-sqls/text()"; gernotbelger@9030: gernotbelger@9030: public static final String XPATH_VALIDATION_QUERY = "/artifact-database/seddb-database/validation-query/text()"; gernotbelger@9030: gernotbelger@9030: public static final String XPATH_MAX_WAIT = "/artifact-database/seddb-database/max-wait/text()"; gernotbelger@9030: gernotbelger@9030: public static final String DEFAULT_USER = System.getProperty("flys.seddb.user", "seddb"); gernotbelger@9030: gernotbelger@9030: public static final String DEFAULT_PASSWORD = System.getProperty("flys.seddb.password", "seddb"); gernotbelger@9030: gernotbelger@9030: public static final String DEFAULT_DIALECT = System.getProperty("flys.seddb.dialect", "org.hibernate.dialect.PostgreSQLDialect"); gernotbelger@9030: gernotbelger@9030: public static final String DEFAULT_DRIVER = System.getProperty("flys.seddb.driver", "org.postgresql.Driver"); gernotbelger@9030: gernotbelger@9030: public static final String DEFAULT_URL = System.getProperty("flys.seddb.url", "jdbc:postgresql://localhost:5432/seddb"); gernotbelger@9030: gernotbelger@9030: public static final String DEFAULT_CONNECTION_INIT_SQLS = System.getProperty("flys.seddb.connection.init.sqls"); gernotbelger@9030: gernotbelger@9030: public static final String DEFAULT_VALIDATION_QUERY = System.getProperty("flys.seddb.connection.validation.query"); gernotbelger@9030: gernotbelger@9030: public static final String DEFAULT_MAX_WAIT = System.getProperty("flys.seddb.connection.max.wait"); gernotbelger@9030: gernotbelger@9030: public static final Class[] CLASSES = {}; gernotbelger@9030: gernotbelger@9030: private static Credentials instance; gernotbelger@9030: gernotbelger@9030: public SedDBCredentials() { gernotbelger@9030: } gernotbelger@9030: gernotbelger@9030: public SedDBCredentials(final String user, final String password, final String dialect, final String driver, final String url, gernotbelger@9030: final String connectionInitSqls, final String validationQuery, final String maxWait) { gernotbelger@9030: super(user, password, dialect, driver, url, connectionInitSqls, validationQuery, maxWait, CLASSES); gernotbelger@9030: } gernotbelger@9030: gernotbelger@9030: public static synchronized Credentials getInstance() { gernotbelger@9030: if (instance == null) { gernotbelger@9030: final String user = Config.getStringXPath(XPATH_USER, DEFAULT_USER); gernotbelger@9030: final String password = Config.getStringXPath(XPATH_PASSWORD, DEFAULT_PASSWORD); gernotbelger@9030: final String dialect = Config.getStringXPath(XPATH_DIALECT, DEFAULT_DIALECT); gernotbelger@9030: final String driver = Config.getStringXPath(XPATH_DRIVER, DEFAULT_DRIVER); gernotbelger@9030: final String url = Config.getStringXPath(XPATH_URL, DEFAULT_URL); gernotbelger@9030: final String connectionInitSqls = Config.getStringXPath(XPATH_CONNECTION_INIT_SQLS, DEFAULT_CONNECTION_INIT_SQLS); gernotbelger@9030: final String validationQuery = Config.getStringXPath(XPATH_VALIDATION_QUERY, DEFAULT_VALIDATION_QUERY); gernotbelger@9030: final String maxWait = Config.getStringXPath(XPATH_MAX_WAIT, DEFAULT_MAX_WAIT); gernotbelger@9030: gernotbelger@9030: instance = new SedDBCredentials(user, password, dialect, driver, url, connectionInitSqls, validationQuery, maxWait); gernotbelger@9030: } gernotbelger@9030: return instance; gernotbelger@9030: } gernotbelger@9030: gernotbelger@9030: public static Credentials getDefault() { gernotbelger@9030: return new SedDBCredentials(DEFAULT_USER, DEFAULT_PASSWORD, DEFAULT_DIALECT, DEFAULT_DRIVER, DEFAULT_URL, DEFAULT_CONNECTION_INIT_SQLS, gernotbelger@9030: DEFAULT_VALIDATION_QUERY, DEFAULT_MAX_WAIT); gernotbelger@9030: } gernotbelger@9030: } gernotbelger@9030: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :