package org.oransc.policyagent.configuration;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
-import java.util.Optional;
-import java.util.Vector;
-
+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.Autowired;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
@NotEmpty
private String filepath;
- private Collection<Observer> observers = new Vector<>();
- private Map<String, RicConfig> ricConfigs = new HashMap<>();
+ @NotEmpty
+ private String a1ControllerBaseUrl;
- @Autowired
- public ApplicationConfig() {
- }
+ @NotEmpty
+ private String a1ControllerUsername;
+
+ @NotEmpty
+ private String a1ControllerPassword;
+
+ private Collection<Observer> observers = new ArrayList<>();
+ private Map<String, RicConfig> ricConfigs = new HashMap<>();
+ @Getter
+ private Properties dmaapPublisherConfig;
+ @Getter
+ private Properties dmaapConsumerConfig;
public String getLocalConfigurationFilePath() {
return this.filepath;
}
+ public String getA1ControllerBaseUrl() {
+ return this.a1ControllerBaseUrl;
+ }
+
+ public String getA1ControllerUsername() {
+ return this.a1ControllerUsername;
+ }
+
+ public String getA1ControllerPassword() {
+ return this.a1ControllerPassword;
+ }
+
+ /*
+ * Do not remove, used by framework!
+ */
public synchronized void setFilepath(String filepath) {
this.filepath = filepath;
}
- public synchronized Collection<RicConfig> getRicConfigs() {
- return this.ricConfigs.values();
+ public synchronized void setA1ControllerBaseUrl(String a1ControllerBaseUrl) {
+ this.a1ControllerBaseUrl = a1ControllerBaseUrl;
}
- public synchronized Optional<RicConfig> lookupRicConfigForManagedElement(String managedElementId) {
- for (RicConfig ricConfig : getRicConfigs()) {
- if (ricConfig.managedElementIds().contains(managedElementId)) {
- return Optional.of(ricConfig);
- }
- }
- return Optional.empty();
+ public synchronized void setA1ControllerUsername(String a1ControllerUsername) {
+ this.a1ControllerUsername = a1ControllerUsername;
+ }
+
+ public synchronized void setA1ControllerPassword(String a1ControllerPassword) {
+ this.a1ControllerPassword = a1ControllerPassword;
+ }
+
+ public synchronized Collection<RicConfig> getRicConfigs() {
+ return this.ricConfigs.values();
}
public RicConfig getRic(String ricName) throws ServiceException {
throw new ServiceException("Could not find ric: " + ricName);
}
- public static enum RicConfigUpdate {
+ public enum RicConfigUpdate {
ADDED, CHANGED, REMOVED
}
}
}
- public void setConfiguration(@NotNull Collection<RicConfig> ricConfigs) {
- Collection<Notification> notifications = new Vector<>();
+ public void setConfiguration(@NotNull Collection<RicConfig> ricConfigs, Properties dmaapPublisherConfig,
+ Properties dmaapConsumerConfig) {
+
+ Collection<Notification> notifications = new ArrayList<>();
synchronized (this) {
+ this.dmaapPublisherConfig = dmaapPublisherConfig;
+ this.dmaapConsumerConfig = dmaapConsumerConfig;
+
Map<String, RicConfig> newRicConfigs = new HashMap<>();
for (RicConfig newConfig : ricConfigs) {
RicConfig oldConfig = this.ricConfigs.get(newConfig.name());
newRicConfigs.put(newConfig.name(), newConfig);
notifications.add(new Notification(newConfig, RicConfigUpdate.ADDED));
this.ricConfigs.remove(newConfig.name());
- } else if (!newConfig.equals(newConfig)) {
+ } else if (!newConfig.equals(oldConfig)) {
notifications.add(new Notification(newConfig, RicConfigUpdate.CHANGED));
newRicConfigs.put(newConfig.name(), newConfig);
this.ricConfigs.remove(newConfig.name());
}
this.ricConfigs = newRicConfigs;
}
+
notifyObservers(notifications);
}