+ return Mono.error(e);
+ }
+ }
+
+ private Flux<RicConfigUpdate> updateConfig(ApplicationConfigParser config) {
+ return this.appConfig.setConfiguration(config.getRicConfigs(), config.getDmaapPublisherConfig(),
+ config.getDmaapConsumerConfig());
+ }
+
+ boolean configFileExists() {
+ String filepath = appConfig.getLocalConfigurationFilePath();
+ return (filepath != null && (new File(filepath).exists()));
+ }
+
+ private void handleUpdatedRicConfig(RicConfigUpdate updatedInfo) {
+ synchronized (this.rics) {
+ String ricName = updatedInfo.getRicConfig().name();
+ RicConfigUpdate.Type event = updatedInfo.getType();
+ if (event == RicConfigUpdate.Type.ADDED) {
+ addRic(updatedInfo.getRicConfig());
+ } else if (event == RicConfigUpdate.Type.REMOVED) {
+ rics.remove(ricName);
+ this.policies.removePoliciesForRic(ricName);
+ } else if (event == RicConfigUpdate.Type.CHANGED) {
+ Ric ric = this.rics.get(ricName);
+ if (ric == null) {
+ // Should not happend,just for robustness
+ addRic(updatedInfo.getRicConfig());
+ } else {
+ ric.setRicConfig(updatedInfo.getRicConfig());
+ }
+ }