You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by bf...@apache.org on 2013/01/14 19:00:34 UTC
[9/51] git commit: PropertiesUtil: Refactor process config file
method in utils, return map of key=value
PropertiesUtil: Refactor process config file method in utils, return map of key=value
Signed-off-by: Rohit Yadav <bh...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/f2ae0ae5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/f2ae0ae5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/f2ae0ae5
Branch: refs/heads/ui-quick-view-v2
Commit: f2ae0ae5ae70fbb5f33c004e05e4a17327094651
Parents: 1ac48bc
Author: Rohit Yadav <bh...@apache.org>
Authored: Thu Jan 10 15:29:01 2013 -0800
Committer: Rohit Yadav <bh...@apache.org>
Committed: Thu Jan 10 15:55:01 2013 -0800
----------------------------------------------------------------------
utils/src/com/cloud/utils/PropertiesUtil.java | 40 ++++++++++++++++++++
1 files changed, 40 insertions(+), 0 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/f2ae0ae5/utils/src/com/cloud/utils/PropertiesUtil.java
----------------------------------------------------------------------
diff --git a/utils/src/com/cloud/utils/PropertiesUtil.java b/utils/src/com/cloud/utils/PropertiesUtil.java
index 3909ca8..90f8af8 100755
--- a/utils/src/com/cloud/utils/PropertiesUtil.java
+++ b/utils/src/com/cloud/utils/PropertiesUtil.java
@@ -17,6 +17,8 @@
package com.cloud.utils;
import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
@@ -28,6 +30,7 @@ import java.util.Set;
import org.apache.log4j.Logger;
public class PropertiesUtil {
+ private static final Logger s_logger = Logger.getLogger(PropertiesUtil.class);
/**
* Searches the class path and local paths to find the config file.
* @param path path to find. if it starts with / then it's absolute path.
@@ -116,4 +119,41 @@ public class PropertiesUtil {
}
return null;
}
+
+ // Returns key=value pairs by parsing a commands.properties/config file
+ // with syntax; key=cmd;value (with this syntax cmd is stripped) and key=value
+ public static Map<String, String> processConfigFile(String[] configFiles) {
+ Map<String, String> configMap = new HashMap<String, String>();
+ Properties preProcessedCommands = new Properties();
+ for (String configFile : configFiles) {
+ File commandsFile = findConfigFile(configFile);
+ if (commandsFile != null) {
+ try {
+ preProcessedCommands.load(new FileInputStream(commandsFile));
+ } catch (FileNotFoundException fnfex) {
+ // in case of a file within a jar in classpath, try to open stream using url
+ InputStream stream = PropertiesUtil.openStreamFromURL(configFile);
+ if (stream != null) {
+ try {
+ preProcessedCommands.load(stream);
+ } catch (IOException e) {
+ s_logger.error("IO Exception, unable to find properties file:", fnfex);
+ }
+ } else {
+ s_logger.error("Unable to find properites file", fnfex);
+ }
+ } catch (IOException ioe) {
+ s_logger.error("IO Exception loading properties file", ioe);
+ }
+ }
+ }
+
+ for (Object key : preProcessedCommands.keySet()) {
+ String preProcessedCommand = preProcessedCommands.getProperty((String) key);
+ int splitIndex = preProcessedCommand.lastIndexOf(";");
+ String value = preProcessedCommand.substring(splitIndex+1);
+ configMap.put((String)key, value);
+ }
+ return configMap;
+ }
}