aboutsummaryrefslogtreecommitdiffstats
path: root/integrity-audit/src/main/java/org/onap/policy/common/ia/IntegrityAudit.java
diff options
context:
space:
mode:
authorJim Hahn <jrh3@att.com>2019-06-19 17:31:24 -0400
committerJim Hahn <jrh3@att.com>2019-06-21 11:36:18 -0400
commitc9392e1a126de54ae8a0e1f3316729e878115300 (patch)
tree5a371d53f5e6cf8bedbb4daf94f558844037fd7d /integrity-audit/src/main/java/org/onap/policy/common/ia/IntegrityAudit.java
parent62463da9961f7e524559b34766baf2dd469fa910 (diff)
Fix sonar issues in integrity audit
Mostly used Eclipse Refactor->Extract Method to reduce cyclomatic complexity. Also combined a few "if" statements to reduce nesting levels. Also addressed some sonar issues in the tests (e.g., use "<>" where appropriate). Did not attempt to increase junit coverage. Change-Id: I9d6c1305ce455f0d64249b548d123bb9bf37292a Issue-ID: POLICY-1791 Signed-off-by: Jim Hahn <jrh3@att.com>
Diffstat (limited to 'integrity-audit/src/main/java/org/onap/policy/common/ia/IntegrityAudit.java')
-rw-r--r--integrity-audit/src/main/java/org/onap/policy/common/ia/IntegrityAudit.java154
1 files changed, 76 insertions, 78 deletions
diff --git a/integrity-audit/src/main/java/org/onap/policy/common/ia/IntegrityAudit.java b/integrity-audit/src/main/java/org/onap/policy/common/ia/IntegrityAudit.java
index d50c7059..02e4c70b 100644
--- a/integrity-audit/src/main/java/org/onap/policy/common/ia/IntegrityAudit.java
+++ b/integrity-audit/src/main/java/org/onap/policy/common/ia/IntegrityAudit.java
@@ -2,14 +2,14 @@
* ============LICENSE_START=======================================================
* Integrity Audit
* ================================================================================
- * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2019 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.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -21,6 +21,7 @@
package org.onap.policy.common.ia;
import java.util.Properties;
+import org.apache.commons.lang3.StringUtils;
import org.onap.policy.common.ia.IntegrityAuditProperties.NodeTypeEnum;
import org.onap.policy.common.logging.flexlogger.FlexLogger;
import org.onap.policy.common.logging.flexlogger.Logger;
@@ -46,18 +47,18 @@ public class IntegrityAudit {
/*
* This is the audit period in milliseconds. For example, if it had a value of 3600000, the
* audit can only run once per hour. If it has a value of 6000, it can run once per minute.
- *
+ *
* Values: integrityAuditPeriodSeconds < 0 (negative number) indicates the audit is off
* integrityAuditPeriodSeconds == 0 indicates the audit is to run continuously
* integrityAuditPeriodSeconds > 0 indicates the audit is to run at most once during the
* indicated period
- *
+ *
*/
private int integrityAuditPeriodSeconds;
/**
* IntegrityAudit constructor.
- *
+ *
* @param resourceName the resource name
* @param persistenceUnit the persistence unit
* @param properties the properties
@@ -118,100 +119,97 @@ public class IntegrityAudit {
public static boolean parmsAreBad(String resourceName, String persistenceUnit, Properties properties,
StringBuilder badparams) {
- boolean parmsAreBad = false;
-
- if (resourceName == null || resourceName.isEmpty()) {
- badparams.append("resourceName ");
- parmsAreBad = true;
- }
-
- if (persistenceUnit == null || persistenceUnit.isEmpty()) {
- badparams.append("persistenceUnit ");
- parmsAreBad = true;
- }
+ boolean parmsAreBad = checkEmpty(badparams, "resourceName", resourceName);
+ parmsAreBad = checkEmpty(badparams, "persistenceUnit", persistenceUnit) || parmsAreBad;
if (properties == null || properties.isEmpty()) {
badparams.append("properties ");
parmsAreBad = true;
} else {
- String dbDriver = properties.getProperty(IntegrityAuditProperties.DB_DRIVER);
- if (dbDriver == null || dbDriver.isEmpty()) {
- badparams.append("dbDriver ");
- parmsAreBad = true;
- }
+ parmsAreBad = checkProperties(properties, badparams) || parmsAreBad;
+ } // End else
+ logger.debug("parmsAreBad: exit:" + "\nresourceName: " + resourceName + "\npersistenceUnit: " + persistenceUnit
+ + "\nproperties: " + properties);
- String dbUrl = properties.getProperty(IntegrityAuditProperties.DB_URL);
- if (dbUrl == null || dbUrl.isEmpty()) {
- badparams.append("dbUrl ");
- parmsAreBad = true;
- }
+ return parmsAreBad;
+ }
- String dbUser = properties.getProperty(IntegrityAuditProperties.DB_USER);
- if (dbUser == null || dbUser.isEmpty()) {
- badparams.append("dbUser ");
- parmsAreBad = true;
- }
+ private static boolean checkEmpty(StringBuilder builder, String name, String value) {
+ if (StringUtils.isEmpty(value)) {
+ builder.append(name);
+ builder.append(' ');
+ return true;
- String dbPwd = properties.getProperty(IntegrityAuditProperties.DB_PWD);
- if (dbPwd == null) { // may be empty
- badparams.append("dbPwd ");
- parmsAreBad = true;
- }
+ } else {
+ return false;
+ }
+ }
- String siteName = properties.getProperty(IntegrityAuditProperties.SITE_NAME);
- if (siteName == null || siteName.isEmpty()) {
- badparams.append("siteName ");
- parmsAreBad = true;
- }
+ private static boolean checkProperties(Properties properties, StringBuilder badparams) {
+ boolean parmsAreBad =
+ checkEmpty(badparams, "dbDriver", properties.getProperty(IntegrityAuditProperties.DB_DRIVER));
+ parmsAreBad = checkEmpty(badparams, "dbUrl", properties.getProperty(IntegrityAuditProperties.DB_URL))
+ || parmsAreBad;
+ parmsAreBad = checkEmpty(badparams, "dbUser", properties.getProperty(IntegrityAuditProperties.DB_USER))
+ || parmsAreBad;
+ parmsAreBad = checkEmpty(badparams, "dbPwd", properties.getProperty(IntegrityAuditProperties.DB_PWD))
+ || parmsAreBad;
+ parmsAreBad = checkEmpty(badparams, "siteName", properties.getProperty(IntegrityAuditProperties.SITE_NAME))
+ || parmsAreBad;
+ parmsAreBad = checkNodeType(properties, badparams) || parmsAreBad;
+
+ return checkAuditPeriod(properties, badparams) || parmsAreBad;
+ }
- String nodeType = properties.getProperty(IntegrityAuditProperties.NODE_TYPE);
- if (nodeType == null || nodeType.isEmpty()) {
- badparams.append("nodeType ");
- parmsAreBad = true;
- } else {
- nodeType = nodeType.trim();
- if (!isNodeTypeEnum(nodeType)) {
- String nodetypes = "nodeType must be one of[";
- for (NodeTypeEnum n : NodeTypeEnum.values()) {
- nodetypes = nodetypes.concat(n.toString() + " ");
- }
- badparams.append(nodetypes + "] ");
- parmsAreBad = true;
- }
- }
- // IntegrityAuditProperties.AUDIT_PERIOD_SECONDS and
- // IntegrityAuditProperties.AUDIT_PERIOD_MILLISECONDS are allowed to be null
- if (properties.getProperty(IntegrityAuditProperties.AUDIT_PERIOD_SECONDS) != null) {
- try {
- Integer.parseInt(properties.getProperty(IntegrityAuditProperties.AUDIT_PERIOD_SECONDS).trim());
- } catch (NumberFormatException nfe) {
- badparams.append(", auditPeriodSeconds="
- + properties.getProperty(IntegrityAuditProperties.AUDIT_PERIOD_SECONDS).trim());
- parmsAreBad = true;
+ private static boolean checkNodeType(Properties properties, StringBuilder badparams) {
+ String nodeType = properties.getProperty(IntegrityAuditProperties.NODE_TYPE);
+ if (nodeType == null || nodeType.isEmpty()) {
+ badparams.append("nodeType ");
+ return true;
+ } else {
+ nodeType = nodeType.trim();
+ if (!isNodeTypeEnum(nodeType)) {
+ String nodetypes = "nodeType must be one of[";
+ for (NodeTypeEnum n : NodeTypeEnum.values()) {
+ nodetypes = nodetypes.concat(n.toString() + " ");
}
+ badparams.append(nodetypes + "] ");
+ return true;
}
- } // End else
- logger.debug("parmsAreBad: exit:" + "\nresourceName: " + resourceName + "\npersistenceUnit: " + persistenceUnit
- + "\nproperties: " + properties);
+ }
+ return false;
+ }
- return parmsAreBad;
+ private static boolean checkAuditPeriod(Properties properties, StringBuilder badparams) {
+ // IntegrityAuditProperties.AUDIT_PERIOD_SECONDS and
+ // IntegrityAuditProperties.AUDIT_PERIOD_MILLISECONDS are allowed to be null
+ if (properties.getProperty(IntegrityAuditProperties.AUDIT_PERIOD_SECONDS) != null) {
+ try {
+ Integer.parseInt(properties.getProperty(IntegrityAuditProperties.AUDIT_PERIOD_SECONDS).trim());
+ } catch (NumberFormatException nfe) {
+ badparams.append(", auditPeriodSeconds="
+ + properties.getProperty(IntegrityAuditProperties.AUDIT_PERIOD_SECONDS).trim());
+ return true;
+ }
+ }
+ return false;
}
/**
* Starts the audit thread.
- *
+ *
* @throws IntegrityAuditException if an error occurs
*/
public void startAuditThread() throws IntegrityAuditException {
logger.info("startAuditThread: Entering");
if (integrityAuditPeriodSeconds >= 0) {
- this.auditThread = makeAuditThread(this.resourceName, this.persistenceUnit,
+ this.auditThread = makeAuditThread(this.resourceName, this.persistenceUnit,
this.properties, integrityAuditPeriodSeconds);
- logger.info("startAuditThread: Audit started and will run every " + integrityAuditPeriodSeconds
+ logger.info("startAuditThread: Audit started and will run every " + integrityAuditPeriodSeconds
+ " seconds");
this.auditThread.start();
-
+
} else {
logger.info("startAuditThread: Suppressing integrity audit, integrityAuditPeriodSeconds="
+ integrityAuditPeriodSeconds);
@@ -255,7 +253,7 @@ public class IntegrityAudit {
/**
* Waits a bit for the AuditThread to complete. Used by JUnit tests.
- *
+ *
* @param twaitms wait time, in milliseconds
* @return {@code true} if the thread stopped within the given time, {@code false} otherwise
* @throws InterruptedException if the thread is interrupted
@@ -272,7 +270,7 @@ public class IntegrityAudit {
/**
* Return if audit thread.
- *
+ *
* @return {@code true} if an audit thread exists, {@code false} otherwise
*/
protected boolean haveAuditThread() {
@@ -281,12 +279,12 @@ public class IntegrityAudit {
/**
* Creates an audit thread. May be overridden by junit tests.
- *
+ *
* @param resourceName2 the resource name
* @param persistenceUnit2 the persistence unit
* @param properties2 properties
* @param integrityAuditPeriodSeconds2
- *
+ *
* @return a new audit thread
* @throws IntegrityAuditException audit exception
*/