}
     }
 
-    /**
-     * Starts the next request associated with a PDP.
-     *
-     * @param requests current set of requests
-     * @param request the request that just completed
-     */
-    private void startNextRequest(PdpRequests requests, Request request) {
-        if (!requests.startNextRequest(request)) {
-            pdp2requests.remove(requests.getPdpName(), requests);
-        }
-    }
-
-    /**
-     * Disables a PDP by removing it from its subgroup and then sending it a PASSIVE
-     * request.
-     *
-     * @param requests the requests associated with the PDP to be disabled
-     */
-    private void disablePdp(PdpRequests requests) {
-
-        // remove the requests from the map
-        if (!pdp2requests.remove(requests.getPdpName(), requests)) {
-            // don't have the info we need to disable it
-            logger.warn("no requests with which to disable {}", requests.getPdpName());
-            return;
-        }
-
-        logger.warn("disabling {}", requests.getPdpName());
-
-        requests.stopPublishing();
-
-        // remove the PDP from all groups
-        boolean removed = false;
-        try {
-            removed = removeFromGroups(requests.getPdpName());
-        } catch (PfModelException e) {
-            logger.info("unable to remove PDP {} from subgroup", requests.getPdpName(), e);
-        }
-
-        // send the state change
-        PdpStateChange change = new PdpStateChange();
-        change.setName(requests.getPdpName());
-        change.setState(PdpState.PASSIVE);
-
-        if (removed) {
-            // send an update, too
-            PdpUpdate update = new PdpUpdate();
-            update.setName(requests.getPdpName());
-
-            addRequest(update, change);
-
-        } else {
-            addRequest(change);
-        }
-    }
-
     /**
      * Removes a PDP from all active groups.
      *
         public void retryCountExhausted() {
             disablePdp(requests);
         }
+
+        /**
+         * Starts the next request associated with a PDP.
+         *
+         * @param requests current set of requests
+         * @param request the request that just completed
+         */
+        private void startNextRequest(PdpRequests requests, Request request) {
+            if (!requests.startNextRequest(request)) {
+                pdp2requests.remove(requests.getPdpName(), requests);
+            }
+        }
+
+        /**
+         * Disables a PDP by removing it from its subgroup and then sending it a PASSIVE
+         * request.
+         *
+         * @param requests the requests associated with the PDP to be disabled
+         */
+        private void disablePdp(PdpRequests requests) {
+
+            // remove the requests from the map
+            if (!pdp2requests.remove(requests.getPdpName(), requests)) {
+                // don't have the info we need to disable it
+                logger.warn("no requests with which to disable {}", requests.getPdpName());
+                return;
+            }
+
+            logger.warn("disabling {}", requests.getPdpName());
+
+            requests.stopPublishing();
+
+            // remove the PDP from all groups
+            boolean removed = false;
+            try {
+                removed = removeFromGroups(requests.getPdpName());
+            } catch (PfModelException e) {
+                logger.info("unable to remove PDP {} from subgroup", requests.getPdpName(), e);
+            }
+
+            // send the state change
+            PdpStateChange change = new PdpStateChange();
+            change.setName(requests.getPdpName());
+            change.setState(PdpState.PASSIVE);
+
+            if (removed) {
+                // send an update, too
+                PdpUpdate update = new PdpUpdate();
+                update.setName(requests.getPdpName());
+
+                addRequest(update, change);
+
+            } else {
+                addRequest(change);
+            }
+        }
     }
 }
 
             }
 
             PdpMessage data = token.replaceItem(null);
