1 /*******************************************************************************
2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2020 Wipro Limited.
6 * ==============================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
20 *******************************************************************************/
22 package org.onap.slice.analysis.ms.dmaap;
24 import java.io.IOException;
26 import org.onap.slice.analysis.ms.models.MLOutputModel;
27 import org.onap.slice.analysis.ms.service.MLMessageProcessor;
28 import org.onap.slice.analysis.ms.utils.BeanUtil;
29 import org.slf4j.Logger;
31 import com.fasterxml.jackson.core.type.TypeReference;
32 import com.fasterxml.jackson.databind.ObjectMapper;
35 * Handles Notification on dmaap for ML ms events
37 public class IntelligentSlicingCallback implements NotificationCallback {
38 private static final Logger log = org.slf4j.LoggerFactory.getLogger(IntelligentSlicingCallback.class);
39 private MLMessageProcessor mlMsMessageProcessor;
41 public IntelligentSlicingCallback() {
42 mlMsMessageProcessor = BeanUtil.getBean(MLMessageProcessor.class);
46 * Trigger on Notification from ML ms
49 public void activateCallBack(String msg) {
50 handlePolicyNotification(msg);
54 * Parse and take actions on reception of Notification from ML ms
57 private void handlePolicyNotification(String msg) {
58 log.info("Message received from ML ms: {}" ,msg);
59 ObjectMapper obj = new ObjectMapper();
60 MLOutputModel output = null;
62 output = obj.readValue(msg, new TypeReference<MLOutputModel>(){});
63 mlMsMessageProcessor.processMLMsg(output);
65 catch (IOException e) {
66 log.error("Error converting ML msg to object, {}",e.getMessage());