aboutsummaryrefslogtreecommitdiffstats
path: root/model/policy-model
diff options
context:
space:
mode:
authorJim Hahn <jrh3@att.com>2021-02-17 15:23:38 -0500
committerJim Hahn <jrh3@att.com>2021-02-18 17:47:55 +0000
commitb6977d2f7ce64ece732ac1a1a0525dac972d7ccf (patch)
tree4966f5aa4737b0fef8241989eb216cce7fbe9294 /model/policy-model
parent4e05982e36aa66b83fa0ee44b9631412442c3969 (diff)
Fix sonars in apex-pdp
Addressed the following issues: - initialize mocks before use - use parameterized queries - Random() is not secure - provide parameterized type for generics - unused imports - constructor visibility - use compute() instead of containsKey()/put() - make final fields static - rename constants to all upper case - no assert() in Thread.run() methods - nested try - nested if/else - too many break/continue - use try-with-resources - repeatable annotations - overlapping characters in reg ex - hashcode is not sufficient in compareTo() - need equals() with compareTo() - make class an interface - use parameterized test - multiple calls in assert() - log or re-throw - use different type of lambda - use parameterized logging - use StringBuilder instead of concatenation - use StandardCharsets.UTF_8 Issue-ID: POLICY-2906 Change-Id: I2cf8c885e3e22c2c6cbe6403a34906928afad022 Signed-off-by: Jim Hahn <jrh3@att.com>
Diffstat (limited to 'model/policy-model')
-rw-r--r--model/policy-model/src/main/java/org/onap/policy/apex/model/policymodel/concepts/AxPolicyModel.java24
-rw-r--r--model/policy-model/src/main/java/org/onap/policy/apex/model/policymodel/concepts/AxState.java10
-rw-r--r--model/policy-model/src/main/java/org/onap/policy/apex/model/policymodel/concepts/AxStateOutput.java14
-rw-r--r--model/policy-model/src/main/java/org/onap/policy/apex/model/policymodel/concepts/AxStateTaskReference.java10
-rw-r--r--model/policy-model/src/main/java/org/onap/policy/apex/model/policymodel/concepts/AxStateTree.java26
5 files changed, 51 insertions, 33 deletions
diff --git a/model/policy-model/src/main/java/org/onap/policy/apex/model/policymodel/concepts/AxPolicyModel.java b/model/policy-model/src/main/java/org/onap/policy/apex/model/policymodel/concepts/AxPolicyModel.java
index 7b7dba800..d55fbd329 100644
--- a/model/policy-model/src/main/java/org/onap/policy/apex/model/policymodel/concepts/AxPolicyModel.java
+++ b/model/policy-model/src/main/java/org/onap/policy/apex/model/policymodel/concepts/AxPolicyModel.java
@@ -2,6 +2,7 @@
* ============LICENSE_START=======================================================
* Copyright (C) 2016-2018 Ericsson. All rights reserved.
* Modifications Copyright (C) 2019 Nordix Foundation.
+ * Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -28,7 +29,6 @@ import java.util.TreeSet;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
-import javax.persistence.JoinColumns;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.xml.bind.Marshaller;
@@ -120,33 +120,33 @@ public class AxPolicyModel extends AxModel {
// @formatter:off
@OneToOne(cascade = CascadeType.ALL)
- @JoinColumns({@JoinColumn(name = "policiesName", referencedColumnName = "name"),
- @JoinColumn(name = "policiesVersion", referencedColumnName = "version")})
+ @JoinColumn(name = "policiesName", referencedColumnName = "name")
+ @JoinColumn(name = "policiesVersion", referencedColumnName = "version")
@XmlElement(name = "policies", required = true)
private AxPolicies policies;
@OneToOne(cascade = CascadeType.ALL)
- @JoinColumns({@JoinColumn(name = "tasksName", referencedColumnName = "name"),
- @JoinColumn(name = "tasksVersion", referencedColumnName = "version")})
+ @JoinColumn(name = "tasksName", referencedColumnName = "name")
+ @JoinColumn(name = "tasksVersion", referencedColumnName = "version")
@XmlElement(name = "tasks", required = true)
private AxTasks tasks;
@OneToOne(cascade = CascadeType.ALL)
- @JoinColumns({@JoinColumn(name = "eventsName", referencedColumnName = "name"),
- @JoinColumn(name = "eventsVersion", referencedColumnName = "version")})
+ @JoinColumn(name = "eventsName", referencedColumnName = "name")
+ @JoinColumn(name = "eventsVersion", referencedColumnName = "version")
@XmlElement(name = "events", required = true)
private AxEvents events;
@OneToOne(cascade = CascadeType.ALL)
- @JoinColumns({@JoinColumn(name = "albumsName", referencedColumnName = "name"),
- @JoinColumn(name = "albumsVersion", referencedColumnName = "version")})
+ @JoinColumn(name = "albumsName", referencedColumnName = "name")
+ @JoinColumn(name = "albumsVersion", referencedColumnName = "version")
@XmlElement(name = "albums", required = false)
@XmlJavaTypeAdapter(EmptyAlbumsAdapter.class)
private AxContextAlbums albums;
@OneToOne(cascade = CascadeType.ALL)
- @JoinColumns({@JoinColumn(name = "schemasName", referencedColumnName = "name"),
- @JoinColumn(name = "schemasVersion", referencedColumnName = "version")})
+ @JoinColumn(name = "schemasName", referencedColumnName = "name")
+ @JoinColumn(name = "schemasVersion", referencedColumnName = "version")
@XmlElement(name = "schemas", required = true)
private AxContextSchemas schemas;
// @formatter:on
@@ -749,4 +749,4 @@ public class AxPolicyModel extends AxModel {
}
return schemas.compareTo(other.schemas);
}
-} \ No newline at end of file
+}
diff --git a/model/policy-model/src/main/java/org/onap/policy/apex/model/policymodel/concepts/AxState.java b/model/policy-model/src/main/java/org/onap/policy/apex/model/policymodel/concepts/AxState.java
index 44b71f84a..80e967fdf 100644
--- a/model/policy-model/src/main/java/org/onap/policy/apex/model/policymodel/concepts/AxState.java
+++ b/model/policy-model/src/main/java/org/onap/policy/apex/model/policymodel/concepts/AxState.java
@@ -3,6 +3,7 @@
* Copyright (C) 2016-2018 Ericsson. All rights reserved.
* Modifications Copyright (C) 2018 Samsung Electronics Co., Ltd.
* Modifications Copyright (C) 2019-2020 Nordix Foundation.
+ * Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -29,7 +30,6 @@ import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;
import javax.persistence.AttributeOverride;
-import javax.persistence.AttributeOverrides;
import javax.persistence.CascadeType;
import javax.persistence.CollectionTable;
import javax.persistence.Column;
@@ -140,8 +140,8 @@ public class AxState extends AxConcept {
// @formatter:off
@Embedded
- @AttributeOverrides({@AttributeOverride(name = "name", column = @Column(name = "inTriggerName")),
- @AttributeOverride(name = "version", column = @Column(name = "inTriggerVersion"))})
+ @AttributeOverride(name = "name", column = @Column(name = "inTriggerName"))
+ @AttributeOverride(name = "version", column = @Column(name = "inTriggerVersion"))
@Column(name = "trigger")
@XmlElement(required = true)
private AxArtifactKey trigger;
@@ -195,8 +195,8 @@ public class AxState extends AxConcept {
private Map<String, AxStateFinalizerLogic> stateFinalizerLogicMap;
@Embedded
- @AttributeOverrides({@AttributeOverride(name = "name", column = @Column(name = "defaultTaskName")),
- @AttributeOverride(name = "version", column = @Column(name = "defaultTaskVersion"))})
+ @AttributeOverride(name = "name", column = @Column(name = "defaultTaskName"))
+ @AttributeOverride(name = "version", column = @Column(name = "defaultTaskVersion"))
@Column(name = "defaultTask")
@XmlElement(required = true)
private AxArtifactKey defaultTask;
diff --git a/model/policy-model/src/main/java/org/onap/policy/apex/model/policymodel/concepts/AxStateOutput.java b/model/policy-model/src/main/java/org/onap/policy/apex/model/policymodel/concepts/AxStateOutput.java
index 87caf03a2..27c187356 100644
--- a/model/policy-model/src/main/java/org/onap/policy/apex/model/policymodel/concepts/AxStateOutput.java
+++ b/model/policy-model/src/main/java/org/onap/policy/apex/model/policymodel/concepts/AxStateOutput.java
@@ -2,6 +2,7 @@
* ============LICENSE_START=======================================================
* Copyright (C) 2016-2018 Ericsson. All rights reserved.
* Modifications Copyright (C) 2019 Nordix Foundation.
+ * Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,7 +24,6 @@ package org.onap.policy.apex.model.policymodel.concepts;
import java.util.List;
import javax.persistence.AttributeOverride;
-import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.Embedded;
import javax.persistence.EmbeddedId;
@@ -79,17 +79,17 @@ public class AxStateOutput extends AxConcept {
// @formatter:off
@Embedded
- @AttributeOverrides({@AttributeOverride(name = "name", column = @Column(name = "outgoingEventName")),
- @AttributeOverride(name = "version", column = @Column(name = "outgoingEventVersion"))})
+ @AttributeOverride(name = "name", column = @Column(name = "outgoingEventName"))
+ @AttributeOverride(name = "version", column = @Column(name = "outgoingEventVersion"))
@Column(name = "outgoingEvent")
@XmlElement(required = true)
private AxArtifactKey outgoingEvent;
@Embedded
- @AttributeOverrides({@AttributeOverride(name = "parentKeyName", column = @Column(name = "nextStateParentKeyName")),
- @AttributeOverride(name = "parentKeyVersion", column = @Column(name = "nextStateParentKeyVersion")),
- @AttributeOverride(name = "parentLocalName", column = @Column(name = "nextStateParentLocalName")),
- @AttributeOverride(name = "localName", column = @Column(name = "nextStateLocalName"))})
+ @AttributeOverride(name = "parentKeyName", column = @Column(name = "nextStateParentKeyName"))
+ @AttributeOverride(name = "parentKeyVersion", column = @Column(name = "nextStateParentKeyVersion"))
+ @AttributeOverride(name = "parentLocalName", column = @Column(name = "nextStateParentLocalName"))
+ @AttributeOverride(name = "localName", column = @Column(name = "nextStateLocalName"))
@Column(name = "nextState")
@XmlElement(required = true)
private AxReferenceKey nextState;
diff --git a/model/policy-model/src/main/java/org/onap/policy/apex/model/policymodel/concepts/AxStateTaskReference.java b/model/policy-model/src/main/java/org/onap/policy/apex/model/policymodel/concepts/AxStateTaskReference.java
index a3cb9e647..c98e38fbf 100644
--- a/model/policy-model/src/main/java/org/onap/policy/apex/model/policymodel/concepts/AxStateTaskReference.java
+++ b/model/policy-model/src/main/java/org/onap/policy/apex/model/policymodel/concepts/AxStateTaskReference.java
@@ -2,6 +2,7 @@
* ============LICENSE_START=======================================================
* Copyright (C) 2016-2018 Ericsson. All rights reserved.
* Modifications Copyright (C) 2019 Nordix Foundation.
+ * Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,7 +24,6 @@ package org.onap.policy.apex.model.policymodel.concepts;
import java.util.List;
import javax.persistence.AttributeOverride;
-import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.Embedded;
import javax.persistence.EmbeddedId;
@@ -91,10 +91,10 @@ public class AxStateTaskReference extends AxConcept {
// @formatter:off
@Embedded
- @AttributeOverrides({@AttributeOverride(name = "parentKeyName", column = @Column(name = "outputParentKeyName")),
- @AttributeOverride(name = "parentKeyVersion", column = @Column(name = "outputParentKeyVersion")),
- @AttributeOverride(name = "parentLocalName", column = @Column(name = "outputParentLocalName")),
- @AttributeOverride(name = "localName", column = @Column(name = "outputLocalName"))})
+ @AttributeOverride(name = "parentKeyName", column = @Column(name = "outputParentKeyName"))
+ @AttributeOverride(name = "parentKeyVersion", column = @Column(name = "outputParentKeyVersion"))
+ @AttributeOverride(name = "parentLocalName", column = @Column(name = "outputParentLocalName"))
+ @AttributeOverride(name = "localName", column = @Column(name = "outputLocalName"))
@Column(name = "output")
@XmlElement(required = true)
private AxReferenceKey output;
diff --git a/model/policy-model/src/main/java/org/onap/policy/apex/model/policymodel/concepts/AxStateTree.java b/model/policy-model/src/main/java/org/onap/policy/apex/model/policymodel/concepts/AxStateTree.java
index cd21742a4..a27e1af1e 100644
--- a/model/policy-model/src/main/java/org/onap/policy/apex/model/policymodel/concepts/AxStateTree.java
+++ b/model/policy-model/src/main/java/org/onap/policy/apex/model/policymodel/concepts/AxStateTree.java
@@ -2,6 +2,7 @@
* ============LICENSE_START=======================================================
* Copyright (C) 2016-2018 Ericsson. All rights reserved.
* Modifications Copyright (C) 2019 Nordix Foundation.
+ * Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,10 +23,12 @@
package org.onap.policy.apex.model.policymodel.concepts;
import java.util.ArrayList;
+import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
+import lombok.EqualsAndHashCode;
import org.onap.policy.apex.model.basicmodel.concepts.AxReferenceKey;
import org.onap.policy.common.utils.validation.Assertions;
@@ -38,6 +41,7 @@ import org.onap.policy.common.utils.validation.Assertions;
* <p>Validation checks for recursive state use, in other words validation forbids the use of a given
* state more than once in a state tree.
*/
+@EqualsAndHashCode
public class AxStateTree implements Comparable<AxStateTree> {
private final AxState thisState;
private final Set<AxStateTree> nextStates;
@@ -144,12 +148,26 @@ public class AxStateTree implements Comparable<AxStateTree> {
}
final AxStateTree other = otherObj;
- if (!thisState.equals(other.thisState)) {
- return thisState.compareTo(other.thisState);
+ int result = thisState.compareTo(other.thisState);
+ if (result != 0) {
+ return result;
}
- if (!nextStates.equals(other.nextStates)) {
- return (nextStates.hashCode() - other.nextStates.hashCode());
+
+ result = Integer.compare(nextStates.size(), other.nextStates.size());
+ if (result != 0) {
+ return result;
+ }
+
+ Iterator<AxStateTree> iter1 = nextStates.iterator();
+ Iterator<AxStateTree> iter2 = other.nextStates.iterator();
+
+ while (iter1.hasNext()) {
+ result = iter1.next().compareTo(iter2.next());
+ if (result != 0) {
+ return result;
+ }
}
+
return 0;
}
}