Repository: incubator-stratos Updated Branches: refs/heads/master f966011ae -> 45775153a
fixing https://issues.apache.org/jira/browse/STRATOS-498 Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/45775153 Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/45775153 Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/45775153 Branch: refs/heads/master Commit: 45775153a56cb7f6365f54a2d2d5dd63e9b0f599 Parents: f966011 Author: Nirmal Fernando <[email protected]> Authored: Thu Mar 6 13:27:58 2014 +0530 Committer: Nirmal Fernando <[email protected]> Committed: Thu Mar 6 13:27:58 2014 +0530 ---------------------------------------------------------------------- .../config/CartridgeAgentConfiguration.java | 49 ++++++++++++++------ 1 file changed, 34 insertions(+), 15 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/45775153/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/config/CartridgeAgentConfiguration.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/config/CartridgeAgentConfiguration.java b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/config/CartridgeAgentConfiguration.java index 4f81802..622c016 100644 --- a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/config/CartridgeAgentConfiguration.java +++ b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/config/CartridgeAgentConfiguration.java @@ -7,7 +7,9 @@ import org.apache.stratos.cartridge.agent.util.CartridgeAgentUtils; import java.io.File; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Scanner; /** @@ -28,10 +30,12 @@ public class CartridgeAgentConfiguration { private final String repoUrl; private final List<Integer> ports; private final List<String> logFilePaths; + private Map<String, String> parameters; private boolean isMultitenant; private String persistanceMappings; private CartridgeAgentConfiguration() { + parameters = loadParametersFile(); serviceName = readParameterValue(CartridgeAgentConstants.SERVICE_NAME); clusterId = readParameterValue(CartridgeAgentConstants.CLUSTER_ID); networkPartitionId = readParameterValue(CartridgeAgentConstants.NETWORK_PARTITION_ID); @@ -81,38 +85,53 @@ public class CartridgeAgentConfiguration { } return instance; } + + private Map<String, String> loadParametersFile() { + Map<String, String> parameters = new HashMap<String, String>(); + try { - private String readParameterValue(String parameterName) { - try { - - if(System.getProperty(parameterName) != null){ - return System.getProperty(parameterName); - } // read launch params File file = new File(System.getProperty(CartridgeAgentConstants.PARAM_FILE_PATH)); if(!file.exists()) { - throw new RuntimeException(String.format("File not found: %s", CartridgeAgentConstants.PARAM_FILE_PATH)); + log.warn(String.format("File not found: %s", CartridgeAgentConstants.PARAM_FILE_PATH)); + return parameters; } Scanner scanner = new Scanner(file); while (scanner.hasNextLine()) { String line = scanner.nextLine(); String[] params = line.split(","); for (String string : params) { - String[] var = string.split("="); - if(parameterName.equals(var[0])){ - return var[1]; - } + if (string != null) { + String[] var = string.split("="); + if (var.length > 2) { + parameters.put(var[0], var[1]); + } + } } } scanner.close(); } catch (Exception e) { - String message = "Could not read launch parameter file"; - log.error(message, e); - throw new RuntimeException(message, e); + String message = "Could not read launch parameter file, hence trying to read from System properties."; + log.warn(message, e); } - return null; + + return parameters; } + private String readParameterValue(String parameterName) { + + if (parameters.containsKey(parameterName)) { + return parameters.get(parameterName); + } + + if (System.getProperty(parameterName) != null) { + return System.getProperty(parameterName); + } + + String message = "Cannot find the value of required parameter: "+parameterName; + throw new RuntimeException(message); + } + private List<Integer> readPorts() { List<Integer> ports = new ArrayList<Integer>(); String portsStr = readParameterValue(CartridgeAgentConstants.PORTS);
