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);

Reply via email to