Remove code smells 85/2485/7
authorelinuxhenrik <henrik.b.andersson@est.tech>
Wed, 12 Feb 2020 14:04:50 +0000 (15:04 +0100)
committerelinuxhenrik <henrik.b.andersson@est.tech>
Mon, 2 Mar 2020 08:00:53 +0000 (09:00 +0100)
Removed code smells in Application, ApplicationConfig,
ApplicationConfigParser, RicConfig, Ric, and Rics.

Change-Id: I8006ee0050335aff92a3382f1998e0c2e1c8e6d3
Issue-ID: NONRTRIC-142
Signed-off-by: elinuxhenrik <henrik.b.andersson@est.tech>
policy-agent/src/main/java/org/oransc/policyagent/Application.java
policy-agent/src/main/java/org/oransc/policyagent/configuration/ApplicationConfig.java
policy-agent/src/main/java/org/oransc/policyagent/configuration/ApplicationConfigParser.java
policy-agent/src/main/java/org/oransc/policyagent/configuration/RicConfig.java
policy-agent/src/main/java/org/oransc/policyagent/repository/Ric.java
policy-agent/src/main/java/org/oransc/policyagent/repository/Rics.java

index 6d8cd99..154ab1d 100644 (file)
@@ -47,9 +47,6 @@ public class Application {
      */
     @Bean
     public CommandLineRunner commandLineRunner(ApplicationContext ctx) {
-        return args -> {
-
-            startupService.startup();
-        };
+        return args -> startupService.startup();
     }
 }
index a48e591..1dd850b 100644 (file)
 
 package org.oransc.policyagent.configuration;
 
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Properties;
-import java.util.Vector;
-
 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;
 
