diff options
Diffstat (limited to 'src/main/java/org')
4 files changed, 0 insertions, 285 deletions
diff --git a/src/main/java/org/onap/cps/ncmp/dmi/exception/CloudEventConstructionException.java b/src/main/java/org/onap/cps/ncmp/dmi/exception/CloudEventConstructionException.java deleted file mode 100644 index 0069aabc..00000000 --- a/src/main/java/org/onap/cps/ncmp/dmi/exception/CloudEventConstructionException.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * Copyright (C) 2023 Nordix Foundation - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.cps.ncmp.dmi.exception; - -public class CloudEventConstructionException extends DmiException { - - private static final long serialVersionUID = 7747941311132087621L; - - /** - * Constructor. - * - * @param message the error message - * @param details the error details - * @param cause the error cause - */ - public CloudEventConstructionException(final String message, final String details, final Throwable cause) { - super(message, details, cause); - } -} diff --git a/src/main/java/org/onap/cps/ncmp/dmi/notifications/cmsubscription/CmSubscriptionDmiInEventConsumer.java b/src/main/java/org/onap/cps/ncmp/dmi/notifications/cmsubscription/CmSubscriptionDmiInEventConsumer.java deleted file mode 100644 index 57652809..00000000 --- a/src/main/java/org/onap/cps/ncmp/dmi/notifications/cmsubscription/CmSubscriptionDmiInEventConsumer.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * Copyright (C) 2023 Nordix Foundation - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.cps.ncmp.dmi.notifications.cmsubscription; - -import io.cloudevents.CloudEvent; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; -import lombok.RequiredArgsConstructor; -import org.apache.kafka.clients.consumer.ConsumerRecord; -import org.onap.cps.ncmp.dmi.notifications.mapper.CloudEventMapper; -import org.onap.cps.ncmp.events.cmsubscription1_0_0.dmi_to_ncmp.CmSubscriptionDmiOutEvent; -import org.onap.cps.ncmp.events.cmsubscription1_0_0.dmi_to_ncmp.Data; -import org.onap.cps.ncmp.events.cmsubscription1_0_0.dmi_to_ncmp.SubscriptionStatus; -import org.onap.cps.ncmp.events.cmsubscription1_0_0.ncmp_to_dmi.CmHandle; -import org.onap.cps.ncmp.events.cmsubscription1_0_0.ncmp_to_dmi.CmSubscriptionDmiInEvent; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.kafka.annotation.KafkaListener; -import org.springframework.kafka.core.KafkaTemplate; -import org.springframework.stereotype.Service; - -@Service -@RequiredArgsConstructor -public class CmSubscriptionDmiInEventConsumer { - - @Value("${app.dmi.avc.subscription-response-topic}") - private String cmAvcSubscriptionResponseTopic; - @Value("${dmi.service.name}") - private String dmiName; - private final KafkaTemplate<String, CloudEvent> cloudEventKafkaTemplate; - - /** - * Consume the specified event. - * - * @param cmSubscriptionDmiInCloudEvent the event to be consumed - */ - @KafkaListener(topics = "${app.dmi.avc.subscription-topic}", - containerFactory = "cloudEventConcurrentKafkaListenerContainerFactory") - public void consumeCmSubscriptionDmiInEvent( - final ConsumerRecord<String, CloudEvent> cmSubscriptionDmiInCloudEvent) { - final CmSubscriptionDmiInEvent cmSubscriptionDmiInEvent = - CloudEventMapper.toTargetEvent(cmSubscriptionDmiInCloudEvent.value(), CmSubscriptionDmiInEvent.class); - if (cmSubscriptionDmiInEvent != null) { - final String eventKey = cmSubscriptionDmiInCloudEvent.value().getId(); - final String subscriptionType = cmSubscriptionDmiInCloudEvent.value().getType(); - if ("subscriptionCreated".equals(subscriptionType)) { - sendCmSubscriptionDmiOutEvent(eventKey, "subscriptionCreatedStatus", - formCmSubscriptionDmiOutEvent(cmSubscriptionDmiInEvent)); - } else if ("subscriptionDeleted".equals(subscriptionType)) { - sendCmSubscriptionDmiOutEvent(eventKey, "subscriptionDeletedStatus", - formCmSubscriptionDmiOutEvent(cmSubscriptionDmiInEvent)); - } - } - } - - /** - * Sends message to the configured topic. - * - * @param eventKey is the kafka message key - * @param subscriptionType is the type of subscription action - * @param cmSubscriptionDmiOutEvent is the payload of the kafka message - */ - public void sendCmSubscriptionDmiOutEvent(final String eventKey, final String subscriptionType, - final CmSubscriptionDmiOutEvent cmSubscriptionDmiOutEvent) { - cloudEventKafkaTemplate.send(cmAvcSubscriptionResponseTopic, eventKey, - CmSubscriptionDmiOutEventToCloudEventMapper.toCloudEvent(cmSubscriptionDmiOutEvent, subscriptionType, - dmiName)); - } - - private CmSubscriptionDmiOutEvent formCmSubscriptionDmiOutEvent( - final CmSubscriptionDmiInEvent cmSubscriptionDmiInEvent) { - final CmSubscriptionDmiOutEvent cmSubscriptionDmiOutEvent = new CmSubscriptionDmiOutEvent(); - final Data cmSubscriptionDmiOutEventData = new Data(); - cmSubscriptionDmiOutEventData.setClientId(cmSubscriptionDmiInEvent.getData().getSubscription().getClientID()); - cmSubscriptionDmiOutEventData.setSubscriptionName( - cmSubscriptionDmiInEvent.getData().getSubscription().getName()); - cmSubscriptionDmiOutEventData.setDmiName(dmiName); - - final List<CmHandle> cmHandles = cmSubscriptionDmiInEvent.getData().getPredicates().getTargets(); - cmSubscriptionDmiOutEventData.setSubscriptionStatus(populateSubscriptionStatus(extractCmHandleIds(cmHandles))); - cmSubscriptionDmiOutEvent.setData(cmSubscriptionDmiOutEventData); - return cmSubscriptionDmiOutEvent; - } - - private Set<String> extractCmHandleIds(final List<CmHandle> cmHandles) { - final Set<String> cmHandleIds = new HashSet<>(); - - for (final CmHandle cmHandle : cmHandles) { - cmHandleIds.add(cmHandle.getId()); - } - return cmHandleIds; - } - - private List<SubscriptionStatus> populateSubscriptionStatus(final Set<String> cmHandleIds) { - final List<SubscriptionStatus> subscriptionStatuses = new ArrayList<>(); - for (final String cmHandleId : cmHandleIds) { - final SubscriptionStatus status = new SubscriptionStatus(); - status.setId(cmHandleId); - status.setStatus(SubscriptionStatus.Status.ACCEPTED); - subscriptionStatuses.add(status); - } - return subscriptionStatuses; - } - -} diff --git a/src/main/java/org/onap/cps/ncmp/dmi/notifications/cmsubscription/CmSubscriptionDmiOutEventToCloudEventMapper.java b/src/main/java/org/onap/cps/ncmp/dmi/notifications/cmsubscription/CmSubscriptionDmiOutEventToCloudEventMapper.java deleted file mode 100644 index 00fd1b65..00000000 --- a/src/main/java/org/onap/cps/ncmp/dmi/notifications/cmsubscription/CmSubscriptionDmiOutEventToCloudEventMapper.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * Copyright (C) 2023 Nordix Foundation - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.cps.ncmp.dmi.notifications.cmsubscription; - -import com.fasterxml.jackson.databind.ObjectMapper; -import io.cloudevents.CloudEvent; -import io.cloudevents.core.builder.CloudEventBuilder; -import java.net.URI; -import java.util.UUID; -import lombok.AccessLevel; -import lombok.NoArgsConstructor; -import org.onap.cps.ncmp.dmi.exception.CloudEventConstructionException; -import org.onap.cps.ncmp.events.cmsubscription1_0_0.dmi_to_ncmp.CmSubscriptionDmiOutEvent; - -@NoArgsConstructor(access = AccessLevel.PRIVATE) -public class CmSubscriptionDmiOutEventToCloudEventMapper { - - private static final ObjectMapper objectMapper = new ObjectMapper(); - - /** - * Maps SubscriptionEventResponse to a CloudEvent. - * - * @param cmSubscriptionDmiOutEvent object. - * @param subscriptionType String of subscription type. - * @param dmiName String of dmiName. - * @return CloudEvent built. - */ - public static CloudEvent toCloudEvent(final CmSubscriptionDmiOutEvent cmSubscriptionDmiOutEvent, - final String subscriptionType, final String dmiName) { - try { - return CloudEventBuilder.v1().withId(UUID.randomUUID().toString()).withSource(URI.create(dmiName)) - .withType(subscriptionType) - .withDataSchema(URI.create("urn:cps:" + CmSubscriptionDmiOutEvent.class.getName() + ":1.0.0")) - .withExtension("correlationid", cmSubscriptionDmiOutEvent.getData().getClientId() + ":" - + cmSubscriptionDmiOutEvent.getData().getSubscriptionName()) - .withData(objectMapper.writeValueAsBytes(cmSubscriptionDmiOutEvent)).build(); - } catch (final Exception ex) { - throw new CloudEventConstructionException("The Cloud Event could not be constructed", - "Invalid object to serialize or required headers is missing", ex); - } - } - - -} diff --git a/src/main/java/org/onap/cps/ncmp/dmi/notifications/mapper/CloudEventMapper.java b/src/main/java/org/onap/cps/ncmp/dmi/notifications/mapper/CloudEventMapper.java deleted file mode 100644 index edf875e6..00000000 --- a/src/main/java/org/onap/cps/ncmp/dmi/notifications/mapper/CloudEventMapper.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * ============LICENSE_START======================================================= - * Copyright (c) 2023 Nordix Foundation. - * ================================================================================ - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.cps.ncmp.dmi.notifications.mapper; - -import com.fasterxml.jackson.databind.ObjectMapper; -import io.cloudevents.CloudEvent; -import io.cloudevents.core.CloudEventUtils; -import io.cloudevents.core.data.PojoCloudEventData; -import io.cloudevents.jackson.PojoCloudEventDataMapper; -import io.cloudevents.rw.CloudEventRWException; -import lombok.AccessLevel; -import lombok.NoArgsConstructor; -import lombok.extern.slf4j.Slf4j; - -@Slf4j -@NoArgsConstructor(access = AccessLevel.PRIVATE) -public class CloudEventMapper { - - private static final ObjectMapper objectMapper = new ObjectMapper(); - - /** - * Generic method to map cloud event data to target event class object. - * - * @param cloudEvent input cloud event - * @param targetEventClass target event class - * @param <T> target event class type - * @return mapped target event - */ - public static <T> T toTargetEvent(final CloudEvent cloudEvent, final Class<T> targetEventClass) { - PojoCloudEventData<T> mappedCloudEvent = null; - - try { - mappedCloudEvent = - CloudEventUtils.mapData(cloudEvent, PojoCloudEventDataMapper.from(objectMapper, targetEventClass)); - - } catch (final CloudEventRWException cloudEventRwException) { - log.error("Unable to map cloud event to target event class type : {} with cause : {}", targetEventClass, - cloudEventRwException.getMessage()); - } - - return mappedCloudEvent == null ? null : mappedCloudEvent.getValue(); - } - -} |