comparison artifact-database/src/main/java/de/intevation/artifactdatabase/Config.java @ 19:1259d192e3c3

* New configuration based on config directory * Artifact database launches REST web server at startup. artifacts/trunk@43 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Wed, 09 Sep 2009 07:55:44 +0000
parents 5a6b6a3debc7
children 00596a591a2f
comparison
equal deleted inserted replaced
18:63a8aa276693 19:1259d192e3c3
27 */ 27 */
28 public final class Config 28 public final class Config
29 { 29 {
30 private static Logger logger = Logger.getLogger(Config.class); 30 private static Logger logger = Logger.getLogger(Config.class);
31 31
32 public static final String CONFIG_PROPERTY = "artifact.database.config"; 32 public static final String CONFIG_DIR = "artifact.database.dir";
33 33
34 public static final String CONFIG_DEFAULT = "artifactdb-conf.xml"; 34 public static final File CONFIG_DIR_DEFAULT =
35 new File(new File(System.getProperty("user.home",
36 System.getProperty("user.dir", "."))), ".artifactdb");
37
38 public static final String CONFIG_FILE = "conf.xml";
35 39
36 private static Document config; 40 private static Document config;
37 41
38 private Config() { 42 private Config() {
39 } 43 }
43 config = loadConfig(); 47 config = loadConfig();
44 } 48 }
45 return config; 49 return config;
46 } 50 }
47 51
52 public static File getConfigDirectory() {
53 String configDirString = System.getProperty(CONFIG_DIR);
54
55 File configDir = configDirString != null
56 ? new File(configDirString)
57 : CONFIG_DIR_DEFAULT;
58
59 if (!configDir.isDirectory()) {
60 logger.warn("'" + configDir + "' is not a directory.");
61 configDir = CONFIG_DIR_DEFAULT;
62 }
63
64 return configDir;
65 }
66
48 private static Document loadConfig() { 67 private static Document loadConfig() {
49 File file = new File( 68
50 System.getProperty(CONFIG_PROPERTY, CONFIG_DEFAULT)); 69 File configDir = getConfigDirectory();
70
71 File file = new File(configDir, CONFIG_FILE);
51 72
52 if (!file.canRead() && !file.isFile()) { 73 if (!file.canRead() && !file.isFile()) {
53 logger.error("Cannot read config file '" 74 logger.error("Cannot read config file '"
54 + file + "'."); 75 + file + "'.");
55 return null; 76 return null;

http://dive4elements.wald.intevation.org