teichmann@5844: /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde teichmann@5844: * Software engineering by Intevation GmbH teichmann@5844: * teichmann@5844: * This file is Free Software under the GNU AGPL (>=v3) teichmann@5844: * and comes with ABSOLUTELY NO WARRANTY! Check out the teichmann@5844: * 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: teichmann@5874: import org.dive4elements.river.seddb.model.Bezugspegel; teichmann@5874: import org.dive4elements.river.seddb.model.Bezugspegelgew; teichmann@5874: import org.dive4elements.river.seddb.model.BezugspegelgewId; teichmann@5874: import org.dive4elements.river.seddb.model.Bild; teichmann@5874: import org.dive4elements.river.seddb.model.Gewaesser; teichmann@5874: import org.dive4elements.river.seddb.model.Gfaenger; teichmann@5874: import org.dive4elements.river.seddb.model.Glotlinks; teichmann@5874: import org.dive4elements.river.seddb.model.GlotlinksId; teichmann@5874: import org.dive4elements.river.seddb.model.Glotrechte; teichmann@5874: import org.dive4elements.river.seddb.model.Gprobe; teichmann@5874: import org.dive4elements.river.seddb.model.GprobeId; teichmann@5874: import org.dive4elements.river.seddb.model.Gsiebsatz; teichmann@5874: import org.dive4elements.river.seddb.model.Gsiebung; teichmann@5874: import org.dive4elements.river.seddb.model.Gsiebungsieb; teichmann@5874: import org.dive4elements.river.seddb.model.GsiebungsiebId; teichmann@5874: import org.dive4elements.river.seddb.model.Hpeilpunkt; teichmann@5874: import org.dive4elements.river.seddb.model.HpeilpunktId; teichmann@5874: import org.dive4elements.river.seddb.model.Hpeilung; teichmann@5874: import org.dive4elements.river.seddb.model.Messung; teichmann@5874: import org.dive4elements.river.seddb.model.Messunglotcount; teichmann@5874: import org.dive4elements.river.seddb.model.MessunglotcountId; teichmann@5874: import org.dive4elements.river.seddb.model.Messungsta; teichmann@5874: import org.dive4elements.river.seddb.model.MessungstaId; teichmann@5874: import org.dive4elements.river.seddb.model.Messunguferbezug; teichmann@5874: import org.dive4elements.river.seddb.model.MessunguferbezugId; teichmann@5874: import org.dive4elements.river.seddb.model.Mpeilpunkt; teichmann@5874: import org.dive4elements.river.seddb.model.MpeilpunktId; teichmann@5874: import org.dive4elements.river.seddb.model.Mpeilung; teichmann@5874: import org.dive4elements.river.seddb.model.Probebild; teichmann@5874: import org.dive4elements.river.seddb.model.Siebanalyse; teichmann@5874: import org.dive4elements.river.seddb.model.Slotlinks; teichmann@5874: import org.dive4elements.river.seddb.model.SlotlinksId; teichmann@5874: import org.dive4elements.river.seddb.model.Slotrechte; teichmann@5874: import org.dive4elements.river.seddb.model.Sohlprobe; teichmann@5874: import org.dive4elements.river.seddb.model.Sohltest; teichmann@5874: import org.dive4elements.river.seddb.model.Sprobe; teichmann@5874: import org.dive4elements.river.seddb.model.SprobeId; teichmann@5874: import org.dive4elements.river.seddb.model.Ssiebung; teichmann@5874: import org.dive4elements.river.seddb.model.Ssiebungsieb; teichmann@5874: import org.dive4elements.river.seddb.model.SsiebungsiebId; teichmann@5874: import org.dive4elements.river.seddb.model.Station; teichmann@5874: import org.dive4elements.river.seddb.model.Stationgew; teichmann@5874: import org.dive4elements.river.seddb.model.StationgewId; teichmann@5874: import org.dive4elements.river.seddb.model.TmpGloChanged; teichmann@5874: import org.dive4elements.river.seddb.model.TmpMesAchanged; teichmann@5874: import org.dive4elements.river.seddb.model.TmpMesGchanged; teichmann@5874: import org.dive4elements.river.seddb.model.TmpMesQchanged; teichmann@5874: import org.dive4elements.river.seddb.model.TmpMesSchanged; teichmann@5874: import org.dive4elements.river.seddb.model.Zzarchiv; teichmann@5874: import org.dive4elements.river.seddb.model.Zzprobenahmeart; teichmann@5874: import org.dive4elements.river.seddb.model.Zzsondierungart; teichmann@5874: import org.dive4elements.river.seddb.model.Zzthema; 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: 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: sascha@3333: public static final Class [] CLASSES = { sascha@3333: BezugspegelgewId.class, sascha@3333: Bezugspegelgew.class, sascha@3333: Bezugspegel.class, sascha@3333: Bild.class, sascha@3333: Gewaesser.class, sascha@3333: Gfaenger.class, sascha@3333: GlotlinksId.class, sascha@3333: Glotlinks.class, sascha@3333: Glotrechte.class, sascha@3333: GprobeId.class, sascha@3333: Gprobe.class, sascha@3333: Gsiebsatz.class, sascha@3333: Gsiebung.class, sascha@3333: GsiebungsiebId.class, sascha@3333: Gsiebungsieb.class, sascha@3333: HpeilpunktId.class, sascha@3333: Hpeilpunkt.class, sascha@3333: Hpeilung.class, sascha@3333: Messung.class, sascha@3333: MessunglotcountId.class, sascha@3333: Messunglotcount.class, sascha@3333: MessungstaId.class, sascha@3333: Messungsta.class, sascha@3333: MessunguferbezugId.class, sascha@3333: Messunguferbezug.class, sascha@3333: MpeilpunktId.class, sascha@3333: Mpeilpunkt.class, sascha@3333: Mpeilung.class, sascha@3333: Probebild.class, sascha@3333: Siebanalyse.class, sascha@3333: SlotlinksId.class, sascha@3333: Slotlinks.class, sascha@3333: Slotrechte.class, sascha@3333: Sohlprobe.class, sascha@3333: Sohltest.class, sascha@3333: SprobeId.class, sascha@3333: Sprobe.class, sascha@3333: Ssiebung.class, sascha@3333: SsiebungsiebId.class, sascha@3333: Ssiebungsieb.class, sascha@3333: StationgewId.class, sascha@3333: Stationgew.class, sascha@3333: Station.class, sascha@3333: TmpGloChanged.class, sascha@3333: TmpMesAchanged.class, sascha@3333: TmpMesGchanged.class, sascha@3333: TmpMesQchanged.class, sascha@3333: TmpMesSchanged.class, sascha@3333: Zzarchiv.class, sascha@3333: Zzprobenahmeart.class, sascha@3333: Zzsondierungart.class, sascha@3333: Zzthema.class sascha@3333: }; 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, aheinecke@5194: String connectionInitSqls sascha@3333: ) { aheinecke@5194: super( aheinecke@5194: user, password, dialect, driver, url, connectionInitSqls, 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); sascha@3333: sascha@3333: instance = new SedDBCredentials( aheinecke@5194: user, password, dialect, driver, url, connectionInitSqls); 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@5193: DEFAULT_CONNECTION_INIT_SQLS); sascha@3333: } sascha@3333: } sascha@3333: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :