From 7ae3ab19d0556a0308f0d293d4dd2e58dd3d3929 Mon Sep 17 00:00:00 2001 From: Pamela Dragosh Date: Fri, 2 Oct 2020 09:13:13 -0400 Subject: [PATCH] Remove duplicated code 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 --- .../std/StdXacmlApplicationServiceProvider.java | 12 ++++++++--- .../StdXacmlApplicationServiceProviderTest.java | 5 +++-- .../pdp/application/guard/GuardPdpApplication.java | 24 ++++++--------------- .../pdp/application/match/MatchPdpApplication.java | 21 +++++++----------- .../monitoring/MonitoringPdpApplication.java | 22 ++++--------------- .../application/naming/NamingPdpApplication.java | 25 +++++++++------------- .../application/nativ/NativePdpApplication.java | 25 +++++++++------------- .../optimization/OptimizationPdpApplication.java | 23 +++++--------------- 8 files changed, 55 insertions(+), 102 deletions(-) diff --git a/applications/common/src/main/java/org/onap/policy/pdp/xacml/application/common/std/StdXacmlApplicationServiceProvider.java b/applications/common/src/main/java/org/onap/policy/pdp/xacml/application/common/std/StdXacmlApplicationServiceProvider.java index ba562b83..465e3f58 100644 --- a/applications/common/src/main/java/org/onap/policy/pdp/xacml/application/common/std/StdXacmlApplicationServiceProvider.java +++ b/applications/common/src/main/java/org/onap/policy/pdp/xacml/application/common/std/StdXacmlApplicationServiceProvider.java @@ -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 actions = Collections.emptyList(); + protected List 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 actionDecisionsSupported() { - return Collections.emptyList(); + return actions; } @Override @@ -105,7 +111,7 @@ public abstract class StdXacmlApplicationServiceProvider implements XacmlApplica @Override public List supportedPolicyTypes() { - throw new UnsupportedOperationException("Please override and implement supportedPolicyTypes"); + return supportedPolicyTypes; } @Override diff --git a/applications/common/src/test/java/org/onap/policy/pdp/xacml/application/common/std/StdXacmlApplicationServiceProviderTest.java b/applications/common/src/test/java/org/onap/policy/pdp/xacml/application/common/std/StdXacmlApplicationServiceProviderTest.java index c95d3ca5..0552ff30 100644 --- a/applications/common/src/test/java/org/onap/policy/pdp/xacml/application/common/std/StdXacmlApplicationServiceProviderTest.java +++ b/applications/common/src/test/java/org/onap/policy/pdp/xacml/application/common/std/StdXacmlApplicationServiceProviderTest.java @@ -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 diff --git a/applications/guard/src/main/java/org/onap/policy/xacml/pdp/application/guard/GuardPdpApplication.java b/applications/guard/src/main/java/org/onap/policy/xacml/pdp/application/guard/GuardPdpApplication.java index 982c14b7..bb1b7588 100644 --- a/applications/guard/src/main/java/org/onap/policy/xacml/pdp/application/guard/GuardPdpApplication.java +++ b/applications/guard/src/main/java/org/onap/policy/xacml/pdp/application/guard/GuardPdpApplication.java @@ -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 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 actionDecisionsSupported() { - return Arrays.asList("guard"); - } - - @Override - public List supportedPolicyTypes() { - return supportedPolicyTypes; - } - @Override public boolean canSupportPolicyType(ToscaPolicyTypeIdentifier policyTypeId) { // diff --git a/applications/match/src/main/java/org/onap/policy/xacml/pdp/application/match/MatchPdpApplication.java b/applications/match/src/main/java/org/onap/policy/xacml/pdp/application/match/MatchPdpApplication.java index 5f9cfa1a..62466b95 100644 --- a/applications/match/src/main/java/org/onap/policy/xacml/pdp/application/match/MatchPdpApplication.java +++ b/applications/match/src/main/java/org/onap/policy/xacml/pdp/application/match/MatchPdpApplication.java @@ -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 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 supportedPolicyTypes() { - return Arrays.asList(supportedPolicy); - } - @Override public boolean canSupportPolicyType(ToscaPolicyTypeIdentifier policyTypeId) { return policyTypeId.getName().startsWith(ONAP_MATCH_DERIVED_POLICY_TYPE); diff --git a/applications/monitoring/src/main/java/org/onap/policy/xacml/pdp/application/monitoring/MonitoringPdpApplication.java b/applications/monitoring/src/main/java/org/onap/policy/xacml/pdp/application/monitoring/MonitoringPdpApplication.java index ada347e2..a3456aea 100644 --- a/applications/monitoring/src/main/java/org/onap/policy/xacml/pdp/application/monitoring/MonitoringPdpApplication.java +++ b/applications/monitoring/src/main/java/org/onap/policy/xacml/pdp/application/monitoring/MonitoringPdpApplication.java @@ -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 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 actionDecisionsSupported() { - return Arrays.asList("configure"); - } - - @Override - public synchronized List supportedPolicyTypes() { - return supportedPolicyTypes; - } - @Override public boolean canSupportPolicyType(ToscaPolicyTypeIdentifier policyTypeId) { // diff --git a/applications/naming/src/main/java/org/onap/policy/xacml/pdp/application/naming/NamingPdpApplication.java b/applications/naming/src/main/java/org/onap/policy/xacml/pdp/application/naming/NamingPdpApplication.java index 5d45bfc5..fe781a96 100644 --- a/applications/naming/src/main/java/org/onap/policy/xacml/pdp/application/naming/NamingPdpApplication.java +++ b/applications/naming/src/main/java/org/onap/policy/xacml/pdp/application/naming/NamingPdpApplication.java @@ -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 actionDecisionsSupported() { - return Arrays.asList("naming"); - } + /** + * Constructor. + */ + public NamingPdpApplication() { + super(); - @Override - public synchronized List 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 diff --git a/applications/native/src/main/java/org/onap/policy/xacml/pdp/application/nativ/NativePdpApplication.java b/applications/native/src/main/java/org/onap/policy/xacml/pdp/application/nativ/NativePdpApplication.java index 0d862d11..f8248f1c 100644 --- a/applications/native/src/main/java/org/onap/policy/xacml/pdp/application/nativ/NativePdpApplication.java +++ b/applications/native/src/main/java/org/onap/policy/xacml/pdp/application/nativ/NativePdpApplication.java @@ -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 actionDecisionsSupported() { - return Arrays.asList("native"); - } + /** + * Constructor. + */ + public NativePdpApplication() { + super(); - @Override - public synchronized List 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 diff --git a/applications/optimization/src/main/java/org/onap/policy/xacml/pdp/application/optimization/OptimizationPdpApplication.java b/applications/optimization/src/main/java/org/onap/policy/xacml/pdp/application/optimization/OptimizationPdpApplication.java index 8d337e47..1cc94ed6 100644 --- a/applications/optimization/src/main/java/org/onap/policy/xacml/pdp/application/optimization/OptimizationPdpApplication.java +++ b/applications/optimization/src/main/java/org/onap/policy/xacml/pdp/application/optimization/OptimizationPdpApplication.java @@ -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 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 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 supportedPolicyTypes() { - return Collections.unmodifiableList(supportedPolicyTypes); - } - @Override public boolean canSupportPolicyType(ToscaPolicyTypeIdentifier policyTypeId) { // -- 2.16.6