Fix checkstyle policy-core

Working on the policy-core submodule in drools pdp.

Issue-ID: POLICY-882
Change-Id: I58d418110fe0fda90f97117ef17edfc13d648ccc
Signed-off-by: Pamela Dragosh <pdragosh@research.att.com>
diff --git a/policy-core/src/main/java/org/onap/policy/drools/core/PolicyContainer.java b/policy-core/src/main/java/org/onap/policy/drools/core/PolicyContainer.java
index 8a86a5c..f2a084e 100644
--- a/policy-core/src/main/java/org/onap/policy/drools/core/PolicyContainer.java
+++ b/policy-core/src/main/java/org/onap/policy/drools/core/PolicyContainer.java
@@ -79,7 +79,7 @@
      * dependencies from the Maven repository to create the 'PolicyContainer' and associated
      * 'KieContainer'.
      *
-     * An exception occurs if the creation of the 'KieContainer' fails.
+     * <p>An exception occurs if the creation of the 'KieContainer' fails.
      *
      * @param groupId the 'groupId' associated with the artifact
      * @param artifactId the artifact name
@@ -94,7 +94,7 @@
      * associated artifact and remaining dependencies from the Maven repository to create the
      * 'PolicyContainer' and associated 'KieContainer'.
      *
-     * An exception occurs if the creation of the 'KieContainer' fails.
+     * <p>An exception occurs if the creation of the 'KieContainer' fails.
      *
      * @param releaseId indicates the artifact that is to be installed in this container
      */
