diff options
14 files changed, 321 insertions, 208 deletions
diff --git a/feature-state-management/src/main/java/org/onap/policy/drools/statemanagement/DbAudit.java b/feature-state-management/src/main/java/org/onap/policy/drools/statemanagement/DbAudit.java index 67991c7b..33f672c5 100644 --- a/feature-state-management/src/main/java/org/onap/policy/drools/statemanagement/DbAudit.java +++ b/feature-state-management/src/main/java/org/onap/policy/drools/statemanagement/DbAudit.java @@ -84,29 +84,11 @@ public class DbAudit extends DroolsPDPIntegrityMonitor.AuditBase @Override public void invoke(Properties properties) { - if(logger.isDebugEnabled()){ - logger.debug("Running 'DbAudit.invoke'"); - } - if(isJunit){ - createTableNeeded = false; - } - boolean isActive = true; - String dbAuditIsActive = StateManagementProperties.getProperty("db.audit.is.active"); - if(logger.isDebugEnabled()){ - logger.debug("DbAudit.invoke: dbAuditIsActive = {}", dbAuditIsActive); - } - - if (dbAuditIsActive != null) { - try { - isActive = Boolean.parseBoolean(dbAuditIsActive.trim()); - } catch (NumberFormatException e) { - logger.warn("DbAudit.invoke: Ignoring invalid property: db.audit.is.active = {}", dbAuditIsActive); - } - } + logger.debug("Running 'DbAudit.invoke'"); + boolean doCreate = createTableNeeded && !isJunit; - if(!isActive){ - - logger.info("DbAudit.invoke: exiting because isActive = {}", isActive); + if(!isActive()){ + logger.info("DbAudit.invoke: exiting because isActive = false"); return; } @@ -123,14 +105,12 @@ public class DbAudit extends DroolsPDPIntegrityMonitor.AuditBase // create connection to DB phase = "creating connection"; - if(logger.isDebugEnabled()){ - logger.debug("DbAudit: Creating connection to {}", url); - } + logger.debug("DbAudit: Creating connection to {}", url); try (Connection connection = DriverManager.getConnection(url, user, password)) { // create audit table, if needed - if (createTableNeeded) + if (doCreate) { phase = "create table"; createTable(connection); @@ -156,14 +136,32 @@ public class DbAudit extends DroolsPDPIntegrityMonitor.AuditBase } /** + * Determines if the DbAudit is active, based on properties. Defaults to + * {@code true}, if not found in the properties. + * @return {@code true} if DbAudit is active, {@code false} otherwise + */ + private boolean isActive() { + String dbAuditIsActive = StateManagementProperties.getProperty("db.audit.is.active"); + logger.debug("DbAudit.invoke: dbAuditIsActive = {}", dbAuditIsActive); + + if (dbAuditIsActive != null) { + try { + return Boolean.parseBoolean(dbAuditIsActive.trim()); + } catch (NumberFormatException e) { + logger.warn("DbAudit.invoke: Ignoring invalid property: db.audit.is.active = {}", dbAuditIsActive); + } + } + + return true; + } + + /** * Creates the table. * @param connection * @throws SQLException */ private void createTable(Connection connection) throws SQLException { - if(logger.isDebugEnabled()){ logger.info("DbAudit: Creating 'Audit' table, if needed"); - } try (PreparedStatement statement = connection.prepareStatement ("CREATE TABLE IF NOT EXISTS Audit (\n" + " name varchar(64) DEFAULT NULL,\n" diff --git a/feature-state-management/src/main/java/org/onap/policy/drools/statemanagement/DroolsPDPIntegrityMonitor.java b/feature-state-management/src/main/java/org/onap/policy/drools/statemanagement/DroolsPDPIntegrityMonitor.java index 0a4eb513..382f01e2 100644 --- a/feature-state-management/src/main/java/org/onap/policy/drools/statemanagement/DroolsPDPIntegrityMonitor.java +++ b/feature-state-management/src/main/java/org/onap/policy/drools/statemanagement/DroolsPDPIntegrityMonitor.java @@ -20,6 +20,7 @@ package org.onap.policy.drools.statemanagement; +import java.io.IOException; import java.util.ArrayList; import java.util.Properties; import org.onap.policy.common.im.IntegrityMonitor; @@ -67,10 +68,10 @@ public class DroolsPDPIntegrityMonitor extends IntegrityMonitor super(resourceName, consolidatedProperties); } - private static void missingProperty(String prop) throws StateManagementPropertiesException{ + private static void missingProperty(String prop) throws IntegrityMonitorException{ String msg = "init: missing IntegrityMonitor property: ".concat(prop); logger.error(msg); - throw new StateManagementPropertiesException(msg); + throw new IntegrityMonitorException(msg); } private static void logPropertyValue(String prop, String val){ @@ -83,156 +84,182 @@ public class DroolsPDPIntegrityMonitor extends IntegrityMonitor /** * Static initialization -- create Drools Integrity Monitor, and * an HTTP server to handle REST 'test' requests + * @throws StateManagementPropertiesException + * @throws IntegrityMonitorException */ - public static DroolsPDPIntegrityMonitor init(String configDir) throws Exception + public static DroolsPDPIntegrityMonitor init(String configDir) throws IntegrityMonitorException { logger.info("init: Entering and invoking PropertyUtil.getProperties() on '{}'", configDir); // read in properties - Properties stateManagementProperties = - PropertyUtil.getProperties(configDir + "/" + PROPERTIES_NAME); - // fetch and verify definitions of some properties + Properties stateManagementProperties = getProperties(configDir); + + // fetch and verify definitions of some properties, adding defaults where + // appropriate // (the 'IntegrityMonitor' constructor does some additional verification) + + checkPropError(stateManagementProperties, StateManagementProperties.TEST_HOST); + checkPropError(stateManagementProperties, StateManagementProperties.TEST_PORT); + + addDefaultPropError(stateManagementProperties, + StateManagementProperties.TEST_SERVICES, + StateManagementProperties.TEST_SERVICES_DEFAULT); + + addDefaultPropError(stateManagementProperties, + StateManagementProperties.TEST_REST_CLASSES, + StateManagementProperties.TEST_REST_CLASSES_DEFAULT); + + addDefaultPropWarn(stateManagementProperties, + StateManagementProperties.TEST_MANAGED, + StateManagementProperties.TEST_MANAGED_DEFAULT); + + addDefaultPropWarn(stateManagementProperties, + StateManagementProperties.TEST_SWAGGER, + StateManagementProperties.TEST_SWAGGER_DEFAULT); + + checkPropError(stateManagementProperties, StateManagementProperties.RESOURCE_NAME); + checkPropError(stateManagementProperties, StateManagementProperties.FP_MONITOR_INTERVAL); + checkPropError(stateManagementProperties, StateManagementProperties.FAILED_COUNTER_THRESHOLD); + checkPropError(stateManagementProperties, StateManagementProperties.TEST_TRANS_INTERVAL); + checkPropError(stateManagementProperties, StateManagementProperties.WRITE_FPC_INTERVAL); + checkPropError(stateManagementProperties, StateManagementProperties.SITE_NAME); + checkPropError(stateManagementProperties, StateManagementProperties.NODE_TYPE); + checkPropError(stateManagementProperties, StateManagementProperties.DEPENDENCY_GROUPS); + checkPropError(stateManagementProperties, StateManagementProperties.DB_DRIVER); + checkPropError(stateManagementProperties, StateManagementProperties.DB_URL); + checkPropError(stateManagementProperties, StateManagementProperties.DB_USER); + checkPropError(stateManagementProperties, StateManagementProperties.DB_PWD); + String testHost = stateManagementProperties.getProperty(StateManagementProperties.TEST_HOST); String testPort = stateManagementProperties.getProperty(StateManagementProperties.TEST_PORT); - String testServices = stateManagementProperties.getProperty(StateManagementProperties.TEST_SERVICES); - String testRestClasses = stateManagementProperties.getProperty(StateManagementProperties.TEST_REST_CLASSES); - String testManaged = stateManagementProperties.getProperty(StateManagementProperties.TEST_MANAGED); - String testSwagger = stateManagementProperties.getProperty(StateManagementProperties.TEST_SWAGGER); String resourceName = stateManagementProperties.getProperty(StateManagementProperties.RESOURCE_NAME); - String fpMonitorInterval = stateManagementProperties.getProperty(StateManagementProperties.FP_MONITOR_INTERVAL); - String failedCounterThreshold = stateManagementProperties.getProperty(StateManagementProperties.FAILED_COUNTER_THRESHOLD); - String testTransInterval = stateManagementProperties.getProperty(StateManagementProperties.TEST_TRANS_INTERVAL); - String writeFpcInterval = stateManagementProperties.getProperty(StateManagementProperties.WRITE_FPC_INTERVAL); - String siteName = stateManagementProperties.getProperty(StateManagementProperties.SITE_NAME); - String nodeType = stateManagementProperties.getProperty(StateManagementProperties.NODE_TYPE); - String dependencyGroups = stateManagementProperties.getProperty(StateManagementProperties.DEPENDENCY_GROUPS); - String javaxPersistenceJdbcDriver = stateManagementProperties.getProperty(StateManagementProperties.DB_DRIVER); - String javaxPersistenceJdbcUrl = stateManagementProperties.getProperty(StateManagementProperties.DB_URL); - String javaxPersistenceJdbcUser = stateManagementProperties.getProperty(StateManagementProperties.DB_USER); - String javaxPersistenceJdbcPassword = stateManagementProperties.getProperty(StateManagementProperties.DB_PWD); - - if (testHost == null){ - missingProperty(StateManagementProperties.TEST_HOST); - } - if (testPort == null){ - missingProperty(StateManagementProperties.TEST_PORT); - } - if (testServices == null) { - testServices = StateManagementProperties.TEST_SERVICES_DEFAULT; - stateManagementProperties.put(StateManagementProperties.TEST_SERVICES, testServices); - } - if (testRestClasses == null) { - testRestClasses = StateManagementProperties.TEST_REST_CLASSES_DEFAULT; - stateManagementProperties.put(StateManagementProperties.TEST_REST_CLASSES, testRestClasses); - } - if (testManaged == null) { - testManaged = StateManagementProperties.TEST_MANAGED_DEFAULT; - stateManagementProperties.put(StateManagementProperties.TEST_MANAGED, testManaged); - } - if (testSwagger == null) { - testSwagger = StateManagementProperties.TEST_SWAGGER_DEFAULT; - stateManagementProperties.put(StateManagementProperties.TEST_SWAGGER, testSwagger); - } - if (!testServices.equals(StateManagementProperties.TEST_SERVICES_DEFAULT)){ - logger.error(INVALID_PROPERTY_VALUE, - StateManagementProperties.TEST_SERVICES, - StateManagementProperties.TEST_SERVICES_DEFAULT); - } - if (!testRestClasses.equals(StateManagementProperties.TEST_REST_CLASSES_DEFAULT)){ - logger.error(INVALID_PROPERTY_VALUE, - StateManagementProperties.TEST_REST_CLASSES, - StateManagementProperties.TEST_REST_CLASSES_DEFAULT); - } - if (!testManaged.equals(StateManagementProperties.TEST_MANAGED_DEFAULT)){ - logger.warn(INVALID_PROPERTY_VALUE, - StateManagementProperties.TEST_MANAGED, - StateManagementProperties.TEST_MANAGED_DEFAULT); - } - if (!testSwagger.equals(StateManagementProperties.TEST_SWAGGER_DEFAULT)){ - logger.warn(INVALID_PROPERTY_VALUE, - StateManagementProperties.TEST_SWAGGER, - StateManagementProperties.TEST_SWAGGER_DEFAULT); - } - if (resourceName == null){ - missingProperty(StateManagementProperties.RESOURCE_NAME); - } - if (fpMonitorInterval == null){ - missingProperty(StateManagementProperties.FP_MONITOR_INTERVAL); - } - if (failedCounterThreshold == null){ - missingProperty(StateManagementProperties.FAILED_COUNTER_THRESHOLD); - } - if (testTransInterval == null){ - missingProperty(StateManagementProperties.TEST_TRANS_INTERVAL); - } - if (writeFpcInterval == null){ - missingProperty(StateManagementProperties.WRITE_FPC_INTERVAL); - } - if (siteName == null){ - missingProperty(StateManagementProperties.SITE_NAME); - } - if (nodeType == null){ - missingProperty(StateManagementProperties.NODE_TYPE); - } - if (dependencyGroups == null){ - missingProperty(StateManagementProperties.DEPENDENCY_GROUPS); - } - if (javaxPersistenceJdbcDriver == null){ - missingProperty(StateManagementProperties.DB_DRIVER); - } - if (javaxPersistenceJdbcUrl == null){ - missingProperty(StateManagementProperties.DB_URL); - } - if (javaxPersistenceJdbcUser == null){ - missingProperty(StateManagementProperties.DB_USER); - } - if (javaxPersistenceJdbcPassword == null){ - missingProperty(StateManagementProperties.DB_PWD); - } - - //Log the values so we can diagnose any issues - logPropertyValue(StateManagementProperties.TEST_HOST,testHost); - logPropertyValue(StateManagementProperties.TEST_PORT,testPort); - logPropertyValue(StateManagementProperties.TEST_SERVICES,testServices); - logPropertyValue(StateManagementProperties.TEST_REST_CLASSES,testRestClasses); - logPropertyValue(StateManagementProperties.TEST_MANAGED,testManaged); - logPropertyValue(StateManagementProperties.TEST_SWAGGER,testSwagger); - logPropertyValue(StateManagementProperties.RESOURCE_NAME,resourceName); - logPropertyValue(StateManagementProperties.FP_MONITOR_INTERVAL,fpMonitorInterval); - logPropertyValue(StateManagementProperties.FAILED_COUNTER_THRESHOLD,failedCounterThreshold); - logPropertyValue(StateManagementProperties.TEST_TRANS_INTERVAL,testTransInterval); - logPropertyValue(StateManagementProperties.WRITE_FPC_INTERVAL,writeFpcInterval); - logPropertyValue(StateManagementProperties.SITE_NAME,siteName); - logPropertyValue(StateManagementProperties.NODE_TYPE,nodeType); - logPropertyValue(StateManagementProperties.DEPENDENCY_GROUPS,dependencyGroups); - logPropertyValue(StateManagementProperties.DB_DRIVER,javaxPersistenceJdbcDriver); - logPropertyValue(StateManagementProperties.DB_URL,javaxPersistenceJdbcUrl); - logPropertyValue(StateManagementProperties.DB_USER,javaxPersistenceJdbcUser); - logPropertyValue(StateManagementProperties.DB_PWD,javaxPersistenceJdbcPassword); - + subsystemTestProperties = stateManagementProperties; // Now that we've validated the properties, create Drools Integrity Monitor // with these properties. - im = new DroolsPDPIntegrityMonitor(resourceName, - stateManagementProperties); + im = makeMonitor(resourceName, stateManagementProperties); logger.info("init: New DroolsPDPIntegrityMonitor instantiated, resourceName = ", resourceName); // create http server + makeRestServer(testHost, testPort, stateManagementProperties); + logger.info("init: Exiting and returning DroolsPDPIntegrityMonitor"); + + return im; + } + + /** + * Makes an Integrity Monitor. + * @param resourceName unique name of this Integrity Monitor + * @param properties properties used to configure the Integrity Monitor + * @return + * @throws IntegrityMonitorException + */ + private static DroolsPDPIntegrityMonitor makeMonitor(String resourceName, Properties properties) + throws IntegrityMonitorException { + + try { + return new DroolsPDPIntegrityMonitor(resourceName, properties); + + } catch (Exception e) { + throw new IntegrityMonitorException(e); + } + } + + /** + * Makes a rest server for the Integrity Monitor. + * @param testHost host name + * @param testPort port + * @param properties properties used to configure the rest server + * @throws IntegrityMonitorException + */ + private static void makeRestServer(String testHost, String testPort, Properties properties) + throws IntegrityMonitorException { + try { logger.info("init: Starting HTTP server, addr= {}", testHost+":"+testPort); + IntegrityMonitorRestServer server = new IntegrityMonitorRestServer(); + server.init(properties); - server.init(stateManagementProperties); } catch (Exception e) { logger.error("init: Caught Exception attempting to start server on testPort= {} message:", testPort, e); - throw e; + throw new IntegrityMonitorException(e); } - logger.info("init: Exiting and returning DroolsPDPIntegrityMonitor"); - return im; + } + + /** + * Gets the properties from the property file. + * @param configDir directory containing the property file + * @return the properties + * @throws IntegrityMonitorException + */ + private static Properties getProperties(String configDir) throws IntegrityMonitorException { + try { + return PropertyUtil.getProperties(configDir + "/" + PROPERTIES_NAME); + + } catch (IOException e) { + throw new IntegrityMonitorException(e); + } + } + + /** + * Checks that a property is defined. + * @param props set of properties + * @param name name of the property to check + * @throws IntegrityMonitorException + */ + private static void checkPropError(Properties props, String name) throws IntegrityMonitorException { + String val = props.getProperty(name); + if(val == null) { + missingProperty(name); + } + + logPropertyValue(name, val); + } + + /** + * Checks a property's value to verify that it matches the expected value. + * If the property is not defined, then it is added to the property set, + * with the expected value. Logs an error if the property is defined, + * but does not have the expected value. + * @param props set of properties + * @param name name of the property to check + * @param expected expected/default value + */ + private static void addDefaultPropError(Properties props, String name, String expected) { + String val = props.getProperty(name); + if(val == null) { + props.setProperty(name, expected); + + } else if( ! val.equals(expected)) { + logger.error(INVALID_PROPERTY_VALUE, name, expected); + } + + logPropertyValue(name, val); + } + + /** + * Checks a property's value to verify that it matches the expected value. + * If the property is not defined, then it is added to the property set, + * with the expected value. Logs a warning if the property is defined, + * but does not have the expected value. + * @param props set of properties + * @param name name of the property to check + * @param expected expected/default value + */ + private static void addDefaultPropWarn(Properties props, String name, String dflt) { + String val = props.getProperty(name); + if(val == null) { + props.setProperty(name, dflt); + + } else if( ! val.equals(dflt)) { + logger.warn(INVALID_PROPERTY_VALUE, name, dflt); + } + + logPropertyValue(name, val); } /** diff --git a/feature-state-management/src/main/java/org/onap/policy/drools/statemanagement/RepositoryAudit.java b/feature-state-management/src/main/java/org/onap/policy/drools/statemanagement/RepositoryAudit.java index 1e2a3a05..11134443 100644 --- a/feature-state-management/src/main/java/org/onap/policy/drools/statemanagement/RepositoryAudit.java +++ b/feature-state-management/src/main/java/org/onap/policy/drools/statemanagement/RepositoryAudit.java @@ -483,7 +483,6 @@ public class RepositoryAudit extends DroolsPDPIntegrityMonitor.AuditBase @Override public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) { - // logger.info("RepositoryAudit: Delete " + file); file.toFile().delete(); return FileVisitResult.CONTINUE; } @@ -494,7 +493,6 @@ public class RepositoryAudit extends DroolsPDPIntegrityMonitor.AuditBase { if (e == null) { - // logger.info("RepositoryAudit: Delete " + file); file.toFile().delete(); return FileVisitResult.CONTINUE; } diff --git a/feature-state-management/src/main/java/org/onap/policy/drools/statemanagement/StateManagementFeature.java b/feature-state-management/src/main/java/org/onap/policy/drools/statemanagement/StateManagementFeature.java index a34d4f98..3cc27907 100644 --- a/feature-state-management/src/main/java/org/onap/policy/drools/statemanagement/StateManagementFeature.java +++ b/feature-state-management/src/main/java/org/onap/policy/drools/statemanagement/StateManagementFeature.java @@ -58,18 +58,14 @@ public class StateManagementFeature implements StateManagementFeatureAPI, /**************************/ public StateManagementFeature(){ - if(logger.isDebugEnabled()){ - logger.debug("StateManagementFeature() constructor"); - } + logger.debug("StateManagementFeature() constructor"); } @Override public void globalInit(String[] args, String configDir) { // Initialization code associated with 'PolicyContainer' - if(logger.isDebugEnabled()){ - logger.debug("StateManagementFeature.globalInit({}) entry", configDir); - } + logger.debug("StateManagementFeature.globalInit({}) entry", configDir); try { @@ -77,9 +73,7 @@ public class StateManagementFeature implements StateManagementFeatureAPI, } catch (Exception e) { - if(logger.isDebugEnabled()){ - logger.debug("DroolsPDPIntegrityMonitor initialization exception: ", e); - } + logger.debug("DroolsPDPIntegrityMonitor initialization exception: ", e); logger.error("DroolsPDPIntegrityMonitor.init()", e); } @@ -89,20 +83,16 @@ public class StateManagementFeature implements StateManagementFeatureAPI, try { droolsPdpIntegrityMonitor = DroolsPDPIntegrityMonitor.getInstance(); stateManagement = droolsPdpIntegrityMonitor.getStateManager(); - if(logger.isDebugEnabled()){ - logger.debug("StateManagementFeature.globalInit(): " - + "stateManagement.getAdminState(): {}", stateManagement.getAdminState()); - } + + logger.debug("StateManagementFeature.globalInit(): " + + "stateManagement.getAdminState(): {}", stateManagement.getAdminState()); + if(stateManagement == null){ - if(logger.isDebugEnabled()){ - logger.debug("StateManagementFeature.globalInit(): stateManagement is NULL!"); - } + logger.debug("StateManagementFeature.globalInit(): stateManagement is NULL!"); } } catch (Exception e1) { - if(logger.isDebugEnabled()){ - logger.debug("StateManagementFeature.globalInit(): DroolsPDPIntegrityMonitor" - + " initialization failed with exception:", e1); - } + logger.debug("StateManagementFeature.globalInit(): DroolsPDPIntegrityMonitor" + + " initialization failed with exception:", e1); logger.error("DroolsPDPIntegrityMonitor.init(): StateManagementFeature startup failed " + "to get DroolsPDPIntegrityMonitor instance:", e1); } @@ -113,15 +103,13 @@ public class StateManagementFeature implements StateManagementFeatureAPI, */ @Override public void addObserver(Observer stateChangeObserver) { - if(logger.isDebugEnabled()){ - logger.debug("StateManagementFeature.addObserver() entry\n" - + "StateManagementFeature.addObserver(): " - + "stateManagement.getAdminState(): {}", stateManagement.getAdminState()); - } + logger.debug("StateManagementFeature.addObserver() entry\n" + + "StateManagementFeature.addObserver(): " + + "stateManagement.getAdminState(): {}", stateManagement.getAdminState()); + stateManagement.addObserver(stateChangeObserver); - if(logger.isDebugEnabled()){ - logger.debug("StateManagementFeature.addObserver() exit"); - } + + logger.debug("StateManagementFeature.addObserver() exit"); } /** @@ -267,7 +255,7 @@ public class StateManagementFeature implements StateManagementFeatureAPI, @Override public void allSeemsWell(String key, Boolean asw, String msg) - throws IllegalArgumentException, AllSeemsWellException { + throws AllSeemsWellException { droolsPdpIntegrityMonitor.allSeemsWell(key, asw, msg); diff --git a/feature-state-management/src/test/java/org/onap/policy/drools/statemanagement/test/StateManagementTest.java b/feature-state-management/src/test/java/org/onap/policy/drools/statemanagement/test/StateManagementTest.java index 85e0ed85..b364ef83 100644 --- a/feature-state-management/src/test/java/org/onap/policy/drools/statemanagement/test/StateManagementTest.java +++ b/feature-state-management/src/test/java/org/onap/policy/drools/statemanagement/test/StateManagementTest.java @@ -185,6 +185,7 @@ public class StateManagementTest { /**************Repository Audit Test**************/ logger.debug("\n\ntestStateManagementOperation: Repository Audit\n\n"); try{ + StateManagementProperties.initProperties(fsmProperties); RepositoryAudit repositoryAudit = (RepositoryAudit) RepositoryAudit.getInstance(); repositoryAudit.invoke(fsmProperties); diff --git a/policy-utils/src/main/java/org/onap/policy/drools/utils/LoggerUtil.java b/policy-utils/src/main/java/org/onap/policy/drools/utils/LoggerUtil.java index 257d2dae..681a2b20 100644 --- a/policy-utils/src/main/java/org/onap/policy/drools/utils/LoggerUtil.java +++ b/policy-utils/src/main/java/org/onap/policy/drools/utils/LoggerUtil.java @@ -32,6 +32,10 @@ public class LoggerUtil { * Root logger */ public static final String ROOT_LOGGER = "ROOT"; + + private LoggerUtil() { + // Empty constructor + } /** * set the log level of a logger diff --git a/policy-utils/src/main/java/org/onap/policy/drools/utils/NetworkUtil.java b/policy-utils/src/main/java/org/onap/policy/drools/utils/NetworkUtil.java index bd5b8aac..6734226d 100644 --- a/policy-utils/src/main/java/org/onap/policy/drools/utils/NetworkUtil.java +++ b/policy-utils/src/main/java/org/onap/policy/drools/utils/NetworkUtil.java @@ -39,6 +39,9 @@ public class NetworkUtil { */ public static final String IPv4_WILDCARD_ADDRESS = "0.0.0.0"; + private NetworkUtil() { + // Empty constructor + } /** * try to connect to $host:$port $retries times while we are getting connection failures. diff --git a/policy-utils/src/main/java/org/onap/policy/drools/utils/OrderedService.java b/policy-utils/src/main/java/org/onap/policy/drools/utils/OrderedService.java index 75a3cd7d..7a6ca0a0 100644 --- a/policy-utils/src/main/java/org/onap/policy/drools/utils/OrderedService.java +++ b/policy-utils/src/main/java/org/onap/policy/drools/utils/OrderedService.java @@ -25,6 +25,7 @@ package org.onap.policy.drools.utils; * of services (features) discovered via 'ServiceLoader'. See * 'OrderedServiceImpl' for more details. */ +@FunctionalInterface public interface OrderedService { /** diff --git a/policy-utils/src/main/java/org/onap/policy/drools/utils/ReflectionUtil.java b/policy-utils/src/main/java/org/onap/policy/drools/utils/ReflectionUtil.java index 50135e84..bf59ec96 100644 --- a/policy-utils/src/main/java/org/onap/policy/drools/utils/ReflectionUtil.java +++ b/policy-utils/src/main/java/org/onap/policy/drools/utils/ReflectionUtil.java @@ -45,8 +45,7 @@ public class ReflectionUtil { * @throws IllegalArgumentException if an invalid parameter has been passed in */ public static Class<?> fetchClass(ClassLoader classLoader, - String className) - throws IllegalArgumentException { + String className) { if (classLoader == null) throw new IllegalArgumentException("A class loader must be provided"); @@ -70,8 +69,7 @@ public class ReflectionUtil { * @return true if exists * @throws IllegalArgumentException if an invalid parameter has been passed in */ - public static boolean isClass(ClassLoader classLoader, String classname) - throws IllegalArgumentException { + public static boolean isClass(ClassLoader classLoader, String classname) { return fetchClass(classLoader, classname) != null; } diff --git a/policy-utils/src/test/java/org/onap/policy/drools/utils/LoggerUtilTest.java b/policy-utils/src/test/java/org/onap/policy/drools/utils/LoggerUtilTest.java new file mode 100644 index 00000000..d942a427 --- /dev/null +++ b/policy-utils/src/test/java/org/onap/policy/drools/utils/LoggerUtilTest.java @@ -0,0 +1,33 @@ +/*- + * ============LICENSE_START======================================================= + * policy-utils + * ================================================================================ + * Copyright (C) 2018 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. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ +package org.onap.policy.drools.utils; + +import static org.junit.Assert.*; + +import org.junit.Test; + +public class LoggerUtilTest { + + @Test + public void test() { + assertNotNull(LoggerUtil.setLevel("foo", "warn")); + } + +} diff --git a/policy-utils/src/test/java/org/onap/policy/drools/utils/NetworkUtilTest.java b/policy-utils/src/test/java/org/onap/policy/drools/utils/NetworkUtilTest.java new file mode 100644 index 00000000..c8b7735b --- /dev/null +++ b/policy-utils/src/test/java/org/onap/policy/drools/utils/NetworkUtilTest.java @@ -0,0 +1,37 @@ +/*- + * ============LICENSE_START======================================================= + * policy-utils + * ================================================================================ + * Copyright (C) 2018 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. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ +package org.onap.policy.drools.utils; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; + +import java.io.IOException; + +import org.junit.Test; + +public class NetworkUtilTest { + + @Test + public void test() throws InterruptedException, IOException { + assertNotNull(NetworkUtil.IPv4_WILDCARD_ADDRESS); + assertFalse(NetworkUtil.isTcpPortOpen("localhost", 8080, 1, 5)); + } + +} diff --git a/policy-utils/src/test/java/org/onap/policy/drools/utils/PairTripleTest.java b/policy-utils/src/test/java/org/onap/policy/drools/utils/PairTripleTest.java index 1af831ad..5063447c 100644 --- a/policy-utils/src/test/java/org/onap/policy/drools/utils/PairTripleTest.java +++ b/policy-utils/src/test/java/org/onap/policy/drools/utils/PairTripleTest.java @@ -21,6 +21,7 @@ package org.onap.policy.drools.utils; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; import org.junit.Test; @@ -30,18 +31,20 @@ public class PairTripleTest { public void pairTest() { Pair<String, String> p = new Pair<String, String>("foo", "bar"); - assertEquals(p.first(),"foo"); - assertEquals(p.second(),"bar"); - assertEquals(p.getFirst(),"foo"); - assertEquals(p.getSecond(),"bar"); + assertEquals("foo", p.first()); + assertEquals("bar", p.second()); + assertEquals("foo", p.getFirst()); + assertEquals("bar", p.getSecond()); p.first("one"); p.second("two"); - assertEquals(p.first(),"one"); - assertEquals(p.second(),"two"); - assertEquals(p.getFirst(),"one"); - assertEquals(p.getSecond(),"two"); + assertEquals("one", p.first()); + assertEquals("two", p.second()); + assertEquals("one", p.getFirst()); + assertEquals("two", p.getSecond()); + + assertNotNull(p.toString()); } @@ -49,17 +52,17 @@ public class PairTripleTest { public void tripleTest() { Triple<String, String, String> t = new Triple<String, String,String>("foo", "bar", "fiz"); - assertEquals(t.first(),"foo"); - assertEquals(t.second(),"bar"); - assertEquals(t.third(),"fiz"); + assertEquals("foo", t.first()); + assertEquals("bar", t.second()); + assertEquals("fiz", t.third()); t.first("one"); t.second("two"); t.third("three"); - assertEquals(t.first(),"one"); - assertEquals(t.second(),"two"); - assertEquals(t.third(),"three"); + assertEquals("one", t.first()); + assertEquals("two", t.second()); + assertEquals("three", t.third()); } } diff --git a/policy-utils/src/test/java/org/onap/policy/drools/utils/ReflectionUtilTest.java b/policy-utils/src/test/java/org/onap/policy/drools/utils/ReflectionUtilTest.java index ab4bace5..0cb51060 100644 --- a/policy-utils/src/test/java/org/onap/policy/drools/utils/ReflectionUtilTest.java +++ b/policy-utils/src/test/java/org/onap/policy/drools/utils/ReflectionUtilTest.java @@ -21,6 +21,7 @@ package org.onap.policy.drools.utils; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; @@ -58,5 +59,26 @@ public class ReflectionUtilTest { fail(); } } + + @Test(expected = IllegalArgumentException.class) + public void testException1() { + ReflectionUtil.fetchClass(null, "org.onap.policy.drools.utils.ReflectionUtil"); + } + + @Test(expected = IllegalArgumentException.class) + public void testException2() { + Class<?> class1; + try { + class1 = Class.forName("org.onap.policy.drools.utils.ReflectionUtil"); + ClassLoader classLoader = class1.getClassLoader(); + ReflectionUtil.fetchClass(classLoader, null); + } catch (ClassNotFoundException e) { + fail(); + } + } + @Test + public void testException3() throws ClassNotFoundException { + assertNull(ReflectionUtil.fetchClass(ClassLoader.getSystemClassLoader(), "foo.bar")); + } } @@ -2,7 +2,7 @@ ============LICENSE_START======================================================= ONAP Policy Engine - Drools PDP ================================================================================ - Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + Copyright (C) 2017-2018 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. @@ -43,9 +43,9 @@ <dmaap.version>1.0.0</dmaap.version> <cambria.version>0.0.1</cambria.version> <jersey.version>2.25.1</jersey.version> - <jersey.swagger.version>1.5.16</jersey.swagger.version> - <jackson.version>2.9.1</jackson.version> - <http.client.version>4.5.2</http.client.version> + <jersey.swagger.version>1.5.18</jersey.swagger.version> + <jackson.version>2.9.4</jackson.version> + <http.client.version>4.5.5</http.client.version> <http.core.version>4.4.4</http.core.version> <logback.version>1.2.3</logback.version> <junit.version>4.12</junit.version> |