Remove duplicated code 81/113481/1
authorPamela Dragosh <pdragosh@research.att.com>
Fri, 2 Oct 2020 13:13:13 +0000 (09:13 -0400)
committerPamela Dragosh <pdragosh@research.att.com>
Fri, 2 Oct 2020 13:13:18 +0000 (09:13 -0400)
Initially, just moving the applicationName and actions as protected
fields got rid of the sonar issue. I included also the supportedPolicyTypes
also. But that triggered another sonar duplicate code, so I had to rename
a few private fields to rid that. Seems like a very sensitive sonar detection
that results in kludgy code.

Issue-ID: POLICY-2681
Change-Id: Ie79a95786cdb80381cbce4b182e9e66a2776e0dd
Signed-off-by: Pamela Dragosh <pdragosh@research.att.com>
applications/common/src/main/java/org/onap/policy/pdp/xacml/application/common/std/StdXacmlApplicationServiceProvider.java
applications/common/src/test/java/org/onap/policy/pdp/xacml/application/common/std/StdXacmlApplicationServiceProviderTest.java
applications/guard/src/main/java/org/onap/policy/xacml/pdp/application/guard/GuardPdpApplication.java
applications/match/src/main/java/org/onap/policy/xacml/pdp/application/match/MatchPdpApplication.java
applications/monitoring/src/main/java/org/onap/policy/xacml/pdp/application/monitoring/MonitoringPdpApplication.java
applications/naming/src/main/java/org/onap/policy/xacml/pdp/application/naming/NamingPdpApplication.java
applications/native/src/main/java/org/onap/policy/xacml/pdp/application/nativ/NativePdpApplication.java
applications/optimization/src/main/java/org/onap/policy/xacml/pdp/application/optimization/OptimizationPdpApplication.java