@@ -109,7 +109,7 @@
         }
         synchronized (containers) {
             if (newReleaseId != null) {
-                logger.info("Add a new kieContainer in containers: releaseId: " + newReleaseId.toString());
+                logger.info("Add a new kieContainer in containers: releaseId: {}", newReleaseId.toString());
             } else {
                 logger.warn("input releaseId is null");
             }
@@ -133,7 +133,7 @@
     private ReleaseId loadArtifact(String groupId, String artifactId, String version) {
         String[] versions = version.split(",");
         if (versions.length > 1) {
-            logger.info("Multiple KieContainer versions are specified: " + version);
+            logger.info("Multiple KieContainer versions are specified: {}", version);
         }
 
         // indicates a 'newKieContainer' call failed
@@ -147,7 +147,7 @@
             try {
                 // Create a 'ReleaseId' object describing the artifact, and
                 // create a 'KieContainer' based upon it.
-                logger.info("Create new KieContainer start, version = " + ver + " ...");
+                logger.info("Create new KieContainer start, version = {} ...", ver);
 
                 releaseId = kieServices.newReleaseId(groupId, artifactId, ver);
                 kieContainer = kieServices.newKieContainer(releaseId);
@@ -168,6 +168,8 @@
     }
 
     /**
+     * Get name.
+     * 
      * @return the name of the container, which is the String equivalent of the 'ReleaseId'. It has
      *         the form:
      *
@@ -181,6 +183,8 @@
     }
 
     /**
+     * Get kie container.
+     * 
      * @return the associated 'KieContainer' instance
      */
     public KieContainer getKieContainer() {
@@ -188,6 +192,8 @@
     }
 
     /**
+     * Get class loader.
+     * 
      * @return the 'ClassLoader' associated with the 'KieContainer' instance
      */
     public ClassLoader getClassLoader() {
@@ -195,6 +201,8 @@
     }
 
     /**
+     * Get group Id.
+     * 
      * @return the Maven GroupId of the top-level artifact wrapped by the container.
      */
     public String getGroupId() {
@@ -202,6 +210,8 @@
     }
 
     /**
+     * Get artifact id.
+     * 
      * @return the Maven ArtifactId of the top-level artifact wrapped by the container.
      */
     public String getArtifactId() {
@@ -209,6 +219,8 @@
     }
 
     /**
+     * Get version.
+     * 
      * @return the version of the top-level artifact wrapped by the container (this may change as
      *         updates occur)
      */
@@ -236,10 +248,10 @@
      */
     private PolicySession activatePolicySession(String name, String kieBaseName) {
         synchronized (sessions) {
-            logger.info("activatePolicySession:name :" + name);
+            logger.info("activatePolicySession:name :{}", name);
             PolicySession session = sessions.get(name);
             if (session != null) {
-                logger.info("activatePolicySession:session - " + session.getFullName() + " is returned.");
+                logger.info("activatePolicySession:session - {} is returned.", session.getFullName());
                 return session;
             }
             KieSession kieSession = null;
@@ -275,7 +287,7 @@
                         logger.error(ERROR_STRING + feature.getClass().getName(), e);
                     }
                 }
-                logger.info("activatePolicySession:new session was added in sessions with name " + name);
+                logger.info("activatePolicySession:new session was added in sessions with name {}", name);
             }
             logger.info("activatePolicySession:session - " + (session == null ? "null" : session.getFullName())
                     + " is returned.");
@@ -310,15 +322,15 @@
         // fetch KieBase, and verify it belongs to this KieContainer
         boolean match = false;
         KieBase kieBase = kieSession.getKieBase();
-        logger.info("adoptKieSession:kieBase: " + kieBase);
+        logger.info("adoptKieSession:kieBase: {}", kieBase);
         for (String kieBaseName : kieContainer.getKieBaseNames()) {
-            logger.info("adoptKieSession:kieBaseName: " + kieBaseName);
+            logger.info("adoptKieSession:kieBaseName: {}", kieBaseName);
             if (kieBase == kieContainer.getKieBase(kieBaseName)) {
                 match = true;
                 break;
             }
         }
-        logger.info("adoptKieSession:match " + match);
+        logger.info("adoptKieSession:match {}", match);
         // if we don't have a match yet, the last chance is to look at the
         // default KieBase, if it exists
         if (!match && kieBase != kieContainer.getKieBase()) {
@@ -333,7 +345,7 @@
 
             // create the new 'PolicySession', add it to the table,
             // and return the object to the caller
-            logger.info("adoptKieSession:create a new policySession with name " + name);
+            logger.info("adoptKieSession:create a new policySession with name {}", name);
             PolicySession policySession = new PolicySession(name, this, kieSession);
             sessions.put(name, policySession);
 
@@ -378,7 +390,7 @@
         if (releaseId == null) {
             logger.warn("updateToVersion:input releaseId is null");
         } else {
-            logger.info("updateToVersion:releaseId " + releaseId.toString());
+            logger.info("updateToVersion:releaseId {}", releaseId);
         }
 
         // stop all session threads
@@ -399,6 +411,8 @@
     }
 
     /**
+     * Get policy containers.
+     * 
      * @return all existing 'PolicyContainer' instances
      */
     public static Collection<PolicyContainer> getPolicyContainers() {
@@ -408,6 +422,8 @@
     }
 
     /**
+     * Get policy sessions.
+     * 
      * @return all of the 'PolicySession' instances
      */
     public Collection<PolicySession> getPolicySessions() {
@@ -454,7 +470,7 @@
     }
 
     /**
-     * Insert a fact into a specific named session
+     * Insert a fact into a specific named session.
      *
      * @param name this is the session name
      * @param object this is the fact to be inserted into the session
@@ -475,7 +491,7 @@
     }
 
     /**
-     * Insert a fact into all sessions associated with this container
+     * Insert a fact into all sessions associated with this container.
      *
      * @param object this is the fact to be inserted into the sessions
      * @return 'true' if the fact was inserted into at least one session, 'false' if not
@@ -660,15 +676,15 @@
     /**
      * This method does the following:
      *
-     * 1) Initializes logging 2) Starts the DroolsPDP Integrity Monitor 3) Initilaizes persistence
+     * <p>1) Initializes logging 2) Starts the DroolsPDP Integrity Monitor 3) Initilaizes persistence
      *
-     * It no longer reads in properties files, o creates 'PolicyContainer' instances.
+     * <p>It no longer reads in properties files, o creates 'PolicyContainer' instances.
      *
      * @param args standard 'main' arguments, which are currently ignored
      */
     public static void globalInit(String[] args) {
         String configDir = "config";
-        logger.info("PolicyContainer.main: configDir=" + configDir);
+        logger.info("PolicyContainer.main: configDir={}", configDir);
 
         // invoke 'globalInit' on all of the features
         for (PolicySessionFeatureAPI feature : PolicySessionFeatureAPI.impl.getList()) {
@@ -681,7 +697,7 @@
     }
 
     /**
-     * Fetch the adjunct object associated with a given feature
+     * Fetch the adjunct object associated with a given feature.
      *
      * @param object this is typically the singleton feature object that is used as a key, but it
      *        might also be useful to use nested objects within the feature as keys.
@@ -692,7 +708,7 @@
     }
 
     /**
-     * Store the adjunct object associated with a given feature
+     * Store the adjunct object associated with a given feature.
      *
      * @param object this is typically the singleton feature object that is used as a key, but it
      *        might also be useful to use nested objects within the feature as keys.
diff --git a/policy-core/src/main/java/org/onap/policy/drools/core/PolicySession.java b/policy-core/src/main/java/org/onap/policy/drools/core/PolicySession.java
index 7646225..bb2148c 100644
--- a/policy-core/src/main/java/org/onap/policy/drools/core/PolicySession.java
+++ b/policy-core/src/main/java/org/onap/policy/drools/core/PolicySession.java
@@ -44,8 +44,8 @@
 
 /**
  * This class is a wrapper around 'KieSession', which adds the following:
- * <p>
- * 1) A thread running 'KieSession.fireUntilHalt()'
+ * 
+ * <p>1) A thread running 'KieSession.fireUntilHalt()'
  * 2) Access to UEB
  * 3) Logging of events
  */
@@ -75,7 +75,7 @@
             new ThreadLocal<>();
 
     /**
-     * Internal constructor - create a 'PolicySession' instance
+     * Internal constructor - create a 'PolicySession' instance.
      *
      * @param name       the name of this 'PolicySession' (and 'kieSession')
      * @param container  the 'PolicyContainer' instance containing this session
@@ -91,6 +91,8 @@
     }
 
     /**
+     * Get policy container.
+     * 
      * @return the 'PolicyContainer' object containing this session
      */
     public PolicyContainer getPolicyContainer() {
@@ -98,6 +100,8 @@
     }
 
     /**
+     * Get Kie Session.
+     * 
      * @return the associated 'KieSession' instance
      */
     public KieSession getKieSession() {
@@ -105,17 +109,21 @@
     }
 
     /**
+     * Get name.
+     * 
      * @return the local name of this session, which should either match the
-     * name specified in 'kmodule.xml' file associated with this session, or the
-     * name passed on the 'PolicyContainer.adoptKieSession' method.
+     *     name specified in 'kmodule.xml' file associated with this session, or the
+     *     name passed on the 'PolicyContainer.adoptKieSession' method.
      */
     public String getName() {
         return name;
     }
 
     /**
+     * Get full name.
+     * 
      * @return the 'PolicyContainer' name, followed by ':', followed by the
-     * local name of the session. It should be useful in log messages.
+     *     local name of the session. It should be useful in log messages.
      */
     public String getFullName() {
         return container.getName() + ":" + name;
@@ -137,8 +145,9 @@
         for (PolicySessionFeatureAPI feature :
                 PolicySessionFeatureAPI.impl.getList()) {
             try {
-                if ((threadModel = feature.selectThreadModel(this)) != null)
+                if ((threadModel = feature.selectThreadModel(this)) != null) {
                     break;
+                }
             } catch (Exception e) {
                 logger.error("ERROR: Feature API: "
                         + feature.getClass().getName(), e);
@@ -164,7 +173,7 @@
     }
 
     /**
-     * Notification that 'updateToVersion' was called on the container
+     * Notification that 'updateToVersion' was called on the container.
      */
     void updated() {
         if (threadModel != null) {
@@ -183,29 +192,31 @@
     }
 
     /**
+     * Get current session.
+     * 
      * @return the 'PolicySession' instance associated with the current thread
-     * (Note that this only works if the current thread is the one running
-     * 'kieSession.fireUntilHalt()'.)
+     *     (Note that this only works if the current thread is the one running
+     *     'kieSession.fireUntilHalt()'.)
      */
     public static PolicySession getCurrentSession() {
         return policySess.get();
     }
 
     /**
-     * Fetch the adjunct object associated with a given feature
+     * Fetch the adjunct object associated with a given feature.
      *
      * @param object this is typically the singleton feature object that is
      *               used as a key, but it might also be useful to use nested objects
      *               within the feature as keys.
      * @return a feature-specific object associated with the key, or 'null'
-     * if it is not found.
+     *     if it is not found.
      */
     public Object getAdjunct(Object object) {
         return adjuncts.get(object);
     }
 
     /**
-     * Store the adjunct object associated with a given feature
+     * Store the adjunct object associated with a given feature.
      *
      * @param object this is typically the singleton feature object that is
      *               used as a key, but it might also be useful to use nested objects
@@ -253,8 +264,7 @@
      * {@inheritDoc}
      */
     @Override
-    public void afterRuleFlowGroupDeactivated
-    (RuleFlowGroupDeactivatedEvent event) {
+    public void afterRuleFlowGroupDeactivated(RuleFlowGroupDeactivatedEvent event) {
         if (logger.isDebugEnabled()) {
             logger.debug("afterRuleFlowGroupDeactivated: " + getFullName()
                     + ": AgendaEventListener.afterRuleFlowGroupDeactivated("
@@ -302,8 +312,7 @@
      * {@inheritDoc}
      */
     @Override
-    public void beforeRuleFlowGroupActivated
-    (RuleFlowGroupActivatedEvent event) {
+    public void beforeRuleFlowGroupActivated(RuleFlowGroupActivatedEvent event) {
         if (logger.isDebugEnabled()) {
             logger.debug("beforeRuleFlowGroupActivated: " + getFullName()
                     + ": AgendaEventListener.beforeRuleFlowGroupActivated("
@@ -315,8 +324,7 @@
      * {@inheritDoc}
      */
     @Override
-    public void beforeRuleFlowGroupDeactivated
-    (RuleFlowGroupDeactivatedEvent event) {
+    public void beforeRuleFlowGroupDeactivated(RuleFlowGroupDeactivatedEvent event) {
         if (logger.isDebugEnabled()) {
             logger.debug("beforeRuleFlowGroupDeactivated: " + getFullName()
                     + ": AgendaEventListener.beforeRuleFlowGroupDeactivated("
@@ -391,12 +399,12 @@
      */
     public interface ThreadModel {
         /**
-         * Start the thread or threads that do the 'KieSession' processing
+         * Start the thread or threads that do the 'KieSession' processing.
          */
         public void start();
 
         /**
-         * Stop the thread or threads that do the 'KieSession' processing
+         * Stop the thread or threads that do the 'KieSession' processing.
          */
         public void stop();
 
@@ -425,7 +433,7 @@
         volatile boolean repeat = true;
 
         /**
-         * Constructor - initialize 'session' and create thread
+         * Constructor - initialize 'session' and create thread.
          *
          * @param session the 'PolicySession' instance
          */
@@ -435,6 +443,8 @@
         }
 
         /**
+         * Get thread name.
+         * 
          * @return the String to use as the thread name
          */
         private String getThreadName() {
diff --git a/policy-core/src/main/java/org/onap/policy/drools/core/PolicySessionFeatureAPI.java b/policy-core/src/main/java/org/onap/policy/drools/core/PolicySessionFeatureAPI.java
index 867325c..3e49ee5 100644
--- a/policy-core/src/main/java/org/onap/policy/drools/core/PolicySessionFeatureAPI.java
+++ b/policy-core/src/main/java/org/onap/policy/drools/core/PolicySessionFeatureAPI.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * policy-core
  * ================================================================================
- * 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.
@@ -32,76 +32,71 @@
  * return a 'void' value. In other cases, such as 'activatePolicySession',
  * may 
  */
-public interface PolicySessionFeatureAPI extends OrderedService
-{
-  /**
-   * 'FeatureAPI.impl.getList()' returns an ordered list of objects
-   * implementing the 'FeatureAPI' interface.
-   */
-  public static OrderedServiceImpl<PolicySessionFeatureAPI> impl =
-	new OrderedServiceImpl<>(PolicySessionFeatureAPI.class);
+public interface PolicySessionFeatureAPI extends OrderedService {
+    /**
+     * 'FeatureAPI.impl.getList()' returns an ordered list of objects
+     * implementing the 'FeatureAPI' interface.
+     */
+    public static OrderedServiceImpl<PolicySessionFeatureAPI> impl =
+            new OrderedServiceImpl<>(PolicySessionFeatureAPI.class);
 
-  /**
-   * This method is called during initialization at a point right after
-   * 'PolicyContainer' initialization has completed.
-   *
-   * @param args standard 'main' arguments, which are currently ignored
-   * @param configDir the relative directory containing configuration files
-   */
-  public default void globalInit(String[] args, String configDir) {}
+    /**
+     * This method is called during initialization at a point right after
+     * 'PolicyContainer' initialization has completed.
+     *
+     * @param args standard 'main' arguments, which are currently ignored
+     * @param configDir the relative directory containing configuration files
+     */
+    public default void globalInit(String[] args, String configDir) {}
 
-  /**
-   * This method is used to create a 'KieSession' as part of a
-   * 'PolicyContainer'. The caller of this method will iterate over the
-   * implementers of this interface until one returns a non-null value.
-   *
-   * @param policyContainer the 'PolicyContainer' instance containing this
-   *	session
-   * @param name the name of the KieSession (which is also the name of
-   *	the associated PolicySession)
-   * @param kieBaseName the name of the 'KieBase' instance containing
-   *	this session
-   * @return a new KieSession, if one was created, or 'null' if not
-   *	(this depends on the capabilities and state of the object implementing
-   *	this interface)
-   */
-  public default KieSession activatePolicySession
-	(PolicyContainer policyContainer, String name, String kieBaseName)
-  {
-	return null;
-  }
+    /**
+     * This method is used to create a 'KieSession' as part of a
+     * 'PolicyContainer'. The caller of this method will iterate over the
+     * implementers of this interface until one returns a non-null value.
+     *
+     * @param policyContainer the 'PolicyContainer' instance containing this
+     *     session
+     * @param name the name of the KieSession (which is also the name of
+     *     the associated PolicySession)
+     * @param kieBaseName the name of the 'KieBase' instance containing
+     *     this session
+     * @return a new KieSession, if one was created, or 'null' if not
+     *     (this depends on the capabilities and state of the object implementing
+     *     this interface)
+     */
+    public default KieSession activatePolicySession(PolicyContainer policyContainer, String name, String kieBaseName) {
+        return null;
+    }
 
-  /**
-   * This method is called after a new 'PolicySession' has been initialized,
-   * and linked to the 'PolicyContainer'.
-   *
-   * @param policySession the new 'PolicySession' instance
-   */
-  public default void newPolicySession(PolicySession policySession) {}
+    /**
+     * This method is called after a new 'PolicySession' has been initialized,
+     * and linked to the 'PolicyContainer'.
+     *
+     * @param policySession the new 'PolicySession' instance
+     */
+    public default void newPolicySession(PolicySession policySession) {}
 
-  /**
-   * This method is called to select the 'ThreadModel' instance associated
-   * with a 'PolicySession' instance.
-   */
-  public default PolicySession.ThreadModel selectThreadModel
-	(PolicySession session)
-  {
-	return null;
-  }
+    /**
+     * This method is called to select the 'ThreadModel' instance associated
+     * with a 'PolicySession' instance.
+     */
+    public default PolicySession.ThreadModel selectThreadModel(PolicySession session) {
+        return null;
+    }
 
-  /**
-   * This method is called after 'KieSession.dispose()' is called
-   *
-   * @param policySession the 'PolicySession' object that wrapped the
-   *	'KieSession'
-   */
-  public default void disposeKieSession(PolicySession policySession) {}
+    /**
+     * This method is called after 'KieSession.dispose()' is called.
+     *
+     * @param policySession the 'PolicySession' object that wrapped the
+     *     'KieSession'
+     */
+    public default void disposeKieSession(PolicySession policySession) {}
 
-  /**
-   * This method is called after 'KieSession.destroy()' is called
-   *
-   * @param policySession the 'PolicySession' object that wrapped the
-   *	'KieSession'
-   */
-  public default void destroyKieSession(PolicySession policySession) {}
+    /**
+     * This method is called after 'KieSession.destroy()' is called.
+     *
+     * @param policySession the 'PolicySession' object that wrapped the
+     *     'KieSession'
+     */
+    public default void destroyKieSession(PolicySession policySession) {}
 }
diff --git a/policy-core/src/main/java/org/onap/policy/drools/core/jmx/PdpJmx.java b/policy-core/src/main/java/org/onap/policy/drools/core/jmx/PdpJmx.java
index 19f6afb..e1a8975 100644
--- a/policy-core/src/main/java/org/onap/policy/drools/core/jmx/PdpJmx.java
+++ b/policy-core/src/main/java/org/onap/policy/drools/core/jmx/PdpJmx.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * policy-core
  * ================================================================================
- * 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.
@@ -24,29 +24,29 @@
 
 public class PdpJmx implements PdpJmxMBean  {
 
-	private static PdpJmx instance = new PdpJmx();
-	private final AtomicLong updates = new AtomicLong();
-	private final AtomicLong actions = new AtomicLong();
+    private static PdpJmx instance = new PdpJmx();
+    private final AtomicLong updates = new AtomicLong();
+    private final AtomicLong actions = new AtomicLong();
 
-	public static PdpJmx getInstance() {
-		return instance;
-	}
+    public static PdpJmx getInstance() {
+        return instance;
+    }
 
-	@Override	
-	public long getUpdates(){
-		return updates.longValue();
-	}
+    @Override
+    public long getUpdates() {
+        return updates.longValue();
+    }
 
-	@Override
-	public long getRulesFired(){
-		return actions.longValue();
-	}
+    @Override
+    public long getRulesFired() {
+        return actions.longValue();
+    }
 
-	public void updateOccured(){
-		updates.incrementAndGet();
-	}
+    public void updateOccured() {
+        updates.incrementAndGet();
+    }
 
-	public void ruleFired(){
-		actions.incrementAndGet();
-	}
+    public void ruleFired() {
+        actions.incrementAndGet();
+    }
 }
diff --git a/policy-core/src/main/java/org/onap/policy/drools/core/jmx/PdpJmxListener.java b/policy-core/src/main/java/org/onap/policy/drools/core/jmx/PdpJmxListener.java
index 9136def..04f0dfd 100644
--- a/policy-core/src/main/java/org/onap/policy/drools/core/jmx/PdpJmxListener.java
+++ b/policy-core/src/main/java/org/onap/policy/drools/core/jmx/PdpJmxListener.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * policy-core
  * ================================================================================
- * 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.
@@ -35,36 +35,41 @@
 
 public class PdpJmxListener {
 
-	public static final Logger logger = LoggerFactory.getLogger(PdpJmxListener.class);
+    public static final Logger logger = LoggerFactory.getLogger(PdpJmxListener.class);
 
-	private PdpJmxListener() {
-	}
+    private PdpJmxListener() {
+    }
 
-	public static void stop() {
-		final MBeanServer server = ManagementFactory.getPlatformMBeanServer();
-		try {
-			server.unregisterMBean(new ObjectName("PolicyEngine:type=PdpJmx"));
-		} catch (MBeanRegistrationException | InstanceNotFoundException
-				| MalformedObjectNameException e) {
-			logger.error("PdpJmxListener.stop(): " + 
-				         "Could not unregister PolicyEngine:type=PdpJmx MBean " +
-					     "with the MBean server", e);
-		}
-		
-	}
+    /**
+     * Stop the listener.
+     */
+    public static void stop() {
+        final MBeanServer server = ManagementFactory.getPlatformMBeanServer();
+        try {
+            server.unregisterMBean(new ObjectName("PolicyEngine:type=PdpJmx"));
+        } catch (MBeanRegistrationException | InstanceNotFoundException
+                | MalformedObjectNameException e) {
+            logger.error("PdpJmxListener.stop(): " 
+                    + "Could not unregister PolicyEngine:type=PdpJmx MBean "
+                    + "with the MBean server", e);
+        }
 
-	
-	public static void start() {
-		final MBeanServer server = ManagementFactory.getPlatformMBeanServer();
-		try {
-			server.registerMBean(PdpJmx.getInstance(), new ObjectName("PolicyEngine:type=PdpJmx"));
-		} catch (InstanceAlreadyExistsException | MBeanRegistrationException
-				| NotCompliantMBeanException | MalformedObjectNameException e) {
-			logger.error("PdpJmxListener.start(): " + 
-			             "Could not unregister PolicyEngine:type=PdpJmx MBean " +
-				         "with the MBean server", e);
-		}
-		
-	}
+    }
+
+    /**
+     *  Start.
+     */
+    public static void start() {
+        final MBeanServer server = ManagementFactory.getPlatformMBeanServer();
+        try {
+            server.registerMBean(PdpJmx.getInstance(), new ObjectName("PolicyEngine:type=PdpJmx"));
+        } catch (InstanceAlreadyExistsException | MBeanRegistrationException
+                | NotCompliantMBeanException | MalformedObjectNameException e) {
+            logger.error("PdpJmxListener.start(): "
+                    + "Could not unregister PolicyEngine:type=PdpJmx MBean "
+                    + "with the MBean server", e);
+        }
+
+    }
 
 }
diff --git a/policy-core/src/main/java/org/onap/policy/drools/core/jmx/PdpJmxMBean.java b/policy-core/src/main/java/org/onap/policy/drools/core/jmx/PdpJmxMBean.java
index 37a9e4d..d2c05f8 100644
--- a/policy-core/src/main/java/org/onap/policy/drools/core/jmx/PdpJmxMBean.java
+++ b/policy-core/src/main/java/org/onap/policy/drools/core/jmx/PdpJmxMBean.java
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * policy-core
  * ================================================================================
- * 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.
@@ -22,6 +22,7 @@
 
 public interface PdpJmxMBean {
 
-	public long getRulesFired();
-	public long getUpdates();
+    public long getRulesFired();
+    
+    public long getUpdates();
 }
diff --git a/policy-core/src/main/java/org/onap/policy/drools/core/lock/Lock.java b/policy-core/src/main/java/org/onap/policy/drools/core/lock/Lock.java
index d376491..de62b24 100644
--- a/policy-core/src/main/java/org/onap/policy/drools/core/lock/Lock.java
+++ b/policy-core/src/main/java/org/onap/policy/drools/core/lock/Lock.java
@@ -59,7 +59,7 @@
          * The requester was not the owner, nor was it waiting in the queue.
          */
         NOT_FOUND
-    };
+    }
 
     /**
      * The last owner to grab the lock, never {@code null}.
@@ -75,6 +75,7 @@
     private LinkedHashMap<String, T> requester2item = new LinkedHashMap<>(5);
 
     /**
+     * Constructor.
      * 
      * @param owner the current owner of this lock
      */
@@ -83,6 +84,7 @@
     }
 
     /**
+     * Get owner.
      * 
      * @return the current owner of the lock, or the last owner of the lock, if the lock
      *         is not currently owned. (This will never be {@code null}.)
@@ -94,7 +96,7 @@
     /**
      * Adds a new requester to the queue of requesters.
      * 
-     * @param requester
+     * @param requester the requester
      * @param item to be associated with the requester, must not be {@code null}
      * @return {@code true} if the requester was added, {@code false} if it already owns
      *         the lock or is already in the queue
@@ -123,7 +125,7 @@
      * item associated with the requester, it is unable to notify the new owner that it's
      * the new owner; that is left up to the code that invokes this method.
      * 
-     * @param requester
+     * @param requester the requester
      * @param newOwner the new owner info is placed here, if the result is <i>RELOCKED</i>
      * @return the result
      */
diff --git a/policy-core/src/main/java/org/onap/policy/drools/core/lock/PolicyResourceLockFeatureAPI.java b/policy-core/src/main/java/org/onap/policy/drools/core/lock/PolicyResourceLockFeatureAPI.java
index 5aee490..105d6ec 100644
--- a/policy-core/src/main/java/org/onap/policy/drools/core/lock/PolicyResourceLockFeatureAPI.java
+++ b/policy-core/src/main/java/org/onap/policy/drools/core/lock/PolicyResourceLockFeatureAPI.java
@@ -26,12 +26,12 @@
 /**
  * Resource locks. Each lock has an "owner", which is intended to be unique across a
  * single instance of a running PolicyEngine.
- * <p>
- * This interface provides a way to invoke optional features at various points in the
+ * 
+ * <p>This interface provides a way to invoke optional features at various points in the
  * code. At appropriate points in the application, the code iterates through this list,
  * invoking these optional methods.
- * <p>
- * Implementers may choose to implement a level of locking appropriate to the application.
+ * 
+ * <p>Implementers may choose to implement a level of locking appropriate to the application.
  * For instance, they may choose to implement an engine-wide locking scheme, or they may
  * choose to implement a global locking scheme (e.g., through a shared DB).
  */
@@ -45,7 +45,6 @@
                     new OrderedServiceImpl<>(PolicyResourceLockFeatureAPI.class);
 
     /**
-         * 
      * Result of a requested operation.
      */
     public enum OperResult {
@@ -65,7 +64,7 @@
 
         /**
          * The implementer did not handle the request; additional locking logic <i>should
-         * be<i> performed.
+         * be</i> performed.
          */
         OPER_UNHANDLED
     }
@@ -73,8 +72,8 @@
     /**
      * This method is called before a lock is acquired on a resource.
      * 
-     * @param resourceId
-     * @param owner
+     * @param resourceId resource id
+     * @param owner owner
      * @param holdSec the amount of time, in seconds, that the lock should be held
      * @return the result, where <b>OPER_DENIED</b> indicates that the lock is currently
      *         held by another owner
@@ -86,8 +85,8 @@
     /**
      * This method is called after a lock for a resource has been acquired or denied.
      * 
-     * @param resourceId
-     * @param owner
+     * @param resourceId resource id
+     * @param owner owner
      * @param locked {@code true} if the lock was acquired, {@code false} if it was denied
      * @return {@code true} if the implementer handled the request, {@code false}
      *         otherwise
@@ -100,8 +99,8 @@
      * This method is called before a lock is refreshed on a resource. It may be invoked
      * repeatedly to extend the time that a lock is held.
      * 
-     * @param resourceId
-     * @param owner
+     * @param resourceId resource id
+     * @param owner owner
      * @param holdSec the amount of time, in seconds, that the lock should be held
      * @return the result, where <b>OPER_DENIED</b> indicates that the resource is not
      *         currently locked by the given owner
@@ -114,8 +113,8 @@
      * This method is called after a lock for a resource has been refreshed (or after the
      * refresh has been denied).
      * 
-     * @param resourceId
-     * @param owner
+     * @param resourceId resource id
+     * @param owner owner
      * @param locked {@code true} if the lock was acquired, {@code false} if it was denied
      * @return {@code true} if the implementer handled the request, {@code false}
      *         otherwise
@@ -127,8 +126,8 @@
     /**
      * This method is called before a lock on a resource is released.
      * 
-     * @param resourceId
-     * @param owner
+     * @param resourceId resource id
+     * @param owner owner
      * @return the result, where <b>OPER_DENIED</b> indicates that the lock is not
      *         currently held by the given owner
      */
@@ -139,8 +138,8 @@
     /**
      * This method is called after a lock on a resource is released.
      * 
-     * @param resourceId
-     * @param owner
+     * @param resourceId resource id
+     * @param owner owner
      * @param unlocked {@code true} if the lock was released, {@code false} if the owner
      *        did not have a lock on the resource
      * @return {@code true} if the implementer handled the request, {@code false}
@@ -153,7 +152,7 @@
     /**
      * This method is called before a check is made to determine if a resource is locked.
      * 
-     * @param resourceId
+     * @param resourceId resource id
      * @return the result, where <b>OPER_ACCEPTED</b> indicates that the resource is
      *         locked, while <b>OPER_DENIED</b> indicates that it is not
      */
@@ -165,8 +164,8 @@
      * This method is called before a check is made to determine if a particular owner
      * holds the lock on a resource.
      * 
-     * @param resourceId
-     * @param owner
+     * @param resourceId resource id
+     * @param owner owner
      * @return the result, where <b>OPER_ACCEPTED</b> indicates that the resource is
      *         locked by the given owner, while <b>OPER_DENIED</b> indicates that it is
      *         not
diff --git a/policy-core/src/main/java/org/onap/policy/drools/core/lock/PolicyResourceLockManager.java b/policy-core/src/main/java/org/onap/policy/drools/core/lock/PolicyResourceLockManager.java
index 8e13ced..3612b29 100644
--- a/policy-core/src/main/java/org/onap/policy/drools/core/lock/PolicyResourceLockManager.java
+++ b/policy-core/src/main/java/org/onap/policy/drools/core/lock/PolicyResourceLockManager.java
@@ -47,6 +47,7 @@
     }
 
     /**
+     * Get instance.
      * 
      * @return the manager singleton
      */
@@ -61,7 +62,7 @@
     /**
      * Sets the factory to be used by junit tests.
      * 
-     * @param factory
+     * @param factory the factory
      */
     protected static void setFactory(Factory factory) {
         PolicyResourceLockManager.factory = factory;
@@ -134,6 +135,7 @@
     }
 
     /**
+     * Is locked.
      * 
      * @throws IllegalArgumentException if the resourceId is {@code null}
      */
@@ -146,13 +148,14 @@
 
         return doBoolIntercept(impl -> impl.beforeIsLocked(resourceId), () -> 
 
-            // implementer didn't do the work - defer to the superclass
+           // implementer didn't do the work - defer to the superclass
            super.isLocked(resourceId)
         );
     }
 
     /**
-     * 
+     *  Is locked by.
+     *  
      * @throws IllegalArgumentException if the resourceId or owner is {@code null}
      */
     @Override
@@ -177,8 +180,8 @@
      * of them returns a result other than <b>OPER_UNHANDLED</b>. If they all return
      * <b>OPER_UNHANDLED</b>, then it returns the result of applying the default function.
      * 
-     * @param interceptFunc
-     * @param defaultFunc
+     * @param interceptFunc intercept function
+     * @param defaultFunc default function
      * @return {@code true} if success, {@code false} otherwise
      */
     private boolean doBoolIntercept(Function<PolicyResourceLockFeatureAPI, OperResult> interceptFunc,
@@ -199,8 +202,8 @@
      * @param continueValue if the implementer returns this value, then it continues to
      *        check addition implementers
      * @param func function to be applied to the implementers
-     * @return first non-null value returned by an implementer, <i>continueValue<i/> if
-     *         they all returned <i>continueValue<i/>
+     * @return first non-null value returned by an implementer, <i>continueValue</i> if
+     *       they all returned <i>continueValue</i>
      */
     private static <T> T doIntercept(T continueValue, Function<PolicyResourceLockFeatureAPI, T> func) {
 
@@ -241,6 +244,7 @@
     public static class Factory {
 
         /**
+         * Get implementers.
          * 
          * @return the list of feature implementers
          */
diff --git a/policy-core/src/main/java/org/onap/policy/drools/core/lock/SimpleLockManager.java b/policy-core/src/main/java/org/onap/policy/drools/core/lock/SimpleLockManager.java
index 243ba3c..427fbbc 100644
--- a/policy-core/src/main/java/org/onap/policy/drools/core/lock/SimpleLockManager.java
+++ b/policy-core/src/main/java/org/onap/policy/drools/core/lock/SimpleLockManager.java
@@ -67,7 +67,7 @@
     private final SortedSet<Data> locks = new TreeSet<>();
 
     /**
-     * 
+     * Constructor.
      */
     public SimpleLockManager() {
         super();
@@ -78,8 +78,8 @@
      * it's the same owner; the same owner can use {@link #refresh(String, String, int)
      * refresh()}, instead, to extend a lock on a resource.
      * 
-     * @param resourceId
-     * @param owner
+     * @param resourceId resource id
+     * @param owner owner
      * @param holdSec the amount of time, in seconds, that the lock should be held
      * @return {@code true} if locked, {@code false} if the resource is already locked by
      *         a different owner
@@ -97,10 +97,10 @@
 
         boolean locked = false;
         
-        synchronized(locker) {
+        synchronized (locker) {
             cleanUpLocks();
 
-            if(!resource2data.containsKey(resourceId)) {
+            if (!resource2data.containsKey(resourceId)) {
                 Data data = new Data(owner, resourceId, currentTime.getMillis() + TimeUnit.SECONDS.toMillis(holdSec));
                 resource2data.put(resourceId, data);
                 locks.add(data);
@@ -116,8 +116,8 @@
     /**
      * Attempts to refresh a lock on a resource.
      * 
-     * @param resourceId
-     * @param owner
+     * @param resourceId resource id
+     * @param owner owner
      * @param holdSec the amount of time, in seconds, that the lock should be held
      * @return {@code true} if locked, {@code false} if the resource is not currently
      *         locked by the given owner
@@ -135,7 +135,7 @@
 
         boolean refreshed = false;
         
-        synchronized(locker) {
+        synchronized (locker) {
             cleanUpLocks();
 
             Data existingLock = resource2data.get(resourceId);
@@ -159,8 +159,8 @@
     /**
      * Unlocks a resource.
      * 
-     * @param resourceId
-     * @param owner
+     * @param resourceId resource id
+     * @param owner owner
      * @return {@code true} if unlocked, {@code false} if the given owner does not
      *         currently hold a lock on the resource
      * @throws IllegalArgumentException if the resourceId or owner is {@code null}
@@ -176,11 +176,11 @@
         
         Data data;
         
-        synchronized(locker) {
+        synchronized (locker) {
             cleanUpLocks();
             
-            if((data = resource2data.get(resourceId)) != null) {
-                if(owner.equals(data.getOwner())) {
+            if ((data = resource2data.get(resourceId)) != null) {
+                if (owner.equals(data.getOwner())) {
                     resource2data.remove(resourceId);
                     locks.remove(data);
                     
@@ -199,7 +199,7 @@
     /**
      * Determines if a resource is locked by anyone.
      * 
-     * @param resourceId
+     * @param resourceId resource id
      * @return {@code true} if the resource is locked, {@code false} otherwise
      * @throws IllegalArgumentException if the resourceId is {@code null}
      */
@@ -211,7 +211,7 @@
 
         boolean locked;
         
-        synchronized(locker) {
+        synchronized (locker) {
             cleanUpLocks();
             
             locked = resource2data.containsKey(resourceId);
@@ -225,8 +225,8 @@
     /**
      * Determines if a resource is locked by a particular owner.
      * 
-     * @param resourceId
-     * @param owner
+     * @param resourceId resource id
+     * @param owner owner
      * @return {@code true} if the resource is locked, {@code false} otherwise
      * @throws IllegalArgumentException if the resourceId or owner is {@code null}
      */
@@ -242,7 +242,7 @@
 
         Data data;
         
-        synchronized(locker) {
+        synchronized (locker) {
             cleanUpLocks();
             
             data = resource2data.get(resourceId);
@@ -260,14 +260,13 @@
     private void cleanUpLocks() {
         long tcur = currentTime.getMillis();
         
-        synchronized(locker) {
+        synchronized (locker) {
             Iterator<Data> it = locks.iterator();
-            while(it.hasNext()) {
-                Data d = it.next();
-                if(d.getExpirationMs() <= tcur) {
+            while (it.hasNext()) {
+                Data data = it.next();
+                if (data.getExpirationMs() <= tcur) {
                     it.remove();
-                    resource2data.remove(d.getResource());
-                    
+                    resource2data.remove(data.getResource());
                 } else {
                     break;
                 }
@@ -307,10 +306,11 @@
         private final long texpireMs;
         
         /**
+         * Constructor.
          * 
-         * @param resource
-         * @param owner
-         * @param texpireMs
+         * @param resource resource
+         * @param owner owner
+         * @param texpireMs time expire in milliseconds
          */
         public Data(String owner, String resource, long texpireMs) {
             this.owner = owner;
@@ -331,12 +331,14 @@
         }
 
         @Override
-        public int compareTo(Data o) {
-            int diff = Long.compare(texpireMs, o.texpireMs);
-            if(diff == 0)
-                diff = resource.compareTo(o.resource);
-            if(diff == 0)
-                diff = owner.compareTo(o.owner);
+        public int compareTo(Data data) {
+            int diff = Long.compare(texpireMs, data.texpireMs);
+            if (diff == 0) {
+                diff = resource.compareTo(data.resource);
+            }
+            if (diff == 0) {
+                diff = owner.compareTo(data.owner);
+            }
             return diff;
         }
 
@@ -352,23 +354,30 @@
 
         @Override
         public boolean equals(Object obj) {
-            if (this == obj)
+            if (this == obj) {
                 return true;
-            if (obj == null)
+            }
+            if (obj == null) {
                 return false;
-            if (getClass() != obj.getClass())
+            }
+            if (getClass() != obj.getClass()) {
                 return false;
+            }
             Data other = (Data) obj;
             if (owner == null) {
-                if (other.owner != null)
+                if (other.owner != null) {
                     return false;
-            } else if (!owner.equals(other.owner))
+                }
+            } else if (!owner.equals(other.owner)) {
                 return false;
+            }
             if (resource == null) {
-                if (other.resource != null)
+                if (other.resource != null) {
                     return false;
-            } else if (!resource.equals(other.resource))
+                }
+            } else if (!resource.equals(other.resource)) {
                 return false;
+            }
             return (texpireMs == other.texpireMs);
         }
     }
diff --git a/policy-core/src/main/java/org/onap/policy/drools/util/FeatureEnabledChecker.java b/policy-core/src/main/java/org/onap/policy/drools/util/FeatureEnabledChecker.java
index e604c30..3bbfdcf 100644
--- a/policy-core/src/main/java/org/onap/policy/drools/util/FeatureEnabledChecker.java
+++ b/policy-core/src/main/java/org/onap/policy/drools/util/FeatureEnabledChecker.java
@@ -28,7 +28,7 @@
 public class FeatureEnabledChecker {
 
     /**
-     * 
+     * Constructor.
      */
     private FeatureEnabledChecker() {
         super();
diff --git a/policy-core/src/main/java/org/onap/policy/drools/util/KieUtils.java b/policy-core/src/main/java/org/onap/policy/drools/util/KieUtils.java
index 16e166d..a3efe43 100644
--- a/policy-core/src/main/java/org/onap/policy/drools/util/KieUtils.java
+++ b/policy-core/src/main/java/org/onap/policy/drools/util/KieUtils.java
@@ -37,16 +37,16 @@
 import org.kie.scanner.MavenRepository;
 
 /**
- * Kie related utilities
+ * Kie related utilities.
  */
 public class KieUtils {
 
-	private KieUtils() {
-		throw new IllegalStateException("Utility class");
-	}
-	
+    private KieUtils() {
+        throw new IllegalStateException("Utility class");
+    }
+
     /**
-     * Installs a rules artifact in the local maven repository
+     * Installs a rules artifact in the local maven repository.
      *
      * @param kmodule kmodule specification
      * @param pom pom
@@ -56,7 +56,8 @@
      * @return releaseId result o a sucessful installation
      * @throws IOException error accessing necessary resources
      */
-    public static ReleaseId installArtifact(String kmodule, String pom, String drlKJarPath, String drl) throws IOException {
+    public static ReleaseId installArtifact(String kmodule, String pom, String drlKJarPath, 
+            String drl) throws IOException {
         KieModuleModel kieModule = KieModuleModelImpl.fromXML(kmodule);
 
         final KieFileSystem kieFileSystem = KieServices.Factory.get().newKieFileSystem();
@@ -72,15 +73,15 @@
         pomFile.deleteOnExit();
 
         ReleaseId releaseId = kieBuilder.getKieModule().getReleaseId();
-        MavenRepository.getMavenRepository().
-            installArtifact(releaseId,
+        MavenRepository.getMavenRepository()
+            .installArtifact(releaseId,
                             (InternalKieModule) kieBuilder.getKieModule(),
                             pomFile);
         return releaseId;
     }
 
     /**
-     * Installs a rules artifact in the local maven repository
+     * Installs a rules artifact in the local maven repository.
      *
      * @param kmodule kmodule specification
      * @param pom pom
@@ -101,16 +102,17 @@
         KieBuilder kieBuilder = kieBuild(kieFileSystem);
 
         ReleaseId releaseId = kieBuilder.getKieModule().getReleaseId();
-        MavenRepository.getMavenRepository().
-            installArtifact(releaseId, (InternalKieModule) kieBuilder.getKieModule(), pom);
+        MavenRepository.getMavenRepository()
+            .installArtifact(releaseId, (InternalKieModule) kieBuilder.getKieModule(), pom);
         return releaseId;
     }
 
     private static KieBuilder kieBuild(KieFileSystem kieFileSystem) {
         KieBuilder kieBuilder = KieServices.Factory.get().newKieBuilder(kieFileSystem);
         List<Message> messages = kieBuilder.buildAll().getResults().getMessages();
-        if (messages != null && !messages.isEmpty())
+        if (messages != null && !messages.isEmpty()) {
             throw new IllegalArgumentException(messages.toString());
+        }
         return kieBuilder;
     }
 }
diff --git a/policy-core/src/test/java/org/onap/policy/drools/core/DroolsContainerTest.java b/policy-core/src/test/java/org/onap/policy/drools/core/DroolsContainerTest.java
index 1da6e01..d2d0dec 100644
--- a/policy-core/src/test/java/org/onap/policy/drools/core/DroolsContainerTest.java
+++ b/policy-core/src/test/java/org/onap/policy/drools/core/DroolsContainerTest.java
@@ -26,330 +26,302 @@
 import static org.junit.Assert.assertTrue;
 
 import java.nio.file.Paths;
-import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Collection;
 import org.junit.BeforeClass;
 import org.junit.Test;
 import org.onap.policy.drools.util.KieUtils;
 
 /**
- * These tests focus on the following classes:
- *		PolicyContainer
- *		PolicySession
- *		PolicySessionFeatureAPI
+ * These tests focus on the following classes.
+ *     PolicyContainer
+ *     PolicySession
+ *     PolicySessionFeatureAPI
  */
-public class DroolsContainerTest
-{
-	/**
-	 * This test is centered around the creation of a 'PolicyContainer'
-	 * and 'PolicySession', and the updating of that container to a new
-	 * version.
-	 */
-   @BeforeClass
-	public static void setUp() throws Exception
-   {
-	 KieUtils.installArtifact
-		  (Paths.get("src/test/resources/drools-artifact-1.1/src/main/resources/META-INF/kmodule.xml").toFile(),
-	       Paths.get("src/test/resources/drools-artifact-1.1/pom.xml").toFile(),
-		   "src/main/resources/rules/org/onap/policy/drools/core/test/rules.drl",
-		   Paths.get("src/test/resources/drools-artifact-1.1/src/main/resources/rules.drl").toFile());
+public class DroolsContainerTest {
+    /**
+     * This test is centered around the creation of a 'PolicyContainer'
+     * and 'PolicySession', and the updating of that container to a new
+     * version.
+     */
+    @BeforeClass
+    public static void setUp() throws Exception {
+        KieUtils.installArtifact(
+                Paths.get("src/test/resources/drools-artifact-1.1/src/main/resources/META-INF/kmodule.xml").toFile(),
+                Paths.get("src/test/resources/drools-artifact-1.1/pom.xml").toFile(),
+                "src/main/resources/rules/org/onap/policy/drools/core/test/rules.drl",
+                Paths.get("src/test/resources/drools-artifact-1.1/src/main/resources/rules.drl").toFile());
 
-	 KieUtils.installArtifact
-		   (Paths.get("src/test/resources/drools-artifact-1.2/src/main/resources/META-INF/kmodule.xml").toFile(),
-			Paths.get("src/test/resources/drools-artifact-1.2/pom.xml").toFile(),
-			"src/main/resources/rules/org/onap/policy/drools/core/test/rules.drl",
-			Paths.get("src/test/resources/drools-artifact-1.2/src/main/resources/rules.drl").toFile());
-   }
+        KieUtils.installArtifact(
+                Paths.get("src/test/resources/drools-artifact-1.2/src/main/resources/META-INF/kmodule.xml").toFile(),
+                Paths.get("src/test/resources/drools-artifact-1.2/pom.xml").toFile(),
+                "src/main/resources/rules/org/onap/policy/drools/core/test/rules.drl",
+                Paths.get("src/test/resources/drools-artifact-1.2/src/main/resources/rules.drl").toFile());
+    }
 
-  /**
-   * This test is centered around the creation of a 'PolicyContainer'
-   * and 'PolicySession', and the updating of that container to a new
-   * version.
-   */
-  @Test
-	public void createAndUpdate() throws Exception
-  {
-	// make sure feature log starts out clean
-	TestPolicySessionFeatureAPI.getLog();
+    /**
+     * This test is centered around the creation of a 'PolicyContainer'
+     * and 'PolicySession', and the updating of that container to a new
+     * version.
+     */
+    @Test
+    public void createAndUpdate() throws Exception {
+        // make sure feature log starts out clean
+        PolicySessionFeatureApiTest.getLog();
 
-	// run 'globalInit', and verify expected feature hook fired
-	PolicyContainer.globalInit(new String[0]);
-	assertEquals(buildArrayList("globalInit"),
-				 TestPolicySessionFeatureAPI.getLog());
+        // run 'globalInit', and verify expected feature hook fired
+        PolicyContainer.globalInit(new String[0]);
+        assertEquals(Arrays.asList("globalInit"),
+                PolicySessionFeatureApiTest.getLog());
 
-	// initial conditions -- there should be no containers
-	assertEquals(0, PolicyContainer.getPolicyContainers().size());
+        // initial conditions -- there should be no containers
+        assertEquals(0, PolicyContainer.getPolicyContainers().size());
 
-	// create the container, and start it
-	PolicyContainer container =
-	  new PolicyContainer("org.onap.policy.drools-pdp",
-						  "drools-artifact1", "17.1.0-SNAPSHOT");
-	container.start();
-	assertTrue(container.isAlive());
+        // create the container, and start it
+        PolicyContainer container =
+                new PolicyContainer("org.onap.policy.drools-pdp",
+                        "drools-artifact1", "17.1.0-SNAPSHOT");
+        container.start();
+        assertTrue(container.isAlive());
 
-	// verify expected feature hooks fired
-	assertEquals(buildArrayList("activatePolicySession",
-								"newPolicySession",
-								"selectThreadModel"),
-				 TestPolicySessionFeatureAPI.getLog());
+        // verify expected feature hooks fired
+        assertEquals(Arrays.asList("activatePolicySession",
+                "newPolicySession",
+                "selectThreadModel"),
+                PolicySessionFeatureApiTest.getLog());
 
-	// this container should be on the list
-	{
-	  Collection<PolicyContainer> containers =
-		PolicyContainer.getPolicyContainers();
-	  assertEquals(1, containers.size());
-	  assertTrue(containers.contains(container));
-	}
+        // this container should be on the list
+        {
+            Collection<PolicyContainer> containers =
+                    PolicyContainer.getPolicyContainers();
+            assertEquals(1, containers.size());
+            assertTrue(containers.contains(container));
+        }
 
-	// verify initial container attributes
-	assertEquals("org.onap.policy.drools-pdp:drools-artifact1:17.1.0-SNAPSHOT",
-				 container.getName());
-	assertEquals("org.onap.policy.drools-pdp", container.getGroupId());
-	assertEquals("drools-artifact1", container.getArtifactId());
-	assertEquals("17.1.0-SNAPSHOT", container.getVersion());
+        // verify initial container attributes
+        assertEquals("org.onap.policy.drools-pdp:drools-artifact1:17.1.0-SNAPSHOT",
+                container.getName());
+        assertEquals("org.onap.policy.drools-pdp", container.getGroupId());
+        assertEquals("drools-artifact1", container.getArtifactId());
+        assertEquals("17.1.0-SNAPSHOT", container.getVersion());
 
-	try
-	  {
-		// fetch the session, and verify that it exists
-		PolicySession session = container.getPolicySession("session1");
-		assertTrue(session != null);
+        try {
+            // fetch the session, and verify that it exists
+            PolicySession session = container.getPolicySession("session1");
+            assertTrue(session != null);
 
-		// get all sessions, and verify that this one is the only one
-		{
-		  Collection<PolicySession> sessions = container.getPolicySessions();
-		  assertEquals(1, sessions.size());
-		  assertTrue(sessions.contains(session));
-		}
+            // get all sessions, and verify that this one is the only one
+            {
+                Collection<PolicySession> sessions = container.getPolicySessions();
+                assertEquals(1, sessions.size());
+                assertTrue(sessions.contains(session));
+            }
 
-		// verify session attributes
-		assertEquals(container, session.getPolicyContainer());
-		assertEquals("session1", session.getName());
-		assertEquals("org.onap.policy.drools-pdp:drools-artifact1:17.1.0-SNAPSHOT:session1",
-					 session.getFullName());
+            // verify session attributes
+            assertEquals(container, session.getPolicyContainer());
+            assertEquals("session1", session.getName());
+            assertEquals("org.onap.policy.drools-pdp:drools-artifact1:17.1.0-SNAPSHOT:session1",
+                    session.getFullName());
 
-		// insert a new fact
-		int[] a = new int[]{0, 3, 8, 2};
-		session.getKieSession().insert(a);
+            // insert a new fact
+            int[] facts = new int[]{0, 3, 8, 2};
+            session.getKieSession().insert(facts);
 
-		// the Drools rules should add 3 + 8 + 2, and store 13 in a[0]
-		assertTrue(waitForChange(a) == 13);
+            // the Drools rules should add 3 + 8 + 2, and store 13 in a[0]
+            assertTrue(waitForChange(facts) == 13);
 
-		// update the container to a new version --
-		// the rules will then multiply values rather than add them
-		assertEquals("[]",
-					 container.updateToVersion("17.2.0-SNAPSHOT").toString());
+            // update the container to a new version --
+            // the rules will then multiply values rather than add them
+            assertEquals("[]",
+                    container.updateToVersion("17.2.0-SNAPSHOT").toString());
 
-		// verify expected feature hooks fired
-		assertEquals(buildArrayList("selectThreadModel"),
-					 TestPolicySessionFeatureAPI.getLog());
+            // verify expected feature hooks fired
+            assertEquals(Arrays.asList("selectThreadModel"),
+                    PolicySessionFeatureApiTest.getLog());
 
-		// verify new container attributes
-		assertEquals
-		  ("org.onap.policy.drools-pdp:drools-artifact1:17.2.0-SNAPSHOT",
-		   container.getName());
-		assertEquals("org.onap.policy.drools-pdp", container.getGroupId());
-		assertEquals("drools-artifact1", container.getArtifactId());
-		assertEquals("17.2.0-SNAPSHOT", container.getVersion());
+            // verify new container attributes
+            assertEquals("org.onap.policy.drools-pdp:drools-artifact1:17.2.0-SNAPSHOT",
+                    container.getName());
+            assertEquals("org.onap.policy.drools-pdp", container.getGroupId());
+            assertEquals("drools-artifact1", container.getArtifactId());
+            assertEquals("17.2.0-SNAPSHOT", container.getVersion());
 
-		// verify new session attributes
-		assertEquals(container, session.getPolicyContainer());
-		assertEquals("session1", session.getName());
-		assertEquals("org.onap.policy.drools-pdp:drools-artifact1:17.2.0-SNAPSHOT:session1",
-					 session.getFullName());
+            // verify new session attributes
+            assertEquals(container, session.getPolicyContainer());
+            assertEquals("session1", session.getName());
+            assertEquals("org.onap.policy.drools-pdp:drools-artifact1:17.2.0-SNAPSHOT:session1",
+                    session.getFullName());
 
-		// the updated rules should now multiply 3 * 8 * 2, and return 48
+            // the updated rules should now multiply 3 * 8 * 2, and return 48
 
-		a[0] = 0;
-		container.insert("session1", a);
-		assertTrue(waitForChange(a) == 48);
-	  }
-	finally
-	  {
-		container.shutdown();
-		assertFalse(container.isAlive());
+            facts[0] = 0;
+            container.insert("session1", facts);
+            assertTrue(waitForChange(facts) == 48);
+        } finally {
+            container.shutdown();
+            assertFalse(container.isAlive());
 
-		// verify expected feature hooks fired
-		assertEquals(buildArrayList("disposeKieSession"),
-					 TestPolicySessionFeatureAPI.getLog());
-	  }
+            // verify expected feature hooks fired
+            assertEquals(Arrays.asList("disposeKieSession"),
+                    PolicySessionFeatureApiTest.getLog());
+        }
 
-	// final conditions -- there should be no containers
-	assertEquals(0, PolicyContainer.getPolicyContainers().size());
-  }
+        // final conditions -- there should be no containers
+        assertEquals(0, PolicyContainer.getPolicyContainers().size());
+    }
 
-  /**
-   * This test create a 'PolicyContainer' and 'PolicySession', and verifies
-   * their behavior, but uses alternate interfaces to increase code coverage.
-   * In addition, feature hook invocations will trigger exceptions in this
-   * test, also to increase code coverage.
-   */
-  @Test
-	public void versionList() throws Exception
-  {
-	// make sure feature log starts out clean
-	TestPolicySessionFeatureAPI.getLog();
+    /**
+     * This test create a 'PolicyContainer' and 'PolicySession', and verifies
+     * their behavior, but uses alternate interfaces to increase code coverage.
+     * In addition, feature hook invocations will trigger exceptions in this
+     * test, also to increase code coverage.
+     */
+    @Test
+    public void versionList() throws Exception {
+        // make sure feature log starts out clean
+        PolicySessionFeatureApiTest.getLog();
 
-	// trigger exceptions in all feature hooks
-	TestPolicySessionFeatureAPI.setExceptionTrigger(true);
+        // trigger exceptions in all feature hooks
+        PolicySessionFeatureApiTest.setExceptionTrigger(true);
 
-	// run 'globalInit', and verify expected feature hook fired
-	PolicyContainer.globalInit(new String[0]);
-	assertEquals(buildArrayList("globalInit-exception"),
-				 TestPolicySessionFeatureAPI.getLog());
+        // run 'globalInit', and verify expected feature hook fired
+        PolicyContainer.globalInit(new String[0]);
+        assertEquals(Arrays.asList("globalInit-exception"),
+                PolicySessionFeatureApiTest.getLog());
 
-	// initial conditions -- there should be no containers
-	assertEquals(0, PolicyContainer.getPolicyContainers().size());
+        // initial conditions -- there should be no containers
+        assertEquals(0, PolicyContainer.getPolicyContainers().size());
 
-	String versionList =
-	  "17.3.0-SNAPSHOT,17.1.0-SNAPSHOT,17.2.0-SNAPSHOT";
+        String versionList =
+                "17.3.0-SNAPSHOT,17.1.0-SNAPSHOT,17.2.0-SNAPSHOT";
 
-	// versions should be tried in order -- the 17.1.0-SNAPSHOT should "win",
-	// given the fact that '17.3.0-SNAPSHOT' doesn't exist
-	PolicyContainer container =
-	  new PolicyContainer("org.onap.policy.drools-pdp",
-						  "drools-artifact1", versionList);
-	// the following should be equivalent to 'container.start()'
-	PolicyContainer.activate();
-	assertTrue(container.isAlive());
+        // versions should be tried in order -- the 17.1.0-SNAPSHOT should "win",
+        // given the fact that '17.3.0-SNAPSHOT' doesn't exist
+        PolicyContainer container =
+                new PolicyContainer("org.onap.policy.drools-pdp",
+                        "drools-artifact1", versionList);
+        // the following should be equivalent to 'container.start()'
+        PolicyContainer.activate();
+        assertTrue(container.isAlive());
 
-	// verify expected feature hooks fired
-	assertEquals(buildArrayList("activatePolicySession-exception",
-								"newPolicySession-exception",
-								"selectThreadModel-exception"),
-				 TestPolicySessionFeatureAPI.getLog());
+        // verify expected feature hooks fired
+        assertEquals(Arrays.asList("activatePolicySession-exception",
+                "newPolicySession-exception",
+                "selectThreadModel-exception"),
+                PolicySessionFeatureApiTest.getLog());
 
-	// this container should be on the list
-	{
-	  Collection<PolicyContainer> containers =
-		PolicyContainer.getPolicyContainers();
-	  assertEquals(1, containers.size());
-	  assertTrue(containers.contains(container));
-	}
+        // this container should be on the list
+        {
+            Collection<PolicyContainer> containers =
+                    PolicyContainer.getPolicyContainers();
+            assertEquals(1, containers.size());
+            assertTrue(containers.contains(container));
+        }
 
-	// verify initial container attributes
-	assertEquals("org.onap.policy.drools-pdp:drools-artifact1:17.1.0-SNAPSHOT",
-				 container.getName());
-	assertEquals("org.onap.policy.drools-pdp", container.getGroupId());
-	assertEquals("drools-artifact1", container.getArtifactId());
-	assertEquals("17.1.0-SNAPSHOT", container.getVersion());
+        // verify initial container attributes
+        assertEquals("org.onap.policy.drools-pdp:drools-artifact1:17.1.0-SNAPSHOT",
+                container.getName());
+        assertEquals("org.onap.policy.drools-pdp", container.getGroupId());
+        assertEquals("drools-artifact1", container.getArtifactId());
+        assertEquals("17.1.0-SNAPSHOT", container.getVersion());
 
-	// some container adjunct tests
-	{
-	  Object bogusAdjunct = new Object();
+        // some container adjunct tests
+        {
+            Object bogusAdjunct = new Object();
 
-	  // initially, no adjunct
-	  assertSame(null, container.getAdjunct(this));
+            // initially, no adjunct
+            assertSame(null, container.getAdjunct(this));
 
-	  // set and verify adjunct
-	  container.setAdjunct(this, bogusAdjunct);
-	  assertSame(bogusAdjunct, container.getAdjunct(this));
+            // set and verify adjunct
+            container.setAdjunct(this, bogusAdjunct);
+            assertSame(bogusAdjunct, container.getAdjunct(this));
 
-	  // clear and verify adjunct
-	  container.setAdjunct(this, null);
-	  assertSame(null, container.getAdjunct(this));
-	}
+            // clear and verify adjunct
+            container.setAdjunct(this, null);
+            assertSame(null, container.getAdjunct(this));
+        }
 
-	try
-	  {
-		// fetch the session, and verify that it exists
-		PolicySession session = container.getPolicySession("session1");
-		assertTrue(session != null);
+        try {
+            // fetch the session, and verify that it exists
+            PolicySession session = container.getPolicySession("session1");
+            assertTrue(session != null);
 
-		// get all sessions, and verify that this one is the only one
-		{
-		  Collection<PolicySession> sessions = container.getPolicySessions();
-		  assertEquals(1, sessions.size());
-		  assertTrue(sessions.contains(session));
-		}
+            // get all sessions, and verify that this one is the only one
+            {
+                Collection<PolicySession> sessions = container.getPolicySessions();
+                assertEquals(1, sessions.size());
+                assertTrue(sessions.contains(session));
+            }
 
-		// verify session attributes
-		assertEquals(container, session.getPolicyContainer());
-		assertEquals("session1", session.getName());
-		assertEquals("org.onap.policy.drools-pdp:drools-artifact1:17.1.0-SNAPSHOT:session1",
-					 session.getFullName());
+            // verify session attributes
+            assertEquals(container, session.getPolicyContainer());
+            assertEquals("session1", session.getName());
+            assertEquals("org.onap.policy.drools-pdp:drools-artifact1:17.1.0-SNAPSHOT:session1",
+                    session.getFullName());
 
-		// some session adjunct tests
-		{
-		  Object bogusAdjunct = new Object();
+            // some session adjunct tests
+            {
+                Object bogusAdjunct = new Object();
 
-		  // initially, no adjunct
-		  assertSame(null, session.getAdjunct(this));
+                // initially, no adjunct
+                assertSame(null, session.getAdjunct(this));
 
-		  // set and verify adjunct
-		  session.setAdjunct(this, bogusAdjunct);
-		  assertSame(bogusAdjunct, session.getAdjunct(this));
+                // set and verify adjunct
+                session.setAdjunct(this, bogusAdjunct);
+                assertSame(bogusAdjunct, session.getAdjunct(this));
 
-		  // clear and verify adjunct
-		  session.setAdjunct(this, null);
-		  assertSame(null, session.getAdjunct(this));
-		}
+                // clear and verify adjunct
+                session.setAdjunct(this, null);
+                assertSame(null, session.getAdjunct(this));
+            }
 
-		// insert a new fact (using 'insertAll')
-		int[] a = new int[]{0, 7, 3, 4};
-		container.insertAll(a);
+            // insert a new fact (using 'insertAll')
+            int[] facts = new int[]{0, 7, 3, 4};
+            container.insertAll(facts);
 
-		// the Drools rules should add 7 + 3 + 4, and store 14 in a[0]
-		assertTrue(waitForChange(a) == 14);
+            // the Drools rules should add 7 + 3 + 4, and store 14 in a[0]
+            assertTrue(waitForChange(facts) == 14);
 
-		// exercise some more API methods
-		assertEquals(container.getClassLoader(),
-					 container.getKieContainer().getClassLoader());
-	  }
-	finally
-	  {
-		// should be equivalent to 'shutdown' without persistence
-		container.destroy();
-		assertFalse(container.isAlive());
+            // exercise some more API methods
+            assertEquals(container.getClassLoader(),
+                    container.getKieContainer().getClassLoader());
+        } finally {
+            // should be equivalent to 'shutdown' without persistence
+            container.destroy();
+            assertFalse(container.isAlive());
 
-		// verify expected feature hooks fired
-		assertEquals(buildArrayList("destroyKieSession-exception"),
-					 TestPolicySessionFeatureAPI.getLog());
+            // verify expected feature hooks fired
+            assertEquals(Arrays.asList("destroyKieSession-exception"),
+                    PolicySessionFeatureApiTest.getLog());
 
-		// clear exception trigger
-		TestPolicySessionFeatureAPI.setExceptionTrigger(false);
-	  }
+            // clear exception trigger
+            PolicySessionFeatureApiTest.setExceptionTrigger(false);
+        }
 
-	// final conditions -- there should be no containers
-	assertEquals(0, PolicyContainer.getPolicyContainers().size());
-  }
+        // final conditions -- there should be no containers
+        assertEquals(0, PolicyContainer.getPolicyContainers().size());
+    }
 
-  /**
-   * This method is tied to the expected behavior of the drools sessions.
-   * Initially, the value of 'array[0]' should be 0. The Drools rules
-   * will either add or multiply 'array[1]' through 'array[n-1]', depending
-   * upon the version. It waits up to 30 seconds for a non-zero value
-   * to appear.
-   */
-  private int waitForChange(int[] array) throws InterruptedException
-  {
-	int rval = -1;
+    /**
+     * This method is tied to the expected behavior of the drools sessions.
+     * Initially, the value of 'array[0]' should be 0. The Drools rules
+     * will either add or multiply 'array[1]' through 'array[n-1]', depending
+     * upon the version. It waits up to 30 seconds for a non-zero value
+     * to appear.
+     */
+    private int waitForChange(int[] array) throws InterruptedException {
+        int rval = -1;
 
-	// the value is tested every 1/100 of a second, and it waits up to
-	// 3000 iterations (= 30 seconds) for a non-zero value
-	for (int i = 0 ; i < 3000 ; i += 1)
-	  {
-		// wait for 10 milliseconds = 1/100 of a second
-		Thread.sleep(10);
-		if ((rval = array[0]) != 0)
-		  {
-			// a non-zero value has been stored
-			break;
-		  }
-	  }
-	return(rval);
-  }
-
-  /**
-   * @param args an array of string arguments
-   * @return an ArrayList constructed from the provided arguments
-   */
-  private ArrayList<String> buildArrayList(String... args)
-  {
-	ArrayList<String> rval = new ArrayList<>();
-	for (String arg : args)
-	  {
-		rval.add(arg);
-	  }
-	return(rval);
-  }
+        // the value is tested every 1/100 of a second, and it waits up to
+        // 3000 iterations (= 30 seconds) for a non-zero value
+        for (int i = 0 ; i < 3000 ; i += 1) {
+            // wait for 10 milliseconds = 1/100 of a second
+            Thread.sleep(10);
+            if ((rval = array[0]) != 0) {
+                // a non-zero value has been stored
+                break;
+            }
+        }
+        return (rval);
+    }
 }
diff --git a/policy-core/src/test/java/org/onap/policy/drools/core/PolicySessionFeatureApiTest.java b/policy-core/src/test/java/org/onap/policy/drools/core/PolicySessionFeatureApiTest.java
new file mode 100644
index 0000000..aef4e26
--- /dev/null
+++ b/policy-core/src/test/java/org/onap/policy/drools/core/PolicySessionFeatureApiTest.java
@@ -0,0 +1,137 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * policy-core
+ * ================================================================================
+ * 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.
+ * 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.core;
+
+import java.util.ArrayList;
+import org.kie.api.runtime.KieSession;
+
+/**
+ * This class supports 'DroolsContainerTest' by implementing
+ * 'PolicySessionFeatureAPI', and providing a means to indicate
+ * which hooks have been invoked.
+ */
+public class PolicySessionFeatureApiTest implements PolicySessionFeatureAPI {
+    // contains the log entries since the most recent 'getLog()' call
+    private static ArrayList<String> log = new ArrayList<>();
+
+    // if 'true', trigger an exception right after doing the log,
+    // to verify that exceptions are handled
+    private static boolean exceptionTrigger = false;
+
+    /**
+     * Get log.
+     * 
+     * @return the current contents of the log, and clear the log
+     */
+    public static ArrayList<String> getLog() {
+        synchronized (log) {
+            ArrayList<String> rval = new ArrayList<>(log);
+            log.clear();
+            return rval;
+        }
+    }
+
+    /**
+     * This method controls whether these hooks trigger an exception after
+     * being invoked.
+     *
+     * @param indicator if 'true', subsequent hook method calls will trigger
+     *     an exception; if 'false', no exception is triggered
+     */
+    public static void setExceptionTrigger(boolean indicator) {
+        exceptionTrigger = indicator;
+    }
+
+    /**
+     * This method adds an entry to the log, and possibly triggers an exception.
+     *
+     * @param arg value to add to the log
+     */
+    private static void addLog(String arg) {
+        if (exceptionTrigger) {
+            // the log entry will include a '-exception' appended to the end
+            synchronized (log) {
+                log.add(arg + "-exception");
+            }
+            System.out.println("*** " + arg + "-exception invoked ***");
+
+            // throw an exception -- it is up to the invoking code to catch it
+            throw(new IllegalStateException("Triggered from " + arg));
+        } else {
+            // create a log entry, and display to standard output
+            synchronized (log) {
+                log.add(arg);
+            }
+            System.out.println("*** " + arg + " invoked ***");
+        }
+    }
+
+    /**
+     * {@inheritDoc}.
+     */
+    public int getSequenceNumber() {
+        return 1;
+    }
+
+    /**
+     * {@inheritDoc}.
+     */
+    public void globalInit(String[] args, String configDir) {
+        addLog("globalInit");
+    }
+
+    /**
+     * {@inheritDoc}.
+     */
+    public KieSession activatePolicySession(PolicyContainer policyContainer, String name, String kieBaseName) {
+        addLog("activatePolicySession");
+        return null;
+    }
+
+    /**
+     * {@inheritDoc}.
+     */
+    public void newPolicySession(PolicySession policySession) {
+        addLog("newPolicySession");
+    }
+
+    /**
+     * {@inheritDoc}.
+     */
+    public PolicySession.ThreadModel selectThreadModel(PolicySession session) {
+        addLog("selectThreadModel");
+        return null;
+    }
+
+    /**
+     * {@inheritDoc}.
+     */
+    public void disposeKieSession(PolicySession policySession) {
+        addLog("disposeKieSession");
+    }
+
+    /**
+     * {@inheritDoc}.
+     */
+    public void destroyKieSession(PolicySession policySession) {
+        addLog("destroyKieSession");
+    }
+}
diff --git a/policy-core/src/test/java/org/onap/policy/drools/core/TestPolicySessionFeatureAPI.java b/policy-core/src/test/java/org/onap/policy/drools/core/TestPolicySessionFeatureAPI.java
deleted file mode 100644
index f456d81..0000000
--- a/policy-core/src/test/java/org/onap/policy/drools/core/TestPolicySessionFeatureAPI.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * policy-core
- * ================================================================================
- * Copyright (C) 2017 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.core;
-
-import java.util.ArrayList;
-import org.kie.api.runtime.KieSession;
-
-/**
- * This class supports 'DroolsContainerTest' by implementing
- * 'PolicySessionFeatureAPI', and providing a means to indicate
- * which hooks have been invoked.
- */
-public class TestPolicySessionFeatureAPI implements PolicySessionFeatureAPI
-{
-  // contains the log entries since the most recent 'getLog()' call
-  static private ArrayList<String> log = new ArrayList<>();
-
-  // if 'true', trigger an exception right after doing the log,
-  // to verify that exceptions are handled
-  static private boolean exceptionTrigger = false;
-
-  /**
-   * @return the current contents of the log, and clear the log
-   */
-  static public ArrayList<String> getLog()
-  {
-	synchronized(log)
-	  {
-		ArrayList<String> rval = new ArrayList<>(log);
-		log.clear();
-		return(rval);
-	  }
-  }
-
-  /**
-   * This method controls whether these hooks trigger an exception after
-   * being invoked.
-   *
-   * @param indicator if 'true', subsequent hook method calls will trigger
-   *	an exception; if 'false', no exception is triggered
-   */
-  static public void setExceptionTrigger(boolean indicator)
-  {
-	exceptionTrigger = indicator;
-  }
-
-  /**
-   * This method adds an entry to the log, and possibly triggers an exception
-   *
-   * @param arg value to add to the log
-   */
-  static private void addLog(String arg)
-  {
-	if (exceptionTrigger)
-	  {
-		// the log entry will include a '-exception' appended to the end
-		synchronized(log)
-		  {
-			log.add(arg + "-exception");
-		  }
-		System.out.println("*** " + arg + "-exception invoked ***");
-
-		// throw an exception -- it is up to the invoking code to catch it
-		throw(new IllegalStateException("Triggered from " + arg));
-	  }
-	else
-	  {
-		// create a log entry, and display to standard output
-		synchronized(log)
-		  {
-			log.add(arg);
-		  }
-		System.out.println("*** " + arg + " invoked ***");
-	  }
-  }
-
-  /***************************************/
-  /* 'PolicySessionFeatureAPI' interface */
-  /***************************************/
-
-  /**
-   * {@inheritDoc}
-   */
-  public int getSequenceNumber()
-  {
-	return(1);
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  public void globalInit(String args[], String configDir)
-  {
-	addLog("globalInit");
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  public KieSession activatePolicySession
-	(PolicyContainer policyContainer, String name, String kieBaseName)
-  {
-	addLog("activatePolicySession");
-	return(null);
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  public void newPolicySession(PolicySession policySession)
-  {
-	addLog("newPolicySession");
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  public PolicySession.ThreadModel selectThreadModel(PolicySession session)
-  {
-	addLog("selectThreadModel");
-	return(null);
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  public void disposeKieSession(PolicySession policySession)
-  {
-	addLog("disposeKieSession");
-  }
-
-  /**
-   * {@inheritDoc}
-   */
-  public void destroyKieSession(PolicySession policySession)
-  {
-	addLog("destroyKieSession");
-  }
-}
diff --git a/policy-core/src/test/java/org/onap/policy/drools/core/lock/LockTest.java b/policy-core/src/test/java/org/onap/policy/drools/core/lock/LockTest.java
index bd11dcf..5a88b02 100644
--- a/policy-core/src/test/java/org/onap/policy/drools/core/lock/LockTest.java
+++ b/policy-core/src/test/java/org/onap/policy/drools/core/lock/LockTest.java
@@ -20,7 +20,10 @@
 
 package org.onap.policy.drools.core.lock;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
 import org.junit.Before;
 import org.junit.Test;
 import org.onap.policy.drools.core.lock.Lock.RemoveResult;
diff --git a/policy-core/src/test/java/org/onap/policy/drools/core/lock/PolicyResourceLockFeatureAPITest.java b/policy-core/src/test/java/org/onap/policy/drools/core/lock/PolicyResourceLockFeatureAPITest.java
index 0d7d943..522a3f5 100644
--- a/policy-core/src/test/java/org/onap/policy/drools/core/lock/PolicyResourceLockFeatureAPITest.java
+++ b/policy-core/src/test/java/org/onap/policy/drools/core/lock/PolicyResourceLockFeatureAPITest.java
@@ -22,6 +22,7 @@
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
+
 import org.junit.Before;
 import org.junit.Test;
 import org.onap.policy.drools.core.lock.PolicyResourceLockFeatureAPI.OperResult;
@@ -33,6 +34,9 @@
 
     private PolicyResourceLockFeatureAPI api;
 
+    /**
+     * set up.
+     */
     @Before
     public void setUp() {
         api = new PolicyResourceLockFeatureAPI() {
diff --git a/policy-core/src/test/java/org/onap/policy/drools/core/lock/PolicyResourceLockManagerTest.java b/policy-core/src/test/java/org/onap/policy/drools/core/lock/PolicyResourceLockManagerTest.java
index 5cbed30..962fb96 100644
--- a/policy-core/src/test/java/org/onap/policy/drools/core/lock/PolicyResourceLockManagerTest.java
+++ b/policy-core/src/test/java/org/onap/policy/drools/core/lock/PolicyResourceLockManagerTest.java
@@ -32,7 +32,8 @@
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
-import static org.onap.policy.drools.core.lock.TestUtils.expectException;
+import static org.onap.policy.drools.core.lock.TestingUtils.expectException;
+
 import java.util.Arrays;
 import java.util.LinkedList;
 import java.util.List;
@@ -79,6 +80,9 @@
         PolicyResourceLockManager.setFactory(saveFactory);
     }
 
+    /**
+     * Set up.
+     */
     @Before
     public void setUp() {
         impl1 = mock(PolicyResourceLockFeatureAPI.class);
@@ -104,7 +108,7 @@
     /**
      * Initializes an implementer so it always returns {@code null}.
      * 
-     * @param impl
+     * @param impl implementer
      */
     private void initImplementer(PolicyResourceLockFeatureAPI impl) {
         when(impl.beforeLock(anyString(), anyString(), anyInt())).thenReturn(OperResult.OPER_UNHANDLED);
diff --git a/policy-core/src/test/java/org/onap/policy/drools/core/lock/SimpleLockManagerTest.java b/policy-core/src/test/java/org/onap/policy/drools/core/lock/SimpleLockManagerTest.java
index feabdbc..6afe5a8 100644
--- a/policy-core/src/test/java/org/onap/policy/drools/core/lock/SimpleLockManagerTest.java
+++ b/policy-core/src/test/java/org/onap/policy/drools/core/lock/SimpleLockManagerTest.java
@@ -24,7 +24,8 @@
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
-import static org.onap.policy.drools.core.lock.TestUtils.expectException;
+import static org.onap.policy.drools.core.lock.TestingUtils.expectException;
+
 import java.util.LinkedList;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
@@ -78,6 +79,9 @@
         Whitebox.setInternalState(SimpleLockManager.class, TIME_FIELD, savedTime);
     }
 
+    /**
+     * Set up.
+     */
     @Before
     public void setUp() {
         testTime = new TestTime();
@@ -112,18 +116,18 @@
         mgr.lock(RESOURCE_A, OWNER1, MAX_AGE_SEC);
         
         // sleep half of the cycle
-        testTime.sleep(MAX_AGE_MS/2);
+        testTime.sleep(MAX_AGE_MS / 2);
         assertTrue(mgr.isLockedBy(RESOURCE_A, OWNER1));
         
         // extend the lock
         mgr.refresh(RESOURCE_A, OWNER1, MAX_AGE_SEC);
         
         // verify still locked after sleeping the other half of the cycle
-        testTime.sleep(MAX_AGE_MS/2+1);
+        testTime.sleep(MAX_AGE_MS / 2 + 1);
         assertTrue(mgr.isLockedBy(RESOURCE_A, OWNER1));
         
         // and should release after another half cycle
-        testTime.sleep(MAX_AGE_MS/2);
+        testTime.sleep(MAX_AGE_MS / 2);
         assertFalse(mgr.isLockedBy(RESOURCE_A, OWNER1));
     }
 
@@ -338,13 +342,13 @@
         assertTrue(mgr.isLocked(RESOURCE_A));
         assertTrue(mgr.isLocked(RESOURCE_B));
         
-        testTime.sleep(MAX_AGE_MS/4);
+        testTime.sleep(MAX_AGE_MS / 4);
         mgr.lock(RESOURCE_C, OWNER1, MAX_AGE_SEC);
         assertTrue(mgr.isLocked(RESOURCE_A));
         assertTrue(mgr.isLocked(RESOURCE_B));
         assertTrue(mgr.isLocked(RESOURCE_C));
         
-        testTime.sleep(MAX_AGE_MS/4);
+        testTime.sleep(MAX_AGE_MS / 4);
         mgr.lock(RESOURCE_D, OWNER1, MAX_AGE_SEC);
         assertTrue(mgr.isLocked(RESOURCE_A));
         assertTrue(mgr.isLocked(RESOURCE_B));
@@ -352,19 +356,19 @@
         assertTrue(mgr.isLocked(RESOURCE_D));
         
         // sleep remainder of max age - first two should expire
-        testTime.sleep(MAX_AGE_MS/2);
+        testTime.sleep(MAX_AGE_MS / 2);
         assertFalse(mgr.isLocked(RESOURCE_A));
         assertFalse(mgr.isLocked(RESOURCE_B));
         assertTrue(mgr.isLocked(RESOURCE_C));
         assertTrue(mgr.isLocked(RESOURCE_D));
         
         // another quarter - next one should expire
-        testTime.sleep(MAX_AGE_MS/4);
+        testTime.sleep(MAX_AGE_MS / 4);
         assertFalse(mgr.isLocked(RESOURCE_C));
         assertTrue(mgr.isLocked(RESOURCE_D));
         
         // another quarter - last one should expire
-        testTime.sleep(MAX_AGE_MS/4);
+        testTime.sleep(MAX_AGE_MS / 4);
         assertFalse(mgr.isLocked(RESOURCE_D));
     }
 
@@ -389,9 +393,7 @@
         long ttime = System.currentTimeMillis() + 50;
         Data data = new Data(OWNER1, RESOURCE_A, ttime);
         Data dataSame = new Data(OWNER1, RESOURCE_A, ttime);
-        Data dataDiffExpire = new Data(OWNER1, RESOURCE_A, ttime+1);
-        Data dataDiffOwner = new Data(OWNER2, RESOURCE_A, ttime);
-        Data dataDiffResource = new Data(OWNER1, RESOURCE_B, ttime);
+        Data dataDiffExpire = new Data(OWNER1, RESOURCE_A, ttime + 1);
         
         assertEquals(0, data.compareTo(data));
         assertEquals(0, data.compareTo(dataSame));
@@ -399,6 +401,9 @@
         assertTrue(data.compareTo(dataDiffExpire) < 0);
         assertTrue(dataDiffExpire.compareTo(data) > 0);
         
+        Data dataDiffOwner = new Data(OWNER2, RESOURCE_A, ttime);
+        Data dataDiffResource = new Data(OWNER1, RESOURCE_B, ttime);
+
         assertTrue(data.compareTo(dataDiffOwner) < 0);
         assertTrue(dataDiffOwner.compareTo(data) > 0);
         
@@ -411,17 +416,19 @@
         long ttime = System.currentTimeMillis() + 1;
         Data data = new Data(OWNER1, RESOURCE_A, ttime);
         Data dataSame = new Data(OWNER1, RESOURCE_A, ttime);
-        Data dataDiffExpire = new Data(OWNER1, RESOURCE_A, ttime+1);
+        Data dataDiffExpire = new Data(OWNER1, RESOURCE_A, ttime + 1);
         Data dataDiffOwner = new Data(OWNER2, RESOURCE_A, ttime);
-        Data dataDiffResource = new Data(OWNER1, RESOURCE_B, ttime);
-        Data dataNullOwner = new Data(null, RESOURCE_A, ttime);
-        Data dataNullResource = new Data(OWNER1, null, ttime);
         
         int hc1 = data.hashCode();
         assertEquals(hc1, dataSame.hashCode());
 
         assertTrue(hc1 != dataDiffExpire.hashCode());
         assertTrue(hc1 != dataDiffOwner.hashCode());
+
+        Data dataDiffResource = new Data(OWNER1, RESOURCE_B, ttime);
+        Data dataNullOwner = new Data(null, RESOURCE_A, ttime);
+        Data dataNullResource = new Data(OWNER1, null, ttime);
+        
         assertTrue(hc1 != dataDiffResource.hashCode());
         assertTrue(hc1 != dataNullOwner.hashCode());
         assertTrue(hc1 != dataNullResource.hashCode());
@@ -432,15 +439,14 @@
         long ttime = System.currentTimeMillis() + 50;
         Data data = new Data(OWNER1, RESOURCE_A, ttime);
         Data dataSame = new Data(OWNER1, RESOURCE_A, ttime);
-        Data dataDiffExpire = new Data(OWNER1, RESOURCE_A, ttime+1);
-        Data dataDiffOwner = new Data(OWNER2, RESOURCE_A, ttime);
-        Data dataDiffResource = new Data(OWNER1, RESOURCE_B, ttime);
-        Data dataNullOwner = new Data(null, RESOURCE_A, ttime);
-        Data dataNullResource = new Data(OWNER1, null, ttime);
+        Data dataDiffExpire = new Data(OWNER1, RESOURCE_A, ttime + 1);
         
         assertTrue(data.equals(data));
         assertTrue(data.equals(dataSame));
 
+        Data dataDiffOwner = new Data(OWNER2, RESOURCE_A, ttime);
+        Data dataDiffResource = new Data(OWNER1, RESOURCE_B, ttime);
+
         assertFalse(data.equals(dataDiffExpire));
         assertFalse(data.equals(dataDiffOwner));
         assertFalse(data.equals(dataDiffResource));
@@ -448,6 +454,9 @@
         assertFalse(data.equals(null));
         assertFalse(data.equals("string"));
 
+        Data dataNullOwner = new Data(null, RESOURCE_A, ttime);
+        Data dataNullResource = new Data(OWNER1, null, ttime);
+
         assertFalse(dataNullOwner.equals(data));
         assertFalse(dataNullResource.equals(data));
 
@@ -464,7 +473,7 @@
 
         String[] resources = {RESOURCE_A, RESOURCE_B};
 
-        AtomicInteger nfail = new AtomicInteger(0);
+        final AtomicInteger nfail = new AtomicInteger(0);
 
         CountDownLatch stopper = new CountDownLatch(1);
         CountDownLatch completed = new CountDownLatch(nthreads);
@@ -472,7 +481,7 @@
         for (int x = 0; x < nthreads; ++x) {
             String owner = "owner." + x;
 
-            Thread t = new Thread(() -> {
+            Thread thread = new Thread(() -> {
 
                 for (int y = 0; y < nlocks; ++y) {
                     String res = resources[y % resources.length];
@@ -495,8 +504,8 @@
                 completed.countDown();
             });
 
-            t.setDaemon(true);
-            threads.add(t);
+            thread.setDaemon(true);
+            threads.add(thread);
         }
 
         // start the threads
diff --git a/policy-core/src/test/java/org/onap/policy/drools/core/lock/TestUtils.java b/policy-core/src/test/java/org/onap/policy/drools/core/lock/TestingUtils.java
similarity index 95%
rename from policy-core/src/test/java/org/onap/policy/drools/core/lock/TestUtils.java
rename to policy-core/src/test/java/org/onap/policy/drools/core/lock/TestingUtils.java
index f843f6a..17a11a0 100644
--- a/policy-core/src/test/java/org/onap/policy/drools/core/lock/TestUtils.java
+++ b/policy-core/src/test/java/org/onap/policy/drools/core/lock/TestingUtils.java
@@ -20,14 +20,14 @@
 
 package org.onap.policy.drools.core.lock;
 
-public class TestUtils {
+public class TestingUtils {
 
     /**
      * Invokes a function that is expected to throw an exception.
      * 
      * @param clazz class of exception that is expected
-     * @param func
-     * @return
+     * @param func function
+     * @return object
      */
     public static <T> T expectException(Class<T> clazz, VoidFunction func) {
         try {
diff --git a/policy-core/src/test/java/org/onap/policy/drools/util/FeatureEnabledCheckerTest.java b/policy-core/src/test/java/org/onap/policy/drools/util/FeatureEnabledCheckerTest.java
index cd79592..c118b89 100644
--- a/policy-core/src/test/java/org/onap/policy/drools/util/FeatureEnabledCheckerTest.java
+++ b/policy-core/src/test/java/org/onap/policy/drools/util/FeatureEnabledCheckerTest.java
@@ -22,6 +22,7 @@
 
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
+
 import java.util.Properties;
 import org.junit.Test;
 
diff --git a/policy-core/src/test/resources/META-INF/services/org.onap.policy.drools.core.PolicySessionFeatureAPI b/policy-core/src/test/resources/META-INF/services/org.onap.policy.drools.core.PolicySessionFeatureAPI
index d6b088c..6bc8703 100644
--- a/policy-core/src/test/resources/META-INF/services/org.onap.policy.drools.core.PolicySessionFeatureAPI
+++ b/policy-core/src/test/resources/META-INF/services/org.onap.policy.drools.core.PolicySessionFeatureAPI
@@ -1 +1 @@
-org.onap.policy.drools.core.TestPolicySessionFeatureAPI
+org.onap.policy.drools.core.PolicySessionFeatureApiTest