summaryrefslogtreecommitdiffstats
path: root/datacollector/src/main/java/org/onap/rapp/datacollector/service/VesRetrievalService.java
diff options
context:
space:
mode:
Diffstat (limited to 'datacollector/src/main/java/org/onap/rapp/datacollector/service/VesRetrievalService.java')
-rw-r--r--datacollector/src/main/java/org/onap/rapp/datacollector/service/VesRetrievalService.java34
1 files changed, 24 insertions, 10 deletions
diff --git a/datacollector/src/main/java/org/onap/rapp/datacollector/service/VesRetrievalService.java b/datacollector/src/main/java/org/onap/rapp/datacollector/service/VesRetrievalService.java
index 517bb8b..379e32d 100644
--- a/datacollector/src/main/java/org/onap/rapp/datacollector/service/VesRetrievalService.java
+++ b/datacollector/src/main/java/org/onap/rapp/datacollector/service/VesRetrievalService.java
@@ -16,9 +16,11 @@ package org.onap.rapp.datacollector.service;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
+import java.util.List;
import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
+
import org.onap.rapp.datacollector.entity.ves.AdditionalMeasurementValues;
import org.onap.rapp.datacollector.entity.ves.AdditionalMeasurements;
import org.onap.rapp.datacollector.entity.ves.Event;
@@ -26,6 +28,9 @@ import org.onap.rapp.datacollector.service.configuration.DmaapRestReaderConfigur
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
@@ -40,13 +45,13 @@ public class VesRetrievalService implements DmaapRestReader {
private final RestTemplate restTemplate;
private final DmaapRestReaderConfiguration config;
- private final VesParser parser;
+ private final ParserFactory parser;
private final VesPersister persister;
private final UEHolder ueHolder;
@Autowired
- public VesRetrievalService(RestTemplate restTemplate, VesParser parser, VesPersister persister,
- DmaapRestReaderConfiguration configuration, UEHolder ueHolder) {
+ public VesRetrievalService(RestTemplate restTemplate, ParserFactory parser, VesPersister persister,
+ DmaapRestReaderConfiguration configuration, UEHolder ueHolder) {
this.restTemplate = restTemplate;
this.parser = parser;
this.persister = persister;
@@ -59,7 +64,9 @@ public class VesRetrievalService implements DmaapRestReader {
logger.info("Reaching from dmaap: {}", config.getMeasurementsTopicUrl());
try {
ResponseEntity<String[]> responseEntity =
- restTemplate.getForEntity(config.getMeasurementsTopicUrl(), String[].class);
+ restTemplate.exchange(config.getMeasurementsTopicUrl(), HttpMethod.GET,
+ new HttpEntity<String>(createHeaders(config.getDmaapProperties().getUsername(), config.getDmaapProperties().getPassword())),
+ String[].class);
if (responseEntity.hasBody()) {
String[] events = responseEntity.getBody();
return Arrays.stream(events).collect(Collectors.toList());
@@ -70,18 +77,25 @@ public class VesRetrievalService implements DmaapRestReader {
return Collections.emptyList();
}
+ private HttpHeaders createHeaders(String username, String password) {
+ HttpHeaders headers = new HttpHeaders();
+ headers.setBasicAuth(username, password);
+ return headers;
+ }
+
@Scheduled(fixedRate = 5000)
public void retrieveAndStoreVesEvents() {
- retrieveEvents().stream().map(parser::parse).forEach(this::saveEvent);
+ retrieveEvents().stream().map(parser::getParsedEvents).forEach(this::saveAllEvents);
}
- private void saveEvent(Event event) {
- persister.persists(event);
- saveUesOfVes(event);
+ private void saveAllEvents(List<Event> events) {
+ persister.persistAll(events);
+ saveUesOfVes(events);
}
- private void saveUesOfVes(Event event){
- Set<String> uesOfVes = getUserEquipmentData(event);
+ private void saveUesOfVes(List<Event> events) {
+ Set<String> uesOfVes = Optional.ofNullable(events).orElse(Collections.emptyList()).stream().flatMap(event -> getUserEquipmentData(event).stream())
+ .collect(Collectors.toSet());
uesOfVes.forEach(ueHolder::addUE);
}