@@ -51,17 +47,13 @@ public class ApplicationConfig {
     @NotEmpty
     private String a1ControllerPassword;
 
-    private Collection<Observer> observers = new Vector<>();
+    private Collection<Observer> observers = new ArrayList<>();
     private Map<String, RicConfig> ricConfigs = new HashMap<>();
     @Getter
     private Properties dmaapPublisherConfig;
     @Getter
     private Properties dmaapConsumerConfig;
 
-    @Autowired
-    public ApplicationConfig() {
-    }
-
     public String getLocalConfigurationFilePath() {
         return this.filepath;
     }
@@ -110,7 +102,7 @@ public class ApplicationConfig {
         throw new ServiceException("Could not find ric: " + ricName);
     }
 
-    public static enum RicConfigUpdate {
+    public enum RicConfigUpdate {
         ADDED, CHANGED, REMOVED
     }
 
@@ -135,7 +127,7 @@ public class ApplicationConfig {
     public void setConfiguration(@NotNull Collection<RicConfig> ricConfigs, Properties dmaapPublisherConfig,
         Properties dmaapConsumerConfig) {
 
-        Collection<Notification> notifications = new Vector<>();
+        Collection<Notification> notifications = new ArrayList<>();
         synchronized (this) {
             this.dmaapPublisherConfig = dmaapPublisherConfig;
             this.dmaapConsumerConfig = dmaapConsumerConfig;
index c21af83..578ff12 100644 (file)
 
 package org.oransc.policyagent.configuration;
 
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
 import com.google.gson.JsonArray;
 import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
-
 import java.net.MalformedURLException;
 import java.net.URL;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
 import java.util.Map.Entry;
 import java.util.Properties;
 import java.util.Set;
-import java.util.Vector;
-
 import javax.validation.constraints.NotNull;
-
 import lombok.Getter;
-
 import org.onap.dmaap.mr.test.clients.ProtocolTypeConstants;
 import org.oransc.policyagent.exceptions.ServiceException;
 import org.springframework.http.MediaType;
@@ -45,12 +41,8 @@ public class ApplicationConfigParser {
 
     private static final String CONFIG = "config";
 
-    private static Gson gson = new GsonBuilder() //
-        .serializeNulls() //
-        .create(); //
-
     @Getter
-    private Vector<RicConfig> ricConfigs;
+    private List<RicConfig> ricConfigs;
     @Getter
     private Properties dmaapPublisherConfig = new Properties();
     @Getter
@@ -72,14 +64,30 @@ public class ApplicationConfigParser {
 
     }
 
-    private Vector<RicConfig> parseRics(JsonObject config) throws ServiceException {
-        Vector<RicConfig> result = new Vector<RicConfig>();
+    private List<RicConfig> parseRics(JsonObject config) throws ServiceException {
+        List<RicConfig> result = new ArrayList<>();
         for (JsonElement ricElem : getAsJsonArray(config, "ric")) {
-            result.add(gson.fromJson(ricElem.getAsJsonObject(), ImmutableRicConfig.class));
+            JsonObject ricAsJson = ricElem.getAsJsonObject();
+            ImmutableRicConfig ricConfig = ImmutableRicConfig.builder() //
+                .name(ricAsJson.get("name").getAsString()) //
+                .baseUrl(ricAsJson.get("baseUrl").getAsString()) //
+                .managedElementIds(parseManagedElementIds(ricAsJson.get("managedElementIds").getAsJsonArray())) //
+                .build();
+            result.add(ricConfig);
         }
         return result;
     }
 
+    private List<String> parseManagedElementIds(JsonArray asJsonObject) {
+        Iterator<JsonElement> iterator = asJsonObject.iterator();
+        List<String> managedElementIds = new ArrayList<>();
+        while (iterator.hasNext()) {
+            managedElementIds.add(iterator.next().getAsString());
+
+        }
+        return managedElementIds;
+    }
+
     private static JsonElement get(JsonObject obj, String memberName) throws ServiceException {
         JsonElement elem = obj.get(memberName);
         if (elem == null) {
index d446f94..69ba198 100644 (file)
 
 package org.oransc.policyagent.configuration;
 
-import java.util.Vector;
-
-import org.immutables.gson.Gson;
+import com.google.common.collect.ImmutableList;
 import org.immutables.value.Value;
 
 @Value.Immutable
-@Gson.TypeAdapters
 public interface RicConfig {
     public String name();
 
     public String baseUrl();
 
-    public Vector<String> managedElementIds();
+    public ImmutableList<String> managedElementIds();
 
 }
index e50a98c..505fce9 100644 (file)
 
 package org.oransc.policyagent.repository;
 
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import java.util.Vector;
-
 import lombok.Getter;
 import lombok.Setter;
-
 import org.oransc.policyagent.clients.A1Client.A1ProtocolType;
 import org.oransc.policyagent.configuration.RicConfig;
 
@@ -36,6 +36,7 @@ import org.oransc.policyagent.configuration.RicConfig;
  */
 public class Ric {
     private final RicConfig ricConfig;
+    private final List<String> managedElementIds;
 
     private RicState state = RicState.UNDEFINED;
     private Map<String, PolicyType> supportedPolicyTypes = new HashMap<>();
@@ -43,6 +44,7 @@ public class Ric {
     @Setter
     private A1ProtocolType protocolVersion = A1ProtocolType.UNKNOWN;
 
+
     /**
      * Creates the Ric. Initial state is {@link RicState.NOT_INITIATED}.
      *
@@ -50,6 +52,7 @@ public class Ric {
      */
     public Ric(RicConfig ricConfig) {
         this.ricConfig = ricConfig;
+        this.managedElementIds = new ArrayList<>(ricConfig.managedElementIds());
     }
 
     public String name() {
@@ -74,7 +77,7 @@ public class Ric {
      * @return a vector containing the nodes managed by this Ric.
      */
     public synchronized Collection<String> getManagedElementIds() {
-        return new Vector<>(ricConfig.managedElementIds());
+        return managedElementIds;
     }
 
     /**
@@ -84,7 +87,7 @@ public class Ric {
      * @return true if the given node is managed by this Ric.
      */
     public synchronized boolean isManaging(String managedElementId) {
-        return ricConfig.managedElementIds().contains(managedElementId);
+        return managedElementIds.contains(managedElementId);
     }
 
     /**
@@ -93,8 +96,8 @@ public class Ric {
      * @param managedElementId the node to add.
      */
     public synchronized void addManagedElement(String managedElementId) {
-        if (!ricConfig.managedElementIds().contains(managedElementId)) {
-            ricConfig.managedElementIds().add(managedElementId);
+        if (!managedElementIds.contains(managedElementId)) {
+            managedElementIds.add(managedElementId);
         }
     }
 
@@ -104,7 +107,7 @@ public class Ric {
      * @param managedElementId the node to remove.
      */
     public synchronized void removeManagedElement(String managedElementId) {
-        ricConfig.managedElementIds().remove(managedElementId);
+        managedElementIds.remove(managedElementId);
     }
 
     /**
@@ -150,13 +153,13 @@ public class Ric {
     @Override
     public synchronized String toString() {
         return Ric.class.getSimpleName() + ": " + "name: " + name() + ", state: " + state + ", baseUrl: "
-            + ricConfig.baseUrl() + ", managedNodes: " + ricConfig.managedElementIds();
+            + ricConfig.baseUrl() + ", managedNodes: " + managedElementIds;
     }
 
     /**
      * Represents the states possible for a Ric.
      */
-    public static enum RicState {
+    public enum RicState {
         /**
          * The agent view of the agent may be inconsistent.
          */
index 6f3b3e8..c6d2561 100644 (file)
@@ -66,7 +66,7 @@ public class Rics {
 
     public synchronized Optional<Ric> lookupRicForManagedElement(String managedElementId) {
         for (Ric ric : this.rics.values()) {
-            if (ric.getConfig().managedElementIds().contains(managedElementId)) {
+            if (ric.getManagedElementIds().contains(managedElementId)) {
                 return Optional.of(ric);
             }
         }