blob: 81cb4b83f3cfdb5e6bbbf15d54ad57242d7d3f70 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
/*
* ============LICENSE_START=======================================================
* ONAP : DCAE
* ================================================================================
* Copyright 2018 TechMahindra
*=================================================================================
* 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.
* ============LICENSE_END=========================================================
*/
package org.onap.universalvesadapter.service;
import javax.annotation.Resource;
import org.onap.universalvesadapter.adapter.GenericAdapter;
import org.onap.universalvesadapter.exception.ConfigFileReadException;
import org.onap.universalvesadapter.exception.ConfigFileSmooksConversionException;
import org.onap.universalvesadapter.exception.VesException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/**
* Service that starts the universal ves adapter module to listen for events
*
* @author kmalbari
*
*/
@Component
public class VesService {
private final Logger LOGGER = LoggerFactory.getLogger(this.getClass());
private boolean isRunning = true;
@Autowired
private DMaapService dmaapService;
@Autowired
private AdapterService adapterService;
@Resource(name="universalEventAdapter")
private GenericAdapter eventAdapter;
@Value("${messagesInBatch}")
private int messagesInBatch;
/*public void start(){
String incomingJsonString = dmaapService.consume();
if(!"".equals(incomingJsonString)){
GenericAdapter eventAdapter = adapterService.identifyIncomingJsonFormatAndReturnAdapter();
String outgoingJsonString = eventAdapter.transform(incomingJsonString);
System.out.println(outgoingJsonString);
}
}*/
/**
* method triggers universal ves adapter module
*/
public void start() {
/*ParallelTasks parallelTasks = new ParallelTasks();
int processingNumberOfMessage = 0;
while (isRunning) {
try {
for(String incomingJsonString : dmaapService.consumeFromDMaap()){
parallelTasks.add(() -> processReceivedJson(incomingJsonString));
processingNumberOfMessage++;
if(processingNumberOfMessage == messagesInBatch){
parallelTasks.startParallelTasks();
processingNumberOfMessage=0;
parallelTasks = new ParallelTasks();
try
{
Thread.sleep(1000);
}
catch (InterruptedException e)
{
}
}
}
} catch (DMaapException e) {
}
}*/
String incomingJsonString = dmaapService.consume();
processReceivedJson(incomingJsonString);
}
/**
* It finds mapping file for received json, transforms json to VES format
* and publishes it to outgoing DMaap MR Topic
*
* @param incomingJsonString
*/
private void processReceivedJson(String incomingJsonString) {
try {
LOGGER.debug("Received incoming message" + incomingJsonString);
if (!"".equals(incomingJsonString)) {
String eventType = adapterService.identifyEventTypeFromIncomingJson(incomingJsonString);
LOGGER.debug("Event identified as " + eventType);
String outgoingJsonString;
outgoingJsonString = eventAdapter.transform(incomingJsonString, eventType);
LOGGER.debug("Output VES json to be sent " + outgoingJsonString);
}
} catch (ConfigFileReadException | ConfigFileSmooksConversionException | VesException exception) {
LOGGER.error(exception.getMessage());
}
}
/**
* method stops universal ves adapter module
*/
public void stop() {
isRunning = false;
}
}
|