index ba562b8..465e3f5 100644 (file)
@@ -32,6 +32,7 @@ import java.io.IOException;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 import java.nio.file.Path;
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
@@ -55,6 +56,11 @@ import org.slf4j.LoggerFactory;
 public abstract class StdXacmlApplicationServiceProvider implements XacmlApplicationServiceProvider {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(StdXacmlApplicationServiceProvider.class);
+
+    protected String applicationName = "Please Override";
+    protected List<String> actions = Collections.emptyList();
+    protected List<ToscaPolicyTypeIdentifier> supportedPolicyTypes = new ArrayList<>();
+
     private Path pathForData = null;
     @Getter
     private RestServerParameters policyApiParameters;
@@ -68,12 +74,12 @@ public abstract class StdXacmlApplicationServiceProvider implements XacmlApplica
 
     @Override
     public String applicationName() {
-        return "Please Override";
+        return applicationName;
     }
 
     @Override
     public List<String> actionDecisionsSupported() {
-        return Collections.emptyList();
+        return actions;
     }
 
     @Override
@@ -105,7 +111,7 @@ public abstract class StdXacmlApplicationServiceProvider implements XacmlApplica
 
     @Override
     public List<ToscaPolicyTypeIdentifier> supportedPolicyTypes() {
-        throw new UnsupportedOperationException("Please override and implement supportedPolicyTypes");
+        return supportedPolicyTypes;
     }
 
     @Override
index c95d3ca..0552ff3 100644 (file)
@@ -20,6 +20,7 @@
 
 package org.onap.policy.pdp.xacml.application.common.std;
 
+import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatThrownBy;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -27,7 +28,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
-import static org.mockito.Matchers.any;
+import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
@@ -181,7 +182,7 @@ public class StdXacmlApplicationServiceProviderTest {
 
     @Test
     public void testSupportedPolicyTypes() {
-        assertThatThrownBy(() -> prov.supportedPolicyTypes()).isInstanceOf(UnsupportedOperationException.class);
+        assertThat(prov.supportedPolicyTypes()).isEmpty();
     }
 
     @Test
index 982c14b..bb1b758 100644 (file)
@@ -22,9 +22,7 @@
 
 package org.onap.policy.xacml.pdp.application.guard;
 
-import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.List;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeIdentifier;
 import org.onap.policy.pdp.xacml.application.common.ToscaPolicyTranslator;
 import org.onap.policy.pdp.xacml.application.common.std.StdXacmlApplicationServiceProvider;
@@ -40,7 +38,7 @@ import org.slf4j.LoggerFactory;
 public class GuardPdpApplication extends StdXacmlApplicationServiceProvider {
     private static final Logger LOGGER = LoggerFactory.getLogger(GuardPdpApplication.class);
     private static final String STRING_VERSION100 = "1.0.0";
-    private List<ToscaPolicyTypeIdentifier> supportedPolicyTypes = new ArrayList<>();
+
     private GuardTranslator guardTranslator = new GuardTranslator();
     private CoordinationGuardTranslator coordinationTranslator = new CoordinationGuardTranslator();
 
@@ -49,6 +47,11 @@ public class GuardPdpApplication extends StdXacmlApplicationServiceProvider {
      *
      */
     public GuardPdpApplication() {
+        super();
+
+        applicationName = "guard";
+        actions = Arrays.asList("guard");
+
         this.supportedPolicyTypes.add(new ToscaPolicyTypeIdentifier(
                 GuardTranslator.POLICYTYPE_FREQUENCY,
                 STRING_VERSION100));
@@ -66,21 +69,6 @@ public class GuardPdpApplication extends StdXacmlApplicationServiceProvider {
                 STRING_VERSION100));
     }
 
-    @Override
-    public String applicationName() {
-        return "guard";
-    }
-
-    @Override
-    public List<String> actionDecisionsSupported() {
-        return Arrays.asList("guard");
-    }
-
-    @Override
-    public List<ToscaPolicyTypeIdentifier> supportedPolicyTypes() {
-        return supportedPolicyTypes;
-    }
-
     @Override
     public boolean canSupportPolicyType(ToscaPolicyTypeIdentifier policyTypeId) {
         //
index 5f9cfa1..62466b9 100644 (file)
@@ -24,7 +24,6 @@ package org.onap.policy.xacml.pdp.application.match;
 
 import java.nio.file.Path;
 import java.util.Arrays;
-import java.util.List;
 import org.onap.policy.common.endpoints.parameters.RestServerParameters;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeIdentifier;
 import org.onap.policy.pdp.xacml.application.common.ToscaPolicyTranslator;
@@ -42,14 +41,15 @@ public class MatchPdpApplication extends StdXacmlApplicationServiceProvider {
 
     private StdMatchableTranslator translator = new StdMatchableTranslator();
 
-    @Override
-    public String applicationName() {
-        return "match";
-    }
+    /**
+     * Constructor.
+     */
+    public MatchPdpApplication() {
+        super();
 
-    @Override
-    public List<String> actionDecisionsSupported() {
-        return Arrays.asList("match");
+        applicationName = "match";
+        actions = Arrays.asList("match");
+        supportedPolicyTypes.add(supportedPolicy);
     }
 
     @Override
@@ -67,11 +67,6 @@ public class MatchPdpApplication extends StdXacmlApplicationServiceProvider {
         super.initialize(pathForData, policyApiParameters);
     }
 
-    @Override
-    public synchronized List<ToscaPolicyTypeIdentifier> supportedPolicyTypes() {
-        return Arrays.asList(supportedPolicy);
-    }
-
     @Override
     public boolean canSupportPolicyType(ToscaPolicyTypeIdentifier policyTypeId) {
         return policyTypeId.getName().startsWith(ONAP_MATCH_DERIVED_POLICY_TYPE);
index ada347e..a3456ae 100644 (file)
@@ -23,9 +23,7 @@
 package org.onap.policy.xacml.pdp.application.monitoring;
 
 import com.att.research.xacml.api.Response;
-import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
 import org.apache.commons.lang3.tuple.Pair;
@@ -56,33 +54,21 @@ public class MonitoringPdpApplication extends StdXacmlApplicationServiceProvider
     public static final String VERSION_100 = "1.0.0";
 
     private StdCombinedPolicyResultsTranslator translator = new StdCombinedPolicyResultsTranslator();
-    private List<ToscaPolicyTypeIdentifier> supportedPolicyTypes = new ArrayList<>();
 
     /**
      * Constructor.
      */
     public MonitoringPdpApplication() {
+        super();
+
+        applicationName = "monitoring";
+        actions = Arrays.asList("configure");
         //
         // By default this supports just Monitoring policy types
         //
         supportedPolicyTypes.add(new ToscaPolicyTypeIdentifier(ONAP_MONITORING_BASE_POLICY_TYPE, VERSION_100));
     }
 
-    @Override
-    public String applicationName() {
-        return "monitoring";
-    }
-
-    @Override
-    public List<String> actionDecisionsSupported() {
-        return Arrays.asList("configure");
-    }
-
-    @Override
-    public synchronized List<ToscaPolicyTypeIdentifier> supportedPolicyTypes() {
-        return supportedPolicyTypes;
-    }
-
     @Override
     public boolean canSupportPolicyType(ToscaPolicyTypeIdentifier policyTypeId) {
         //
index 5d45bfc..fe781a9 100644 (file)
@@ -23,7 +23,6 @@
 package org.onap.policy.xacml.pdp.application.naming;
 
 import java.util.Arrays;
-import java.util.List;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeIdentifier;
 import org.onap.policy.pdp.xacml.application.common.ToscaPolicyTranslator;
 import org.onap.policy.pdp.xacml.application.common.std.StdCombinedPolicyResultsTranslator;
@@ -31,29 +30,25 @@ import org.onap.policy.pdp.xacml.application.common.std.StdXacmlApplicationServi
 
 public class NamingPdpApplication extends StdXacmlApplicationServiceProvider {
 
-    private static final ToscaPolicyTypeIdentifier supportedPolicy = new ToscaPolicyTypeIdentifier(
+    private static final ToscaPolicyTypeIdentifier namingPolicyType = new ToscaPolicyTypeIdentifier(
             "onap.policies.Naming", "1.0.0");
 
     private StdCombinedPolicyResultsTranslator translator = new StdCombinedPolicyResultsTranslator();
 
-    @Override
-    public String applicationName() {
-        return "naming";
-    }
-
-    @Override
-    public List<String> actionDecisionsSupported() {
-        return Arrays.asList("naming");
-    }
+    /**
+     * Constructor.
+     */
+    public NamingPdpApplication() {
+        super();
 
-    @Override
-    public synchronized List<ToscaPolicyTypeIdentifier> supportedPolicyTypes() {
-        return Arrays.asList(supportedPolicy);
+        applicationName = "naming";
+        actions = Arrays.asList("naming");
+        supportedPolicyTypes.add(namingPolicyType);
     }
 
     @Override
     public boolean canSupportPolicyType(ToscaPolicyTypeIdentifier policyTypeId) {
-        return supportedPolicy.equals(policyTypeId);
+        return namingPolicyType.equals(policyTypeId);
     }
 
     @Override
index 0d862d1..f8248f1 100644 (file)
@@ -25,7 +25,6 @@ package org.onap.policy.xacml.pdp.application.nativ;
 import com.att.research.xacml.api.Request;
 import com.att.research.xacml.api.Response;
 import java.util.Arrays;
-import java.util.List;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyTypeIdentifier;
 import org.onap.policy.pdp.xacml.application.common.ToscaPolicyTranslator;
 import org.onap.policy.pdp.xacml.application.common.std.StdXacmlApplicationServiceProvider;
@@ -38,28 +37,24 @@ import org.onap.policy.pdp.xacml.application.common.std.StdXacmlApplicationServi
  */
 public class NativePdpApplication extends StdXacmlApplicationServiceProvider {
 
-    private static final ToscaPolicyTypeIdentifier supportedPolicyType = new ToscaPolicyTypeIdentifier(
+    private static final ToscaPolicyTypeIdentifier nativePolicyType = new ToscaPolicyTypeIdentifier(
             "onap.policies.native.Xacml", "1.0.0");
     private NativePdpApplicationTranslator translator = new NativePdpApplicationTranslator();
 
-    @Override
-    public String applicationName() {
-        return "native";
-    }
-
-    @Override
-    public List<String> actionDecisionsSupported() {
-        return Arrays.asList("native");
-    }
+    /**
+     * Constructor.
+     */
+    public NativePdpApplication() {
+        super();
 
-    @Override
-    public synchronized List<ToscaPolicyTypeIdentifier> supportedPolicyTypes() {
-        return Arrays.asList(supportedPolicyType);
+        applicationName = "native";
+        actions = Arrays.asList("native");
+        supportedPolicyTypes.add(nativePolicyType);
     }
 
     @Override
     public boolean canSupportPolicyType(ToscaPolicyTypeIdentifier policyTypeId) {
-        return supportedPolicyType.equals(policyTypeId);
+        return nativePolicyType.equals(policyTypeId);
     }
 
     @Override
index 8d337e4..1cc94ed 100644 (file)
@@ -28,10 +28,8 @@ import com.att.research.xacml.api.Decision;
 import com.att.research.xacml.api.Response;
 import com.att.research.xacml.api.Result;
 import java.nio.file.Path;
-import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import org.apache.commons.lang3.tuple.Pair;
@@ -66,12 +64,16 @@ public class OptimizationPdpApplication extends StdXacmlApplicationServiceProvid
     public static final String ONAP_OPTIMIZATION_DERIVED_POLICY_TYPE = "onap.policies.optimization.";
 
     private OptimizationPdpApplicationTranslator translator = new OptimizationPdpApplicationTranslator();
-    private List<ToscaPolicyTypeIdentifier> supportedPolicyTypes = new ArrayList<>();
 
     /**
      * Constructor.
      */
     public OptimizationPdpApplication() {
+        super();
+
+        applicationName = "optimization";
+        actions = Arrays.asList("optimize");
+
         this.supportedPolicyTypes.add(new ToscaPolicyTypeIdentifier(POLICYTYPE_AFFINITY, STRING_VERSION100));
         this.supportedPolicyTypes.add(new ToscaPolicyTypeIdentifier(POLICYTYPE_DISTANCE, STRING_VERSION100));
         this.supportedPolicyTypes.add(new ToscaPolicyTypeIdentifier(POLICYTYPE_HPA, STRING_VERSION100));
@@ -83,16 +85,6 @@ public class OptimizationPdpApplication extends StdXacmlApplicationServiceProvid
         this.supportedPolicyTypes.add(new ToscaPolicyTypeIdentifier(POLICYTYPE_VNF, STRING_VERSION100));
     }
 
-    @Override
-    public String applicationName() {
-        return "optimization";
-    }
-
-    @Override
-    public List<String> actionDecisionsSupported() {
-        return Arrays.asList("optimize");
-    }
-
     @Override
     public void initialize(Path pathForData, RestServerParameters policyApiParameters)
             throws XacmlApplicationException {
@@ -108,11 +100,6 @@ public class OptimizationPdpApplication extends StdXacmlApplicationServiceProvid
         super.initialize(pathForData, policyApiParameters);
     }
 
-    @Override
-    public synchronized List<ToscaPolicyTypeIdentifier> supportedPolicyTypes() {
-        return Collections.unmodifiableList(supportedPolicyTypes);
-    }
-
     @Override
     public boolean canSupportPolicyType(ToscaPolicyTypeIdentifier policyTypeId) {
         //