diff options
Diffstat (limited to 'PolicyEngineUtils')
36 files changed, 1097 insertions, 1051 deletions
diff --git a/PolicyEngineUtils/src/main/java/org/onap/policy/api/LoadedPolicy.java b/PolicyEngineUtils/src/main/java/org/onap/policy/api/LoadedPolicy.java index 862b654b8..95ef694d8 100644 --- a/PolicyEngineUtils/src/main/java/org/onap/policy/api/LoadedPolicy.java +++ b/PolicyEngineUtils/src/main/java/org/onap/policy/api/LoadedPolicy.java @@ -2,14 +2,14 @@ * ============LICENSE_START======================================================= * PolicyEngineUtils * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -23,7 +23,7 @@ package org.onap.policy.api; import java.util.Map; /** - * <code>LoadedPolicy</code> defines the Policy that has been Loaded into the PDP. + * <code>LoadedPolicy</code> defines the Policy that has been Loaded into the PDP. * * @version 0.2 */ @@ -44,7 +44,8 @@ public interface LoadedPolicy { String getVersionNo(); /** - * Gets the <code>Map</code> of <code>String,String</code> format of the Matches if the policy Loaded is of Config Type. + * Gets the <code>Map</code> of <code>String,String</code> format of the Matches if the policy Loaded is of Config + * Type. * * @return the <code>Map</code> of <code>String,String</code> format of the matches in the policy. */ diff --git a/PolicyEngineUtils/src/main/java/org/onap/policy/api/NotificationHandler.java b/PolicyEngineUtils/src/main/java/org/onap/policy/api/NotificationHandler.java index 78b79a08f..fe30241dd 100644 --- a/PolicyEngineUtils/src/main/java/org/onap/policy/api/NotificationHandler.java +++ b/PolicyEngineUtils/src/main/java/org/onap/policy/api/NotificationHandler.java @@ -2,14 +2,14 @@ * ============LICENSE_START======================================================= * PolicyEngineUtils * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -29,10 +29,11 @@ package org.onap.policy.api; public interface NotificationHandler { /** - * <code>notificationReceived</code> method will be triggered automatically whenever a Notification is received by the PEP. + * <code>notificationReceived</code> method will be triggered automatically whenever a Notification is received by + * the PEP. * * @param notification <code>PDPNotification</code> of {@link org.onap.policy.api.PDPNotification} - * is the object that has information of the notification. + * is the object that has information of the notification. */ void notificationReceived(PDPNotification notification); } diff --git a/PolicyEngineUtils/src/main/java/org/onap/policy/api/NotificationType.java b/PolicyEngineUtils/src/main/java/org/onap/policy/api/NotificationType.java index 8b65a420d..a86e997b8 100644 --- a/PolicyEngineUtils/src/main/java/org/onap/policy/api/NotificationType.java +++ b/PolicyEngineUtils/src/main/java/org/onap/policy/api/NotificationType.java @@ -2,14 +2,14 @@ * ============LICENSE_START======================================================= * PolicyEngineUtils * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -21,18 +21,18 @@ package org.onap.policy.api; /** - * Enumeration of the Update Type that has occurred in the <code>PDPNotification</code> of - * {@link org.onap.policy.api.PDPNotification} + * Enumeration of the Update Type that has occurred in the <code>PDPNotification</code> of + * {@link org.onap.policy.api.PDPNotification}. * * @version 0.1 */ public enum NotificationType { /** - * Indicates that a policy has been updated + * Indicates that a policy has been updated. */ UPDATE("update"), /** - * Indicates that a policy has been removed + * Indicates that a policy has been removed. */ REMOVE("remove"), /** @@ -47,7 +47,8 @@ public enum NotificationType { } /** - * Returns the <code>String</code> format of the Type for this <code>UpdateType</code> + * Returns the <code>String</code> format of the Type for this <code>UpdateType</code>. + * * @return the <code>String</code> Type of <code>UpdateType</code> */ @Override diff --git a/PolicyEngineUtils/src/main/java/org/onap/policy/api/PDPNotification.java b/PolicyEngineUtils/src/main/java/org/onap/policy/api/PDPNotification.java index 9ab508281..caee7e301 100644 --- a/PolicyEngineUtils/src/main/java/org/onap/policy/api/PDPNotification.java +++ b/PolicyEngineUtils/src/main/java/org/onap/policy/api/PDPNotification.java @@ -2,14 +2,14 @@ * ============LICENSE_START======================================================= * PolicyEngineUtils * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -23,7 +23,7 @@ package org.onap.policy.api; import java.util.Collection; /** - * Defines the <code>Notification</code> event sent from PDP to Client PEP. + * Defines the <code>Notification</code> event sent from PDP to Client PEP. * * @version 0.2 */ diff --git a/PolicyEngineUtils/src/main/java/org/onap/policy/api/PEDependency.java b/PolicyEngineUtils/src/main/java/org/onap/policy/api/PEDependency.java index d722f1696..b94872785 100644 --- a/PolicyEngineUtils/src/main/java/org/onap/policy/api/PEDependency.java +++ b/PolicyEngineUtils/src/main/java/org/onap/policy/api/PEDependency.java @@ -2,14 +2,14 @@ * ============LICENSE_START======================================================= * PolicyEngineUtils * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -20,63 +20,29 @@ package org.onap.policy.api; +import lombok.Getter; +import lombok.Setter; import org.apache.maven.model.Dependency; import org.apache.maven.model.Exclusion; -public class PEDependency{ - +@Setter +@Getter +public class PEDependency { + private String groupId; private String artifactId; private String version; private String classifier; - private String type; + private String type; private String scope; private java.util.List<Exclusion> exclusions; - - public String getGroupId() { - return groupId; - } - public void setGroupId(String groupId) { - this.groupId = groupId; - } - public String getArtifactId() { - return artifactId; - } - public void setArtifactId(String artifactId) { - this.artifactId = artifactId; - } - public String getVersion() { - return version; - } - public void setVersion(String version) { - this.version = version; - } - public java.util.List<Exclusion> getExclusions() { - return exclusions; - } - public void setExclusions(java.util.List<Exclusion> exclusions) { - this.exclusions = exclusions; - } - public String getClassifier() { - return classifier; - } - public void setClassifier(String classifier) { - this.classifier = classifier; - } - public String getType() { - return type; - } - public void setType(String type) { - this.type = type; - } - public String getScope() { - return scope; - } - public void setScope(String scope) { - this.scope = scope; - } - - public Dependency getDependency(){ + + /** + * getDependency. + * + * @return Dependency + */ + public Dependency getDependency() { Dependency dependency = new Dependency(); dependency.setArtifactId(artifactId); dependency.setGroupId(groupId); diff --git a/PolicyEngineUtils/src/main/java/org/onap/policy/api/RemovedPolicy.java b/PolicyEngineUtils/src/main/java/org/onap/policy/api/RemovedPolicy.java index e8125a1dc..db7183ed7 100644 --- a/PolicyEngineUtils/src/main/java/org/onap/policy/api/RemovedPolicy.java +++ b/PolicyEngineUtils/src/main/java/org/onap/policy/api/RemovedPolicy.java @@ -2,14 +2,14 @@ * ============LICENSE_START======================================================= * PolicyEngineUtils * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -21,7 +21,7 @@ package org.onap.policy.api; /** - * <code>RemovedPolicy</code> defines the Policy that has been removed + * <code>RemovedPolicy</code> defines the Policy that has been removed. * * @version 0.1 */ diff --git a/PolicyEngineUtils/src/main/java/org/onap/policy/api/UpdateType.java b/PolicyEngineUtils/src/main/java/org/onap/policy/api/UpdateType.java index 7f401fec0..6219928bc 100644 --- a/PolicyEngineUtils/src/main/java/org/onap/policy/api/UpdateType.java +++ b/PolicyEngineUtils/src/main/java/org/onap/policy/api/UpdateType.java @@ -2,14 +2,14 @@ * ============LICENSE_START======================================================= * PolicyEngineUtils * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -21,18 +21,18 @@ package org.onap.policy.api; /** - * Enumeration of the Update Type that has occurred in the <code>UpdatedPolicy</code> of - * {@link org.onap.policy.api.LoadedPolicy} + * Enumeration of the Update Type that has occurred in the <code>UpdatedPolicy</code> of + * {@link org.onap.policy.api.LoadedPolicy}. * * @version 0.1 */ public enum UpdateType { /** - * Indicates that a policy has been updated + * Indicates that a policy has been updated. */ UPDATE("update"), /** - * Indicates that a policy is new + * Indicates that a policy is new. */ NEW("new"); @@ -43,7 +43,8 @@ public enum UpdateType { } /** - * Returns the <code>String</code> format of the Type for this <code>UpdateType</code> + * Returns the <code>String</code> format of the Type for this <code>UpdateType</code>. + * * @return the <code>String</code> Type of <code>UpdateType</code> */ @Override diff --git a/PolicyEngineUtils/src/main/java/org/onap/policy/jpa/BackUpMonitorEntity.java b/PolicyEngineUtils/src/main/java/org/onap/policy/jpa/BackUpMonitorEntity.java index 1bfffce6c..55daf1e83 100644 --- a/PolicyEngineUtils/src/main/java/org/onap/policy/jpa/BackUpMonitorEntity.java +++ b/PolicyEngineUtils/src/main/java/org/onap/policy/jpa/BackUpMonitorEntity.java @@ -2,14 +2,14 @@ * ============LICENSE_START======================================================= * PolicyEngineUtils * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -22,6 +22,7 @@ package org.onap.policy.jpa; import java.io.Serializable; import java.util.Date; + import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; @@ -35,7 +36,6 @@ import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; - @Entity @Table(name = "BackUpMonitorEntity") @NamedQuery(name = "BackUpMonitorEntity.findAll", query = "SELECT b FROM BackUpMonitorEntity b ") diff --git a/PolicyEngineUtils/src/main/java/org/onap/policy/std/NotificationStore.java b/PolicyEngineUtils/src/main/java/org/onap/policy/std/NotificationStore.java index 6164418d9..40c640f9a 100644 --- a/PolicyEngineUtils/src/main/java/org/onap/policy/std/NotificationStore.java +++ b/PolicyEngineUtils/src/main/java/org/onap/policy/std/NotificationStore.java @@ -2,15 +2,15 @@ * ============LICENSE_START======================================================= * PolicyEngineUtils * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved. * Modified Copyright (C) 2018 Samsung Electronics Co., Ltd. * ================================================================================ * 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. @@ -25,27 +25,33 @@ import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.Iterator; + import org.onap.policy.api.LoadedPolicy; import org.onap.policy.api.NotificationType; import org.onap.policy.api.PDPNotification; import org.onap.policy.api.RemovedPolicy; - /* - * This Should Compare and save the Notifications from the beginning of Time. - * If there is something new (missed) We notify the client. - * Works for PDP failures. - * + * This Should Compare and save the Notifications from the beginning of Time. + * If there is something new (missed) We notify the client. + * Works for PDP failures. + * */ public class NotificationStore { private static StdPDPNotification notificationRecord = new StdPDPNotification(); - private NotificationStore () { + private NotificationStore() { // Sonar prefers that we have an empty public constructor // as opposed to an implicit public constructor. } - + + /** + * getDeltaNotification. + * + * @param newNotification StdPDPNotification + * @return StdPDPNotification + */ public static StdPDPNotification getDeltaNotification(StdPDPNotification newNotification) { StdPDPNotification notificationDelta = new StdPDPNotification(); ArrayList<StdRemovedPolicy> removedDelta = new ArrayList<>(); @@ -72,13 +78,15 @@ public class NotificationStore { // check for old removed policies. if (!newNotification.getRemovedPolicies().isEmpty()) { for (RemovedPolicy newRemovedPolicy : newNotification.getRemovedPolicies()) { - remove = updateRemovedPolicies(removedDelta, oldUpdatedLostPolicies, oldRemovedPolicies, oldUpdatedPolicies, remove, newRemovedPolicy); + remove = updateRemovedPolicies(removedDelta, oldUpdatedLostPolicies, oldRemovedPolicies, + oldUpdatedPolicies, remove, newRemovedPolicy); } } // Check for old Updated Policies. if (!newNotification.getLoadedPolicies().isEmpty()) { for (LoadedPolicy newUpdatedPolicy : newNotification.getLoadedPolicies()) { - update = modifyUpdatedPolicies(updatedDelta, oldUpdatedLostPolicies, oldRemovedPolicies, oldUpdatedPolicies, update, newUpdatedPolicy); + update = modifyUpdatedPolicies(updatedDelta, oldUpdatedLostPolicies, oldRemovedPolicies, + oldUpdatedPolicies, update, newUpdatedPolicy); } // Conversion of Update to Remove if that occurred. if (!oldUpdatedLostPolicies.isEmpty()) { @@ -118,14 +126,15 @@ public class NotificationStore { return notificationDelta; } - private static Boolean modifyUpdatedPolicies(ArrayList<StdLoadedPolicy> updatedDelta, Collection<LoadedPolicy> oldUpdatedLostPolicies, Collection<RemovedPolicy> oldRemovedPolicies, Collection<LoadedPolicy> oldUpdatedPolicies, Boolean update, LoadedPolicy newUpdatedPolicy) { + private static Boolean modifyUpdatedPolicies(ArrayList<StdLoadedPolicy> updatedDelta, + Collection<LoadedPolicy> oldUpdatedLostPolicies, Collection<RemovedPolicy> oldRemovedPolicies, + Collection<LoadedPolicy> oldUpdatedPolicies, Boolean update, LoadedPolicy newUpdatedPolicy) { // Look for policies which are not in Update Boolean updated = true; String policyName = newUpdatedPolicy.getPolicyName(); String ver = newUpdatedPolicy.getVersionNo(); for (LoadedPolicy oldUpdatedPolicy : notificationRecord.getLoadedPolicies()) { - if (policyName.equals(oldUpdatedPolicy.getPolicyName()) - && ver.equals(oldUpdatedPolicy.getVersionNo())) { + if (policyName.equals(oldUpdatedPolicy.getPolicyName()) && ver.equals(oldUpdatedPolicy.getVersionNo())) { updated = false; // Remove the policy from copy. oldUpdatedLostPolicies.remove(oldUpdatedPolicy); @@ -135,8 +144,7 @@ public class NotificationStore { } // Change the record if the policy has been Removed earlier. for (RemovedPolicy oldRemovedPolicy : notificationRecord.getRemovedPolicies()) { - if (oldRemovedPolicy.getPolicyName().equals(policyName) - && oldRemovedPolicy.getVersionNo().equals(ver)) { + if (oldRemovedPolicy.getPolicyName().equals(policyName) && oldRemovedPolicy.getVersionNo().equals(ver)) { oldRemovedPolicies.remove(oldRemovedPolicy); } } @@ -149,23 +157,23 @@ public class NotificationStore { return update; } - private static Boolean updateRemovedPolicies(ArrayList<StdRemovedPolicy> removedDelta, Collection<LoadedPolicy> oldUpdatedLostPolicies, Collection<RemovedPolicy> oldRemovedPolicies, Collection<LoadedPolicy> oldUpdatedPolicies, Boolean remove, RemovedPolicy newRemovedPolicy) { - //Look for policy Not in Remove + private static Boolean updateRemovedPolicies(ArrayList<StdRemovedPolicy> removedDelta, + Collection<LoadedPolicy> oldUpdatedLostPolicies, Collection<RemovedPolicy> oldRemovedPolicies, + Collection<LoadedPolicy> oldUpdatedPolicies, Boolean remove, RemovedPolicy newRemovedPolicy) { + // Look for policy Not in Remove Boolean removed = true; String policyName = newRemovedPolicy.getPolicyName(); String ver = newRemovedPolicy.getVersionNo(); for (RemovedPolicy oldRemovedPolicy : notificationRecord.getRemovedPolicies()) { - if (policyName.equals(oldRemovedPolicy.getPolicyName()) - && ver.equals(oldRemovedPolicy.getVersionNo())) { + if (policyName.equals(oldRemovedPolicy.getPolicyName()) && ver.equals(oldRemovedPolicy.getVersionNo())) { removed = false; // Don't want a duplicate. oldRemovedPolicies.remove(oldRemovedPolicy); } } - //We need to change our record we have an Update record of this remove. + // We need to change our record we have an Update record of this remove. for (LoadedPolicy oldUpdatedPolicy : notificationRecord.getLoadedPolicies()) { - if (policyName.equals(oldUpdatedPolicy.getPolicyName()) - && ver.equals(oldUpdatedPolicy.getVersionNo())) { + if (policyName.equals(oldUpdatedPolicy.getPolicyName()) && ver.equals(oldUpdatedPolicy.getVersionNo())) { oldUpdatedPolicies.remove(oldUpdatedPolicy); oldUpdatedLostPolicies.remove(oldUpdatedPolicy); } @@ -180,6 +188,11 @@ public class NotificationStore { return remove; } + /** + * recordNotification. + * + * @param notification StdPDPNotification + */ public static void recordNotification(StdPDPNotification notification) { if (notification == null) { return; @@ -187,49 +200,50 @@ public class NotificationStore { if (notificationRecord.getRemovedPolicies() == null || notificationRecord.getLoadedPolicies() == null) { notificationRecord = notification; - } else { - // Check if there is anything new and update the record. - if (notificationRecord.getLoadedPolicies() != null || notificationRecord.getRemovedPolicies() != null) { - HashSet<StdRemovedPolicy> removedPolicies = new HashSet<>(); - for (RemovedPolicy rPolicy : notificationRecord.getRemovedPolicies()) { - StdRemovedPolicy sRPolicy = new StdRemovedPolicy(); - sRPolicy.setPolicyName(rPolicy.getPolicyName()); - sRPolicy.setVersionNo(rPolicy.getVersionNo()); - removedPolicies.add(sRPolicy); - } - HashSet<StdLoadedPolicy> updatedPolicies = new HashSet<>(); - for (LoadedPolicy uPolicy : notificationRecord.getLoadedPolicies()) { - StdLoadedPolicy sUPolicy = new StdLoadedPolicy(); - sUPolicy.setMatches(uPolicy.getMatches()); - sUPolicy.setPolicyName(uPolicy.getPolicyName()); - sUPolicy.setVersionNo(uPolicy.getVersionNo()); - sUPolicy.setUpdateType(uPolicy.getUpdateType()); - updatedPolicies.add(sUPolicy); - } + return; + } + // Check if there is anything new and update the record. + if (notificationRecord.getLoadedPolicies() != null || notificationRecord.getRemovedPolicies() != null) { + HashSet<StdRemovedPolicy> removedPolicies = new HashSet<>(); + for (RemovedPolicy removedPolicy : notificationRecord.getRemovedPolicies()) { + StdRemovedPolicy stdRemovedPolicy = new StdRemovedPolicy(); + stdRemovedPolicy.setPolicyName(removedPolicy.getPolicyName()); + stdRemovedPolicy.setVersionNo(removedPolicy.getVersionNo()); + removedPolicies.add(stdRemovedPolicy); + } + HashSet<StdLoadedPolicy> updatedPolicies = new HashSet<>(); + for (LoadedPolicy loadedPolicy : notificationRecord.getLoadedPolicies()) { + StdLoadedPolicy stdLoadedPolicy = new StdLoadedPolicy(); + stdLoadedPolicy.setMatches(loadedPolicy.getMatches()); + stdLoadedPolicy.setPolicyName(loadedPolicy.getPolicyName()); + stdLoadedPolicy.setVersionNo(loadedPolicy.getVersionNo()); + stdLoadedPolicy.setUpdateType(loadedPolicy.getUpdateType()); + updatedPolicies.add(stdLoadedPolicy); + } - // Checking with the new updated policies. - if (notification.getLoadedPolicies() != null && !notification.getLoadedPolicies().isEmpty()) { - checkNewUpdatedPolicies(notification, removedPolicies, updatedPolicies); - } - // Checking with New Removed Policies. - if (notification.getRemovedPolicies() != null && !notification.getRemovedPolicies().isEmpty()) { - checkNewRemovedPolicies(notification, removedPolicies, updatedPolicies); - } - notificationRecord.setRemovedPolicies(removedPolicies); - notificationRecord.setLoadedPolicies(updatedPolicies); + // Checking with the new updated policies. + if (notification.getLoadedPolicies() != null && !notification.getLoadedPolicies().isEmpty()) { + checkNewUpdatedPolicies(notification, removedPolicies, updatedPolicies); } - if (!notificationRecord.getLoadedPolicies().isEmpty() && !notificationRecord.getRemovedPolicies() - .isEmpty()) { - notificationRecord.setNotificationType(NotificationType.BOTH); - } else if (!notificationRecord.getLoadedPolicies().isEmpty()) { - notificationRecord.setNotificationType(NotificationType.UPDATE); - } else if (!notificationRecord.getRemovedPolicies().isEmpty()) { - notificationRecord.setNotificationType(NotificationType.REMOVE); + // Checking with New Removed Policies. + if (notification.getRemovedPolicies() != null && !notification.getRemovedPolicies().isEmpty()) { + checkNewRemovedPolicies(notification, removedPolicies, updatedPolicies); } + notificationRecord.setRemovedPolicies(removedPolicies); + notificationRecord.setLoadedPolicies(updatedPolicies); + } + if (!notificationRecord.getLoadedPolicies().isEmpty() + && !notificationRecord.getRemovedPolicies().isEmpty()) { + notificationRecord.setNotificationType(NotificationType.BOTH); + } else if (!notificationRecord.getLoadedPolicies().isEmpty()) { + notificationRecord.setNotificationType(NotificationType.UPDATE); + } else if (!notificationRecord.getRemovedPolicies().isEmpty()) { + notificationRecord.setNotificationType(NotificationType.REMOVE); } } - private static void checkNewUpdatedPolicies(StdPDPNotification notification, HashSet<StdRemovedPolicy> removedPolicies, HashSet<StdLoadedPolicy> updatedPolicies) { + private static void checkNewUpdatedPolicies(StdPDPNotification notification, + HashSet<StdRemovedPolicy> removedPolicies, HashSet<StdLoadedPolicy> updatedPolicies) { for (LoadedPolicy newUpdatedPolicy : notification.getLoadedPolicies()) { // If it was removed earlier then we need to remove from our record Iterator<StdRemovedPolicy> oldRemovedPolicy = removedPolicies.iterator(); @@ -237,25 +251,25 @@ public class NotificationStore { String ver = newUpdatedPolicy.getVersionNo(); while (oldRemovedPolicy.hasNext()) { RemovedPolicy policy = oldRemovedPolicy.next(); - if (policyName.equals(policy.getPolicyName()) - && ver.equals(policy.getVersionNo())) { + if (policyName.equals(policy.getPolicyName()) && ver.equals(policy.getVersionNo())) { oldRemovedPolicy.remove(); } } // If it was previously updated need to Overwrite it to the record. - updatedPolicies.removeIf(policy -> policyName.equals(policy.getPolicyName()) - && ver.equals(policy.getVersionNo())); + updatedPolicies + .removeIf(policy -> policyName.equals(policy.getPolicyName()) && ver.equals(policy.getVersionNo())); - StdLoadedPolicy sUPolicy = new StdLoadedPolicy(); - sUPolicy.setMatches(newUpdatedPolicy.getMatches()); - sUPolicy.setPolicyName(newUpdatedPolicy.getPolicyName()); - sUPolicy.setVersionNo(newUpdatedPolicy.getVersionNo()); - sUPolicy.setUpdateType(newUpdatedPolicy.getUpdateType()); - updatedPolicies.add(sUPolicy); + StdLoadedPolicy stdLoadedPolicy = new StdLoadedPolicy(); + stdLoadedPolicy.setMatches(newUpdatedPolicy.getMatches()); + stdLoadedPolicy.setPolicyName(newUpdatedPolicy.getPolicyName()); + stdLoadedPolicy.setVersionNo(newUpdatedPolicy.getVersionNo()); + stdLoadedPolicy.setUpdateType(newUpdatedPolicy.getUpdateType()); + updatedPolicies.add(stdLoadedPolicy); } } - private static void checkNewRemovedPolicies(StdPDPNotification notification, HashSet<StdRemovedPolicy> removedPolicies, HashSet<StdLoadedPolicy> updatedPolicies) { + private static void checkNewRemovedPolicies(StdPDPNotification notification, + HashSet<StdRemovedPolicy> removedPolicies, HashSet<StdLoadedPolicy> updatedPolicies) { for (RemovedPolicy newRemovedPolicy : notification.getRemovedPolicies()) { // If it was previously removed Overwrite it to the record. Iterator<StdRemovedPolicy> oldRemovedPolicy = removedPolicies.iterator(); @@ -263,19 +277,18 @@ public class NotificationStore { String ver = newRemovedPolicy.getVersionNo(); while (oldRemovedPolicy.hasNext()) { RemovedPolicy policy = oldRemovedPolicy.next(); - if (policyName.equals(policy.getPolicyName()) - && ver.equals(policy.getVersionNo())) { + if (policyName.equals(policy.getPolicyName()) && ver.equals(policy.getVersionNo())) { oldRemovedPolicy.remove(); } } // If it was added earlier then we need to remove from our record. - updatedPolicies.removeIf(policy -> policyName.equals(policy.getPolicyName()) - && ver.equals(policy.getVersionNo())); + updatedPolicies + .removeIf(policy -> policyName.equals(policy.getPolicyName()) && ver.equals(policy.getVersionNo())); - StdRemovedPolicy sRPolicy = new StdRemovedPolicy(); - sRPolicy.setPolicyName(policyName); - sRPolicy.setVersionNo(ver); - removedPolicies.add(sRPolicy); + StdRemovedPolicy stdRemovedPolicy = new StdRemovedPolicy(); + stdRemovedPolicy.setPolicyName(policyName); + stdRemovedPolicy.setVersionNo(ver); + removedPolicies.add(stdRemovedPolicy); } } diff --git a/PolicyEngineUtils/src/main/java/org/onap/policy/std/StdLoadedPolicy.java b/PolicyEngineUtils/src/main/java/org/onap/policy/std/StdLoadedPolicy.java index ebbed2100..4d45ebe4e 100644 --- a/PolicyEngineUtils/src/main/java/org/onap/policy/std/StdLoadedPolicy.java +++ b/PolicyEngineUtils/src/main/java/org/onap/policy/std/StdLoadedPolicy.java @@ -2,14 +2,14 @@ * ============LICENSE_START======================================================= * PolicyEngineUtils * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -25,48 +25,48 @@ import java.util.Map; import org.onap.policy.api.LoadedPolicy; import org.onap.policy.api.UpdateType; -public class StdLoadedPolicy implements LoadedPolicy{ - private String policyName = null; - private String versionNo = null; - private Map<String,String> matches = null; - private UpdateType updateType = null; - - @Override - public String getPolicyName() { - if(policyName!=null && policyName.contains(".xml")){ - return policyName.substring(0, policyName.substring(0, policyName.lastIndexOf('.')).lastIndexOf('.')); - } - return this.policyName; - } - - public void setPolicyName(String policyName) { - this.policyName = policyName; - } - - @Override - public String getVersionNo() { - return this.versionNo; - } - - public void setVersionNo(String versionNo) { - this.versionNo = versionNo; - } - - @Override - public Map<String,String> getMatches() { - return this.matches; - } - - public void setMatches(Map<String,String> matches) { - this.matches = matches; - } +public class StdLoadedPolicy implements LoadedPolicy { + private String policyName = null; + private String versionNo = null; + private Map<String, String> matches = null; + private UpdateType updateType = null; - @Override - public UpdateType getUpdateType() { - return this.updateType; - } - - public void setUpdateType(UpdateType updateType){ - this.updateType = updateType; - } + @Override + public String getPolicyName() { + if (policyName != null && policyName.contains(".xml")) { + return policyName.substring(0, policyName.substring(0, policyName.lastIndexOf('.')).lastIndexOf('.')); + } + return this.policyName; + } + + public void setPolicyName(String policyName) { + this.policyName = policyName; + } + + @Override + public String getVersionNo() { + return this.versionNo; + } + + public void setVersionNo(String versionNo) { + this.versionNo = versionNo; + } + + @Override + public Map<String, String> getMatches() { + return this.matches; + } + + public void setMatches(Map<String, String> matches) { + this.matches = matches; + } + + @Override + public UpdateType getUpdateType() { + return this.updateType; + } + + public void setUpdateType(UpdateType updateType) { + this.updateType = updateType; + } } diff --git a/PolicyEngineUtils/src/main/java/org/onap/policy/std/StdPDPNotification.java b/PolicyEngineUtils/src/main/java/org/onap/policy/std/StdPDPNotification.java index 54b9bb0f6..b863fbba5 100644 --- a/PolicyEngineUtils/src/main/java/org/onap/policy/std/StdPDPNotification.java +++ b/PolicyEngineUtils/src/main/java/org/onap/policy/std/StdPDPNotification.java @@ -2,14 +2,14 @@ * ============LICENSE_START======================================================= * PolicyEngineUtils * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -23,6 +23,7 @@ package org.onap.policy.std; import java.util.Collection; import java.util.Collections; import java.util.HashSet; + import org.onap.policy.api.LoadedPolicy; import org.onap.policy.api.NotificationType; import org.onap.policy.api.PDPNotification; diff --git a/PolicyEngineUtils/src/main/java/org/onap/policy/std/StdRemovedPolicy.java b/PolicyEngineUtils/src/main/java/org/onap/policy/std/StdRemovedPolicy.java index 04ec6981b..1a7be3d3c 100644 --- a/PolicyEngineUtils/src/main/java/org/onap/policy/std/StdRemovedPolicy.java +++ b/PolicyEngineUtils/src/main/java/org/onap/policy/std/StdRemovedPolicy.java @@ -2,14 +2,14 @@ * ============LICENSE_START======================================================= * PolicyEngineUtils * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -22,28 +22,28 @@ package org.onap.policy.std; import org.onap.policy.api.RemovedPolicy; -public class StdRemovedPolicy implements RemovedPolicy{ - private String policyName = null; - private String versionNo = null; - - @Override - public String getVersionNo() { - return this.versionNo; - } - - public void setVersionNo(String versionNo) { - this.versionNo = versionNo; - } - - @Override - public String getPolicyName() { - if(policyName!=null && policyName.contains(".xml")){ - return policyName.substring(0, policyName.substring(0, policyName.lastIndexOf('.')).lastIndexOf('.')); - } - return this.policyName; - } - - public void setPolicyName(String policyName) { - this.policyName = policyName; - } -} +public class StdRemovedPolicy implements RemovedPolicy { + private String policyName = null; + private String versionNo = null; + + @Override + public String getVersionNo() { + return this.versionNo; + } + + public void setVersionNo(String versionNo) { + this.versionNo = versionNo; + } + + @Override + public String getPolicyName() { + if (policyName != null && policyName.contains(".xml")) { + return policyName.substring(0, policyName.substring(0, policyName.lastIndexOf('.')).lastIndexOf('.')); + } + return this.policyName; + } + + public void setPolicyName(String policyName) { + this.policyName = policyName; + } +} diff --git a/PolicyEngineUtils/src/main/java/org/onap/policy/utils/AAFEnvironment.java b/PolicyEngineUtils/src/main/java/org/onap/policy/utils/AAFEnvironment.java index 1fccabcbd..e1849f06b 100644 --- a/PolicyEngineUtils/src/main/java/org/onap/policy/utils/AAFEnvironment.java +++ b/PolicyEngineUtils/src/main/java/org/onap/policy/utils/AAFEnvironment.java @@ -2,14 +2,14 @@ * ============LICENSE_START======================================================= * PolicyEngineUtils * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -17,13 +17,12 @@ * limitations under the License. * ============LICENSE_END========================================================= */ + package org.onap.policy.utils; public enum AAFEnvironment { - /* - * Enumeration for the Resource Node Naming. Add here if required. - */ - DEVL, - TEST, - PROD + /* + * Enumeration for the Resource Node Naming. Add here if required. + */ + DEVL, TEST, PROD } diff --git a/PolicyEngineUtils/src/main/java/org/onap/policy/utils/AAFPolicyClient.java b/PolicyEngineUtils/src/main/java/org/onap/policy/utils/AAFPolicyClient.java index e560d0ecc..ab87bc093 100644 --- a/PolicyEngineUtils/src/main/java/org/onap/policy/utils/AAFPolicyClient.java +++ b/PolicyEngineUtils/src/main/java/org/onap/policy/utils/AAFPolicyClient.java @@ -2,14 +2,14 @@ * ============LICENSE_START======================================================= * PolicyEngineUtils * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -17,6 +17,7 @@ * limitations under the License. * ============LICENSE_END========================================================= */ + package org.onap.policy.utils; import java.lang.reflect.Method; @@ -24,17 +25,22 @@ import java.util.Properties; public interface AAFPolicyClient { - public boolean checkAuth(String userName, String pass); - public void updateProperties(Properties properties) throws AAFPolicyException; - public boolean checkAuthPerm(String mechID, String pass, String type, String instance, String action); - public boolean checkPerm(String userName, String pass, String type, String instance, String action); - public static AAFPolicyClient getInstance(Properties properties) throws AAFPolicyException{ - try { - Class<?> aafPolicyClient = Class.forName(properties.getProperty("aafClient.impl.className", AAFPolicyClientImpl.class.getName())); - Method method = aafPolicyClient.getMethod("getInstance", Properties.class); - return (AAFPolicyClient) method.invoke(null, properties); - } catch (Exception e) { - throw new AAFPolicyException(e); - } - } + public boolean checkAuth(String userName, String pass); + + public void updateProperties(Properties properties) throws AAFPolicyException; + + public boolean checkAuthPerm(String mechID, String pass, String type, String instance, String action); + + public boolean checkPerm(String userName, String pass, String type, String instance, String action); + + public static AAFPolicyClient getInstance(Properties properties) throws AAFPolicyException { + try { + Class<?> aafPolicyClient = Class + .forName(properties.getProperty("aafClient.impl.className", AAFPolicyClientImpl.class.getName())); + Method method = aafPolicyClient.getMethod("getInstance", Properties.class); + return (AAFPolicyClient) method.invoke(null, properties); + } catch (Exception e) { + throw new AAFPolicyException(e); + } + } } diff --git a/PolicyEngineUtils/src/main/java/org/onap/policy/utils/AAFPolicyClientImpl.java b/PolicyEngineUtils/src/main/java/org/onap/policy/utils/AAFPolicyClientImpl.java index 1513507ca..fcdc7e9f8 100644 --- a/PolicyEngineUtils/src/main/java/org/onap/policy/utils/AAFPolicyClientImpl.java +++ b/PolicyEngineUtils/src/main/java/org/onap/policy/utils/AAFPolicyClientImpl.java @@ -2,15 +2,15 @@ * ============LICENSE_START======================================================= * PolicyEngineUtils * ================================================================================ - * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved. * Modified Copyright (C) 2018 Samsung Electronics Co., Ltd. * ================================================================================ * 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. @@ -18,6 +18,7 @@ * limitations under the License. * ============LICENSE_END========================================================= */ + package org.onap.policy.utils; import java.security.Principal; @@ -38,7 +39,7 @@ import org.onap.aaf.cadi.principal.UnAuthPrincipal; /** * AAF Client: Generic AAF Client implementation to connect to AAF Resources to * validate permissions and authorization. - * + * */ public class AAFPolicyClientImpl implements AAFPolicyClient { private static Logger logger = Logger.getLogger(AAFPolicyClientImpl.class.getName()); @@ -60,10 +61,10 @@ public class AAFPolicyClientImpl implements AAFPolicyClient { * CLIENT_ID, CLIENT_KEY and ENVIRONMENT * * @param properties - * Properties with CLIENT_ID, CLIENT_KEY and ENVIRONMENT + * Properties with CLIENT_ID, CLIENT_KEY and ENVIRONMENT * @return AAFClient instance. * @throws AAFPolicyException - * Exceptions. + * Exceptions. */ public static synchronized AAFPolicyClientImpl getInstance(Properties properties) throws AAFPolicyException { if (instance == null) { @@ -83,16 +84,16 @@ public class AAFPolicyClientImpl implements AAFPolicyClient { logger.error("Required Property value is missing : " + ENVIRONMENT); throw new AAFPolicyException("Required Property value is missing : " + ENVIRONMENT); } - setUpAAF(); + setUpAaf(); } /** * Updates the Properties file in case if required. * * @param properties - * Properties with CLIENT_ID, CLIENT_KEY and ENVIRONMENT + * Properties with CLIENT_ID, CLIENT_KEY and ENVIRONMENT * @throws AAFPolicyException - * exceptions if any. + * exceptions if any. */ @Override public void updateProperties(Properties properties) throws AAFPolicyException { @@ -103,15 +104,15 @@ public class AAFPolicyClientImpl implements AAFPolicyClient { * Checks the Authentication and Permissions for the given values. * * @param userName - * Username must be registered under the Name space. + * Username must be registered under the Name space. * @param pass - * Password pertaining to the Username. + * Password pertaining to the Username. * @param type - * Permissions Type. + * Permissions Type. * @param instance - * Permissions Instance. + * Permissions Instance. * @param action - * Permissions Action. + * Permissions Action. * @return */ @Override @@ -123,9 +124,9 @@ public class AAFPolicyClientImpl implements AAFPolicyClient { * Checks the Authentication of the UserName and Password Given. * * @param userName - * UserName + * UserName * @param pass - * Password. + * Password. * @return True or False. */ @Override @@ -134,17 +135,18 @@ public class AAFPolicyClientImpl implements AAFPolicyClient { return false; } try { - int i = 0; + int index = 0; do { String aafAuthResponse = aafAuthn.validate(userName, pass); - if (aafAuthResponse==null) { + if (aafAuthResponse == null) { return true; } else { - logger.warn("User, " + userName + ", failed to authenticate with AAF. \n" - + "AAF Response is " + aafAuthResponse); + logger.warn("User, " + userName + ", failed to authenticate with AAF. \n" + "AAF Response is " + + aafAuthResponse); } - i++; - } while (i < 2); + index++; + } + while (index < 2); } catch (Exception e) { logger.error(e.getMessage() + e); } @@ -157,27 +159,27 @@ public class AAFPolicyClientImpl implements AAFPolicyClient { * Action. * * @param userName - * UserName + * UserName * @param pass - * Password. + * Password. * @param type - * Permissions Type. + * Permissions Type. * @param instance - * Permissions Instance. + * Permissions Instance. * @param action - * Permissions Action. + * Permissions Action. * @return True or False. */ @Override public boolean checkPerm(String userName, String pass, String type, String instance, String action) { - int i = 0; + int index = 0; Boolean result = false; do { if (aafCon != null && aafLurPerm != null) { try { aafCon.basicAuth(userName, pass); - AAFPermission perm = new AAFPermission(cadiprops.getProperty("policy.aaf.namespace"), type, - instance, action); + AAFPermission perm = + new AAFPermission(cadiprops.getProperty("policy.aaf.namespace"), type, instance, action); final Principal p = new UnAuthPrincipal(userName); result = aafLurPerm.fish(p, perm); } catch (CadiException e) { @@ -185,12 +187,13 @@ public class AAFPolicyClientImpl implements AAFPolicyClient { aafLurPerm.destroy(); } } - i++; - } while (i < 2 && !result); // Try once more to check if this can be passed. AAF has some issues. + index++; + } + while (index < 2 && !result); // Try once more to check if this can be passed. AAF has some issues. return result; } - private static boolean setUpAAF() { + private static boolean setUpAaf() { try { aafCon = new AAFConHttp(access, new PropertyLocator("https://" + cadiprops.getProperty("aaf_fqdn") + ":8100")); diff --git a/PolicyEngineUtils/src/main/java/org/onap/policy/utils/AAFPolicyException.java b/PolicyEngineUtils/src/main/java/org/onap/policy/utils/AAFPolicyException.java index b67b02243..c64c3c4d2 100644 --- a/PolicyEngineUtils/src/main/java/org/onap/policy/utils/AAFPolicyException.java +++ b/PolicyEngineUtils/src/main/java/org/onap/policy/utils/AAFPolicyException.java @@ -2,14 +2,14 @@ * ============LICENSE_START======================================================= * PolicyEngineUtils * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -21,30 +21,30 @@ package org.onap.policy.utils; /** - * AAFPolicyException to show exception messages. - * + * AAFPolicyException to show exception messages. + * */ public class AAFPolicyException extends Exception { - private static final long serialVersionUID = 1910606668038621L; - - public AAFPolicyException() { - // Empty constructor. - // Nothing needs to be initialized in this exception class. - } - - public AAFPolicyException(String message) { - super(message); - } - - public AAFPolicyException(Throwable cause){ - super(cause); - } - - public AAFPolicyException(String message, Throwable cause) { - super(message, cause); - } - - public AAFPolicyException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { - super(message, cause, enableSuppression, writableStackTrace); - } + private static final long serialVersionUID = 1910606668038621L; + + public AAFPolicyException() { + // Empty constructor. + // Nothing needs to be initialized in this exception class. + } + + public AAFPolicyException(String message) { + super(message); + } + + public AAFPolicyException(Throwable cause) { + super(cause); + } + + public AAFPolicyException(String message, Throwable cause) { + super(message, cause); + } + + public AAFPolicyException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } } diff --git a/PolicyEngineUtils/src/main/java/org/onap/policy/utils/BackUpHandler.java b/PolicyEngineUtils/src/main/java/org/onap/policy/utils/BackUpHandler.java index 4dfc64c39..09cfe7832 100644 --- a/PolicyEngineUtils/src/main/java/org/onap/policy/utils/BackUpHandler.java +++ b/PolicyEngineUtils/src/main/java/org/onap/policy/utils/BackUpHandler.java @@ -2,14 +2,14 @@ * ============LICENSE_START======================================================= * PolicyEngineUtils * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -23,20 +23,24 @@ package org.onap.policy.utils; import org.onap.policy.api.NotificationHandler; import org.onap.policy.api.PDPNotification; -public interface BackUpHandler extends NotificationHandler{ - - /** - * <code>notificationReceived</code> method will be triggered automatically whenever a Notification is received by the PEP. - * - * @param notification <code>PDPNotification</code> of {@link org.onap.policy.api.PDPNotification} is the object that has information of the notification. - */ - @Override - public void notificationReceived(PDPNotification notification); - - /** - * <code>runOnNotification</code> method will be triggered automatically whenever a Notification is received by the PEP This needs to be the main implementation. - * - * @param notification <code>PDPNotification</code> of {@link org.onap.policy.api.PDPNotification} is the object that has information of the notification. - */ - public void runOnNotification(PDPNotification notification); +public interface BackUpHandler extends NotificationHandler { + + /** + * <code>notificationReceived</code> method will be triggered automatically whenever a Notification is received by + * the PEP. + * + * @param notification <code>PDPNotification</code> of {@link org.onap.policy.api.PDPNotification} is the object + * that has information of the notification. + */ + @Override + public void notificationReceived(PDPNotification notification); + + /** + * <code>runOnNotification</code> method will be triggered automatically whenever a Notification is received by the + * PEP This needs to be the main implementation. + * + * @param notification <code>PDPNotification</code> of {@link org.onap.policy.api.PDPNotification} is the object + * that has information of the notification. + */ + public void runOnNotification(PDPNotification notification); } diff --git a/PolicyEngineUtils/src/main/java/org/onap/policy/utils/BackUpMonitor.java b/PolicyEngineUtils/src/main/java/org/onap/policy/utils/BackUpMonitor.java index 4f8a82100..c82e6968f 100644 --- a/PolicyEngineUtils/src/main/java/org/onap/policy/utils/BackUpMonitor.java +++ b/PolicyEngineUtils/src/main/java/org/onap/policy/utils/BackUpMonitor.java @@ -2,15 +2,15 @@ * ============LICENSE_START======================================================= * PolicyEngineUtils * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved. * Modified Copyright (C) 2018 Samsung Electronics Co., Ltd. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -21,6 +21,13 @@ package org.onap.policy.utils; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.github.fge.jackson.JsonLoader; +import com.github.fge.jsonpatch.JsonPatch; +import com.github.fge.jsonpatch.JsonPatchException; +import com.github.fge.jsonpatch.diff.JsonDiff; + import java.io.IOException; import java.util.ArrayList; import java.util.Date; @@ -41,16 +48,9 @@ import org.onap.policy.jpa.BackUpMonitorEntity; import org.onap.policy.std.NotificationStore; import org.onap.policy.std.StdPDPNotification; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.JsonNode; -import com.github.fge.jackson.JsonLoader; -import com.github.fge.jsonpatch.JsonPatch; -import com.github.fge.jsonpatch.JsonPatchException; -import com.github.fge.jsonpatch.diff.JsonDiff; - /** * BackUp Monitor checks Backup Status with the Database and maintains Redundancy for Gateway Applications. - * + * */ public class BackUpMonitor { private static final Logger LOGGER = Logger.getLogger(BackUpMonitor.class.getName()); @@ -58,7 +58,7 @@ public class BackUpMonitor { private static final String PING_INTERVAL = "ping_interval"; private static final String MASTER = "MASTER"; private static final String SLAVE = "SLAVE"; - + private static BackUpMonitor instance = null; private static String resourceName = null; private static String resourceNodeName = null; @@ -85,7 +85,7 @@ public class BackUpMonitor { throws BackUpMonitorException { init(resourceName, resourceNodeName, handler); // Create Persistence Entity - if(!properties.containsKey(PersistenceUnitProperties.ECLIPSELINK_PERSISTENCE_XML)){ + if (!properties.containsKey(PersistenceUnitProperties.ECLIPSELINK_PERSISTENCE_XML)) { properties.setProperty(PersistenceUnitProperties.ECLIPSELINK_PERSISTENCE_XML, "META-INF/persistencePU.xml"); } emf = Persistence.createEntityManagerFactory("PolicyEngineUtils", properties); @@ -100,15 +100,20 @@ public class BackUpMonitor { // Start thread. startThread(new BMonitor()); } - - private static void startThread(BMonitor bMonitor) { - t = new Thread(bMonitor); + + private static void startThread(BMonitor monitor) { + t = new Thread(monitor); t.start(); } - public static void stop() throws InterruptedException{ + /** + * Stop. + * + * @throws InterruptedException InterruptedException + */ + public static void stop() throws InterruptedException { stopFlag = true; - if(t!=null){ + if (t != null) { t.interrupt(); t.join(); } @@ -124,13 +129,13 @@ public class BackUpMonitor { /** * Gets the BackUpMonitor Instance if given proper resourceName and properties. Else returns null. - * + * * @param resourceNodeName - * String format of the Resource Node to which the resource Belongs to. + * String format of the Resource Node to which the resource Belongs to. * @param resourceName - * String format of the ResourceName. This needs to be Unique. + * String format of the ResourceName. This needs to be Unique. * @param properties - * Properties format of the properties file. + * Properties format of the properties file. * @return BackUpMonitor instance. */ public static synchronized BackUpMonitor getInstance(String resourceNodeName, String resourceName, @@ -164,8 +169,7 @@ public class BackUpMonitor { LOGGER.error("javax.persistence.jdbc.user property is empty"); return false; } - if (properties.getProperty(PING_INTERVAL) == null - || "".equals(properties.getProperty(PING_INTERVAL).trim())) { + if (properties.getProperty(PING_INTERVAL) == null || "".equals(properties.getProperty(PING_INTERVAL).trim())) { LOGGER.info("ping_interval property not specified. Taking default value"); } else { try { @@ -186,8 +190,8 @@ public class BackUpMonitor { } /** - * Gets the Boolean value of Master(True) or Slave mode (False) - * + * Gets the Boolean value of Master(True) or Slave mode (False). + * * @return Boolean flag which if True means that the operation needs to be performed(Master mode) or if false the * operation is in slave mode. */ @@ -214,17 +218,17 @@ public class BackUpMonitor { } // Set Master - private static BackUpMonitorEntity setMaster(BackUpMonitorEntity bMEntity) { - bMEntity.setFlag(MASTER); + private static BackUpMonitorEntity setMaster(BackUpMonitorEntity entity) { + entity.setFlag(MASTER); setFlag(true); - return bMEntity; + return entity; } // Set Slave - private static BackUpMonitorEntity setSlave(BackUpMonitorEntity bMEntity) { - bMEntity.setFlag(SLAVE); + private static BackUpMonitorEntity setSlave(BackUpMonitorEntity entity) { + entity.setFlag(SLAVE); setFlag(false); - return bMEntity; + return entity; } // Check Database and set the Flag. @@ -244,45 +248,45 @@ public class BackUpMonitor { } else if (resourceNodeName.equals(ResourceNode.BRMS.toString())) { query.setParameter("nn", ResourceNode.BRMS.toString()); } - List<?> bMList = query.getResultList(); - if (bMList.isEmpty()) { + List<?> entityList = query.getResultList(); + if (entityList.isEmpty()) { // This is New. create an entry as Master. LOGGER.info("Adding resource " + resourceName + " to Database"); - BackUpMonitorEntity bMEntity = new BackUpMonitorEntity(); - bMEntity.setResourceNodeName(resourceNodeName); - bMEntity.setResourceName(resourceName); - bMEntity = setMaster(bMEntity); - bMEntity.setTimeStamp(new Date()); - em.persist(bMEntity); + BackUpMonitorEntity entity = new BackUpMonitorEntity(); + entity.setResourceNodeName(resourceNodeName); + entity.setResourceName(resourceName); + entity = setMaster(entity); + entity.setTimeStamp(new Date()); + em.persist(entity); em.flush(); } else { - checkOtherMaster(bMList); + checkOtherMaster(entityList); } et.commit(); } catch (Exception e) { LOGGER.error("failed Database Operation " + e.getMessage(), e); - if (et!=null && et.isActive()) { + if (et != null && et.isActive()) { et.rollback(); } throw new BackUpMonitorException(e); } } - private void checkOtherMaster(List<?> bMList) { + private void checkOtherMaster(List<?> entityList) { // Check for other Master(s) ArrayList<BackUpMonitorEntity> masterEntities = new ArrayList<>(); // Check for self. BackUpMonitorEntity selfEntity = null; // Check backup monitor entities. - for (int i = 0; i < bMList.size(); i++) { - BackUpMonitorEntity bMEntity = (BackUpMonitorEntity) bMList.get(i); + for (Object entity : entityList) { + BackUpMonitorEntity backupEntity = (BackUpMonitorEntity) entity; LOGGER.info("Refreshing Entity. "); - em.refresh(bMEntity); - if (bMEntity.getFlag().equalsIgnoreCase(MASTER)) { - masterEntities.add(bMEntity); + em.refresh(backupEntity); + if (backupEntity.getFlag().equalsIgnoreCase(MASTER)) { + masterEntities.add(backupEntity); } - if (bMEntity.getResourceName().equals(resourceName)) { - selfEntity = bMEntity; + if (backupEntity.getResourceName().equals(resourceName)) { + selfEntity = backupEntity; } } if (selfEntity != null) { @@ -338,8 +342,7 @@ public class BackUpMonitor { if (masterEntities.size() == 1) { singleMasterEntity(masterEntities, selfEntity); } else { - LOGGER.error( - "Backup Monitor Issue, Masters out of sync, This will be fixed in next interval."); + LOGGER.error("Backup Monitor Issue, Masters out of sync, This will be fixed in next interval."); } } } @@ -365,7 +368,6 @@ public class BackUpMonitor { em.persist(masterEntity); em.flush(); // Lets Become Master. - selfEntity = setMaster(selfEntity); LOGGER.info("Changing " + resourceName + " from slave to Master Mode"); selfEntity.setTimeStamp(new Date()); selfEntity.setNotificationRecord(notificationRecord); @@ -383,8 +385,7 @@ public class BackUpMonitor { if (currentEntity.getFlag().equalsIgnoreCase(MASTER)) { if (masterEntity == null) { masterEntity = currentEntity; - } else if (currentEntity.getTimeStamp().getTime() > masterEntity.getTimeStamp() - .getTime()) { + } else if (currentEntity.getTimeStamp().getTime() > masterEntity.getTimeStamp().getTime()) { // False Master, Update master to slave and take currentMaster as Master. masterEntity.setFlag(SLAVE); masterEntity.setTimeStamp(new Date()); @@ -441,10 +442,8 @@ public class BackUpMonitor { /** * Updates Notification in the Database while Performing the health check. - * - * @param notification - * String format of notification record to store in the Database. - * @throws Exception + * + * @throws BackUpMonitorException BackUpMonitorException */ public synchronized void updateNotification() throws BackUpMonitorException { checkDataBase(); @@ -454,8 +453,8 @@ public class BackUpMonitor { private static void callHandler(String notification) { if (handler != null) { try { - PDPNotification notificationObject = PolicyUtils.jsonStringToObject(notification, - StdPDPNotification.class); + PDPNotification notificationObject = + PolicyUtils.jsonStringToObject(notification, StdPDPNotification.class); if (notificationObject.getNotificationType() != null) { LOGGER.info("Performing Patched notification "); performPatchNotification(notificationObject); diff --git a/PolicyEngineUtils/src/main/java/org/onap/policy/utils/BackUpMonitorException.java b/PolicyEngineUtils/src/main/java/org/onap/policy/utils/BackUpMonitorException.java index 4f7883800..60dd5e569 100644 --- a/PolicyEngineUtils/src/main/java/org/onap/policy/utils/BackUpMonitorException.java +++ b/PolicyEngineUtils/src/main/java/org/onap/policy/utils/BackUpMonitorException.java @@ -2,14 +2,14 @@ * ============LICENSE_START======================================================= * PolicyEngineUtils * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -20,27 +20,28 @@ package org.onap.policy.utils; -public class BackUpMonitorException extends Exception{ +public class BackUpMonitorException extends Exception { private static final long serialVersionUID = 6778134503685443473L; - + public BackUpMonitorException() { - // Nothing for this constructor to initialize - // in an exception class. + // Nothing for this constructor to initialize + // in an exception class. } - + public BackUpMonitorException(String message) { super(message); } - - public BackUpMonitorException(Throwable cause){ + + public BackUpMonitorException(Throwable cause) { super(cause); } - + public BackUpMonitorException(String message, Throwable cause) { super(message, cause); } - - public BackUpMonitorException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + + public BackUpMonitorException(String message, Throwable cause, boolean enableSuppression, + boolean writableStackTrace) { super(message, cause, enableSuppression, writableStackTrace); } } diff --git a/PolicyEngineUtils/src/main/java/org/onap/policy/utils/BusConsumer.java b/PolicyEngineUtils/src/main/java/org/onap/policy/utils/BusConsumer.java index c3fe9023f..b64d6143e 100644 --- a/PolicyEngineUtils/src/main/java/org/onap/policy/utils/BusConsumer.java +++ b/PolicyEngineUtils/src/main/java/org/onap/policy/utils/BusConsumer.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * PolicyEngineUtils * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved. * Modifications copyright (c) 2019 Nokia * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -24,6 +24,7 @@ package org.onap.policy.utils; import java.net.MalformedURLException; import java.util.List; import java.util.Properties; + import org.onap.dmaap.mr.client.MRClient.MRApiException; import org.onap.dmaap.mr.client.impl.MRConsumerImpl; import org.onap.dmaap.mr.test.clients.ProtocolTypeConstants; @@ -31,7 +32,7 @@ import org.onap.dmaap.mr.test.clients.ProtocolTypeConstants; public interface BusConsumer { /** - * fetch messages + * fetch messages. * * @return list of messages * @throws MRApiException when error encountered by underlying libraries @@ -39,22 +40,22 @@ public interface BusConsumer { Iterable<String> fetch() throws MRApiException; /** - * close underlying library consumer + * close underlying library consumer. */ void close(); /** - * MR based consumer + * MR based consumer. */ class DmaapConsumerWrapper implements BusConsumer { /** - * MR Consumer + * MR Consumer. */ protected MRConsumerImpl consumer; /** - * MR Consumer Wrapper + * MR Consumer Wrapper. * * @param servers messaging bus hosts * @param topic topic @@ -67,15 +68,12 @@ public interface BusConsumer { * @param fetchTimeout Fetch Timeout * @param fetchLimit Fetch Limit */ - public DmaapConsumerWrapper(List<String> servers, String topic, - String aafLogin, String aafPassword, - String consumerGroup, String consumerInstance, - int fetchTimeout, int fetchLimit) throws MalformedURLException { + public DmaapConsumerWrapper(List<String> servers, String topic, String aafLogin, String aafPassword, + String consumerGroup, String consumerInstance, int fetchTimeout, int fetchLimit) + throws MalformedURLException { - this(new MRConsumerImpl(servers, topic, - consumerGroup, consumerInstance, - fetchTimeout, fetchLimit, - null, aafLogin, aafPassword), aafLogin, aafPassword, servers.get(0)); + this(new MRConsumerImpl(servers, topic, consumerGroup, consumerInstance, fetchTimeout, fetchLimit, null, + aafLogin, aafPassword), aafLogin, aafPassword, servers.get(0)); } @@ -114,14 +112,11 @@ public interface BusConsumer { @Override public String toString() { StringBuilder builder = new StringBuilder(); - builder. - append("DmaapConsumerWrapper ["). - append("consumer.getAuthDate()=").append(consumer.getAuthDate()). - append(", consumer.getAuthKey()=").append(consumer.getAuthKey()). - append(", consumer.getHost()=").append(consumer.getHost()). - append(", consumer.getProtocolFlag()=").append(consumer.getProtocolFlag()). - append(", consumer.getUsername()=").append(consumer.getUsername()). - append("]"); + builder.append("DmaapConsumerWrapper [").append("consumer.getAuthDate()=").append(consumer.getAuthDate()) + .append(", consumer.getAuthKey()=").append(consumer.getAuthKey()).append(", consumer.getHost()=") + .append(consumer.getHost()).append(", consumer.getProtocolFlag()=") + .append(consumer.getProtocolFlag()).append(", consumer.getUsername()=") + .append(consumer.getUsername()).append("]"); return builder.toString(); } } diff --git a/PolicyEngineUtils/src/main/java/org/onap/policy/utils/BusPublisher.java b/PolicyEngineUtils/src/main/java/org/onap/policy/utils/BusPublisher.java index 745213529..f5c792caf 100644 --- a/PolicyEngineUtils/src/main/java/org/onap/policy/utils/BusPublisher.java +++ b/PolicyEngineUtils/src/main/java/org/onap/policy/utils/BusPublisher.java @@ -2,14 +2,14 @@ * ============LICENSE_START======================================================= * PolicyEngineUtils * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -24,6 +24,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Properties; import java.util.concurrent.TimeUnit; + import org.onap.dmaap.mr.client.impl.MRSimplerBatchPublisher; import org.onap.dmaap.mr.test.clients.ProtocolTypeConstants; import org.onap.policy.common.logging.eelf.PolicyLogger; @@ -31,109 +32,109 @@ import org.onap.policy.common.logging.flexlogger.FlexLogger; import org.onap.policy.common.logging.flexlogger.Logger; public interface BusPublisher { - - /** - * sends a message - * - * @param partition id - * @param message the message - * @return true if success, false otherwise - * @throws IllegalArgumentException if no message provided - */ - public boolean send(String partitionId, String message); - - /** - * closes the publisher - */ - public void close(); - - /** - * DmaapClient library wrapper - */ - public static class DmaapPublisherWrapper implements BusPublisher { - private static Logger logger = FlexLogger.getLogger(DmaapPublisherWrapper.class); - /** - * MR based Publisher - */ - protected MRSimplerBatchPublisher publisher; - - public DmaapPublisherWrapper(List<String> servers, String topic, - String aafLogin, - String aafPassword) { - - ArrayList<String> dmaapServers = new ArrayList<>(); - for (String server: servers) { - dmaapServers.add(server + ":3904"); - } - - this.publisher = - new MRSimplerBatchPublisher.Builder(). - againstUrls(dmaapServers). - onTopic(topic). - build(); - - this.publisher.setProtocolFlag(ProtocolTypeConstants.AAF_AUTH.getValue()); - - this.publisher.setUsername(aafLogin); - this.publisher.setPassword(aafPassword); - - Properties props = new Properties(); - props.setProperty("Protocol", "http"); - props.setProperty("contenttype", "application/json"); - - this.publisher.setProps(props); - - this.publisher.setHost(servers.get(0)); - - if (PolicyLogger.isInfoEnabled()) - PolicyLogger.info(DmaapPublisherWrapper.class.getName(), - "CREATION: " + this); - } - - /** - * {@inheritDoc} - */ - @Override - public void close() { - if (logger.isInfoEnabled()) - logger.info(DmaapPublisherWrapper.class.getName()+ - "CREATION: " + this); - - try { - this.publisher.close(1, TimeUnit.SECONDS); - } catch (Exception e) { - logger.warn(DmaapPublisherWrapper.class.getName()+ - "CLOSE: " + this + " because of " + - e.getMessage(), e); - } - } - - /** - * {@inheritDoc} - */ - @Override - public boolean send(String partitionId, String message){ - if (message == null) - throw new IllegalArgumentException("No message provided"); - - this.publisher.send(partitionId, message); - return true; - - } - - @Override - public String toString() { - StringBuilder builder = new StringBuilder(); - builder.append("DmaapPublisherWrapper ["). - append("publisher.getAuthDate()=").append(publisher.getAuthDate()). - append(", publisher.getAuthKey()=").append(publisher.getAuthKey()). - append(", publisher.getHost()=").append(publisher.getHost()). - append(", publisher.getProtocolFlag()=").append(publisher.getProtocolFlag()). - append(", publisher.getUsername()=").append(publisher.getUsername()). - append(", publisher.getPendingMessageCount()=").append(publisher.getPendingMessageCount()). - append("]"); - return builder.toString(); - } - } + + /** + * sends a message + * . + * @param partitionId id + * @param message the message + * @return true if success, false otherwise + * @throws IllegalArgumentException if no message provided + */ + public boolean send(String partitionId, String message); + + /** + * closes the publisher. + */ + public void close(); + + /** + * DmaapClient library wrapper. + */ + public static class DmaapPublisherWrapper implements BusPublisher { + private static Logger logger = FlexLogger.getLogger(DmaapPublisherWrapper.class); + /** + * MR based Publisher. + */ + protected MRSimplerBatchPublisher publisher; + + /** + * DmaapPublisherWrapper constructor. + * + * @param servers list of servers + * @param topic topic + * @param aafLogin login + * @param aafPassword password + */ + public DmaapPublisherWrapper(List<String> servers, String topic, String aafLogin, String aafPassword) { + + ArrayList<String> dmaapServers = new ArrayList<>(); + for (String server : servers) { + dmaapServers.add(server + ":3904"); + } + + this.publisher = new MRSimplerBatchPublisher.Builder().againstUrls(dmaapServers).onTopic(topic).build(); + + this.publisher.setProtocolFlag(ProtocolTypeConstants.AAF_AUTH.getValue()); + + this.publisher.setUsername(aafLogin); + this.publisher.setPassword(aafPassword); + + Properties props = new Properties(); + props.setProperty("Protocol", "http"); + props.setProperty("contenttype", "application/json"); + + this.publisher.setProps(props); + + this.publisher.setHost(servers.get(0)); + + if (PolicyLogger.isInfoEnabled()) { + PolicyLogger.info(DmaapPublisherWrapper.class.getName(), "CREATION: " + this); + } + } + + /** + * {@inheritDoc} + */ + @Override + public void close() { + if (logger.isInfoEnabled()) { + logger.info(DmaapPublisherWrapper.class.getName() + "CREATION: " + this); + } + + try { + this.publisher.close(1, TimeUnit.SECONDS); + } catch (Exception e) { + logger.warn(DmaapPublisherWrapper.class.getName() + "CLOSE: " + this + " because of " + e.getMessage(), + e); + } + } + + /** + * {@inheritDoc} + */ + @Override + public boolean send(String partitionId, String message) { + if (message == null) { + throw new IllegalArgumentException("No message provided"); + } + + this.publisher.send(partitionId, message); + return true; + + } + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append("DmaapPublisherWrapper [").append("publisher.getAuthDate()=").append(publisher.getAuthDate()) + .append(", publisher.getAuthKey()=").append(publisher.getAuthKey()).append(", publisher.getHost()=") + .append(publisher.getHost()).append(", publisher.getProtocolFlag()=") + .append(publisher.getProtocolFlag()).append(", publisher.getUsername()=") + .append(publisher.getUsername()).append(", publisher.getPendingMessageCount()=") + .append(publisher.getPendingMessageCount()).append("]"); + return builder.toString(); + } + } } diff --git a/PolicyEngineUtils/src/main/java/org/onap/policy/utils/PeCryptoUtils.java b/PolicyEngineUtils/src/main/java/org/onap/policy/utils/PeCryptoUtils.java index 9863f03ad..2ffdae159 100644 --- a/PolicyEngineUtils/src/main/java/org/onap/policy/utils/PeCryptoUtils.java +++ b/PolicyEngineUtils/src/main/java/org/onap/policy/utils/PeCryptoUtils.java @@ -20,25 +20,22 @@ package org.onap.policy.utils; -import java.security.GeneralSecurityException; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; + import org.apache.commons.lang3.StringUtils; -import org.onap.policy.common.logging.flexlogger.FlexLogger; -import org.onap.policy.common.logging.flexlogger.Logger; import org.onap.policy.common.utils.security.CryptoUtils; public class PeCryptoUtils { - private static Logger logger = FlexLogger.getLogger(PeCryptoUtils.class); private static final String PROP_AES_KEY = "org.onap.policy.encryption.aes.key"; private static CryptoUtils cryptoUtils = null; private static String secretKey = System.getenv("AES_ENCRYPTION_KEY"); private static final Map<String, String> decryptCache = new ConcurrentHashMap<>(); private static final Map<String, String> encryptCache = new ConcurrentHashMap<>(); - - private PeCryptoUtils() {} + private PeCryptoUtils() { + } /** * Inits the aes key. @@ -65,19 +62,10 @@ public class PeCryptoUtils { * @return The encrypted String */ public static String encrypt(String value) { - if (cryptoUtils == null || StringUtils.isBlank(value)) { return value; } - - return encryptCache.computeIfAbsent(value, k -> { - try { - return cryptoUtils.encrypt(k); - } catch (GeneralSecurityException e) { - logger.error("Could not decrypt value - exception: ", e); - return value; - } - }); + return encryptCache.computeIfAbsent(value, cryptoUtils::encrypt); } /** @@ -90,13 +78,6 @@ public class PeCryptoUtils { if (cryptoUtils == null || StringUtils.isBlank(value)) { return value; } - return decryptCache.computeIfAbsent(value, k -> { - try { - return cryptoUtils.decrypt(k); - } catch (GeneralSecurityException e) { - logger.error("Could not decrypt value - exception: ", e); - return value; - } - }); + return decryptCache.computeIfAbsent(value, cryptoUtils::decrypt); } } diff --git a/PolicyEngineUtils/src/main/java/org/onap/policy/utils/PolicyAccess.java b/PolicyEngineUtils/src/main/java/org/onap/policy/utils/PolicyAccess.java index 1994578e6..950103c86 100644 --- a/PolicyEngineUtils/src/main/java/org/onap/policy/utils/PolicyAccess.java +++ b/PolicyEngineUtils/src/main/java/org/onap/policy/utils/PolicyAccess.java @@ -2,14 +2,14 @@ * ============LICENSE_START======================================================= * PolicyEngineUtils * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -24,14 +24,13 @@ import java.util.Properties; import org.onap.aaf.cadi.PropAccess; - /** - * PolicyAccess used by AAF for logging purposes. - * + * PolicyAccess used by AAF for logging purposes. + * */ public class PolicyAccess extends PropAccess { - public PolicyAccess (Properties props, Level level) { - super(props); - this.setLogLevel(level); - } + public PolicyAccess(Properties props, Level level) { + super(props); + this.setLogLevel(level); + } } diff --git a/PolicyEngineUtils/src/main/java/org/onap/policy/utils/PolicyUtils.java b/PolicyEngineUtils/src/main/java/org/onap/policy/utils/PolicyUtils.java index 67210c814..9c1294540 100644 --- a/PolicyEngineUtils/src/main/java/org/onap/policy/utils/PolicyUtils.java +++ b/PolicyEngineUtils/src/main/java/org/onap/policy/utils/PolicyUtils.java @@ -2,14 +2,14 @@ * ============LICENSE_START======================================================= * PolicyEngineUtils * ================================================================================ - * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -20,6 +20,12 @@ package org.onap.policy.utils; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.common.base.CharMatcher; +import com.google.gson.JsonParser; +import com.google.gson.JsonSyntaxException; + import java.io.IOException; import java.io.StringReader; import java.io.UnsupportedEncodingException; @@ -38,7 +44,6 @@ import javax.xml.parsers.SAXParserFactory; import org.drools.core.io.impl.ReaderResource; import org.drools.verifier.Verifier; import org.drools.verifier.VerifierError; -import org.drools.verifier.builder.VerifierBuilder; import org.drools.verifier.builder.VerifierBuilderFactory; import org.kie.api.io.ResourceType; import org.onap.policy.common.logging.flexlogger.FlexLogger; @@ -46,295 +51,288 @@ import org.onap.policy.common.logging.flexlogger.Logger; import org.xml.sax.InputSource; import org.xml.sax.XMLReader; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.common.base.CharMatcher; -import com.google.gson.JsonParser; -import com.google.gson.JsonSyntaxException; - public class PolicyUtils { private static final Logger LOGGER = FlexLogger.getLogger(PolicyUtils.class); - public static final String CATCH_EXCEPTION = "PE500: An exception was caught."; + public static final String CATCH_EXCEPTION = "PE500: An exception was caught."; public static final String EMAIL_PATTERN = - "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@" - + "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$"; + "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@" + "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$"; private static final String PACKAGE_ERROR = "mismatched input '{' expecting one of the following tokens: '[package"; public static final String SUCCESS = "success"; - - private PolicyUtils(){ + + private PolicyUtils() { // Private Constructor } - + /** - * Converts an Object to JSON String - * - * @param o Object - * @return String format of Object JSON. - * @throws JsonProcessingException + * Converts an Object to JSON String. + * + * @param object Object + * @return String format of Object JSON. + * @throws JsonProcessingException JsonProcessingException */ - public static String objectToJsonString(Object o) throws JsonProcessingException{ - ObjectMapper mapper = new ObjectMapper(); - return mapper.writeValueAsString(o); + public static String objectToJsonString(Object object) throws JsonProcessingException { + return new ObjectMapper().writeValueAsString(object); } - + /** - * Converts JSON string into Object - * - * @param jsonString - * @param className equivalent Class of the given JSON string - * @return T instance of the class given. - * @throws IOException + * Converts JSON string into Object. + * + * @param jsonString Input JSON String + * @param className equivalent Class of the given JSON string + * @return T instance of the class given. + * @throws IOException IOException */ - public static <T> T jsonStringToObject(String jsonString, Class<T> className) throws IOException{ + public static <T> T jsonStringToObject(String jsonString, Class<T> className) throws IOException { ObjectMapper mapper = new ObjectMapper(); return mapper.readValue(jsonString, className); } - + /** - * Decode a base64 string - * - * @param encodedString + * Decode a base64 string. + * + * @param encodedString String to encode * @return String - * @throws UnsupportedEncodingException + * @throws UnsupportedEncodingException UnsupportedEncodingException */ - public static String decode(String encodedString) throws UnsupportedEncodingException { - if(encodedString!=null && !encodedString.isEmpty()){ - return new String(Base64.getDecoder().decode(encodedString) ,"UTF-8"); - }else{ - return null; - } + public static String decode(String encodedString) throws UnsupportedEncodingException { + if (encodedString != null && !encodedString.isEmpty()) { + return new String(Base64.getDecoder().decode(encodedString), "UTF-8"); + } else { + return null; + } } - + /** - * Decodes Basic Authentication - * - * @param encodedValue - * @return - * @throws UnsupportedEncodingException + * Decodes Basic Authentication. + * + * @param encodedValue value to encode + * @return list of String + * @throws UnsupportedEncodingException UnsupportedEncodingException */ public static String[] decodeBasicEncoding(String encodedValue) throws UnsupportedEncodingException { - if(encodedValue!=null && encodedValue.contains("Basic ")){ - String encodedUserPassword = encodedValue.replaceFirst("Basic" + " ", ""); + if (encodedValue != null && encodedValue.contains("Basic ")) { + String encodedUserPassword = encodedValue.replaceFirst("Basic" + " ", ""); String usernameAndPassword; byte[] decodedBytes = Base64.getDecoder().decode(encodedUserPassword); usernameAndPassword = new String(decodedBytes, "UTF-8"); StringTokenizer tokenizer = new StringTokenizer(usernameAndPassword, ":"); String username = tokenizer.nextToken(); String password = tokenizer.nextToken(); - return new String[]{username, password}; - }else{ - return new String[]{}; + return new String[] {username, password}; + } else { + return new String[] {}; } } - + /** - * Validate a field if contains space or unacceptable policy input and return "success" if good. - * - * @param field - * @return + * Validate a field if contains space or unacceptable policy input and return "success" if good. + * + * @param field String + * @return String */ - public static String policySpecialCharValidator(String field){ + public static String policySpecialCharValidator(String field) { String error; if ("".equals(field) || field.contains(" ") || !field.matches("^[a-zA-Z0-9_]*$")) { - error = "The Value in Required Field will allow only '{0-9}, {a-z}, {A-Z}, _' following set of Combinations"; - return error; + error = "The Value in Required Field will allow only" + + " '{0-9}, {a-z}, {A-Z}, _' following set of Combinations"; + return error; } - return SUCCESS; - } - + return SUCCESS; + } + /** - * Validate a field (accepts space) if it contains unacceptable policy input and return "success" if good. - * - * @param field + * Validate a field (accepts space) if it contains unacceptable policy input and return "success" if good. + * + * @param field Input field String * @return */ - public static String policySpecialCharWithSpaceValidator(String field){ + public static String policySpecialCharWithSpaceValidator(String field) { String error; if ("".equals(field) || !field.matches("^[a-zA-Z0-9_ ]*$")) { - error = "The Value in Required Field will allow only '{0-9}, {a-z}, {A-Z}, _' following set of Combinations"; + error = "The Value in Required Field will allow only " + + "'{0-9}, {a-z}, {A-Z}, _' following set of Combinations"; return error; } - return SUCCESS; - } - + return SUCCESS; + } + /** - * Validate a field (accepts Dash) if it contains unacceptable policy input and return "success" if good. - * - * @param field - * @return + * Validate a field (accepts Dash) if it contains unacceptable policy input and return "success" if good. + * + * @param field String + * @return String */ - public static String policySpecialCharWithDashValidator(String field){ + public static String policySpecialCharWithDashValidator(String field) { String error; if ("".equals(field) || !field.matches("^[a-zA-Z0-9_-]*$")) { - error = "The Value in Required Field will allow only '{0-9}, {a-z}, {A-Z}, _, -' following set of Combinations"; + error = "The Value in Required Field will allow only " + + "'{0-9}, {a-z}, {A-Z}, _, -' following set of Combinations"; return error; } - return SUCCESS; - } - + return SUCCESS; + } + /** - * Validate the XACML description tag and return "success" if good. - * - * @param field - * @return + * Validate the XACML description tag and return "success" if good. + * + * @param field String + * @return String */ public static String descriptionValidator(String field) { String error; if (field.contains("@CreatedBy:") || field.contains("@ModifiedBy:")) { - error = "The value in the description shouldn't contain @CreatedBy: or @ModifiedBy:"; - return error; + error = "The value in the description shouldn't contain @CreatedBy: or @ModifiedBy:"; + return error; } else { error = SUCCESS; } - return error; + return error; } - + /** - * Validate if string contains non ASCII characters - * - * @param value - * @return + * Validate if string contains non ASCII characters. + * + * @param value String + * @return true if contains non ASCII characters */ public static boolean containsNonAsciiEmptyChars(String value) { - return (value == null || value.contains(" ") || "".equals(value.trim()) || !CharMatcher.ascii().matchesAllOf((CharSequence) value)) ? true : false; + return (value == null || value.contains(" ") || "".equals(value.trim()) + || !CharMatcher.ascii().matchesAllOf(value)) ? true : false; } - + /** - * Validate if given string is an integer. - * - * @param number - * @return + * Validate if given string is an integer. + * + * @param number String representing a number + * @return true if integer */ - public static Boolean isInteger(String number){ - if(number==null) { + public static Boolean isInteger(String number) { + if (number == null) { return false; } - for (char c : number.toCharArray()){ + for (char c : number.toCharArray()) { if (!Character.isDigit(c)) { - return false; + return false; } } return true; } - + /** - * Validate Email Address and return "success" if good. - * - * @param emailAddressValue - * @return + * Validate Email Address and return "success" if good. + * + * @param emailAddressValue String email address + * @return SUCCESS String if valid */ public static String validateEmailAddress(String emailAddressValue) { String error = SUCCESS; List<String> emailList = Arrays.asList(emailAddressValue.split(",")); - for(int i =0 ; i < emailList.size() ; i++){ + for (int i = 0; i < emailList.size(); i++) { Pattern pattern = Pattern.compile(EMAIL_PATTERN); Matcher matcher = pattern.matcher(emailList.get(i).trim()); - if(!matcher.matches()){ - error = "Please check the Following Email Address is not Valid .... " +emailList.get(i); + if (!matcher.matches()) { + error = "Please check the Following Email Address is not Valid .... " + emailList.get(i); return error; - }else{ + } else { error = SUCCESS; } } - return error; + return error; } - + /** * Validates BRMS rule as per Policy Platform and return string contains "[ERR" if there are any errors. - * - * @param rule + * + * @param rule BRMS Rule * @return String error message */ - public static String brmsRawValidate(String rule){ - VerifierBuilder vBuilder = VerifierBuilderFactory.newVerifierBuilder(); - Verifier verifier = vBuilder.newVerifier(); + public static String brmsRawValidate(String rule) { + Verifier verifier = VerifierBuilderFactory.newVerifierBuilder().newVerifier(); verifier.addResourcesToVerify(new ReaderResource(new StringReader(rule)), ResourceType.DRL); - // Check if there are any Errors in Verification. - if(!verifier.getErrors().isEmpty()){ + // Check if there are any Errors in Verification. + if (!verifier.getErrors().isEmpty()) { boolean ignore = false; - StringBuilder message = new StringBuilder("Not a Valid DRL rule"); - for(VerifierError error: verifier.getErrors()){ + StringBuilder message = new StringBuilder("Not a Valid DRL rule"); + for (VerifierError error : verifier.getErrors()) { // Ignore annotations Error Messages - if(!error.getMessage().contains("'@'") && !error.getMessage().contains(PACKAGE_ERROR)){ - ignore= true; + if (!error.getMessage().contains("'@'") && !error.getMessage().contains(PACKAGE_ERROR)) { + ignore = true; message.append("\n" + error.getMessage()); } } // Ignore new package names with '{' // More checks for message to check if its a package error. - if(ignore && !message.toString().contains("Parser returned a null Package")){ + if (ignore && !message.toString().contains("Parser returned a null Package")) { message.append("[ERR 107]"); } return message.toString(); } return ""; } - + /** - * Validates if the given string is proper JSON format. - * - * @param data - * @return + * Validates if the given string is proper JSON format. + * + * @param data JSON data + * @return true if it is JSON */ public static boolean isJSONValid(String data) { - try{ + try { JsonParser parser = new JsonParser(); parser.parse(data); - }catch(JsonSyntaxException e){ - LOGGER.error("Exception Occurred While Validating"+e); + } catch (JsonSyntaxException e) { + LOGGER.error("Exception Occurred While Validating" + e); return false; } return true; } /** - * Validates if the given string is proper XML format. - * - * @param data - * @return + * Validates if the given string is proper XML format. + * + * @param data XML data + * @return true if it is XML */ public static boolean isXMLValid(String data) { - if(data == null || data.isEmpty()){ - return false; + if (data == null || data.isEmpty()) { + return false; } SAXParserFactory factory = SAXParserFactory.newInstance(); factory.setValidating(false); factory.setNamespaceAware(true); - - try { - factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true); + + try { + factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true); SAXParser parser = factory.newSAXParser(); XMLReader reader = parser.getXMLReader(); reader.setErrorHandler(new XMLErrorHandler()); reader.parse(new InputSource(new StringReader(data))); } catch (Exception e) { - LOGGER.error("Exception Occured While Validating"+e); + LOGGER.error("Exception Occured While Validating" + e); return false; } return true; } /** - * Validates if given string is valid Properties format. - * - * @param prop - * @return + * Validates if given string is valid Properties format. + * + * @param prop String of properties + * @return is valid property format */ public static boolean isPropValid(String prop) { Scanner scanner = new Scanner(prop); while (scanner.hasNextLine()) { String line = scanner.nextLine(); line = line.replaceAll("\\s+", ""); - if (line.startsWith("#")) { - continue; - } else { + if (! line.startsWith("#")) { if (line.contains("=")) { String[] parts = line.split("="); if (parts.length < 2) { scanner.close(); return false; } - } else if(!line.trim().isEmpty()){ + } else if (!line.trim().isEmpty()) { scanner.close(); return false; } @@ -343,15 +341,15 @@ public class PolicyUtils { scanner.close(); return true; } - + /** * Given a version string consisting of integers with dots between them, convert it into an array of integers. - * - * @param version - * @return - * @throws NumberFormatException + * + * @param version String representing the version + * @return array of int + * @throws NumberFormatException NumberFormatException */ - public static int[] versionStringToArray(String version){ + public static int[] versionStringToArray(String version) { if (version == null || version.length() == 0) { return new int[0]; } @@ -362,4 +360,4 @@ public class PolicyUtils { } return resultArray; } -}
\ No newline at end of file +} diff --git a/PolicyEngineUtils/src/main/java/org/onap/policy/utils/XMLErrorHandler.java b/PolicyEngineUtils/src/main/java/org/onap/policy/utils/XMLErrorHandler.java index 3037a423c..00251ee2d 100644 --- a/PolicyEngineUtils/src/main/java/org/onap/policy/utils/XMLErrorHandler.java +++ b/PolicyEngineUtils/src/main/java/org/onap/policy/utils/XMLErrorHandler.java @@ -2,14 +2,14 @@ * ============LICENSE_START======================================================= * PolicyEngineUtils * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -28,7 +28,7 @@ import org.xml.sax.SAXParseException; public class XMLErrorHandler implements ErrorHandler { private static final Logger LOGGER = FlexLogger.getLogger(XMLErrorHandler.class); - + @Override public void warning(SAXParseException exception) throws SAXException { LOGGER.debug(exception); diff --git a/PolicyEngineUtils/src/test/java/org/onap/policy/utils/AAFEnvironmentTest.java b/PolicyEngineUtils/src/test/java/org/onap/policy/utils/AAFEnvironmentTest.java new file mode 100644 index 000000000..cf997251c --- /dev/null +++ b/PolicyEngineUtils/src/test/java/org/onap/policy/utils/AAFEnvironmentTest.java @@ -0,0 +1,39 @@ +/*- + * ============LICENSE_START======================================================= + * PolicyEngineUtils + * ================================================================================ + * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.utils; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +public class AAFEnvironmentTest { + + @Test + public void test() { + AAFEnvironment env = AAFEnvironment.DEVL; + assertEquals(AAFEnvironment.DEVL, env); + env = AAFEnvironment.PROD; + assertEquals(AAFEnvironment.PROD, env); + env = AAFEnvironment.TEST; + assertEquals(AAFEnvironment.TEST, env); + } + +} diff --git a/PolicyEngineUtils/src/test/java/org/onap/policy/utils/BusTest.java b/PolicyEngineUtils/src/test/java/org/onap/policy/utils/BusTest.java index 58262d97c..50d91c6fc 100644 --- a/PolicyEngineUtils/src/test/java/org/onap/policy/utils/BusTest.java +++ b/PolicyEngineUtils/src/test/java/org/onap/policy/utils/BusTest.java @@ -2,15 +2,15 @@ * ============LICENSE_START======================================================= * PolicyEngineUtils * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved. * Modifications copyright (c) 2019 Nokia * ================================================================================ * 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. @@ -35,30 +35,34 @@ import org.onap.dmaap.mr.client.impl.MRConsumerImpl; import org.onap.policy.utils.BusConsumer.DmaapConsumerWrapper; public class BusTest { - - @Test - public void busPublisherTest(){ + + @Test + public void busPublisherTest() { BusPublisher bus = new BusPublisher.DmaapPublisherWrapper(Arrays.asList("test"), "test", "test", "test"); assertTrue(bus.send("test123", "Hello World!")); - assertEquals("DmaapPublisherWrapper [publisher.getAuthDate()=null, publisher.getAuthKey()=null, publisher.getHost()=test, publisher.getProtocolFlag()=HTTPAAF, publisher.getUsername()=test, publisher.getPendingMessageCount()=1]",bus.toString()); + assertEquals( + "DmaapPublisherWrapper [publisher.getAuthDate()=null, publisher.getAuthKey()=null, publisher.getHost()=test, publisher.getProtocolFlag()=HTTPAAF, publisher.getUsername()=test, publisher.getPendingMessageCount()=1]", + bus.toString()); bus.close(); } - - @Test (expected = MRApiException.class) + + @Test(expected = MRApiException.class) public void busConsumerFailTest() throws Exception { - //given + // given MRConsumerImpl mrConsumer = mock(MRConsumerImpl.class); when(mrConsumer.fetch()).thenThrow(new Exception()); DmaapConsumerWrapper dmaapConsumerWrapper = new DmaapConsumerWrapper(mrConsumer, "", "", ""); - //when + // when dmaapConsumerWrapper.fetch(); } - + @Test - public void busConsumerTest() throws MalformedURLException, MRApiException{ - BusConsumer bus = new BusConsumer.DmaapConsumerWrapper(Arrays.asList("test"), "test", "test", "test", "test", "test", 1, 1); - assertEquals(bus.toString(),"DmaapConsumerWrapper [consumer.getAuthDate()=null, consumer.getAuthKey()=null, consumer.getHost()=test:3904, consumer.getProtocolFlag()=HTTPAAF, consumer.getUsername()=test]"); + public void busConsumerTest() throws MalformedURLException, MRApiException { + BusConsumer bus = new BusConsumer.DmaapConsumerWrapper(Arrays.asList("test"), "test", "test", "test", "test", + "test", 1, 1); + assertEquals(bus.toString(), + "DmaapConsumerWrapper [consumer.getAuthDate()=null, consumer.getAuthKey()=null, consumer.getHost()=test:3904, consumer.getProtocolFlag()=HTTPAAF, consumer.getUsername()=test]"); bus.close(); } diff --git a/PolicyEngineUtils/src/test/java/org/onap/policy/utils/PeCryptoUtilsTest.java b/PolicyEngineUtils/src/test/java/org/onap/policy/utils/PeCryptoUtilsTest.java index 3765ff2e3..28b1fb4e8 100644 --- a/PolicyEngineUtils/src/test/java/org/onap/policy/utils/PeCryptoUtilsTest.java +++ b/PolicyEngineUtils/src/test/java/org/onap/policy/utils/PeCryptoUtilsTest.java @@ -22,12 +22,13 @@ package org.onap.policy.utils; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; + import java.security.GeneralSecurityException; + import org.junit.Before; import org.junit.Test; import org.powermock.reflect.Whitebox; - public class PeCryptoUtilsTest { private final String pass = "policy_user"; private final String secretKey = "bmpybWJrbGN4dG9wbGF3Zg=="; @@ -36,7 +37,7 @@ public class PeCryptoUtilsTest { @Before public void reset() { - Whitebox.setInternalState( PeCryptoUtils.class, "cryptoUtils", (PeCryptoUtils)null); + Whitebox.setInternalState(PeCryptoUtils.class, "cryptoUtils", (PeCryptoUtils) null); } @@ -55,8 +56,8 @@ public class PeCryptoUtilsTest { PeCryptoUtils.initAesKey(null); System.clearProperty(PROP_AES_KEY); assertEquals(pass, PeCryptoUtils.decrypt(encryptedPass)); - Whitebox.setInternalState( PeCryptoUtils.class, "cryptoUtils", (PeCryptoUtils)null); - Whitebox.setInternalState( PeCryptoUtils.class, "secretKey", secretKey); + Whitebox.setInternalState(PeCryptoUtils.class, "cryptoUtils", (PeCryptoUtils) null); + Whitebox.setInternalState(PeCryptoUtils.class, "secretKey", secretKey); PeCryptoUtils.initAesKey(" "); assertEquals(pass, PeCryptoUtils.decrypt(pass)); } diff --git a/PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/AAFClientTest.java b/PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/AAFClientTest.java index 2fa822a33..23060688d 100644 --- a/PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/AAFClientTest.java +++ b/PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/AAFClientTest.java @@ -2,14 +2,14 @@ * ============LICENSE_START======================================================= * PolicyEngineUtils * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -33,23 +33,33 @@ import org.onap.policy.utils.AAFPolicyException; public class AAFClientTest { AAFPolicyClient afClient; String pass = "test"; - + String user = "test"; + + /** + * setUp. + * + * @throws AAFPolicyException AAFPolicyException + */ @Before - public void setUp() throws AAFPolicyException{ + public void setUp() throws AAFPolicyException { Properties props = new Properties(); props.setProperty("ENVIRONMENT", "TEST"); props.setProperty("aafClient.impl.className", AAFPolicyClientImpl.class.getName()); - afClient = AAFPolicyClient.getInstance(props); + afClient = AAFPolicyClient.getInstance(props); } - + @Test - public void invalidClientTest() throws AAFPolicyException{ - assertFalse(afClient.checkAuth("test", pass)); - assertFalse(afClient.checkPerm("test", pass, "policy-engine.config", "*", "*")); + public void invalidClientTest() throws AAFPolicyException { + assertFalse(afClient.checkPerm(null, null, null, null, null)); + assertFalse(afClient.checkPerm(user, null, null, null, null)); + assertFalse(afClient.checkAuth(user, pass)); + assertFalse(afClient.checkAuth(null, pass)); + assertFalse(afClient.checkAuth(user, null)); + assertFalse(afClient.checkPerm(user, pass, "policy-engine.config", "*", "*")); Properties props = new Properties(); props.setProperty("aafClient.impl.className", AAFPolicyClientImpl.class.getName()); - afClient = AAFPolicyClient.getInstance(props); - assertFalse(afClient.checkAuth("test", pass)); + afClient = AAFPolicyClient.getInstance(props); + assertFalse(afClient.checkAuth(user, pass)); props.setProperty("ENVIRONMENT", "PROD"); props.setProperty("aafClient.impl.className", AAFPolicyClientImpl.class.getName()); afClient.updateProperties(props); @@ -63,14 +73,14 @@ public class AAFClientTest { assertFalse(afClient.checkAuth("test", pass)); assertFalse(afClient.checkAuthPerm("test", pass, "decision", "*", "read")); } - + @Test(expected = AAFPolicyException.class) - public void invalidAAFInstance() throws AAFPolicyException{ + public void invalidAafInstance() throws AAFPolicyException { Properties props = new Properties(); props.setProperty("aafClient.impl.className", "errorClass"); - afClient = AAFPolicyClient.getInstance(props); + afClient = AAFPolicyClient.getInstance(props); } - + @Test(expected = AAFPolicyException.class) public void testPropNullException() throws AAFPolicyException { afClient.updateProperties(null); @@ -80,9 +90,9 @@ public class AAFClientTest { public void testPropEmptyException() throws AAFPolicyException { afClient.updateProperties(new Properties()); } - + @Test(expected = AAFPolicyException.class) - public void testAAFException() throws AAFPolicyException{ + public void testAafException() throws AAFPolicyException { new AAFPolicyException(); new AAFPolicyException("error", new Exception()); throw new AAFPolicyException("error", new Exception(), false, false); diff --git a/PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/BackUpMonitorEntityTest.java b/PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/BackUpMonitorEntityTest.java index f77fe72c9..4bbe008e3 100644 --- a/PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/BackUpMonitorEntityTest.java +++ b/PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/BackUpMonitorEntityTest.java @@ -2,14 +2,14 @@ * ============LICENSE_START======================================================= * PolicyEngineUtils * ================================================================================ - * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2018-2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -22,31 +22,33 @@ package org.onap.policy.utils.test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; + import java.util.Date; + import org.junit.Test; import org.onap.policy.jpa.BackUpMonitorEntity; public class BackUpMonitorEntityTest { - @Test - public void testEntity() { - String value = "testVal"; - Date date = new Date(); - - BackUpMonitorEntity entity = new BackUpMonitorEntity(); - assertNotNull(entity); - - entity.setResourceName(value); - entity.setResourceNodeName(value); - entity.setFlag(value); - entity.setNotificationRecord(value); - entity.prePersist(); - entity.preUpdate(); - entity.setTimeStamp(date); - - assertEquals(value, entity.getResourceName()); - assertEquals(value, entity.getResourceNodeName()); - assertEquals(value, entity.getFlag()); - assertEquals(value, entity.getNotificationRecord()); - assertEquals(date, entity.getTimeStamp()); - } + @Test + public void testEntity() { + String value = "testVal"; + + BackUpMonitorEntity entity = new BackUpMonitorEntity(); + assertNotNull(entity); + + entity.setResourceName(value); + entity.setResourceNodeName(value); + entity.setFlag(value); + entity.setNotificationRecord(value); + entity.prePersist(); + entity.preUpdate(); + Date date = new Date(); + entity.setTimeStamp(date); + + assertEquals(value, entity.getResourceName()); + assertEquals(value, entity.getResourceNodeName()); + assertEquals(value, entity.getFlag()); + assertEquals(value, entity.getNotificationRecord()); + assertEquals(date, entity.getTimeStamp()); + } } diff --git a/PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/BackUpMonitorExceptionTest.java b/PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/BackUpMonitorExceptionTest.java index b9700124d..eb56c6f24 100644 --- a/PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/BackUpMonitorExceptionTest.java +++ b/PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/BackUpMonitorExceptionTest.java @@ -2,14 +2,14 @@ * ============LICENSE_START======================================================= * PolicyEngineUtils * ================================================================================ - * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2018-2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -21,35 +21,36 @@ package org.onap.policy.utils.test; import java.io.IOException; + import org.junit.Test; import org.onap.policy.utils.BackUpMonitorException; public class BackUpMonitorExceptionTest { - @Test(expected = BackUpMonitorException.class) - public void testException1() throws BackUpMonitorException { - throw new BackUpMonitorException(); - } - - @Test(expected = BackUpMonitorException.class) - public void testException2() throws BackUpMonitorException { - throw new BackUpMonitorException("test"); - } - - @Test(expected = BackUpMonitorException.class) - public void testException3() throws BackUpMonitorException { - Throwable cause = new IOException(); - throw new BackUpMonitorException(cause); - } - - @Test(expected = BackUpMonitorException.class) - public void testException4() throws BackUpMonitorException { - Throwable cause = new IOException(); - throw new BackUpMonitorException("test", cause); - } - - @Test(expected = BackUpMonitorException.class) - public void testException5() throws BackUpMonitorException { - Throwable cause = new IOException(); - throw new BackUpMonitorException("test", cause, true, true); - } + @Test(expected = BackUpMonitorException.class) + public void testException1() throws BackUpMonitorException { + throw new BackUpMonitorException(); + } + + @Test(expected = BackUpMonitorException.class) + public void testException2() throws BackUpMonitorException { + throw new BackUpMonitorException("test"); + } + + @Test(expected = BackUpMonitorException.class) + public void testException3() throws BackUpMonitorException { + Throwable cause = new IOException(); + throw new BackUpMonitorException(cause); + } + + @Test(expected = BackUpMonitorException.class) + public void testException4() throws BackUpMonitorException { + Throwable cause = new IOException(); + throw new BackUpMonitorException("test", cause); + } + + @Test(expected = BackUpMonitorException.class) + public void testException5() throws BackUpMonitorException { + Throwable cause = new IOException(); + throw new BackUpMonitorException("test", cause, true, true); + } } diff --git a/PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/BackUpMonitorTest.java b/PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/BackUpMonitorTest.java index 5182c5329..c692ab8c4 100644 --- a/PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/BackUpMonitorTest.java +++ b/PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/BackUpMonitorTest.java @@ -25,6 +25,7 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import com.fasterxml.jackson.core.JsonProcessingException; + import java.io.File; import java.io.IOException; import java.util.ArrayList; @@ -34,11 +35,13 @@ import java.util.List; import java.util.Map; import java.util.Properties; import java.util.concurrent.TimeUnit; + import javax.persistence.EntityManager; import javax.persistence.EntityTransaction; import javax.persistence.Persistence; import javax.persistence.PersistenceException; import javax.persistence.Query; + import org.apache.commons.io.FileUtils; import org.eclipse.persistence.config.PersistenceUnitProperties; import org.junit.After; @@ -56,7 +59,6 @@ import org.onap.policy.utils.BackUpMonitor.ResourceNode; import org.onap.policy.utils.BackUpMonitorException; import org.onap.policy.utils.PolicyUtils; - public class BackUpMonitorTest { @Test(expected = PersistenceException.class) public void backUpMonitorTestFail() throws Exception { diff --git a/PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/DummyBackUpHandler.java b/PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/DummyBackUpHandler.java index 15fb33944..232652fa5 100644 --- a/PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/DummyBackUpHandler.java +++ b/PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/DummyBackUpHandler.java @@ -2,14 +2,14 @@ * ============LICENSE_START======================================================= * PolicyEngineUtils * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -23,16 +23,16 @@ package org.onap.policy.utils.test; import org.onap.policy.api.PDPNotification; import org.onap.policy.utils.BackUpHandler; -public class DummyBackUpHandler implements BackUpHandler{ +public class DummyBackUpHandler implements BackUpHandler { - @Override - public void notificationReceived(PDPNotification notification) { - System.out.println("Received Notification from PDP. "); - } + @Override + public void notificationReceived(PDPNotification notification) { + System.out.println("Received Notification from PDP. "); + } + + @Override + public void runOnNotification(PDPNotification notification) { + System.out.println("Running main Notification Function. "); + } - @Override - public void runOnNotification(PDPNotification notification) { - System.out.println("Running main Notification Function. "); - } - } diff --git a/PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/NotificationStoreTest.java b/PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/NotificationStoreTest.java index 774bf8a7e..a7e3a9478 100644 --- a/PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/NotificationStoreTest.java +++ b/PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/NotificationStoreTest.java @@ -2,14 +2,14 @@ * ============LICENSE_START======================================================= * PolicyEngineUtils * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -38,16 +38,16 @@ import org.onap.policy.std.StdRemovedPolicy; import org.onap.policy.utils.PolicyUtils; public class NotificationStoreTest { - + @Test - public void notificationTest() throws IOException{ - // Notification Delta test first. + public void notificationTest() throws IOException { + // Notification Delta test first. NotificationStore.recordNotification(new StdPDPNotification()); - assertEquals("{\"removedPolicies\":[],\"loadedPolicies\":[],\"notificationType\":null}", PolicyUtils.objectToJsonString(NotificationStore.getDeltaNotification(new StdPDPNotification()))); - // Initialize test + assertEquals("{\"removedPolicies\":[],\"loadedPolicies\":[],\"notificationType\":null}", + PolicyUtils.objectToJsonString(NotificationStore.getDeltaNotification(new StdPDPNotification()))); + // Initialize test StdPDPNotification notification = new StdPDPNotification(); notification.setNotificationType(NotificationType.BOTH); - List<StdLoadedPolicy> loadedPolicies = new ArrayList<>(); StdLoadedPolicy loadedPolicy = new StdLoadedPolicy(); loadedPolicy.setPolicyName("com.testing"); loadedPolicy.setUpdateType(UpdateType.UPDATE); @@ -55,6 +55,7 @@ public class NotificationStoreTest { Map<String, String> matches = new HashMap<>(); matches.put("test", "test"); loadedPolicy.setMatches(matches); + List<StdLoadedPolicy> loadedPolicies = new ArrayList<>(); loadedPolicies.add(loadedPolicy); notification.setLoadedPolicies(loadedPolicies); List<StdRemovedPolicy> removedPolicies = new ArrayList<>(); @@ -64,8 +65,10 @@ public class NotificationStoreTest { removedPolicies.add(removedPolicy); notification.setRemovedPolicies(removedPolicies); NotificationStore.recordNotification(notification); - assertEquals("{\"removedPolicies\":[{\"policyName\":\"com.testing\",\"versionNo\":\"1\"}],\"loadedPolicies\":[{\"policyName\":\"com.testing\",\"versionNo\":\"2\",\"matches\":{\"test\":\"test\"},\"updateType\":\"UPDATE\"}],\"notificationType\":\"BOTH\"}", PolicyUtils.objectToJsonString(NotificationStore.getNotificationRecord())); - // Add new Notifications. + assertEquals( + "{\"removedPolicies\":[{\"policyName\":\"com.testing\",\"versionNo\":\"1\"}],\"loadedPolicies\":[{\"policyName\":\"com.testing\",\"versionNo\":\"2\",\"matches\":{\"test\":\"test\"},\"updateType\":\"UPDATE\"}],\"notificationType\":\"BOTH\"}", + PolicyUtils.objectToJsonString(NotificationStore.getNotificationRecord())); + // Add new Notifications. notification = new StdPDPNotification(); notification.setNotificationType(NotificationType.BOTH); loadedPolicies = new ArrayList<>(); @@ -85,9 +88,12 @@ public class NotificationStoreTest { removedPolicies.add(removedPolicy); notification.setRemovedPolicies(removedPolicies); NotificationStore.recordNotification(notification); - StdPDPNotification check = NotificationStore.getDeltaNotification(PolicyUtils.jsonStringToObject("{\"removedPolicies\":[{\"policyName\":\"com.testing\",\"versionNo\":\"1\"},{\"policyName\":\"com.testing\",\"versionNo\":\"2\"}],\"loadedPolicies\":[{\"policyName\":\"com.test\",\"versionNo\":\"3\",\"matches\":{\"test\":\"test\"},\"updateType\":\"NEW\"}],\"notificationType\":\"BOTH\"}", StdPDPNotification.class)); - assertEquals("{\"removedPolicies\":[],\"loadedPolicies\":[],\"notificationType\":null}", PolicyUtils.objectToJsonString(check)); - // Remove Notifications. + StdPDPNotification check = NotificationStore.getDeltaNotification(PolicyUtils.jsonStringToObject( + "{\"removedPolicies\":[{\"policyName\":\"com.testing\",\"versionNo\":\"1\"},{\"policyName\":\"com.testing\",\"versionNo\":\"2\"}],\"loadedPolicies\":[{\"policyName\":\"com.test\",\"versionNo\":\"3\",\"matches\":{\"test\":\"test\"},\"updateType\":\"NEW\"}],\"notificationType\":\"BOTH\"}", + StdPDPNotification.class)); + assertEquals("{\"removedPolicies\":[],\"loadedPolicies\":[],\"notificationType\":null}", + PolicyUtils.objectToJsonString(check)); + // Remove Notifications. notification = new StdPDPNotification(); notification.setNotificationType(NotificationType.REMOVE); removedPolicies = new ArrayList<>(); @@ -97,9 +103,12 @@ public class NotificationStoreTest { removedPolicies.add(removedPolicy); notification.setRemovedPolicies(removedPolicies); NotificationStore.recordNotification(notification); - check = NotificationStore.getDeltaNotification(PolicyUtils.jsonStringToObject("{\"removedPolicies\":[{\"policyName\":\"com.test\",\"versionNo\":\"3\"},{\"policyName\":\"com.testing\",\"versionNo\":\"1\"},{\"policyName\":\"com.testing\",\"versionNo\":\"2\"}],\"loadedPolicies\":[],\"notificationType\":\"REMOVE\"}", StdPDPNotification.class)); - assertEquals("{\"removedPolicies\":[],\"loadedPolicies\":[],\"notificationType\":null}", PolicyUtils.objectToJsonString(check)); - // Remove on remove duplicate Notifications. + check = NotificationStore.getDeltaNotification(PolicyUtils.jsonStringToObject( + "{\"removedPolicies\":[{\"policyName\":\"com.test\",\"versionNo\":\"3\"},{\"policyName\":\"com.testing\",\"versionNo\":\"1\"},{\"policyName\":\"com.testing\",\"versionNo\":\"2\"}],\"loadedPolicies\":[],\"notificationType\":\"REMOVE\"}", + StdPDPNotification.class)); + assertEquals("{\"removedPolicies\":[],\"loadedPolicies\":[],\"notificationType\":null}", + PolicyUtils.objectToJsonString(check)); + // Remove on remove duplicate Notifications. notification = new StdPDPNotification(); notification.setNotificationType(NotificationType.REMOVE); removedPolicies = new ArrayList<>(); @@ -109,9 +118,12 @@ public class NotificationStoreTest { removedPolicies.add(removedPolicy); notification.setRemovedPolicies(removedPolicies); NotificationStore.recordNotification(notification); - check = NotificationStore.getDeltaNotification(PolicyUtils.jsonStringToObject("{\"removedPolicies\":[{\"policyName\":\"com.test\",\"versionNo\":\"3\"},{\"policyName\":\"com.testing\",\"versionNo\":\"1\"},{\"policyName\":\"com.testing\",\"versionNo\":\"2\"}],\"loadedPolicies\":[],\"notificationType\":\"REMOVE\"}", StdPDPNotification.class)); - assertEquals("{\"removedPolicies\":[],\"loadedPolicies\":[],\"notificationType\":null}", PolicyUtils.objectToJsonString(check)); - // Update Notification + check = NotificationStore.getDeltaNotification(PolicyUtils.jsonStringToObject( + "{\"removedPolicies\":[{\"policyName\":\"com.test\",\"versionNo\":\"3\"},{\"policyName\":\"com.testing\",\"versionNo\":\"1\"},{\"policyName\":\"com.testing\",\"versionNo\":\"2\"}],\"loadedPolicies\":[],\"notificationType\":\"REMOVE\"}", + StdPDPNotification.class)); + assertEquals("{\"removedPolicies\":[],\"loadedPolicies\":[],\"notificationType\":null}", + PolicyUtils.objectToJsonString(check)); + // Update Notification notification = new StdPDPNotification(); notification.setNotificationType(NotificationType.UPDATE); loadedPolicies = new ArrayList<>(); @@ -125,9 +137,12 @@ public class NotificationStoreTest { loadedPolicies.add(loadedPolicy); notification.setLoadedPolicies(loadedPolicies); NotificationStore.recordNotification(notification); - check = NotificationStore.getDeltaNotification(PolicyUtils.jsonStringToObject("{\"removedPolicies\":[{\"policyName\":\"com.testing\",\"versionNo\":\"1\"},{\"policyName\":\"com.testing\",\"versionNo\":\"2\"}],\"loadedPolicies\":[{\"policyName\":\"com.test\",\"versionNo\":\"3\",\"matches\":{\"test\":\"test\"},\"updateType\":\"NEW\"}],\"notificationType\":\"BOTH\"}", StdPDPNotification.class)); - assertEquals("{\"removedPolicies\":[],\"loadedPolicies\":[],\"notificationType\":null}", PolicyUtils.objectToJsonString(check)); - // Update on update duplicate Notification + check = NotificationStore.getDeltaNotification(PolicyUtils.jsonStringToObject( + "{\"removedPolicies\":[{\"policyName\":\"com.testing\",\"versionNo\":\"1\"},{\"policyName\":\"com.testing\",\"versionNo\":\"2\"}],\"loadedPolicies\":[{\"policyName\":\"com.test\",\"versionNo\":\"3\",\"matches\":{\"test\":\"test\"},\"updateType\":\"NEW\"}],\"notificationType\":\"BOTH\"}", + StdPDPNotification.class)); + assertEquals("{\"removedPolicies\":[],\"loadedPolicies\":[],\"notificationType\":null}", + PolicyUtils.objectToJsonString(check)); + // Update on update duplicate Notification notification = new StdPDPNotification(); notification.setNotificationType(NotificationType.UPDATE); loadedPolicies = new ArrayList<>(); @@ -141,9 +156,12 @@ public class NotificationStoreTest { loadedPolicies.add(loadedPolicy); notification.setLoadedPolicies(loadedPolicies); NotificationStore.recordNotification(notification); - check = NotificationStore.getDeltaNotification(PolicyUtils.jsonStringToObject("{\"removedPolicies\":[{\"policyName\":\"com.testing\",\"versionNo\":\"1\"},{\"policyName\":\"com.testing\",\"versionNo\":\"2\"}],\"loadedPolicies\":[{\"policyName\":\"com.test\",\"versionNo\":\"3\",\"matches\":{\"test\":\"test\"},\"updateType\":\"NEW\"}],\"notificationType\":\"BOTH\"}", StdPDPNotification.class)); - assertEquals("{\"removedPolicies\":[],\"loadedPolicies\":[],\"notificationType\":null}", PolicyUtils.objectToJsonString(check)); - // + check = NotificationStore.getDeltaNotification(PolicyUtils.jsonStringToObject( + "{\"removedPolicies\":[{\"policyName\":\"com.testing\",\"versionNo\":\"1\"},{\"policyName\":\"com.testing\",\"versionNo\":\"2\"}],\"loadedPolicies\":[{\"policyName\":\"com.test\",\"versionNo\":\"3\",\"matches\":{\"test\":\"test\"},\"updateType\":\"NEW\"}],\"notificationType\":\"BOTH\"}", + StdPDPNotification.class)); + assertEquals("{\"removedPolicies\":[],\"loadedPolicies\":[],\"notificationType\":null}", + PolicyUtils.objectToJsonString(check)); + // // Notification Delta Tests // notification = new StdPDPNotification(); @@ -165,7 +183,9 @@ public class NotificationStoreTest { removedPolicies.add(removedPolicy); notification.setRemovedPolicies(removedPolicies); check = NotificationStore.getDeltaNotification(notification); - assertEquals("{\"removedPolicies\":[{\"policyName\":\"com.test\",\"versionNo\":\"3\"}],\"loadedPolicies\":[{\"policyName\":\"com.testing\",\"versionNo\":\"3\",\"matches\":{\"test\":\"test\"},\"updateType\":\"NEW\"}],\"notificationType\":\"BOTH\"}", PolicyUtils.objectToJsonString(check)); + assertEquals( + "{\"removedPolicies\":[{\"policyName\":\"com.test\",\"versionNo\":\"3\"}],\"loadedPolicies\":[{\"policyName\":\"com.testing\",\"versionNo\":\"3\",\"matches\":{\"test\":\"test\"},\"updateType\":\"NEW\"}],\"notificationType\":\"BOTH\"}", + PolicyUtils.objectToJsonString(check)); } } diff --git a/PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/PEDependencyTest.java b/PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/PEDependencyTest.java index 4cc6c90f2..e3cf67f30 100644 --- a/PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/PEDependencyTest.java +++ b/PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/PEDependencyTest.java @@ -2,14 +2,14 @@ * ============LICENSE_START======================================================= * PolicyEngineUtils * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017, 2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -30,9 +30,9 @@ import org.junit.Test; import org.onap.policy.api.PEDependency; public class PEDependencyTest { - + @Test - public void pojoTests(){ + public void pojoTests() { PEDependency pe = new PEDependency(); pe.setArtifactId("test"); pe.setGroupId("test"); @@ -41,10 +41,10 @@ public class PEDependencyTest { pe.setScope("test"); pe.setClassifier("pom"); List<Exclusion> exclusions = new ArrayList<>(); - Exclusion e = new Exclusion(); - e.setArtifactId("ex1"); - e.setGroupId("eG"); - exclusions.add(e); + Exclusion exclusion = new Exclusion(); + exclusion.setArtifactId("ex1"); + exclusion.setGroupId("eG"); + exclusions.add(exclusion); pe.setExclusions(exclusions); pe.getDependency(); assertEquals(exclusions, pe.getExclusions()); diff --git a/PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/PolicyUtilsTest.java b/PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/PolicyUtilsTest.java index 8445ad7c8..8d9116d32 100644 --- a/PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/PolicyUtilsTest.java +++ b/PolicyEngineUtils/src/test/java/org/onap/policy/utils/test/PolicyUtilsTest.java @@ -7,9 +7,9 @@ * 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. @@ -45,165 +45,162 @@ import org.xml.sax.SAXException; import org.xml.sax.SAXParseException; public class PolicyUtilsTest { - - private static final String ERROR = "The Value in Required Field will allow only '{0-9}, {a-z}, {A-Z}, _' following set of Combinations"; - private static final String SUCCESS = "success"; - - @Test - public void testJsonConversions() throws Exception{ - StdPDPNotification notification = new StdPDPNotification(); - notification.setNotificationType(NotificationType.BOTH); - Collection<StdRemovedPolicy> removedPolicies = new ArrayList<>(); - Collection<StdLoadedPolicy> loadedPolicies = new ArrayList<>(); - StdRemovedPolicy removedPolicy = new StdRemovedPolicy(); - StdLoadedPolicy updatedPolicy = new StdLoadedPolicy(); - removedPolicy.setPolicyName("Test"); - removedPolicy.setVersionNo("1"); - removedPolicies.add(removedPolicy); - updatedPolicy.setPolicyName("Testing"); - updatedPolicy.setVersionNo("1"); - updatedPolicy.setUpdateType(UpdateType.NEW); - Map<String, String> matches = new HashMap<>(); - matches.put("key", "value"); - updatedPolicy.setMatches(matches); - loadedPolicies.add(updatedPolicy); - notification.setRemovedPolicies(removedPolicies); - notification.setLoadedPolicies(loadedPolicies); - - String json = PolicyUtils.objectToJsonString(notification); - PDPNotification getBackObject = PolicyUtils.jsonStringToObject(json, StdPDPNotification.class); - assertEquals(0,getBackObject.getNotificationType().compareTo(notification.getNotificationType())); - - } - - private String encodedValue(String input){ - return new String(Base64.getEncoder().encode(input.getBytes())); - } - - @Test - public void testDecode() throws Exception{ - String value = "test"; - assertEquals(value, PolicyUtils.decode(encodedValue(value))); - assertNull(PolicyUtils.decode(null)); - assertNull(PolicyUtils.decode("")); - } - - @Test - public void testBasicEncoding() throws Exception{ - String userName = "test"; - String key = "pass"; - String[] decodedValue = PolicyUtils.decodeBasicEncoding("Basic "+encodedValue(userName+":"+key)); - assertEquals(userName,decodedValue[0]); - assertEquals(key,decodedValue[1]); - assertEquals(0, PolicyUtils.decodeBasicEncoding(encodedValue(userName+":"+key)).length); - assertEquals(0, PolicyUtils.decodeBasicEncoding(null).length); - } - - @Test - public void testSpecialCharValidator(){ - assertEquals(ERROR, PolicyUtils.policySpecialCharValidator("$TEST_")); - assertEquals(ERROR, PolicyUtils.policySpecialCharValidator("$TEST _")); - assertEquals(ERROR, PolicyUtils.policySpecialCharValidator("")); - assertEquals(ERROR, PolicyUtils.policySpecialCharValidator("TæST")); - assertEquals(SUCCESS, PolicyUtils.policySpecialCharValidator("TEST")); - } - - @Test - public void testSpecialCharWithSpaceValidator(){ - assertEquals(ERROR, PolicyUtils.policySpecialCharWithSpaceValidator("")); - assertEquals(ERROR, PolicyUtils.policySpecialCharWithSpaceValidator("$TEST _")); - assertEquals(SUCCESS, PolicyUtils.policySpecialCharWithSpaceValidator("TE ST")); - } - - @Test - public void testDescription() { - assertEquals(SUCCESS, PolicyUtils.descriptionValidator("Test")); - assertNotEquals(SUCCESS, PolicyUtils.descriptionValidator("@ModifiedBy:TesterB")); - assertNotEquals(SUCCESS, PolicyUtils.descriptionValidator("@CreatedBy:TesterA")); - } - - @Test - public void testNonAscii(){ - assertTrue(PolicyUtils.containsNonAsciiEmptyChars(null)); - assertTrue(PolicyUtils.containsNonAsciiEmptyChars("")); - assertTrue(PolicyUtils.containsNonAsciiEmptyChars("T æST")); - assertTrue(PolicyUtils.containsNonAsciiEmptyChars("TæST")); - assertFalse(PolicyUtils.containsNonAsciiEmptyChars("TEST")); - } - - @Test - public void testInteger(){ - assertFalse(PolicyUtils.isInteger(null)); - assertTrue(PolicyUtils.isInteger("123")); - assertFalse(PolicyUtils.isInteger("1a23")); - } - - @Test - public void testEmailAddress(){ - assertEquals(SUCCESS, PolicyUtils.validateEmailAddress("test@onap.org")); - assertNotEquals(SUCCESS, PolicyUtils.validateEmailAddress("test@onap")); - } - - @Test - public void testBRMSValidate(){ - String rule = "package com.sample;\n" - + "import com.sample.DroolsTest.Message;\n" - + "declare Params\n" - + "samPoll : int\n" - + "value : String\n" - + "end\n" - + "///This Rule will be generated by the UI.\n" - + "rule \"Create parameters structure\"\n" - + "salience 1000 \n" - + "when\n" - + "then\n" - + "Params params = new Params();\n" - + "params.setSamPoll(76);\n" - + "params.setValue(\"test\");\n" - + "insertLogical(params);\n" - + "end\n" - + "rule \"Rule 1: Check parameter structure access from when/then\"\n" - + "when\n" - + "$param: Params()\n" - + "Params($param.samPoll > 50)\n" - + "then\n" - + "System.out.println(\"Firing rule 1\");\n" - + "System.out.println($param);\n" - + "end\n"; - assertEquals(PolicyUtils.brmsRawValidate(rule),""); - assertTrue(PolicyUtils.brmsRawValidate("error").contains("[ERR")); - assertFalse(PolicyUtils.brmsRawValidate("package com.att.ecomp.policy.controlloop.p_${unique};").contains("[ERR")); - } - - @Test - public void testiIsJsonValid(){ - assertTrue(PolicyUtils.isJSONValid("{\"test\":\"test\"}")); - String value = "{\"test\":\"test\", \"t1\": {\"test\": 12 , \"t2\":\"34\"},\"t2\":[{\"test\":\"val\"}]}"; - assertTrue(PolicyUtils.isJSONValid(value)); - assertFalse(PolicyUtils.isJSONValid("{\"test\":\"test")); - } - - @Test - public void testIsXMLValid() throws SAXException{ - XMLErrorHandler error = new XMLErrorHandler(); + + private static final String ERROR = + "The Value in Required Field will allow only '{0-9}, {a-z}, {A-Z}, _' following set of Combinations"; + private static final String SUCCESS = "success"; + + @Test + public void testJsonConversions() throws Exception { + StdPDPNotification notification = new StdPDPNotification(); + notification.setNotificationType(NotificationType.BOTH); + Collection<StdRemovedPolicy> removedPolicies = new ArrayList<>(); + StdRemovedPolicy removedPolicy = new StdRemovedPolicy(); + removedPolicy.setPolicyName("Test"); + removedPolicy.setVersionNo("1"); + removedPolicies.add(removedPolicy); + StdLoadedPolicy updatedPolicy = new StdLoadedPolicy(); + updatedPolicy.setPolicyName("Testing"); + updatedPolicy.setVersionNo("1"); + updatedPolicy.setUpdateType(UpdateType.NEW); + Map<String, String> matches = new HashMap<>(); + matches.put("key", "value"); + updatedPolicy.setMatches(matches); + Collection<StdLoadedPolicy> loadedPolicies = new ArrayList<>(); + loadedPolicies.add(updatedPolicy); + notification.setRemovedPolicies(removedPolicies); + notification.setLoadedPolicies(loadedPolicies); + + String json = PolicyUtils.objectToJsonString(notification); + PDPNotification getBackObject = PolicyUtils.jsonStringToObject(json, StdPDPNotification.class); + assertEquals(0, getBackObject.getNotificationType().compareTo(notification.getNotificationType())); + + } + + private String encodedValue(String input) { + return new String(Base64.getEncoder().encode(input.getBytes())); + } + + @Test + public void testDecode() throws Exception { + String value = "test"; + assertEquals(value, PolicyUtils.decode(encodedValue(value))); + assertNull(PolicyUtils.decode(null)); + assertNull(PolicyUtils.decode("")); + } + + @Test + public void testBasicEncoding() throws Exception { + String userName = "test"; + String key = "pass"; + String[] decodedValue = PolicyUtils.decodeBasicEncoding("Basic " + encodedValue(userName + ":" + key)); + assertEquals(userName, decodedValue[0]); + assertEquals(key, decodedValue[1]); + assertEquals(0, PolicyUtils.decodeBasicEncoding(encodedValue(userName + ":" + key)).length); + assertEquals(0, PolicyUtils.decodeBasicEncoding(null).length); + } + + @Test + public void testSpecialCharValidator() { + assertEquals(ERROR, PolicyUtils.policySpecialCharValidator("$TEST_")); + assertEquals(ERROR, PolicyUtils.policySpecialCharValidator("$TEST _")); + assertEquals(ERROR, PolicyUtils.policySpecialCharValidator("")); + assertEquals(ERROR, PolicyUtils.policySpecialCharValidator("TæST")); + assertEquals(SUCCESS, PolicyUtils.policySpecialCharValidator("TEST")); + } + + @Test + public void testSpecialCharWithSpaceValidator() { + assertEquals(ERROR, PolicyUtils.policySpecialCharWithSpaceValidator("")); + assertEquals(ERROR, PolicyUtils.policySpecialCharWithSpaceValidator("$TEST _")); + assertEquals(SUCCESS, PolicyUtils.policySpecialCharWithSpaceValidator("TE ST")); + } + + @Test + public void testDescription() { + assertEquals(SUCCESS, PolicyUtils.descriptionValidator("Test")); + assertNotEquals(SUCCESS, PolicyUtils.descriptionValidator("@ModifiedBy:TesterB")); + assertNotEquals(SUCCESS, PolicyUtils.descriptionValidator("@CreatedBy:TesterA")); + } + + @Test + public void testNonAscii() { + assertTrue(PolicyUtils.containsNonAsciiEmptyChars(null)); + assertTrue(PolicyUtils.containsNonAsciiEmptyChars("")); + assertTrue(PolicyUtils.containsNonAsciiEmptyChars("T æST")); + assertTrue(PolicyUtils.containsNonAsciiEmptyChars("TæST")); + assertFalse(PolicyUtils.containsNonAsciiEmptyChars("TEST")); + } + + @Test + public void testInteger() { + assertFalse(PolicyUtils.isInteger(null)); + assertTrue(PolicyUtils.isInteger("123")); + assertFalse(PolicyUtils.isInteger("1a23")); + } + + @Test + public void testEmailAddress() { + assertEquals(SUCCESS, PolicyUtils.validateEmailAddress("test@onap.org")); + assertNotEquals(SUCCESS, PolicyUtils.validateEmailAddress("test@onap")); + } + + @Test + public void testBrmsValidate() { + String rule = "package com.sample;\n" + "import com.sample.DroolsTest.Message;\n" + "declare Params\n" + + "samPoll : int\n" + "value : String\n" + "end\n" + "///This Rule will be generated by the UI.\n" + + "rule \"Create parameters structure\"\n" + "salience 1000 \n" + "when\n" + "then\n" + + "Params params = new Params();\n" + "params.setSamPoll(76);\n" + "params.setValue(\"test\");\n" + + "insertLogical(params);\n" + "end\n" + + "rule \"Rule 1: Check parameter structure access from when/then\"\n" + "when\n" + "$param: Params()\n" + + "Params($param.samPoll > 50)\n" + "then\n" + "System.out.println(\"Firing rule 1\");\n" + + "System.out.println($param);\n" + "end\n"; + assertEquals(PolicyUtils.brmsRawValidate(rule), ""); + assertTrue(PolicyUtils.brmsRawValidate("error").contains("[ERR")); + assertFalse( + PolicyUtils.brmsRawValidate("package com.att.ecomp.policy.controlloop.p_${unique};").contains("[ERR")); + } + + @Test + public void testiIsJsonValid() { + assertTrue(PolicyUtils.isJSONValid("{\"test\":\"test\"}")); + String value = "{\"test\":\"test\", \"t1\": {\"test\": 12 , \"t2\":\"34\"},\"t2\":[{\"test\":\"val\"}]}"; + assertTrue(PolicyUtils.isJSONValid(value)); + assertFalse(PolicyUtils.isJSONValid("{\"test\":\"test")); + } + + @Test + public void testIsXmlValid() throws SAXException { + assertFalse(PolicyUtils.isXMLValid(null)); + assertFalse(PolicyUtils.isXMLValid("")); + XMLErrorHandler error = new XMLErrorHandler(); error.error(new SAXParseException(null, null)); error.warning(new SAXParseException(null, null)); - assertTrue(PolicyUtils.isXMLValid("<test>123</test>")); - assertFalse(PolicyUtils.isXMLValid("<test>123</test")); - } - - @Test - public void testIsPropValid(){ + assertTrue(PolicyUtils.isXMLValid("<test>123</test>")); + assertFalse(PolicyUtils.isXMLValid("<test>123</test")); + } + + @Test + public void testIsPropValid() { assertTrue(PolicyUtils.isPropValid("test=123\n\tval=123")); assertFalse(PolicyUtils.isPropValid("test")); assertFalse(PolicyUtils.isPropValid("test=")); assertTrue(PolicyUtils.isPropValid("#test\n\nval=123")); - } - - @Test - public void testVersionStringToArray(){ - assertTrue(PolicyUtils.versionStringToArray(null).length==0); - assertTrue(PolicyUtils.versionStringToArray("").length==0); - assertTrue(PolicyUtils.versionStringToArray("1.2.3").length==3); - } -}
\ No newline at end of file + } + + @Test + public void testVersionStringToArray() { + assertTrue(PolicyUtils.versionStringToArray(null).length == 0); + assertTrue(PolicyUtils.versionStringToArray("").length == 0); + assertTrue(PolicyUtils.versionStringToArray("1.2.3").length == 3); + } + + @Test + public void testSpecialChar() { + assertEquals(PolicyUtils.SUCCESS, PolicyUtils.policySpecialCharWithDashValidator("test")); + assertEquals(PolicyUtils.SUCCESS, PolicyUtils.policySpecialCharWithDashValidator("test-")); + assertEquals(PolicyUtils.SUCCESS, PolicyUtils.policySpecialCharWithDashValidator("test_")); + assertNotEquals(PolicyUtils.SUCCESS, PolicyUtils.policySpecialCharWithDashValidator("")); + assertNotEquals(PolicyUtils.SUCCESS, PolicyUtils.policySpecialCharWithDashValidator("test*")); + } +} |