diff options
Diffstat (limited to 'PolicyEngineAPI/src/main/java/org/onap/policy/std/AutoClientDMAAP.java')
-rw-r--r-- | PolicyEngineAPI/src/main/java/org/onap/policy/std/AutoClientDMAAP.java | 102 |
1 files changed, 53 insertions, 49 deletions
diff --git a/PolicyEngineAPI/src/main/java/org/onap/policy/std/AutoClientDMAAP.java b/PolicyEngineAPI/src/main/java/org/onap/policy/std/AutoClientDMAAP.java index 97f60b0dc..2fa408810 100644 --- a/PolicyEngineAPI/src/main/java/org/onap/policy/std/AutoClientDMAAP.java +++ b/PolicyEngineAPI/src/main/java/org/onap/policy/std/AutoClientDMAAP.java @@ -90,36 +90,36 @@ public class AutoClientDMAAP implements Runnable { } String group = UUID.randomUUID().toString(); String id = "0"; + + if (scheme == null || handler == null || + ! (scheme.equals(NotificationScheme.AUTO_ALL_NOTIFICATIONS) || + scheme.equals(NotificationScheme.AUTO_NOTIFICATIONS)) ) { + logger.info("no stop/start required"); + return; + } - // Stop and Start needs to be done. - if (scheme != null && handler != null) { - if (scheme.equals(NotificationScheme.AUTO_ALL_NOTIFICATIONS) - || scheme.equals(NotificationScheme.AUTO_NOTIFICATIONS)) { - - // create a loop to listen for messages from DMaaP server - try { - setDmaapCosumer(new BusConsumer.DmaapConsumerWrapper(dmaapList, topic, aafLogin, aafPassword, group, - id, 15 * 1000, 1000)); - } catch (Exception e) { - logger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Unable to create DMaaP Consumer: ", e); - } - - while (this.isRunning()) { - try { - for (String msg : dmaapConsumer.fetch()) { - logger.debug("Auto Notification Recieved Message " + msg + " from DMAAP server : " - + dmaapList.toString()); - setNotification(NotificationUnMarshal.notificationJSON(msg)); - callHandler(); - } - } catch (Exception e) { - logger.debug("Error in processing DMAAP message", e); - } + // create a loop to listen for messages from DMaaP server + try { + setDmaapCosumer(new BusConsumer.DmaapConsumerWrapper(dmaapList, topic, aafLogin, aafPassword, group, + id, 15 * 1000, 1000)); + } catch (Exception e) { + logger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Unable to create DMaaP Consumer: ", e); + } + while (this.isRunning()) { + try { + for (String msg : dmaapConsumer.fetch()) { + logger.debug("Auto Notification Recieved Message " + msg + " from DMAAP server : " + + dmaapList.toString()); + setNotification(NotificationUnMarshal.notificationJSON(msg)); + callHandler(); } - logger.debug("Stopping DMAAP Consumer loop will no longer fetch messages from the servers"); + } catch (Exception e) { + logger.debug("Error in processing DMAAP message", e); } + } + logger.debug("Stopping DMAAP Consumer loop will no longer fetch messages from the servers"); } private static void setNotification(StdPDPNotification notificationJSON) { @@ -131,30 +131,34 @@ public class AutoClientDMAAP implements Runnable { } private static void callHandler() { - if (handler != null && scheme != null) { - if (scheme.equals(NotificationScheme.AUTO_ALL_NOTIFICATIONS)) { - boolean removed = false, updated = false; - if (notification.getRemovedPolicies() != null && !notification.getRemovedPolicies().isEmpty()) { - removed = true; - } - if (notification.getLoadedPolicies() != null && !notification.getLoadedPolicies().isEmpty()) { - updated = true; - } - if (removed && updated) { - notification.setNotificationType(NotificationType.BOTH); - } else if (removed) { - notification.setNotificationType(NotificationType.REMOVE); - } else if (updated) { - notification.setNotificationType(NotificationType.UPDATE); - } - handler.notificationReceived(notification); - } else if (scheme.equals(NotificationScheme.AUTO_NOTIFICATIONS)) { - PDPNotification newNotification = MatchStore.checkMatch(notification); - if (newNotification.getNotificationType() != null) { - handler.notificationReceived(newNotification); - } - } - } + + if (handler == null || scheme == null) { + logger.info("handler does not need to do anything"); + return; + } + if (scheme.equals(NotificationScheme.AUTO_ALL_NOTIFICATIONS)) { + boolean removed = false; + boolean updated = false; + if (notification.getRemovedPolicies() != null && !notification.getRemovedPolicies().isEmpty()) { + removed = true; + } + if (notification.getLoadedPolicies() != null && !notification.getLoadedPolicies().isEmpty()) { + updated = true; + } + if (removed && updated) { + notification.setNotificationType(NotificationType.BOTH); + } else if (removed) { + notification.setNotificationType(NotificationType.REMOVE); + } else if (updated) { + notification.setNotificationType(NotificationType.UPDATE); + } + handler.notificationReceived(notification); + } else if (scheme.equals(NotificationScheme.AUTO_NOTIFICATIONS)) { + PDPNotification newNotification = MatchStore.checkMatch(notification); + if (newNotification.getNotificationType() != null) { + handler.notificationReceived(newNotification); + } + } } } |