Merge "Remove using of DMAAP client from ONAP"
[nonrtric.git] / policy-agent / src / main / java / org / oransc / policyagent / configuration / ApplicationConfig.java
index 3b4f810..a253373 100644 (file)
@@ -24,85 +24,70 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
-import java.util.Properties;
 
 import javax.validation.constraints.NotEmpty;
-import javax.validation.constraints.NotNull;
 
 import lombok.Getter;
 
 import org.oransc.policyagent.exceptions.ServiceException;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.boot.context.properties.EnableConfigurationProperties;
 import reactor.core.publisher.Flux;
 
 @EnableConfigurationProperties
-@ConfigurationProperties("app")
+@ConfigurationProperties()
 public class ApplicationConfig {
     @NotEmpty
-    private String filepath;
+    @Getter
+    @Value("${app.filepath}")
+    private String localConfigurationFilePath;
 
-    @NotEmpty
-    private String a1ControllerBaseUrl;
+    @Value("${app.webclient.trust-store-used}")
+    private boolean sslTrustStoreUsed = false;
 
-    @NotEmpty
-    private String a1ControllerUsername;
+    @Value("${app.webclient.trust-store-password}")
+    private String sslTrustStorePassword = "";
 
-    @NotEmpty
-    private String a1ControllerPassword;
+    @Value("${app.webclient.trust-store}")
+    private String sslTrustStore = "";
 
     private Map<String, RicConfig> ricConfigs = new HashMap<>();
-    @Getter
-    private Properties dmaapPublisherConfig;
-    @Getter
-    private Properties dmaapConsumerConfig;
-
-    public String getLocalConfigurationFilePath() {
-        return this.filepath;
-    }
-
-    public synchronized String getA1ControllerBaseUrl() {
-        return this.a1ControllerBaseUrl;
-    }
-
-    public synchronized String getA1ControllerUsername() {
-        return this.a1ControllerUsername;
-    }
 
-    public synchronized String getA1ControllerPassword() {
-        return this.a1ControllerPassword;
-    }
+    @Getter
+    private String dmaapConsumerTopicUrl;
 
-    /*
-     * Do not remove, used by framework!
-     */
-    public synchronized void setFilepath(String filepath) {
-        this.filepath = filepath;
-    }
+    @Getter
+    private String dmaapProducerTopicUrl;
 
-    public synchronized void setA1ControllerBaseUrl(String a1ControllerBaseUrl) {
-        this.a1ControllerBaseUrl = a1ControllerBaseUrl;
-    }
+    private Map<String, ControllerConfig> controllerConfigs = new HashMap<>();
 
-    public synchronized void setA1ControllerUsername(String a1ControllerUsername) {
-        this.a1ControllerUsername = a1ControllerUsername;
+    public synchronized Collection<RicConfig> getRicConfigs() {
+        return this.ricConfigs.values();
     }
 
-    public synchronized void setA1ControllerPassword(String a1ControllerPassword) {
-        this.a1ControllerPassword = a1ControllerPassword;
+    public WebClientConfig getWebClientConfig() {
+        return ImmutableWebClientConfig.builder() //
+            .isTrustStoreUsed(this.sslTrustStoreUsed) //
+            .trustStore(this.sslTrustStore) //
+            .trustStorePassword(this.sslTrustStorePassword) //
+            .build();
     }
 
-    public synchronized Collection<RicConfig> getRicConfigs() {
-        return this.ricConfigs.values();
+    public synchronized ControllerConfig getControllerConfig(String name) throws ServiceException {
+        ControllerConfig controllerConfig = this.controllerConfigs.get(name);
+        if (controllerConfig == null) {
+            throw new ServiceException("Could not find controller config: " + name);
+        }
+        return controllerConfig;
     }
 
-    public RicConfig getRic(String ricName) throws ServiceException {
-        for (RicConfig ricConfig : getRicConfigs()) {
-            if (ricConfig.name().equals(ricName)) {
-                return ricConfig;
-            }
+    public synchronized RicConfig getRic(String ricName) throws ServiceException {
+        RicConfig ricConfig = this.ricConfigs.get(ricName);
+        if (ricConfig == null) {
+            throw new ServiceException("Could not find ric configuration: " + ricName);
         }
-        throw new ServiceException("Could not find ric: " + ricName);
+        return ricConfig;
     }
 
     public static class RicConfigUpdate {
@@ -121,24 +106,25 @@ public class ApplicationConfig {
         }
     }
 
-    public synchronized Flux<RicConfigUpdate> setConfiguration(@NotNull Collection<RicConfig> ricConfigs,
-        Properties dmaapPublisherConfig, Properties dmaapConsumerConfig) {
+    public synchronized Flux<RicConfigUpdate> setConfiguration(
+        ApplicationConfigParser.ConfigParserResult parserResult) {
 
         Collection<RicConfigUpdate> modifications = new ArrayList<>();
-        this.dmaapPublisherConfig = dmaapPublisherConfig;
-        this.dmaapConsumerConfig = dmaapConsumerConfig;
+        this.controllerConfigs = parserResult.controllerConfigs();
+
+        this.dmaapConsumerTopicUrl = parserResult.dmaapConsumerTopicUrl();
+        this.dmaapProducerTopicUrl = parserResult.dmaapProducerTopicUrl();
 
         Map<String, RicConfig> newRicConfigs = new HashMap<>();
-        for (RicConfig newConfig : ricConfigs) {
+        for (RicConfig newConfig : parserResult.ricConfigs()) {
             RicConfig oldConfig = this.ricConfigs.get(newConfig.name());
+            this.ricConfigs.remove(newConfig.name());
             if (oldConfig == null) {
                 newRicConfigs.put(newConfig.name(), newConfig);
                 modifications.add(new RicConfigUpdate(newConfig, RicConfigUpdate.Type.ADDED));
-                this.ricConfigs.remove(newConfig.name());
             } else if (!newConfig.equals(oldConfig)) {
                 modifications.add(new RicConfigUpdate(newConfig, RicConfigUpdate.Type.CHANGED));
                 newRicConfigs.put(newConfig.name(), newConfig);
-                this.ricConfigs.remove(newConfig.name());
             } else {
                 newRicConfigs.put(oldConfig.name(), oldConfig);
             }