From 362d7f981d2060314d9cd152a8cace524ebda356 Mon Sep 17 00:00:00 2001 From: mpriyank Date: Wed, 24 Apr 2024 12:03:46 +0100 Subject: [PATCH] NcmpCloudEventBuilder refactoring - Builder named as NcmpEvent and we have specialised method to build the NcmpEvent as cloud event now - Introduced source as the builder default property Issue-ID: CPS-2191 Change-Id: I51c571313091ce9a4d10f4e1af7423eee999cea8 Signed-off-by: mpriyank --- .../{NcmpCloudEventBuilder.java => NcmpEvent.java} | 20 +++++++++++--------- .../events/avc/ncmptoclient/AvcEventPublisher.java | 6 +++--- .../data/operation/DataOperationEventCreator.java | 8 ++++---- 3 files changed, 18 insertions(+), 16 deletions(-) rename cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/{NcmpCloudEventBuilder.java => NcmpEvent.java} (83%) diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/NcmpCloudEventBuilder.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/NcmpEvent.java similarity index 83% rename from cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/NcmpCloudEventBuilder.java rename to cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/NcmpEvent.java index 544db50a5..248db9805 100644 --- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/NcmpCloudEventBuilder.java +++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/NcmpEvent.java @@ -1,6 +1,6 @@ /* * ============LICENSE_START======================================================= - * Copyright (C) 2023 Nordix Foundation + * Copyright (C) 2023-2024 Nordix Foundation * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -31,30 +31,32 @@ import org.onap.cps.ncmp.api.impl.utils.EventDateTimeFormatter; import org.onap.cps.ncmp.api.impl.utils.context.CpsApplicationContext; import org.onap.cps.utils.JsonObjectMapper; -@Builder(buildMethodName = "setCloudEvent") -public class NcmpCloudEventBuilder { +@Builder +public class NcmpEvent { - private Object event; + private Object data; private Map extensions; private String type; @Builder.Default - private static final String EVENT_SPEC_VERSION_V1 = "1.0.0"; + private static final String CLOUD_EVENT_SPEC_VERSION_V1 = "1.0.0"; + @Builder.Default + private static final String CLOUD_EVENT_SOURCE = "NCMP"; /** * Creates ncmp cloud event with provided attributes. * * @return Cloud Event */ - public CloudEvent build() { + public CloudEvent asCloudEvent() { final JsonObjectMapper jsonObjectMapper = CpsApplicationContext.getCpsBean(JsonObjectMapper.class); final CloudEventBuilder cloudEventBuilder = CloudEventBuilder.v1() .withId(UUID.randomUUID().toString()) - .withSource(URI.create("NCMP")) + .withSource(URI.create(CLOUD_EVENT_SOURCE)) .withType(type) - .withDataSchema(URI.create("urn:cps:" + type + ":" + EVENT_SPEC_VERSION_V1)) + .withDataSchema(URI.create("urn:cps:" + type + ":" + CLOUD_EVENT_SPEC_VERSION_V1)) .withTime(EventDateTimeFormatter.toIsoOffsetDateTime( EventDateTimeFormatter.getCurrentIsoFormattedDateTime())) - .withData(jsonObjectMapper.asJsonBytes(event)); + .withData(jsonObjectMapper.asJsonBytes(data)); extensions.entrySet().stream() .filter(extensionEntry -> StringUtils.isNotBlank(extensionEntry.getValue())) .forEach(extensionEntry -> diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/avc/ncmptoclient/AvcEventPublisher.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/avc/ncmptoclient/AvcEventPublisher.java index 9bd111958..7afe606f4 100644 --- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/avc/ncmptoclient/AvcEventPublisher.java +++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/events/avc/ncmptoclient/AvcEventPublisher.java @@ -26,7 +26,7 @@ import java.util.HashMap; import java.util.Map; import lombok.RequiredArgsConstructor; import org.onap.cps.events.EventsPublisher; -import org.onap.cps.ncmp.api.impl.events.NcmpCloudEventBuilder; +import org.onap.cps.ncmp.api.impl.events.NcmpEvent; import org.onap.cps.ncmp.events.avc.ncmp_to_client.Avc; import org.onap.cps.ncmp.events.avc.ncmp_to_client.AvcEvent; import org.onap.cps.ncmp.events.avc.ncmp_to_client.Data; @@ -53,8 +53,8 @@ public class AvcEventPublisher { final Map extensions = createAvcEventExtensions(eventKey); final CloudEvent avcCloudEvent = - NcmpCloudEventBuilder.builder().type(AvcEvent.class.getTypeName()) - .event(avcEvent).extensions(extensions).setCloudEvent().build(); + NcmpEvent.builder().type(AvcEvent.class.getTypeName()) + .data(avcEvent).extensions(extensions).build().asCloudEvent(); eventsPublisher.publishCloudEvent(avcTopic, eventKey, avcCloudEvent); } diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/utils/data/operation/DataOperationEventCreator.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/utils/data/operation/DataOperationEventCreator.java index 61da706c5..42bad89f5 100644 --- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/utils/data/operation/DataOperationEventCreator.java +++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/utils/data/operation/DataOperationEventCreator.java @@ -1,6 +1,6 @@ /* * ============LICENSE_START======================================================= - * Copyright (C) 2023 Nordix Foundation + * Copyright (C) 2023-2024 Nordix Foundation * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -29,7 +29,7 @@ import lombok.AccessLevel; import lombok.NoArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.onap.cps.ncmp.api.NcmpResponseStatus; -import org.onap.cps.ncmp.api.impl.events.NcmpCloudEventBuilder; +import org.onap.cps.ncmp.api.impl.events.NcmpEvent; import org.onap.cps.ncmp.api.impl.operations.DmiDataOperation; import org.onap.cps.ncmp.events.async1_0_0.Data; import org.onap.cps.ncmp.events.async1_0_0.DataOperationEvent; @@ -57,8 +57,8 @@ public class DataOperationEventCreator { final Data data = createPayloadFromDataOperationResponses(cmHandleIdsPerResponseCodesPerOperation); dataOperationEvent.setData(data); final Map extensions = createDataOperationExtensions(requestId, clientTopic); - return NcmpCloudEventBuilder.builder().type(DataOperationEvent.class.getName()) - .event(dataOperationEvent).extensions(extensions).setCloudEvent().build(); + return NcmpEvent.builder().type(DataOperationEvent.class.getName()) + .data(dataOperationEvent).extensions(extensions).build().asCloudEvent(); } private static Data createPayloadFromDataOperationResponses(final MultiValueMap