/*
* ============LICENSE_START=======================================================
- * Copyright (C) 2024 Nordix Foundation
+ * Copyright (C) 2024-2025 OpenInfra Foundation Europe. 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.
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.onap.cps.ncmp.dmi.notifications.cmsubscription.model.CmNotificationSubscriptionStatus;
import org.onap.cps.ncmp.dmi.notifications.mapper.CloudEventMapper;
-import org.onap.cps.ncmp.impl.cmnotificationsubscription_1_0_0.dmi_to_ncmp.Data;
-import org.onap.cps.ncmp.impl.cmnotificationsubscription_1_0_0.dmi_to_ncmp.DmiOutEvent;
-import org.onap.cps.ncmp.impl.cmnotificationsubscription_1_0_0.ncmp_to_dmi.DmiInEvent;
+import org.onap.cps.ncmp.impl.datajobs.subscription.dmi_to_ncmp.Data;
+import org.onap.cps.ncmp.impl.datajobs.subscription.dmi_to_ncmp.DataJobSubscriptionDmiOutEvent;
+import org.onap.cps.ncmp.impl.datajobs.subscription.ncmp_to_dmi.DataJobSubscriptionDmiInEvent;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.kafka.core.KafkaTemplate;
containerFactory = "cloudEventConcurrentKafkaListenerContainerFactory")
public void consumeDmiInEvent(
final ConsumerRecord<String, CloudEvent> dmiInCloudEvent) {
- final DmiInEvent cmNotificationSubscriptionDmiInEvent =
+ final DataJobSubscriptionDmiInEvent dataJobSubscriptionDmiInEvent =
CloudEventMapper.toTargetEvent(dmiInCloudEvent.value(),
- DmiInEvent.class);
- if (cmNotificationSubscriptionDmiInEvent != null) {
+ DataJobSubscriptionDmiInEvent.class);
+ if (dataJobSubscriptionDmiInEvent != null) {
final String subscriptionId = dmiInCloudEvent.value().getId();
final String subscriptionType = dmiInCloudEvent.value().getType();
final String correlationId = String.valueOf(dmiInCloudEvent.value()
final String eventKey, final String subscriptionType, final String correlationId,
final CmNotificationSubscriptionStatus cmNotificationSubscriptionStatus) {
- final DmiOutEvent cmNotificationSubscriptionDmiOutEvent =
- new DmiOutEvent();
+ final DataJobSubscriptionDmiOutEvent dataJobSubscriptionDmiOutEvent =
+ new DataJobSubscriptionDmiOutEvent();
final Data dmiOutEventData = new Data();
if (cmNotificationSubscriptionStatus.equals(CmNotificationSubscriptionStatus.ACCEPTED)) {
dmiOutEventData.setStatusCode("104");
dmiOutEventData.setStatusMessage("REJECTED");
}
- cmNotificationSubscriptionDmiOutEvent.setData(dmiOutEventData);
+ dataJobSubscriptionDmiOutEvent.setData(dmiOutEventData);
cloudEventKafkaTemplate.send(dmoOutEventTopic, eventKey,
- DmiOutEventToCloudEventMapper.toCloudEvent(cmNotificationSubscriptionDmiOutEvent,
+ DmiOutEventToCloudEventMapper.toCloudEvent(dataJobSubscriptionDmiOutEvent,
subscriptionType, dmiName, correlationId));
}
/*
* ============LICENSE_START=======================================================
- * Copyright (C) 2024 Nordix Foundation
+ * Copyright (C) 2024-2025 OpenInfra Foundation Europe. 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.
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.onap.cps.ncmp.dmi.exception.CloudEventConstructionException;
-import org.onap.cps.ncmp.impl.cmnotificationsubscription_1_0_0.dmi_to_ncmp.DmiOutEvent;
+import org.onap.cps.ncmp.impl.datajobs.subscription.dmi_to_ncmp.DataJobSubscriptionDmiOutEvent;
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class DmiOutEventToCloudEventMapper {
/**
* Maps SubscriptionEventResponse to a CloudEvent.
*
- * @param dmiOutEvent object.
- * @param subscriptionType String of subscription type.
- * @param dmiName String of dmiName.
- * @param correlationId String of correlationId.
+ * @param dataJobSubscriptionDmiOutEvent event object.
+ * @param subscriptionType String of subscription type.
+ * @param dmiName String of dmiName.
+ * @param correlationId String of correlationId.
* @return CloudEvent built.
*/
- public static CloudEvent toCloudEvent(final DmiOutEvent dmiOutEvent,
+ public static CloudEvent toCloudEvent(final DataJobSubscriptionDmiOutEvent dataJobSubscriptionDmiOutEvent,
final String subscriptionType, final String dmiName,
final String correlationId) {
try {
.withType(subscriptionType)
.withDataSchema(URI.create("urn:cps:org.onap.ncmp.dmi.cm.subscription:1.0.0"))
.withExtension("correlationid", correlationId)
- .withData(objectMapper.writeValueAsBytes(dmiOutEvent)).build();
+ .withData(objectMapper.writeValueAsBytes(dataJobSubscriptionDmiOutEvent)).build();
} catch (final Exception ex) {
throw new CloudEventConstructionException("The Cloud Event could not be constructed",
"Invalid object passed", ex);
/*
* ============LICENSE_START=======================================================
- * Copyright (C) 2024 Nordix Foundation
+ * Copyright (C) 2024-2025 OpenInfra Foundation Europe. 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.
import org.onap.cps.ncmp.dmi.api.kafka.MessagingBaseSpec
import org.onap.cps.ncmp.dmi.notifications.cmsubscription.model.CmNotificationSubscriptionStatus
import org.onap.cps.ncmp.dmi.notifications.mapper.CloudEventMapper
-import org.onap.cps.ncmp.impl.cmnotificationsubscription_1_0_0.dmi_to_ncmp.Data
-import org.onap.cps.ncmp.impl.cmnotificationsubscription_1_0_0.dmi_to_ncmp.DmiOutEvent
-import org.onap.cps.ncmp.impl.cmnotificationsubscription_1_0_0.ncmp_to_dmi.DmiInEvent
+import org.onap.cps.ncmp.impl.datajobs.subscription.dmi_to_ncmp.Data
+import org.onap.cps.ncmp.impl.datajobs.subscription.dmi_to_ncmp.DataJobSubscriptionDmiOutEvent
+import org.onap.cps.ncmp.impl.datajobs.subscription.ncmp_to_dmi.DataJobSubscriptionDmiInEvent
import org.slf4j.LoggerFactory
import org.spockframework.spring.SpringBean
import org.springframework.test.annotation.DirtiesContext
def correlationId = 'test-subscriptionId#test-ncmp-dmi'
def cmSubscriptionDmiOutEventData = new Data(statusCode: subscriptionStatusCode, statusMessage: subscriptionStatusMessage)
def subscriptionEventResponse =
- new DmiOutEvent().withData(cmSubscriptionDmiOutEventData)
+ new DataJobSubscriptionDmiOutEvent().withData(cmSubscriptionDmiOutEventData)
and: 'consumer has a subscription'
kafkaConsumer.subscribe([testTopic] as List<String>)
when: 'an event is published'
def eventKey = UUID.randomUUID().toString()
def timestamp = new Timestamp(1679521929511)
def jsonData = TestUtils.getResourceFileContent('cmNotificationSubscriptionCreationEvent.json')
- def subscriptionEvent = objectMapper.readValue(jsonData, DmiInEvent.class)
+ def subscriptionEvent = objectMapper.readValue(jsonData, DataJobSubscriptionDmiInEvent.class)
objectUnderTest.dmoOutEventTopic = testTopic
def cloudEvent = CloudEventBuilder.v1().withId(UUID.randomUUID().toString()).withSource(URI.create('test-ncmp-dmi'))
.withType(subscriptionType)
- .withDataSchema(URI.create("urn:cps:" + DmiInEvent.class.getName() + ":1.0.0"))
+ .withDataSchema(URI.create("urn:cps:" + DataJobSubscriptionDmiInEvent.class.getName() + ":1.0.0"))
.withExtension("correlationid", eventKey)
.withTime(OffsetDateTime.ofInstant(timestamp.toInstant(), ZoneId.of("UTC")))
.withData(objectMapper.writeValueAsBytes(subscriptionEvent)).build()
/*
* ============LICENSE_START=======================================================
- * Copyright (C) 2024 Nordix Foundation
+ * Copyright (C) 2024-2025 OpenInfra Foundation Europe. 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.
import com.fasterxml.jackson.databind.ObjectMapper
import io.cloudevents.core.builder.CloudEventBuilder
import org.onap.cps.ncmp.dmi.exception.CloudEventConstructionException
-import org.onap.cps.ncmp.impl.cmnotificationsubscription_1_0_0.dmi_to_ncmp.Data
-import org.onap.cps.ncmp.impl.cmnotificationsubscription_1_0_0.dmi_to_ncmp.DmiOutEvent
+import org.onap.cps.ncmp.impl.datajobs.subscription.dmi_to_ncmp.Data
+import org.onap.cps.ncmp.impl.datajobs.subscription.dmi_to_ncmp.DataJobSubscriptionDmiOutEvent
import org.spockframework.spring.SpringBean
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.context.SpringBootTest
def dmiName = 'test-ncmp-dmi'
def correlationId = 'subscription1#test-ncmp-dmi'
def cmSubscriptionDmiOutEventData = new Data(statusCode: "1", statusMessage: "accepted")
- def cmSubscriptionDmiOutEvent =
- new DmiOutEvent().withData(cmSubscriptionDmiOutEventData)
+ def dataJobSubscriptionDmiOutEvent =
+ new DataJobSubscriptionDmiOutEvent().withData(cmSubscriptionDmiOutEventData)
when: 'a Cm Subscription DMI Out Event is converted'
- def result = objectUnderTest.toCloudEvent(cmSubscriptionDmiOutEvent, "subscriptionCreatedStatus", dmiName, correlationId)
+ def result = objectUnderTest.toCloudEvent(dataJobSubscriptionDmiOutEvent, "subscriptionCreatedStatus", dmiName, correlationId)
then: 'Cm Subscription DMI Out Event is converted as expected'
def expectedCloudEvent = CloudEventBuilder.v1().withId(UUID.randomUUID().toString()).withSource(URI.create('test-ncmp-dmi'))
.withType("subscriptionCreated")
- .withDataSchema(URI.create("urn:cps:" + DmiOutEvent.class.getName() + ":1.0.0"))
+ .withDataSchema(URI.create("urn:cps:" + DataJobSubscriptionDmiOutEvent.class.getName() + ":1.0.0"))
.withExtension("correlationid", correlationId)
- .withData(objectMapper.writeValueAsBytes(cmSubscriptionDmiOutEvent)).build()
+ .withData(objectMapper.writeValueAsBytes(dataJobSubscriptionDmiOutEvent)).build()
assert expectedCloudEvent.data == result.data
}
def 'Map the Cloud Event to data of the subscription event with null parameters causes an exception'() {
given: 'an empty subscription response event and event key'
def correlationId = 'subscription1#test-ncmp-dmi'
- def dmiOutEvent = new DmiOutEvent()
+ def dataJobSubscriptionDmiOutEvent = new DataJobSubscriptionDmiOutEvent()
when: 'the cm subscription dmi out Event map to data of cloud event'
- objectUnderTest.toCloudEvent(dmiOutEvent, "subscriptionCreatedStatus", null , correlationId)
+ objectUnderTest.toCloudEvent(dataJobSubscriptionDmiOutEvent, "subscriptionCreatedStatus", null , correlationId)
then: 'a run time exception is thrown'
thrown(CloudEventConstructionException)
}
/*
* ============LICENSE_START========================================================
- * Copyright (c) 2024 Nordix Foundation.
+ * Copyright (c) 2024-2025 OpenInfra Foundation Europe. 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.
import com.fasterxml.jackson.databind.ObjectMapper
import io.cloudevents.core.builder.CloudEventBuilder
-import org.onap.cps.ncmp.impl.cmnotificationsubscription_1_0_0.client_to_ncmp.NcmpInEvent
+import org.onap.cps.ncmp.impl.datajobs.subscription.client_to_ncmp.DataJobSubscriptionOperationInEvent
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.context.SpringBootTest
import spock.lang.Specification
expect: 'Events mapped correctly'
assert mappedCloudEvent == (CloudEventMapper.toTargetEvent(testCloudEvent(), targetClass) != null)
where: 'below are the scenarios'
- scenario | targetClass || mappedCloudEvent
- 'valid concrete type' | NcmpInEvent.class || true
- 'invalid concrete type' | ArrayList.class || false
+ scenario | targetClass || mappedCloudEvent
+ 'valid concrete type' | DataJobSubscriptionOperationInEvent.class|| true
+ 'invalid concrete type' | ArrayList.class || false
}
def testCloudEvent() {
- return CloudEventBuilder.v1().withData(objectMapper.writeValueAsBytes(new NcmpInEvent()))
+ return CloudEventBuilder.v1().withData(objectMapper.writeValueAsBytes(new DataJobSubscriptionOperationInEvent()))
.withId("cmhandle1")
.withSource(URI.create('test-source'))
.withDataSchema(URI.create('test'))
}
}
],
- "predicates": [
- {
- "targetFilter": [
- "CMHandle1",
- "CMHandle2",
- "CMHandle3"
+ "productionJobDefinition": {
+ "targetSelector": {
+ "dataNodeSelector": "/parent[id=\"1\"] \n/parent[id=\"3\"]/child\n/parent[id=\"4\"]"
+ },
+ "dataSelector": {
+ "notificationTypes": [
+ ""
],
- "scopeFilter": {
- "datastore": "ncmp-datastore:passthrough-running",
- "xpathFilter": [
- "//_3gpp-nr-nrm-gnbdufunction:GNBDUFunction/_3gpp-nr-nrm-nrcelldu:NRCellDU/",
- "//_3gpp-nr-nrm-gnbcuupfunction:GNBCUUPFunction//",
- "//_3gpp-nr-nrm-gnbcucpfunction:GNBCUCPFunction/_3gpp-nr-nrm-nrcelldu:NRCellCU//",
- "//_3gpp-nr-nrm-nrsectorcarrier:NRSectorCarrier//"
- ]
- }
+ "notificationFilter": ""
}
- ]
+ }
}
}
\ No newline at end of file
<!-- Project Versioning and Timestamp -->
<cps.groupId>org.onap.cps</cps.groupId>
- <cps.version>3.7.0</cps.version>
+ <cps.version>3.7.1</cps.version>
<maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format>
<!-- Code Quality and Dependency Management -->