19 package org.sleuthkit.autopsy.coreutils;
22 import java.io.FileInputStream;
23 import java.io.FileOutputStream;
24 import java.io.IOException;
25 import java.io.InputStream;
26 import java.nio.file.Paths;
27 import java.util.HashMap;
29 import java.util.Properties;
31 import java.util.logging.Level;
72 File parent =
new File(propPath.getParent());
73 if (!parent.exists()) {
77 Properties props =
new Properties();
79 propPath.createNewFile();
80 try (FileOutputStream fos =
new FileOutputStream(propPath)) {
81 props.store(fos,
"Created module settings file");
83 }
catch (IOException ex) {
84 logger.log(Level.SEVERE, String.format(
"Failed to create module settings file at %s)", propPath), ex);
99 public static synchronized boolean configExists(String moduleName) {
113 public static synchronized boolean settingExists(String moduleName, String settingName) {
120 return (props.getProperty(settingName) != null);
121 }
catch (IOException ex) {
122 logger.log(Level.SEVERE, String.format(
"Failed to get %s setting from module settings file at %s)", settingName,
getSettingsFilePath(moduleName)), ex);
135 return Paths.get(MODULE_DIR_PATH, moduleName + SETTINGS_FILE_EXT).toString();
149 public static synchronized String
getConfigSetting(String moduleName, String settingName) {
156 return props.getProperty(settingName);
157 }
catch (IOException ex) {
158 logger.log(Level.SEVERE, String.format(
"Failed to get %s setting from module settings file at %s)", settingName,
getSettingsFilePath(moduleName)), ex);
180 Set<String> keys = props.stringPropertyNames();
181 Map<String, String> map =
new HashMap<>();
182 for (String s : keys) {
183 map.put(s, props.getProperty(s));
186 }
catch (IOException ex) {
187 logger.log(Level.SEVERE, String.format(
"Failed to get settings from module settings file at %s)",
getSettingsFilePath(moduleName)), ex);
201 public static synchronized void setConfigSettings(String moduleName, Map<String, String> settings) {
208 for (Map.Entry<String, String> kvp : settings.entrySet()) {
209 props.setProperty(kvp.getKey(), kvp.getValue());
213 try (FileOutputStream fos =
new FileOutputStream(path)) {
214 props.store(fos,
"Set settings (batch)");
216 }
catch (IOException ex) {
217 logger.log(Level.SEVERE, String.format(
"Error writing to module settings file at %s)",
getSettingsFilePath(moduleName)), ex);
230 public static synchronized void setConfigSetting(String moduleName, String settingName, String settingVal) {
236 props.setProperty(settingName, settingVal);
238 try (FileOutputStream fos =
new FileOutputStream(path)) {
239 props.store(fos,
"Set " + settingName);
241 }
catch (IOException ex) {
242 logger.log(Level.SEVERE, String.format(
"Error writing %s setting to module settings file at %s)", settingName,
getSettingsFilePath(moduleName)), ex);
252 public static synchronized void removeProperty(String moduleName, String settingName) {
256 props.remove(settingName);
258 try (FileOutputStream fos =
new FileOutputStream(path)) {
259 props.store(fos,
"Removed " + settingName);
262 }
catch (IOException ex) {
263 logger.log(Level.SEVERE, String.format(
"Error removing %s setting from module settings file at %s)", settingName,
getSettingsFilePath(moduleName)), ex);
276 private static synchronized Properties
fetchProperties(String moduleName)
throws IOException {
279 props =
new Properties();
280 props.load(inputStream);
293 File configFile = null;
static synchronized String getConfigSetting(String moduleName, String settingName)
static final String CURRENT_CASE_TYPE
static final String MODULE_DIR_PATH
static final Logger logger
static synchronized void removeProperty(String moduleName, String settingName)
static synchronized Properties fetchProperties(String moduleName)
static synchronized boolean makeConfigFile(String moduleName)
static synchronized boolean settingExists(String moduleName, String settingName)
static final String DEFAULT_CONTEXT
static synchronized void setConfigSetting(String moduleName, String settingName, String settingVal)
static String getSettingsFilePath(String moduleName)
static synchronized File getPropertyFile(String moduleName)
static synchronized void setConfigSettings(String moduleName, Map< String, String > settings)
static synchronized boolean configExists(String moduleName)
static final String MAIN_SETTINGS
synchronized static Logger getLogger(String name)
static synchronized Map< String, String > getConfigSettings(String moduleName)
static final String SETTINGS_FILE_EXT