Skip to content
This repository has been archived by the owner on Jan 10, 2024. It is now read-only.

Commit

Permalink
16: Stability improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
hnaether-c8y committed Dec 20, 2022
1 parent 47df188 commit df843c8
Showing 1 changed file with 20 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -134,9 +134,11 @@ public void startListenersForEventMappings() {
if (mapping.isEnabled()) {
ArrayList<String> relevantHubDeviceIds = mapping.getC8yDevices();
// filter for c8y devices which were configured in the mapping via c8yDevices
List<ManagedObjectRepresentation> devicesFromMapping = relevantHubDeviceIds.isEmpty() ? hubDevices
: hubDevices.stream().filter(d -> relevantHubDeviceIds.contains(d.getId().toString()))
.collect(Collectors.toList());
List<ManagedObjectRepresentation> devicesFromMapping = (relevantHubDeviceIds == null
|| relevantHubDeviceIds.isEmpty()) ? hubDevices
: hubDevices.stream()
.filter(d -> relevantHubDeviceIds.contains(d.getId().getValue()))
.collect(Collectors.toList());
listenForMapping(mapping, devicesFromMapping);
}
}
Expand All @@ -160,12 +162,16 @@ public void listenForMapping(EventMapping mapping, List<ManagedObjectRepresentat

List<AdamosEventData> mappedEvents = allEvents.stream().map(e -> mapToAdamosEvent(e, mapping, selectedDevices))
.collect(Collectors.toList());

// update cache with latest date of all events we fetched
Date latestDate = allEvents.stream().map(e -> e.getCreationDateTime().toDate()).max(Date::compareTo).get();
lastUpdateDatesCache.put(mapping.getId(), latestDate);

mappedEvents.forEach(e -> this.createAdamosEvent(e));
if (!mappedEvents.isEmpty()) {
// update cache with latest date of all events we fetched
Date latestDate = allEvents.stream().map(e -> e.getCreationDateTime().toDate()).max(Date::compareTo).get();
lastUpdateDatesCache.put(mapping.getId(), latestDate);

mappedEvents.forEach(e -> this.createAdamosEvent(e));
appLogger.info("Hub event listener " + mapping.getName() + " finished. Converted " + mappedEvents.size() + " events.");
} else {
appLogger.info("Hub event listener " + mapping.getName() + " finished with nothing to do");
}
}

private void createAdamosEvent(AdamosEventData eventData) {
Expand All @@ -181,14 +187,15 @@ private AdamosEventData mapToAdamosEvent(EventRepresentation event, EventMapping

// get the hub uuid from the source device of the event
ManagedObjectRepresentation device = selectedDevices.stream()
.filter(d -> d.getId().toString().equals(event.getSource().getId().toString())).findFirst().get();
.filter(d -> d.getId().getValue().equals(event.getSource().getId().getValue())).findFirst().get();
EquipmentDTO hubData = new HubConnectorResponse<EquipmentDTO>(device, CustomProperties.HUB_DATA,
EquipmentDTO.class).getData();
String hubUuid = hubData.getUuid();

AdamosEventData eventData = event.get(AdamosEventData.class);
eventData.setTimestampCreated(event.getDateTime());
eventData.setReferenceObjectType(mapping.getAdamosEventType());
AdamosEventData eventData = new AdamosEventData();
eventData.setTimestampCreated(event.getCreationDateTime());
eventData.setEventCode(mapping.getAdamosEventType());
eventData.setReferenceObjectType("adamos:masterdata:type:machine:1");
eventData.setReferenceObjectId(hubUuid);

if (!mapping.getC8yFragments().isEmpty()) {
Expand Down

0 comments on commit df843c8

Please sign in to comment.