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