From 648659a78156ceb76177baeb94636c6d1bd92472 Mon Sep 17 00:00:00 2001 From: madhawap Date: Fri, 16 Jun 2017 13:12:06 +0530 Subject: [PATCH] Sets values taken from system varibales to iot-api-config.xml iot-api-config.xml consists with system varibales like iot.core.host, iot.keymanager.host etc. But values set to those varibales were not pass into these places. This commit fixes that --- .../carbon/apimgt/handlers/utils/Utils.java | 34 +++++++++++++++++-- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/src/main/java/org/wso2/carbon/apimgt/handlers/utils/Utils.java b/components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/src/main/java/org/wso2/carbon/apimgt/handlers/utils/Utils.java index d3c8ad3a9f..e7d239a1ee 100644 --- a/components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/src/main/java/org/wso2/carbon/apimgt/handlers/utils/Utils.java +++ b/components/apimgt-extensions/org.wso2.carbon.apimgt.handlers/src/main/java/org/wso2/carbon/apimgt/handlers/utils/Utils.java @@ -44,6 +44,8 @@ import java.net.URI; import java.net.URISyntaxException; import java.util.HashMap; import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** * Contains util methods for synapse gateway authentication handler @@ -62,21 +64,47 @@ public class Utils { public static IOTServerConfiguration initConfig() { try { - String IOTServerAPIConfigurationPath = - CarbonUtils.getCarbonConfigDirPath() + File.separator + IOT_APIS_CONFIG_FILE; + String IOTServerAPIConfigurationPath = CarbonUtils.getCarbonConfigDirPath() + File.separator + + IOT_APIS_CONFIG_FILE; File file = new File(IOTServerAPIConfigurationPath); Document doc = Utils.convertToDocument(file); JAXBContext fileContext = JAXBContext.newInstance(IOTServerConfiguration.class); Unmarshaller unmarshaller = fileContext.createUnmarshaller(); - return (IOTServerConfiguration) unmarshaller.unmarshal(doc); + IOTServerConfiguration iotServerConfiguration = (IOTServerConfiguration) unmarshaller.unmarshal( + doc); + iotServerConfiguration.setHostname(replaceProperties(iotServerConfiguration.getHostname())); + iotServerConfiguration.setVerificationEndpoint( + replaceProperties(iotServerConfiguration.getVerificationEndpoint())); + iotServerConfiguration.setDynamicClientRegistrationEndpoint( + replaceProperties(iotServerConfiguration.getDynamicClientRegistrationEndpoint())); + iotServerConfiguration.setOauthTokenEndpoint( + replaceProperties(iotServerConfiguration.getOauthTokenEndpoint())); + return iotServerConfiguration; } catch (JAXBException | APIMCertificateMGTException e) { log.error("Error occurred while initializing Data Source config", e); return null; } } + /** + * This method gets the values from system variables and sets to xml. + */ + public static String replaceProperties(String text) { + String regex = "\\$\\{(.*?)\\}"; + Pattern pattern = Pattern.compile(regex); + Matcher matchPattern = pattern.matcher(text); + while (matchPattern.find()) { + String sysPropertyName = matchPattern.group(1); + String sysPropertyValue = System.getProperty(sysPropertyName); + if (sysPropertyValue != null && !sysPropertyName.isEmpty()) { + text = text.replaceAll("\\$\\{(" + sysPropertyName + ")\\}", sysPropertyValue); + } + } + return text; + } + /** * This class build the iot-api-config.xml file. * @param file