From 5faf85edbe847873636406b1e20f9d98ceced9a8 Mon Sep 17 00:00:00 2001 From: emaclee Date: Wed, 12 Nov 2025 10:37:51 +0000 Subject: [PATCH] Fix SonarQube issues - refactored cmDataJobSubscriptionPersistenceService to get URI from a customizable parameter - defined constants for 'dataNodeSelector' , 'dataJobId' and 'status' leaf names Issue-ID: CPS-475 Change-Id: I4344e2b9b239bbdc99cb82e945c4368af00bb1b8 Signed-off-by: emaclee --- .../CmDataJobSubscriptionPersistenceService.java | 27 +++++++++++++--------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/datajobs/subscription/utils/CmDataJobSubscriptionPersistenceService.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/datajobs/subscription/utils/CmDataJobSubscriptionPersistenceService.java index 01e7808753..0487886ec0 100644 --- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/datajobs/subscription/utils/CmDataJobSubscriptionPersistenceService.java +++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/datajobs/subscription/utils/CmDataJobSubscriptionPersistenceService.java @@ -53,13 +53,17 @@ public class CmDataJobSubscriptionPersistenceService { private static final String CPS_PATH_FOR_SUBSCRIPTION_NODE = "//subscription"; private static final String CPS_PATH_TEMPLATE_FOR_SUBSCRIPTIONS_WITH_DATA_NODE_SELECTOR = CPS_PATH_FOR_SUBSCRIPTION_NODE + "[@dataNodeSelector='%s']"; - private static final String CPS_PATH_FOR_SUBSCRIPTION_WITH_DATA_NODE_SELECTOR = - "/dataJob/subscription[@dataNodeSelector='%s']"; + private static final String CPS_PATH_FOR_SUBSCRIPTION_WITH_DATA_NODE_SELECTOR = PARENT_NODE_XPATH + + "/subscription[@dataNodeSelector='%s']"; private static final String CPS_PATH_TEMPLATE_FOR_SUBSCRIPTION_WITH_DATA_JOB_ID = CPS_PATH_FOR_SUBSCRIPTION_NODE + "/dataJobId[text()='%s']"; private static final String CPS_PATH_TEMPLATE_FOR_INACTIVE_SUBSCRIPTIONS = CPS_PATH_FOR_SUBSCRIPTION_NODE + "[@status='UNKNOWN' or @status='REJECTED']/dataJobId[text()='%s']"; + private static final String DATANODE_SELECTOR_LEAF_NAME = "dataNodeSelector"; + private static final String STATUS_LEAF_NAME = "status"; + private static final String DATAJOB_ID_LEAF_NAME = "dataJobId"; + private final JsonObjectMapper jsonObjectMapper; private final CpsQueryService cpsQueryService; private final CpsDataService cpsDataService; @@ -101,7 +105,7 @@ public class CmDataJobSubscriptionPersistenceService { if (existingNodes.isEmpty()) { return Collections.emptyList(); } - return (Collection) existingNodes.iterator().next().getLeaves().get("dataJobId"); + return (Collection) existingNodes.iterator().next().getLeaves().get(DATAJOB_ID_LEAF_NAME); } /** @@ -116,7 +120,7 @@ public class CmDataJobSubscriptionPersistenceService { cpsQueryService.queryDataNodes(DATASPACE, ANCHOR, query, OMIT_DESCENDANTS); final List dataNodeSelectors = new ArrayList<>(); for (final DataNode dataNode : dataNodes) { - final String dataNodeSelector = dataNode.getLeaves().get("dataNodeSelector").toString(); + final String dataNodeSelector = dataNode.getLeaves().get(DATANODE_SELECTOR_LEAF_NAME).toString(); dataNodeSelectors.add(dataNodeSelector); } return dataNodeSelectors; @@ -134,13 +138,13 @@ public class CmDataJobSubscriptionPersistenceService { cpsQueryService.queryDataNodes(DATASPACE, ANCHOR, query, OMIT_DESCENDANTS); final Collection subscriptionIds = getSubscriptionIds(dataNodeSelector); if (!subscriptionIds.remove(subscriptionId)) { - log.warn("SubscriptionId={} not found under {}={}", subscriptionId, "dataNodeSelector", dataNodeSelector); + log.warn("SubscriptionId={} not found under dataNodeSelector={}", subscriptionId, dataNodeSelector); return; } if (subscriptionIds.isEmpty()) { deleteEntireSubscription(dataNodeSelector); } else { - final String currentStatus = dataNodes.iterator().next().getLeaves().get("status").toString(); + final String currentStatus = dataNodes.iterator().next().getLeaves().get(STATUS_LEAF_NAME).toString(); updateSubscriptionDetails(dataNodeSelector, subscriptionIds, currentStatus); } } @@ -167,7 +171,7 @@ public class CmDataJobSubscriptionPersistenceService { OMIT_DESCENDANTS); final List dataNodeSelectors = new ArrayList<>(dataNodes.size()); for (final DataNode dataNode : dataNodes) { - final String dataNodeSelector = dataNode.getLeaves().get("dataNodeSelector").toString(); + final String dataNodeSelector = dataNode.getLeaves().get(DATANODE_SELECTOR_LEAF_NAME).toString(); dataNodeSelectors.add(dataNodeSelector); } return dataNodeSelectors; @@ -187,7 +191,8 @@ public class CmDataJobSubscriptionPersistenceService { addNewSubscriptionDetails(subscriptionId, dataNodeSelector); } else { final Collection subscriptionIds = getSubscriptionIds(dataNodeSelector); - final String cmSubscriptionStatusName = dataNodes.iterator().next().getLeaves().get("status").toString(); + final String cmSubscriptionStatusName = + dataNodes.iterator().next().getLeaves().get(STATUS_LEAF_NAME).toString(); subscriptionIds.add(subscriptionId); updateSubscriptionDetails(dataNodeSelector, subscriptionIds, cmSubscriptionStatusName); } @@ -227,9 +232,9 @@ public class CmDataJobSubscriptionPersistenceService { final Collection subscriptionIds, final String cmSubscriptionStatusName) { final Map subscriptionDetailsAsMap = - Map.of("dataNodeSelector", dataNodeSelector, - "dataJobId", (Serializable) subscriptionIds, - "status", cmSubscriptionStatusName); + Map.of(DATANODE_SELECTOR_LEAF_NAME, dataNodeSelector, + DATAJOB_ID_LEAF_NAME, (Serializable) subscriptionIds, + STATUS_LEAF_NAME, cmSubscriptionStatusName); return "{\"subscription\":[" + jsonObjectMapper.asJsonString(subscriptionDetailsAsMap) + "]}"; } -- 2.16.6