aboutsummaryrefslogtreecommitdiffstats
path: root/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/utils
diff options
context:
space:
mode:
Diffstat (limited to 'UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/utils')
-rw-r--r--UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/utils/CollectorConfigPropertyRetrival.java260
-rw-r--r--UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/utils/DmaapConfig.java559
-rw-r--r--UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/utils/FetchDynamicConfig.java419
3 files changed, 667 insertions, 571 deletions
diff --git a/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/utils/CollectorConfigPropertyRetrival.java b/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/utils/CollectorConfigPropertyRetrival.java
index 2262b9b..afa5c7c 100644
--- a/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/utils/CollectorConfigPropertyRetrival.java
+++ b/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/utils/CollectorConfigPropertyRetrival.java
@@ -1,88 +1,172 @@
-/*
-* ============LICENSE_START=======================================================
-* ONAP : DCAE
-* ================================================================================
-* Copyright 2019 TechMahindra
-*=================================================================================
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-* ============LICENSE_END=========================================================
-*/
-package org.onap.universalvesadapter.utils;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.io.IOException;
-
-import org.json.simple.JSONArray;
-import org.json.simple.JSONObject;
-import org.json.simple.parser.JSONParser;
-import org.json.simple.parser.ParseException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Component;
-
-@Component
-public class CollectorConfigPropertyRetrival {
-
- @Value("${defaultConfigFilelocation}")
- public String defaultConfigFilelocation;
- private static final Logger debugLogger = LoggerFactory.getLogger("debugLogger");
- private static final Logger errorLogger = LoggerFactory.getLogger("errorLogger");
- private static JSONArray array;
-
- public static JSONArray collectorConfigArray(String configFile) {
- try {
- JSONParser parser = new JSONParser();
-
- File file = new File(ClassLoader.getSystemResource(configFile.trim()).getFile());
-
- FileReader fileReader = new FileReader(file);
- JSONObject obj = (JSONObject) parser.parse(fileReader);
- JSONObject appobj = (JSONObject) obj.get("app_preferences");
- array = (JSONArray) appobj.get("collectors");
-
- debugLogger.info("Retrieved JsonArray from Collector Config File");
-
- } catch (ParseException e) {
- errorLogger.error("ParseException occured at position:", e.getPosition());
- } catch (FileNotFoundException e) {
-
- errorLogger.error("Collector Config File is not found..", e.getMessage());
- } catch (IOException e) {
-
- errorLogger.error("Error occured due to :", e.getMessage());
- }
-
- return array;
-
- }
-
- public static String[] getProperyArray(String properyName, String defaultConfigFilelocation) {
- JSONArray jsonArray = collectorConfigArray(defaultConfigFilelocation);
-
- String[] propertyArray = new String[jsonArray.size()];
-
- for (int k = 0; k < jsonArray.size(); k++) {
-
- JSONObject collJson = (JSONObject) jsonArray.get(k);
-
- propertyArray[k] = (String) collJson.get(properyName);
- }
- debugLogger.info("returning " + properyName + " array from Collector Config");
- return propertyArray;
-
- }
-
-}
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : DCAE
+ * ================================================================================
+ * Copyright 2018-2019 TechMahindra
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.universalvesadapter.utils;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.nio.file.Files;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.json.simple.JSONArray;
+import org.json.simple.JSONObject;
+import org.json.simple.parser.JSONParser;
+import org.json.simple.parser.ParseException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.util.ResourceUtils;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+@Component
+public class CollectorConfigPropertyRetrival {
+
+
+ private static final Logger debugLogger = LoggerFactory.getLogger("debugLogger");
+ private static final Logger errorLogger = LoggerFactory.getLogger("errorLogger");
+ private static JSONArray array;
+ @Autowired
+ private DmaapConfig dmaapConfig;
+
+ public static JSONArray collectorConfigArray(String configFile) {
+ try {
+ JSONParser parser = new JSONParser();
+ String content = readFile(configFile);
+ JSONObject obj = (JSONObject) parser.parse(content);
+ JSONObject appobj = (JSONObject) obj.get("app_preferences");
+ array = (JSONArray) appobj.get("collectors");
+
+ debugLogger.info("Retrieved JsonArray from Collector Config File");
+
+ } catch (ParseException e) {
+ errorLogger.error("ParseException occured at position:", e.getPosition());
+ }
+
+
+ return array;
+
+ }
+
+ public static String[] getProperyArray(String properyName,
+ String defaultConfigFilelocation) {
+ JSONArray jsonArray = collectorConfigArray(defaultConfigFilelocation);
+
+ String[] propertyArray = new String[jsonArray.size()];
+
+ for (int k = 0; k < jsonArray.size(); k++) {
+
+ JSONObject collJson = (JSONObject) jsonArray.get(k);
+
+ propertyArray[k] = (String) collJson.get(properyName);
+ }
+ debugLogger.info("returning " + properyName + " array from Collector Config");
+ return propertyArray;
+
+ }
+
+ public Map<String, String> getDmaapTopics(String subscriber, String publisher,
+ String defaultConfigFilelocation) {
+ JSONArray jsonArray = collectorConfigArray(defaultConfigFilelocation);
+
+ Map<String, String> dmaapTopics = new HashMap<>();
+
+ for (int k = 0; k < jsonArray.size(); k++) {
+
+ JSONObject collJson = (JSONObject) jsonArray.get(k);
+
+ dmaapTopics.put(collJson.get(subscriber).toString(),
+ collJson.get(publisher).toString());
+
+ }
+ debugLogger.info("returning Dmaap topics from Collector Config");
+ return dmaapTopics;
+
+ }
+
+ public Map<String, String> getTopics(String subscriber, String publisher,
+ String defaultConfigFilelocation) {
+ Map<String, String> dmaapTopics = new HashMap<>();
+
+ try {
+
+ ObjectMapper objectMapper = new ObjectMapper();
+ String content = readFile(defaultConfigFilelocation);
+ // read JSON like DOM Parser
+ JsonNode rootNode = objectMapper.readTree(content);
+ JsonNode subscriberUrl = rootNode.path("streams_subscribes")
+ .path(subscriber).path("dmaap_info").path("topic_url");
+ JsonNode publisherUrl = rootNode.path("streams_publishes").path(publisher)
+ .path("dmaap_info").path("topic_url");
+
+ dmaapTopics.put(getTopicName(subscriberUrl.asText()),
+ getTopicName(publisherUrl.asText()));
+ setDmaapConfig(subscriberUrl.asText());
+ } catch (IOException ex) {
+ errorLogger.error("IOException occured:" + ex.getMessage());
+
+ } catch (URISyntaxException e) {
+
+ errorLogger.error("Invalid URI :" + e.getInput() + ": " + e.getReason());
+ }
+
+ return dmaapTopics;
+
+ }
+
+ public String getTopicName(String url) throws URISyntaxException {
+ URI uri = new URI(url);
+ String path = uri.getPath();
+ String idStr = path.substring(path.lastIndexOf('/') + 1);
+ return idStr;
+
+ }
+
+ public void setDmaapConfig(String url) throws URISyntaxException {
+ URI uri = new URI(url);
+ dmaapConfig.setDmaaphost(uri.getHost());
+ dmaapConfig.setDEFAULT_PORT_NUMBER(uri.getPort());
+
+ }
+
+ public static String readFile(String configFileName) {
+ String content = null;
+ File file = null;
+
+ try {
+ file = ResourceUtils.getFile("classpath:" + configFileName);
+ content = new String(Files.readAllBytes(file.toPath()));
+ } catch (FileNotFoundException e) {
+ errorLogger.error("colud not find file :", configFileName);
+
+ } catch (IOException e) {
+ errorLogger.error("unable to read the file , reason:", e.getCause());
+ }
+
+ return content;
+
+ }
+}
diff --git a/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/utils/DmaapConfig.java b/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/utils/DmaapConfig.java
index 02b54c9..82c23b3 100644
--- a/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/utils/DmaapConfig.java
+++ b/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/utils/DmaapConfig.java
@@ -1,287 +1,272 @@
-/*
- * ===============================LICENSE_START======================================
- * dcae-analytics
- * ================================================================================
- * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============================LICENSE_END===========================================
- */
-package org.onap.universalvesadapter.utils;
-
-import javax.validation.constraints.NotEmpty;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.context.annotation.PropertySource;
-import org.springframework.stereotype.Component;
-
-@Component
-@PropertySource(value = {"classpath:application.properties","classpath:mapper.properties"})
-@ConfigurationProperties
-public class DmaapConfig {
-
- // Hostname of DMaaP to be taken from ENV var
- @NotEmpty
- private String dmaaphost;
-
- // default port number to be taken from ENV var
- @NotEmpty
- private int DEFAULT_PORT_NUMBER;
-
- @Value("${mr.POLLING_INTERVAL}")
- @NotEmpty
- private int pollingInterval;
-
- // default to no username
- @Value("${mr.DEFAULT_USER_NAME}")
- private String DEFAULT_USER_NAME;
-
-
- //defaults to no userPassword
- @Value("${mr.DEFAULT_USER_PASSWORD}")
- private String DEFAULT_USER_PASSWORD;
-
- //defaults to using https protocol
- @Value("${mr.DEFAULT_PROTOCOL}")
- @NotEmpty
- private String DEFAULT_PROTOCOL;
-
- //defaults to json content type
- @Value("${mr.DEFAULT_CONTENT_TYPE}")
- @NotEmpty
- private String DEFAULT_CONTENT_TYPE;
-
- @Value("${mr.DMAAP_URI_PATH_PREFIX}")
- @NotEmpty
- private String DMAAP_URI_PATH_PREFIX;
-
- @Value("${mr.DMAAP_DEFAULT_CONSUMER_ID}")
- @NotEmpty
- private String DMAAP_DEFAULT_CONSUMER_ID;
-
- @Value("${mr.DMAAP_GROUP_PREFIX}")
- @NotEmpty
- private String DMAAP_GROUP_PREFIX;
-
- // Publisher Constants
-
- //Dmaap Publisher Topic
- @Value("${mr.publisher.topic}")
- @NotEmpty
- private String publisherTopic;
-
- //disable batching by default
- @Value("${mr.publisher.DEFAULT_PUBLISHER_MAX_BATCH_SIZE}")
- @NotEmpty
- private int publisherDEFAULT_PUBLISHER_MAX_BATCH_SIZE;
-
- //default recovery messages size
- @Value("${mr.publisher.DEFAULT_PUBLISHER_MAX_RECOVERY_QUEUE_SIZE}")
- @NotEmpty
- private int publisherDEFAULT_PUBLISHER_MAX_RECOVERY_QUEUE_SIZE;
-
-//number of retries when flushing messages
- @Value("${mr.publisher.PUBLISHER_MAX_FLUSH_RETRIES_ON_CLOSE}")
- @NotEmpty
- private int publisherPUBLISHER_MAX_FLUSH_RETRIES_ON_CLOSE;
-
- //delay in retrying for flushing messages
- @Value("${mr.publisher.PUBLISHER_DELAY_MS_ON_RETRIES_ON_CLOSE}")
- @NotEmpty
- private int publisherPUBLISHER_DELAY_MS_ON_RETRIES_ON_CLOSE;
-
- // Subscriber Constants
-
- @Value("${mr.subscriber.DEFAULT_SUBSCRIBER_TIMEOUT_MS}")
- @NotEmpty
- private int subscriberDEFAULT_SUBSCRIBER_TIMEOUT_MS;
-
- @Value("${mr.subscriber.DEFAULT_SUBSCRIBER_MESSAGE_LIMIT}")
- @NotEmpty
- private int subscriberDEFAULT_SUBSCRIBER_MESSAGE_LIMIT;
-
- @Value("${mr.subscriber.DEFAULT_SUBSCRIBER_GROUP_PREFIX}")
- @NotEmpty
- private String subscriberDEFAULT_SUBSCRIBER_GROUP_PREFIX;
-
- @Value("${mr.subscriber.SUBSCRIBER_TIMEOUT_QUERY_PARAM_NAME}")
- @NotEmpty
- private String subscriberSUBSCRIBER_TIMEOUT_QUERY_PARAM_NAME;
-
- @Value("${mr.subscriber.SUBSCRIBER_MSG_LIMIT_QUERY_PARAM_NAME}")
- @NotEmpty
- private String subscriberSUBSCRIBER_MSG_LIMIT_QUERY_PARAM_NAME;
-
- public void setDmaaphost(String dmaaphost) {
- this.dmaaphost = dmaaphost;
- }
-
- public String getDmaaphost() {
- return dmaaphost;
- }
-
- public int getDEFAULT_PORT_NUMBER() {
- return DEFAULT_PORT_NUMBER;
- }
-
- public void setDEFAULT_PORT_NUMBER(int dEFAULT_PORT_NUMBER) {
- DEFAULT_PORT_NUMBER = dEFAULT_PORT_NUMBER;
- }
-
- public String getDEFAULT_USER_NAME() {
- return DEFAULT_USER_NAME;
- }
-
- public void setDEFAULT_USER_NAME(String dEFAULT_USER_NAME) {
- DEFAULT_USER_NAME = dEFAULT_USER_NAME;
- }
-
- public String getDEFAULT_USER_PASSWORD() {
- return DEFAULT_USER_PASSWORD;
- }
-
- public void setDEFAULT_USER_PASSWORD(String dEFAULT_USER_PASSWORD) {
- DEFAULT_USER_PASSWORD = dEFAULT_USER_PASSWORD;
- }
-
- public String getDEFAULT_PROTOCOL() {
- return DEFAULT_PROTOCOL;
- }
-
- public void setDEFAULT_PROTOCOL(String dEFAULT_PROTOCOL) {
- DEFAULT_PROTOCOL = dEFAULT_PROTOCOL;
- }
-
- public String getDEFAULT_CONTENT_TYPE() {
- return DEFAULT_CONTENT_TYPE;
- }
-
- public void setDEFAULT_CONTENT_TYPE(String dEFAULT_CONTENT_TYPE) {
- DEFAULT_CONTENT_TYPE = dEFAULT_CONTENT_TYPE;
- }
-
- public String getDMAAP_URI_PATH_PREFIX() {
- return DMAAP_URI_PATH_PREFIX;
- }
-
- public void setDMAAP_URI_PATH_PREFIX(String dMAAP_URI_PATH_PREFIX) {
- DMAAP_URI_PATH_PREFIX = dMAAP_URI_PATH_PREFIX;
- }
-
- public String getDMAAP_DEFAULT_CONSUMER_ID() {
- return DMAAP_DEFAULT_CONSUMER_ID;
- }
-
- public void setDMAAP_DEFAULT_CONSUMER_ID(String dMAAP_DEFAULT_CONSUMER_ID) {
- DMAAP_DEFAULT_CONSUMER_ID = dMAAP_DEFAULT_CONSUMER_ID;
- }
-
- public String getDMAAP_GROUP_PREFIX() {
- return DMAAP_GROUP_PREFIX;
- }
-
- public void setDMAAP_GROUP_PREFIX(String dMAAP_GROUP_PREFIX) {
- DMAAP_GROUP_PREFIX = dMAAP_GROUP_PREFIX;
- }
-
- public String getPublisherTopic() {
- return publisherTopic;
- }
-
- public void setPublisherTopic(String publisherTopic) {
- this.publisherTopic = publisherTopic;
- }
-
- public int getPublisherDEFAULT_PUBLISHER_MAX_BATCH_SIZE() {
- return publisherDEFAULT_PUBLISHER_MAX_BATCH_SIZE;
- }
-
- public void setPublisherDEFAULT_PUBLISHER_MAX_BATCH_SIZE(int publisherDEFAULT_PUBLISHER_MAX_BATCH_SIZE) {
- this.publisherDEFAULT_PUBLISHER_MAX_BATCH_SIZE = publisherDEFAULT_PUBLISHER_MAX_BATCH_SIZE;
- }
-
- public int getPublisherDEFAULT_PUBLISHER_MAX_RECOVERY_QUEUE_SIZE() {
- return publisherDEFAULT_PUBLISHER_MAX_RECOVERY_QUEUE_SIZE;
- }
-
- public void setPublisherDEFAULT_PUBLISHER_MAX_RECOVERY_QUEUE_SIZE(
- int publisherDEFAULT_PUBLISHER_MAX_RECOVERY_QUEUE_SIZE) {
- this.publisherDEFAULT_PUBLISHER_MAX_RECOVERY_QUEUE_SIZE = publisherDEFAULT_PUBLISHER_MAX_RECOVERY_QUEUE_SIZE;
- }
-
- public int getPublisherPUBLISHER_MAX_FLUSH_RETRIES_ON_CLOSE() {
- return publisherPUBLISHER_MAX_FLUSH_RETRIES_ON_CLOSE;
- }
-
- public void setPublisherPUBLISHER_MAX_FLUSH_RETRIES_ON_CLOSE(int publisherPUBLISHER_MAX_FLUSH_RETRIES_ON_CLOSE) {
- this.publisherPUBLISHER_MAX_FLUSH_RETRIES_ON_CLOSE = publisherPUBLISHER_MAX_FLUSH_RETRIES_ON_CLOSE;
- }
-
- public int getPublisherPUBLISHER_DELAY_MS_ON_RETRIES_ON_CLOSE() {
- return publisherPUBLISHER_DELAY_MS_ON_RETRIES_ON_CLOSE;
- }
-
- public void setPublisherPUBLISHER_DELAY_MS_ON_RETRIES_ON_CLOSE(int publisherPUBLISHER_DELAY_MS_ON_RETRIES_ON_CLOSE) {
- this.publisherPUBLISHER_DELAY_MS_ON_RETRIES_ON_CLOSE = publisherPUBLISHER_DELAY_MS_ON_RETRIES_ON_CLOSE;
- }
-
- public int getsubscriberDEFAULT_SUBSCRIBER_TIMEOUT_MS() {
- return subscriberDEFAULT_SUBSCRIBER_TIMEOUT_MS;
- }
-
- public void setsubscriberDEFAULT_SUBSCRIBER_TIMEOUT_MS(int subscriberDEFAULT_SUBSCRIBER_TIMEOUT_MS) {
- this.subscriberDEFAULT_SUBSCRIBER_TIMEOUT_MS = subscriberDEFAULT_SUBSCRIBER_TIMEOUT_MS;
- }
-
- public int getsubscriberDEFAULT_SUBSCRIBER_MESSAGE_LIMIT() {
- return subscriberDEFAULT_SUBSCRIBER_MESSAGE_LIMIT;
- }
-
- public void setsubscriberDEFAULT_SUBSCRIBER_MESSAGE_LIMIT(int subscriberDEFAULT_SUBSCRIBER_MESSAGE_LIMIT) {
- this.subscriberDEFAULT_SUBSCRIBER_MESSAGE_LIMIT = subscriberDEFAULT_SUBSCRIBER_MESSAGE_LIMIT;
- }
-
- public String getsubscriberDEFAULT_SUBSCRIBER_GROUP_PREFIX() {
- return subscriberDEFAULT_SUBSCRIBER_GROUP_PREFIX;
- }
-
- public void setsubscriberDEFAULT_SUBSCRIBER_GROUP_PREFIX(String subscriberDEFAULT_SUBSCRIBER_GROUP_PREFIX) {
- this.subscriberDEFAULT_SUBSCRIBER_GROUP_PREFIX = subscriberDEFAULT_SUBSCRIBER_GROUP_PREFIX;
- }
-
- public String getsubscriberSUBSCRIBER_TIMEOUT_QUERY_PARAM_NAME() {
- return subscriberSUBSCRIBER_TIMEOUT_QUERY_PARAM_NAME;
- }
-
- public void setsubscriberSUBSCRIBER_TIMEOUT_QUERY_PARAM_NAME(String subscriberSUBSCRIBER_TIMEOUT_QUERY_PARAM_NAME) {
- this.subscriberSUBSCRIBER_TIMEOUT_QUERY_PARAM_NAME = subscriberSUBSCRIBER_TIMEOUT_QUERY_PARAM_NAME;
- }
-
- public String getsubscriberSUBSCRIBER_MSG_LIMIT_QUERY_PARAM_NAME() {
- return subscriberSUBSCRIBER_MSG_LIMIT_QUERY_PARAM_NAME;
- }
-
- public void setsubscriberSUBSCRIBER_MSG_LIMIT_QUERY_PARAM_NAME(String subscriberSUBSCRIBER_MSG_LIMIT_QUERY_PARAM_NAME) {
- this.subscriberSUBSCRIBER_MSG_LIMIT_QUERY_PARAM_NAME = subscriberSUBSCRIBER_MSG_LIMIT_QUERY_PARAM_NAME;
- }
-
- public int getPollingInterval() {
- return pollingInterval;
- }
-
- public void setPollingInterval(int pollingInterval) {
- this.pollingInterval = pollingInterval;
- }
-
-
-}
+/*
+ * ===============================LICENSE_START======================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============================LICENSE_END===========================================
+ */
+package org.onap.universalvesadapter.utils;
+
+import javax.validation.constraints.NotEmpty;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.PropertySource;
+import org.springframework.stereotype.Component;
+
+@Component
+@PropertySource(value = {"classpath:application.properties","classpath:mapper.properties"})
+@ConfigurationProperties
+public class DmaapConfig {
+
+ @NotEmpty
+ private String dmaaphost;
+
+ @NotEmpty
+ private int DEFAULT_PORT_NUMBER;
+
+ @Value("${mr.POLLING_INTERVAL}")
+ @NotEmpty
+ private int pollingInterval;
+
+ // default to no username
+ @Value("${mr.DEFAULT_USER_NAME}")
+ private String DEFAULT_USER_NAME;
+
+
+ //defaults to no userPassword
+ @Value("${mr.DEFAULT_USER_PASSWORD}")
+ private String DEFAULT_USER_PASSWORD;
+
+ //defaults to using https protocol
+ @Value("${mr.DEFAULT_PROTOCOL}")
+ @NotEmpty
+ private String DEFAULT_PROTOCOL;
+
+ //defaults to json content type
+ @Value("${mr.DEFAULT_CONTENT_TYPE}")
+ @NotEmpty
+ private String DEFAULT_CONTENT_TYPE;
+
+ @Value("${mr.DMAAP_URI_PATH_PREFIX}")
+ @NotEmpty
+ private String DMAAP_URI_PATH_PREFIX;
+
+ @Value("${mr.DMAAP_DEFAULT_CONSUMER_ID}")
+ @NotEmpty
+ private String DMAAP_DEFAULT_CONSUMER_ID;
+
+ @Value("${mr.DMAAP_GROUP_PREFIX}")
+ @NotEmpty
+ private String DMAAP_GROUP_PREFIX;
+
+ // Publisher Constants
+
+ //disable batching by default
+ @Value("${mr.publisher.DEFAULT_PUBLISHER_MAX_BATCH_SIZE}")
+ @NotEmpty
+ private int publisherDEFAULT_PUBLISHER_MAX_BATCH_SIZE;
+
+ //default recovery messages size
+ @Value("${mr.publisher.DEFAULT_PUBLISHER_MAX_RECOVERY_QUEUE_SIZE}")
+ @NotEmpty
+ private int publisherDEFAULT_PUBLISHER_MAX_RECOVERY_QUEUE_SIZE;
+
+//number of retries when flushing messages
+ @Value("${mr.publisher.PUBLISHER_MAX_FLUSH_RETRIES_ON_CLOSE}")
+ @NotEmpty
+ private int publisherPUBLISHER_MAX_FLUSH_RETRIES_ON_CLOSE;
+
+ //delay in retrying for flushing messages
+ @Value("${mr.publisher.PUBLISHER_DELAY_MS_ON_RETRIES_ON_CLOSE}")
+ @NotEmpty
+ private int publisherPUBLISHER_DELAY_MS_ON_RETRIES_ON_CLOSE;
+
+ // Subscriber Constants
+
+ @Value("${mr.subscriber.DEFAULT_SUBSCRIBER_TIMEOUT_MS}")
+ @NotEmpty
+ private int subscriberDEFAULT_SUBSCRIBER_TIMEOUT_MS;
+
+ @Value("${mr.subscriber.DEFAULT_SUBSCRIBER_MESSAGE_LIMIT}")
+ @NotEmpty
+ private int subscriberDEFAULT_SUBSCRIBER_MESSAGE_LIMIT;
+
+ @Value("${mr.subscriber.DEFAULT_SUBSCRIBER_GROUP_PREFIX}")
+ @NotEmpty
+ private String subscriberDEFAULT_SUBSCRIBER_GROUP_PREFIX;
+
+ @Value("${mr.subscriber.SUBSCRIBER_TIMEOUT_QUERY_PARAM_NAME}")
+ @NotEmpty
+ private String subscriberSUBSCRIBER_TIMEOUT_QUERY_PARAM_NAME;
+
+ @Value("${mr.subscriber.SUBSCRIBER_MSG_LIMIT_QUERY_PARAM_NAME}")
+ @NotEmpty
+ private String subscriberSUBSCRIBER_MSG_LIMIT_QUERY_PARAM_NAME;
+
+ public void setDmaaphost(String dmaaphost) {
+ this.dmaaphost = dmaaphost;
+ }
+
+ public String getDmaaphost() {
+ return dmaaphost;
+ }
+
+ public int getDEFAULT_PORT_NUMBER() {
+ return DEFAULT_PORT_NUMBER;
+ }
+
+ public void setDEFAULT_PORT_NUMBER(int dEFAULT_PORT_NUMBER) {
+ DEFAULT_PORT_NUMBER = dEFAULT_PORT_NUMBER;
+ }
+
+ public String getDEFAULT_USER_NAME() {
+ return DEFAULT_USER_NAME;
+ }
+
+ public void setDEFAULT_USER_NAME(String dEFAULT_USER_NAME) {
+ DEFAULT_USER_NAME = dEFAULT_USER_NAME;
+ }
+
+ public String getDEFAULT_USER_PASSWORD() {
+ return DEFAULT_USER_PASSWORD;
+ }
+
+ public void setDEFAULT_USER_PASSWORD(String dEFAULT_USER_PASSWORD) {
+ DEFAULT_USER_PASSWORD = dEFAULT_USER_PASSWORD;
+ }
+
+ public String getDEFAULT_PROTOCOL() {
+ return DEFAULT_PROTOCOL;
+ }
+
+ public void setDEFAULT_PROTOCOL(String dEFAULT_PROTOCOL) {
+ DEFAULT_PROTOCOL = dEFAULT_PROTOCOL;
+ }
+
+ public String getDEFAULT_CONTENT_TYPE() {
+ return DEFAULT_CONTENT_TYPE;
+ }
+
+ public void setDEFAULT_CONTENT_TYPE(String dEFAULT_CONTENT_TYPE) {
+ DEFAULT_CONTENT_TYPE = dEFAULT_CONTENT_TYPE;
+ }
+
+ public String getDMAAP_URI_PATH_PREFIX() {
+ return DMAAP_URI_PATH_PREFIX;
+ }
+
+ public void setDMAAP_URI_PATH_PREFIX(String dMAAP_URI_PATH_PREFIX) {
+ DMAAP_URI_PATH_PREFIX = dMAAP_URI_PATH_PREFIX;
+ }
+
+ public String getDMAAP_DEFAULT_CONSUMER_ID() {
+ return DMAAP_DEFAULT_CONSUMER_ID;
+ }
+
+ public void setDMAAP_DEFAULT_CONSUMER_ID(String dMAAP_DEFAULT_CONSUMER_ID) {
+ DMAAP_DEFAULT_CONSUMER_ID = dMAAP_DEFAULT_CONSUMER_ID;
+ }
+
+ public String getDMAAP_GROUP_PREFIX() {
+ return DMAAP_GROUP_PREFIX;
+ }
+
+ public void setDMAAP_GROUP_PREFIX(String dMAAP_GROUP_PREFIX) {
+ DMAAP_GROUP_PREFIX = dMAAP_GROUP_PREFIX;
+ }
+
+ public int getPublisherDEFAULT_PUBLISHER_MAX_BATCH_SIZE() {
+ return publisherDEFAULT_PUBLISHER_MAX_BATCH_SIZE;
+ }
+
+ public void setPublisherDEFAULT_PUBLISHER_MAX_BATCH_SIZE(int publisherDEFAULT_PUBLISHER_MAX_BATCH_SIZE) {
+ this.publisherDEFAULT_PUBLISHER_MAX_BATCH_SIZE = publisherDEFAULT_PUBLISHER_MAX_BATCH_SIZE;
+ }
+
+ public int getPublisherDEFAULT_PUBLISHER_MAX_RECOVERY_QUEUE_SIZE() {
+ return publisherDEFAULT_PUBLISHER_MAX_RECOVERY_QUEUE_SIZE;
+ }
+
+ public void setPublisherDEFAULT_PUBLISHER_MAX_RECOVERY_QUEUE_SIZE(
+ int publisherDEFAULT_PUBLISHER_MAX_RECOVERY_QUEUE_SIZE) {
+ this.publisherDEFAULT_PUBLISHER_MAX_RECOVERY_QUEUE_SIZE = publisherDEFAULT_PUBLISHER_MAX_RECOVERY_QUEUE_SIZE;
+ }
+
+ public int getPublisherPUBLISHER_MAX_FLUSH_RETRIES_ON_CLOSE() {
+ return publisherPUBLISHER_MAX_FLUSH_RETRIES_ON_CLOSE;
+ }
+
+ public void setPublisherPUBLISHER_MAX_FLUSH_RETRIES_ON_CLOSE(int publisherPUBLISHER_MAX_FLUSH_RETRIES_ON_CLOSE) {
+ this.publisherPUBLISHER_MAX_FLUSH_RETRIES_ON_CLOSE = publisherPUBLISHER_MAX_FLUSH_RETRIES_ON_CLOSE;
+ }
+
+ public int getPublisherPUBLISHER_DELAY_MS_ON_RETRIES_ON_CLOSE() {
+ return publisherPUBLISHER_DELAY_MS_ON_RETRIES_ON_CLOSE;
+ }
+
+ public void setPublisherPUBLISHER_DELAY_MS_ON_RETRIES_ON_CLOSE(int publisherPUBLISHER_DELAY_MS_ON_RETRIES_ON_CLOSE) {
+ this.publisherPUBLISHER_DELAY_MS_ON_RETRIES_ON_CLOSE = publisherPUBLISHER_DELAY_MS_ON_RETRIES_ON_CLOSE;
+ }
+
+ public int getsubscriberDEFAULT_SUBSCRIBER_TIMEOUT_MS() {
+ return subscriberDEFAULT_SUBSCRIBER_TIMEOUT_MS;
+ }
+
+ public void setsubscriberDEFAULT_SUBSCRIBER_TIMEOUT_MS(int subscriberDEFAULT_SUBSCRIBER_TIMEOUT_MS) {
+ this.subscriberDEFAULT_SUBSCRIBER_TIMEOUT_MS = subscriberDEFAULT_SUBSCRIBER_TIMEOUT_MS;
+ }
+
+ public int getsubscriberDEFAULT_SUBSCRIBER_MESSAGE_LIMIT() {
+ return subscriberDEFAULT_SUBSCRIBER_MESSAGE_LIMIT;
+ }
+
+ public void setsubscriberDEFAULT_SUBSCRIBER_MESSAGE_LIMIT(int subscriberDEFAULT_SUBSCRIBER_MESSAGE_LIMIT) {
+ this.subscriberDEFAULT_SUBSCRIBER_MESSAGE_LIMIT = subscriberDEFAULT_SUBSCRIBER_MESSAGE_LIMIT;
+ }
+
+ public String getsubscriberDEFAULT_SUBSCRIBER_GROUP_PREFIX() {
+ return subscriberDEFAULT_SUBSCRIBER_GROUP_PREFIX;
+ }
+
+ public void setsubscriberDEFAULT_SUBSCRIBER_GROUP_PREFIX(String subscriberDEFAULT_SUBSCRIBER_GROUP_PREFIX) {
+ this.subscriberDEFAULT_SUBSCRIBER_GROUP_PREFIX = subscriberDEFAULT_SUBSCRIBER_GROUP_PREFIX;
+ }
+
+ public String getsubscriberSUBSCRIBER_TIMEOUT_QUERY_PARAM_NAME() {
+ return subscriberSUBSCRIBER_TIMEOUT_QUERY_PARAM_NAME;
+ }
+
+ public void setsubscriberSUBSCRIBER_TIMEOUT_QUERY_PARAM_NAME(String subscriberSUBSCRIBER_TIMEOUT_QUERY_PARAM_NAME) {
+ this.subscriberSUBSCRIBER_TIMEOUT_QUERY_PARAM_NAME = subscriberSUBSCRIBER_TIMEOUT_QUERY_PARAM_NAME;
+ }
+
+ public String getsubscriberSUBSCRIBER_MSG_LIMIT_QUERY_PARAM_NAME() {
+ return subscriberSUBSCRIBER_MSG_LIMIT_QUERY_PARAM_NAME;
+ }
+
+ public void setsubscriberSUBSCRIBER_MSG_LIMIT_QUERY_PARAM_NAME(String subscriberSUBSCRIBER_MSG_LIMIT_QUERY_PARAM_NAME) {
+ this.subscriberSUBSCRIBER_MSG_LIMIT_QUERY_PARAM_NAME = subscriberSUBSCRIBER_MSG_LIMIT_QUERY_PARAM_NAME;
+ }
+
+ public int getPollingInterval() {
+ return pollingInterval;
+ }
+
+ public void setPollingInterval(int pollingInterval) {
+ this.pollingInterval = pollingInterval;
+ }
+
+
+}
diff --git a/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/utils/FetchDynamicConfig.java b/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/utils/FetchDynamicConfig.java
index af219ce..4bc66bb 100644
--- a/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/utils/FetchDynamicConfig.java
+++ b/UniversalVesAdapter/src/main/java/org/onap/universalvesadapter/utils/FetchDynamicConfig.java
@@ -1,196 +1,223 @@
-/*
-* ============LICENSE_START=======================================================
-* ONAP : DCAE
-* ================================================================================
-* Copyright 2019 TechMahindra
-*=================================================================================
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-* ============LICENSE_END=========================================================
-*/
-package org.onap.universalvesadapter.utils;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.util.Map;
-import org.json.JSONArray;
-import org.json.JSONObject;
-import org.json.JSONTokener;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Component;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-@Component
-public class FetchDynamicConfig {
-
- private static final Logger debugLogger = LoggerFactory.getLogger("debugLogger");
- private static final Logger errorLogger = LoggerFactory.getLogger("errorLogger");
-
- private static String url;
- public static String retString;
- public static String retCBSString;
- private static Map<String, String> env;
-
- public FetchDynamicConfig() {
- }
-
- public static void cbsCall(String configFile) {
-
- env = System.getenv();
- Boolean areEqual;
- // Call consul api and identify the CBS Service address and port
- getconsul();
- // Construct and invoke CBS API to get application Configuration
- getCBS();
- // Verify if data has changed
- areEqual = verifyConfigChange(configFile);
-
- if (!areEqual) {
- FetchDynamicConfig fc = new FetchDynamicConfig();
- fc.writefile(retCBSString,configFile);
- } else {
- debugLogger.info("New config pull results identical - " + configFile + " NOT refreshed");
- }
- }
-
-
- private static void getconsul() {
- url = env.get("CONSUL_HOST") + ":8500/v1/catalog/service/" + env.get("CONFIG_BINDING_SERVICE");
- retString = executecurl(url);
- debugLogger.info("CBS details fetched from Consul");
- }
-
- public static boolean verifyConfigChange(String configFile) {
-
- boolean areEqual = false;
- // Read current data
- try {
- File f = new File(configFile);
- if (f.exists() && !f.isDirectory()) {
-
- String jsonData = readFile(configFile);
- JSONObject jsonObject = new JSONObject(jsonData);
-
- ObjectMapper mapper = new ObjectMapper();
-
- JsonNode tree1 = mapper.readTree(jsonObject.toString());
- JsonNode tree2 = mapper.readTree(retCBSString);
- areEqual = tree1.equals(tree2);
- debugLogger.info("Comparison value:" + areEqual);
- } else {
- debugLogger.info("First time config file read: " + configFile);
- }
-
- } catch (IOException e) {
- errorLogger.error("Comparison with new fetched data failed" + e.getMessage());
-
- }
-
- return areEqual;
-
- }
-
- public static void getCBS() {
-
- // consul return as array
- JSONTokener temp = new JSONTokener(retString);
- JSONObject cbsjobj = (JSONObject) new JSONArray(temp).get(0);
-
- String urlPart1 = null;
- if (cbsjobj.has("ServiceAddress") && cbsjobj.has("ServicePort")) {
-
- urlPart1 = cbsjobj.getString("ServiceAddress") + ":" + cbsjobj.getInt("ServicePort");
-
- }
- debugLogger.info("CONFIG_BINDING_SERVICE DNS RESOLVED:" + urlPart1);
-
- if (env.containsKey("HOSTNAME")) {
- url = urlPart1 + "/service_component/" + env.get("HOSTNAME");
- retCBSString = executecurl(url);
- } else if (env.containsKey("SERVICE_NAME")) {
- url = urlPart1 + "/service_component/" + env.get("SERVICE_NAME");
- retCBSString = executecurl(url);
- } else {
- errorLogger.error("Service name environment variable - HOSTNAME/SERVICE_NAME not found within container ");
- }
-
- }
-
- public void writefile(String retCBSString, String configFile) {
- debugLogger.info("URL to fetch configuration:" + url);
-
- String indentedretstring = (new JSONObject(retCBSString)).toString(4);
-
- try (FileWriter file = new FileWriter(configFile)) {
- file.write(indentedretstring);
-
- debugLogger.info("Successfully Copied JSON Object to file " + configFile);
- } catch (IOException e) {
- errorLogger.error("Error in writing configuration into file " + configFile + retString + e.getMessage());
- e.printStackTrace();
- }
-
- }
-
- public static String readFile(String filename) {
- String result = "";
- try (BufferedReader br = new BufferedReader(new FileReader(filename))) {
- StringBuilder sb = new StringBuilder();
- String line = br.readLine();
- while (line != null) {
- sb.append(line);
- line = br.readLine();
- }
- result = sb.toString();
- } catch (FileNotFoundException e) {
- errorLogger.error("colud not find file :",filename);
-
- } catch (Exception e) {
- errorLogger.error("unable to read the file , reason:",e.getCause());
- }
- return result;
- }
- private static String executecurl(String url) {
-
- String[] command = { "curl", "-v", url };
- ProcessBuilder process = new ProcessBuilder(command);
- Process p;
- String result = null;
- try {
- p = process.start();
- InputStreamReader ipr = new InputStreamReader(p.getInputStream());
- BufferedReader reader = new BufferedReader(ipr);
- StringBuilder builder = new StringBuilder();
- String line;
-
- while ((line = reader.readLine()) != null) {
- builder.append(line);
- }
- result = builder.toString();
- reader.close();
- ipr.close();
- } catch (IOException e) {
- errorLogger.error("error", e);
- e.printStackTrace();
- }
- return result;
-
- }
-
-}
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP : DCAE
+ * ================================================================================
+ * Copyright 2019 TechMahindra
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.universalvesadapter.utils;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.PrintWriter;
+import java.nio.file.Files;
+import java.util.Map;
+
+import org.json.JSONArray;
+import org.json.JSONObject;
+import org.json.JSONTokener;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+import org.springframework.util.ResourceUtils;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+@Component
+public class FetchDynamicConfig {
+
+ private static final Logger debugLogger = LoggerFactory.getLogger("debugLogger");
+ private static final Logger errorLogger = LoggerFactory.getLogger("errorLogger");
+
+ private static String url;
+ public static String retString;
+ public static String retCBSString;
+ private static Map<String, String> env;
+
+ public FetchDynamicConfig() {}
+
+ public static void cbsCall(String configFile) {
+
+ env = System.getenv();
+ Boolean areEqual;
+ // Call consul api and identify the CBS Service address and port
+ getconsul();
+ // Construct and invoke CBS API to get application Configuration
+ getCBS();
+ // Verify if data has changed
+ areEqual = verifyConfigChange(configFile);
+
+ if (!areEqual) {
+ FetchDynamicConfig fc = new FetchDynamicConfig();
+ fc.writefile(retCBSString, configFile);
+ } else {
+ debugLogger.info("New config pull results identical - " + configFile
+ + " NOT refreshed");
+ }
+ }
+
+
+ private static void getconsul() {
+ url = env.get("CONSUL_HOST") + ":8500/v1/catalog/service/"
+ + env.get("CONFIG_BINDING_SERVICE");
+ retString = executecurl(url);
+ debugLogger.info("CBS details fetched from Consul");
+ }
+
+ public static boolean verifyConfigChange(String configFile) {
+
+ boolean areEqual = false;
+ // Read current data
+ try {
+
+ File f = new File(
+ ClassLoader.getSystemResource(configFile.trim()).getFile());
+
+ if (f.exists() && !f.isDirectory()) {
+ debugLogger.info(
+ "Comparing local configuration with the configuration fethed from CBS ");
+
+ String jsonData = readFile(configFile);
+ JSONObject jsonObject = new JSONObject(jsonData);
+
+ ObjectMapper mapper = new ObjectMapper();
+
+ JsonNode tree1 = mapper.readTree(jsonObject.toString());
+ JsonNode tree2 = mapper.readTree(retCBSString);
+ areEqual = tree1.equals(tree2);
+ debugLogger.info("Comparison value:" + areEqual);
+ } else {
+ debugLogger.info("First time config file read: " + configFile);
+ }
+
+ } catch (IOException e) {
+ errorLogger.error(
+ "Comparison with new fetched data failed" + e.getMessage());
+
+ }
+
+ return areEqual;
+
+ }
+
+ public static void getCBS() {
+
+ // consul return as array
+ JSONTokener temp = new JSONTokener(retString);
+ JSONObject cbsjobj = (JSONObject) new JSONArray(temp).get(0);
+
+ String urlPart1 = null;
+ if (cbsjobj.has("ServiceAddress") && cbsjobj.has("ServicePort")) {
+
+ urlPart1 = cbsjobj.getString("ServiceAddress") + ":"
+ + cbsjobj.getInt("ServicePort");
+
+ }
+ debugLogger.info("CONFIG_BINDING_SERVICE HOST:PORT is " + urlPart1);
+
+ if (env.containsKey("HOSTNAME")) {
+ url = urlPart1 + "/service_component/" + env.get("HOSTNAME");
+ retCBSString = executecurl(url);
+ debugLogger.info("Configuration fetched from CBS successfully..");
+ } else if (env.containsKey("SERVICE_NAME")) {
+ url = urlPart1 + "/service_component/" + env.get("SERVICE_NAME");
+ retCBSString = executecurl(url);
+ debugLogger.info("Configuration fetched from CBS successfully..");
+ } else {
+ errorLogger.error(
+ "Service name environment variable - HOSTNAME/SERVICE_NAME not found within container ");
+ }
+
+ }
+
+ public void writefile(String retCBSString, String configFile) {
+
+ String indentedretstring = (new JSONObject(retCBSString)).toString(4);
+ File f = new File(ClassLoader.getSystemResource(configFile.trim()).getFile());
+ try {
+ debugLogger.info("Overwriting local configuration file " + configFile
+ + " with configuartions received from CBS");
+
+
+ File file2 = ResourceUtils.getFile("classpath:" + configFile);
+ FileWriter fstream = new FileWriter(file2, false);
+ PrintWriter printWriter = new PrintWriter(fstream);
+ printWriter.print(indentedretstring);
+ printWriter.close();
+
+ debugLogger.info("New Config successfully written to local file to "
+ + configFile);
+ } catch (IOException e) {
+ errorLogger.error("Error in writing configuration into local KV file "
+ + configFile + retString + e.getMessage());
+ e.printStackTrace();
+ }
+
+ }
+
+ public static String readFile(String configFileName) {
+ String content = null;
+ File file = null;
+
+ try {
+ file = ResourceUtils.getFile("classpath:" + configFileName);
+ content = new String(Files.readAllBytes(file.toPath()));
+ } catch (FileNotFoundException e) {
+ errorLogger.error("colud not find file :", file.getName());
+
+ } catch (IOException e) {
+ errorLogger.error("unable to read the file , reason:", e.getCause());
+ } catch (Exception e) {
+ errorLogger.error("Exception occured , reason:", e.getMessage());
+ }
+
+ return content;
+
+ }
+
+ private static String executecurl(String url) {
+
+ String[] command = {"curl", "-v", url};
+ ProcessBuilder process = new ProcessBuilder(command);
+ Process p;
+ String result = null;
+ try {
+ p = process.start();
+ InputStreamReader ipr = new InputStreamReader(p.getInputStream());
+ BufferedReader reader = new BufferedReader(ipr);
+ StringBuilder builder = new StringBuilder();
+ String line;
+
+ while ((line = reader.readLine()) != null) {
+ builder.append(line);
+ }
+ result = builder.toString();
+ reader.close();
+ ipr.close();
+ } catch (IOException e) {
+ errorLogger.error("error", e);
+ e.printStackTrace();
+ }
+ return result;
+
+ }
+
+}