Merge "Introduce Hazelcast for alternateId-cmHandle relation pt. 2 - error collection"
[cps.git] / cps-ncmp-service / src / main / java / org / onap / cps / ncmp / api / impl / events / lcm / LcmEventsService.java
index f258b45..f51b58c 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * ============LICENSE_START=======================================================
- * Copyright (C) 2022-2023 Nordix Foundation
+ * Copyright (C) 2022-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.
 package org.onap.cps.ncmp.api.impl.events.lcm;
 
 import io.micrometer.core.annotation.Timed;
+import java.util.Map;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.onap.cps.ncmp.api.impl.events.EventsPublisher;
-import org.onap.ncmp.cmhandle.event.lcm.LcmEvent;
+import org.onap.cps.events.EventsPublisher;
+import org.onap.cps.ncmp.events.lcm.v1.LcmEvent;
+import org.onap.cps.ncmp.events.lcm.v1.LcmEventHeader;
+import org.onap.cps.utils.JsonObjectMapper;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.kafka.KafkaException;
 import org.springframework.stereotype.Service;
@@ -39,6 +42,7 @@ import org.springframework.stereotype.Service;
 public class LcmEventsService {
 
     private final EventsPublisher<LcmEvent> eventsPublisher;
+    private final JsonObjectMapper jsonObjectMapper;
 
     @Value("${app.lcm.events.topic:ncmp-events}")
     private String topicName;
@@ -47,17 +51,19 @@ public class LcmEventsService {
     private boolean notificationsEnabled;
 
     /**
-     * Publish the LcmEvent to the public topic.
+     * Publish the LcmEvent with header to the public topic.
      *
-     * @param cmHandleId Cm Handle Id
-     * @param lcmEvent  Lcm Event
+     * @param cmHandleId     Cm Handle Id
+     * @param lcmEvent       Lcm Event
+     * @param lcmEventHeader Lcm Event Header
      */
-    @Timed(value = "cps.ncmp.lcm.events.publish",
-        description = "Time taken to publish a LCM event")
-    public void publishLcmEvent(final String cmHandleId, final LcmEvent lcmEvent) {
+    @Timed(value = "cps.ncmp.lcm.events.publish", description = "Time taken to publish a LCM event")
+    public void publishLcmEvent(final String cmHandleId, final LcmEvent lcmEvent, final LcmEventHeader lcmEventHeader) {
         if (notificationsEnabled) {
             try {
-                eventsPublisher.publishEvent(topicName, cmHandleId, lcmEvent);
+                final Map<String, Object> lcmEventHeadersMap =
+                        jsonObjectMapper.convertToValueType(lcmEventHeader, Map.class);
+                eventsPublisher.publishEvent(topicName, cmHandleId, lcmEventHeadersMap, lcmEvent);
             } catch (final KafkaException e) {
                 log.error("Unable to publish message to topic : {} and cause : {}", topicName, e.getMessage());
             }