-            if (data == null) {
-                continue;
+            if (data != null) {
+                client.send(data);
             }
-
-            client.send(data);
         }
     }
 
 
                             () -> timer = params.getTimers().register(this.message.getRequestId(), this::handleTimeout),
                             () -> timer.cancel())
                         .addAction("enqueue",
-                            () -> enqueue(),
+                            this::enqueue,
                             () -> {
                                 // do not remove from the queue - token may be re-used
                             });
 
             String reason = checkResponse(response);
             if (reason != null) {
-                logger.info("{} PDP data mismatch: {}", getName(), reason);
+                logger.info("{} PDP data mismatch via {}: {}", getName(), infra, reason);
                 listener.failure(pdpName, reason);
                 return;
             }
             stopPublishing();
 
             if (!bumpRetryCount()) {
-                logger.info("{} timeout - retry count {} exhausted", getName(), retryCount);
+                logger.info("{} timeout {} - retry count {} exhausted", getName(), timerName, retryCount);
                 listener.retryCountExhausted();
                 return;
             }
 
             return reason;
         }
 
-        PdpUpdate message = (PdpUpdate) getMessage();
+        PdpUpdate message = getMessage();
         if (!StringUtils.equals(message.getPdpGroup(), response.getPdpGroup())) {
             return "group does not match";
         }
 
      */
     public ResponseBuilder addVersionControlHeaders(ResponseBuilder respBuilder) {
         return respBuilder.header(VERSION_MINOR_NAME, "0").header(VERSION_PATCH_NAME, "0").header(VERSION_LATEST_NAME,
-                        "1.0.0");
+                        API_VERSION);
     }
 
     /**
 
             servers = HttpServletServer.factory.build(getServerProperties());
             for (final HttpServletServer server : servers) {
                 if (server.isAaf()) {
-                    server.addFilterClass(null, PapAafFilter.class.getCanonicalName());
+                    server.addFilterClass(null, PapAafFilter.class.getName());
                 }
                 server.start();
             }
         props.setProperty(svcpfx + PolicyEndPointProperties.PROPERTY_HTTP_PORT_SUFFIX,
                         Integer.toString(restServerParameters.getPort()));
         props.setProperty(svcpfx + PolicyEndPointProperties.PROPERTY_HTTP_REST_CLASSES_SUFFIX,
-                        String.join(",", HealthCheckRestControllerV1.class.getCanonicalName(),
-                                        StatisticsRestControllerV1.class.getCanonicalName(),
-                                        PdpGroupDeployControllerV1.class.getCanonicalName(),
-                                        PdpGroupDeleteControllerV1.class.getCanonicalName(),
-                                        PdpGroupStateChangeControllerV1.class.getCanonicalName(),
-                                        PdpGroupQueryControllerV1.class.getCanonicalName()));
+                        String.join(",", HealthCheckRestControllerV1.class.getName(),
+                                        StatisticsRestControllerV1.class.getName(),
+                                        PdpGroupDeployControllerV1.class.getName(),
+                                        PdpGroupDeleteControllerV1.class.getName(),
+                                        PdpGroupStateChangeControllerV1.class.getName(),
+                                        PdpGroupQueryControllerV1.class.getName()));
         props.setProperty(svcpfx + PolicyEndPointProperties.PROPERTY_MANAGED_SUFFIX, "false");
         props.setProperty(svcpfx + PolicyEndPointProperties.PROPERTY_HTTP_SWAGGER_SUFFIX, "true");
         props.setProperty(svcpfx + PolicyEndPointProperties.PROPERTY_HTTP_AUTH_USERNAME_SUFFIX,
 
 /*-
  * ============LICENSE_START=======================================================
  *  Copyright (C) 2019 Nordix Foundation.
+ *  Modifications Copyright (C) 2019 AT&T Intellectual Property.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
 import org.apache.commons.lang3.tuple.Pair;
 import org.onap.policy.models.base.PfModelException;
 import org.onap.policy.models.pdp.concepts.PdpGroups;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Class to provide REST end points for PAP component to query details of all PDP groups.
  */
 public class PdpGroupQueryControllerV1 extends PapRestControllerV1 {
 
+    private static final Logger LOGGER = LoggerFactory.getLogger(PdpGroupQueryControllerV1.class);
+
     private final PdpGroupQueryProvider provider = new PdpGroupQueryProvider();
 
     /**
             return addLoggingHeaders(addVersionControlHeaders(Response.status(pair.getLeft())), requestId)
                     .entity(pair.getRight()).build();
         } catch (final PfModelException exp) {
+            LOGGER.info("group query failed", exp);
             return addLoggingHeaders(
                     addVersionControlHeaders(Response.status(exp.getErrorResponse().getResponseCode())), requestId)
                             .entity(exp.getErrorResponse()).build();
 
 /*-
  * ============LICENSE_START=======================================================
  *  Copyright (C) 2019 Nordix Foundation.
+ *  Modifications Copyright (C) 2019 AT&T Intellectual Property.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
 import org.onap.policy.models.base.PfModelException;
 import org.onap.policy.models.pap.concepts.PdpGroupStateChangeResponse;
 import org.onap.policy.models.pdp.enums.PdpState;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Class to provide REST end points for PAP component to change state of a PDP group.
  */
 public class PdpGroupStateChangeControllerV1 extends PapRestControllerV1 {
 
+    private static final Logger LOGGER = LoggerFactory.getLogger(PdpGroupQueryControllerV1.class);
+
     private final PdpGroupStateChangeProvider provider = new PdpGroupStateChangeProvider();
 
     /**
             return addLoggingHeaders(addVersionControlHeaders(Response.status(pair.getLeft())), requestId)
                     .entity(pair.getRight()).build();
         } catch (final PfModelException exp) {
+            LOGGER.info("group state-change failed", exp);
             return addLoggingHeaders(
                     addVersionControlHeaders(Response.status(exp.getErrorResponse().getResponseCode())), requestId)
                             .entity(exp.getErrorResponse()).build();
 
     protected BiFunction<PdpGroup, PdpSubGroup, Boolean> makeUpdater(ToscaPolicy policy) {
         ToscaPolicyIdentifier desiredIdent = policy.getIdentifier();
 
-        return (group, subgroup) -> {
-
-            // remove the policy from the subgroup
-            return subgroup.getPolicies().remove(desiredIdent);
-        };
+        // remove the policy from the subgroup
+        return (group, subgroup) -> subgroup.getPolicies().remove(desiredIdent);
     }
 }
 
      */
     private <T> boolean updateList(List<T> dblist, List<T> newList, Consumer<List<T>> setter) {
 
-        Set<T> dbTypes = new HashSet<T>(dblist);
-        Set<T> newTypes = new HashSet<T>(newList);
+        Set<T> dbTypes = new HashSet<>(dblist);
+        Set<T> newTypes = new HashSet<>(newList);
 
         if (dbTypes.equals(newTypes)) {
             return false;
 
         BiFunction<PdpGroup, PdpSubGroup, Boolean> updater = makeUpdater(policy);
 
         for (PdpGroup group : groups) {
-            upgradeGroup(data, policy, group, updater);
+            upgradeGroup(data, group, updater);
         }
     }
 
      * Updates a group, assigning a new version number, if it actually changes.
      *
      * @param data session data
-     * @param policy policy to be added to or removed from the group
      * @param group the original group, to be updated
      * @param updater function to update a group
-     * @throws PfModelException if a DAO error occurred
      */
-    private void upgradeGroup(SessionData data, ToscaPolicy policy, PdpGroup group,
-                    BiFunction<PdpGroup, PdpSubGroup, Boolean> updater) throws PfModelException {
+    private void upgradeGroup(SessionData data, PdpGroup group,
+                    BiFunction<PdpGroup, PdpSubGroup, Boolean> updater) {
 
         boolean updated = false;
 
 
  */
 public class Main {
 
+    private static final String START_FAILED = "start of policy pap service failed";
+
     private static final Logger LOGGER = LoggerFactory.getLogger(Main.class);
 
     private PapActivator activator;
             // Validate that the arguments are sane
             arguments.validate();
         } catch (final PolicyPapException e) {
-            LOGGER.error("start of policy pap service failed", e);
+            LOGGER.error(START_FAILED, e);
             return;
         }
 
         try {
             parameterGroup = new PapParameterHandler().getParameters(arguments);
         } catch (final Exception e) {
-            LOGGER.error("start of policy pap service failed", e);
+            LOGGER.error(START_FAILED, e);
             return;
         }
 
                 props.load(stream);
             }
         } catch (final Exception e) {
-            LOGGER.error("start of policy pap service failed", e);
+            LOGGER.error(START_FAILED, e);
             return;
         }
 
         try {
             new PapDatabaseInitializer().initializePapDatabase(parameterGroup.getDatabaseProviderParameters());
         } catch (final PolicyPapException exp) {
-            LOGGER.error("start of policy pap service failed, used parameters are {}", Arrays.toString(args), exp);
+            LOGGER.error(START_FAILED + ", used parameters are {}", Arrays.toString(args), exp);
             return;
         }
 
 
             () -> msgDispatcher.unregister(PdpMessageType.PDP_STATUS.name()));
 
         addAction("Message Dispatcher",
-            () -> registerMsgDispatcher(),
-            () -> unregisterMsgDispatcher());
+            this::registerMsgDispatcher,
+            this::unregisterMsgDispatcher);
 
         addAction("topics",
-            () -> TopicEndpoint.manager.start(),
-            () -> TopicEndpoint.manager.shutdown());
+            TopicEndpoint.manager::start,
+            TopicEndpoint.manager::shutdown);
 
         addAction("PAP statistics",
             () -> Registry.register(PapConstants.REG_STATISTICS_MANAGER, new PapStatisticsManager()),
             () -> Registry.unregister(PapConstants.REG_PDP_MODIFY_MAP));
 
         addAction("Create REST server",
-            () -> {
-                restServer = new PapRestServer(papParameterGroup.getRestServerParameters());
-            },
-            () -> {
-                restServer = null;
-            });
+            () -> restServer = new PapRestServer(papParameterGroup.getRestServerParameters()),
+            () -> restServer = null);
 
         addAction("REST server",
             () -> restServer.start(),
 
         }
 
         if (commandLine.hasOption('h')) {
-            return help(Main.class.getCanonicalName());
+            return help(Main.class.getName());
         }
 
         if (commandLine.hasOption('v')) {
 
     public Map<String, Object> getPolicyModelsProviderParametersMap() {
         final Map<String, Object> map = new TreeMap<>();
         map.put("name", PolicyModelsProviderParameters.class.getSimpleName());
-        map.put("implementation", DatabasePolicyModelsProviderImpl.class.getCanonicalName());
+        map.put("implementation", DatabasePolicyModelsProviderImpl.class.getName());
         map.put("databaseDriver", "org.h2.Driver");
         map.put("databaseUrl", "jdbc:h2:mem:testdb");
         map.put("databaseUser", "policy");
 
             "name": "policyB",
             "version": "1.2.3",
             "type": "typeA",
-            "typeVersion": "100.2.3"
+            "type_version": "100.2.3"
         }
     ]
 }
 
             "name": "policyA",
             "version": "1.2.3",
             "type": "typeA",
-            "typeVersion": "100.2.3"
+            "type_version": "100.2.3"
         }
     ]
 }
 
     "name": "policyA",
     "version": "1.2.3",
     "type": "typeA",
-    "typeVersion": "100.2.3"
+    "type_version": "100.2.3"
 }
 
                             "name": "policyA",
                             "version": "1.2.3",
                             "type": "typeA",
-                            "typeVersion": "100.2.3"
+                            "type_version": "100.2.3"
                         }
                     ]
                 },
 
             "name": "policyB",
             "version": "1.2.3",
             "type": "typeB",
-            "typeVersion": "100.2.3"
+            "type_version": "100.2.3"
         }
     ]
 }
 
             "name": "policyC",
             "version": "1.2.3",
             "type": "typeC",
-            "typeVersion": "100.2.3"
+            "type_version": "100.2.3"
         }
     ]
 }
 
             "name": "policyD",
             "version": "1.2.3",
             "type": "typeA",
-            "typeVersion": "100.2.3"
+            "type_version": "100.2.3"
         }
     ]
 }