Mercurial > dive4elements > framework
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; |