private Response getEventsOfTestRunTopologyHistory(Long topologyId, Long historyId, String componentName, SecurityContext securityContext) throws IOException { SecurityUtil.checkRoleOrPermissions(authorizer, securityContext, Roles.ROLE_TOPOLOGY_USER, Topology.NAMESPACE, topologyId, READ); File eventLogFile = getEventLogFile(topologyId, historyId); Stream<EventInformation> eventsStream = eventLogFileReader.loadEventLogFileAsStream(eventLogFile); if (!StringUtils.isEmpty(componentName)) { eventsStream = eventsStream.filter(event -> { String eventComponentName = event.getComponentName(); return eventComponentName != null && eventComponentName.equals(componentName); }); } return WSUtils.respondEntities(eventsStream.collect(toList()), OK); }
public GroupedCorrelationEvents(Map<String, EventInformation> correlatedEvents, String rootEventId) { this.allEvents = correlatedEvents; Map<String, ComponentGroupedEvents> unsortedComponentGroupedEvents = new HashMap<>(); correlatedEvents.values().forEach(event -> { String sourceComponentName = event.getComponentName(); Set<String> targetComponents = event.getTargetComponents(); ComponentGroupedEvents groupedEvents = unsortedComponentGroupedEvents.get(sourceComponentName); if (groupedEvents == null) { groupedEvents = new ComponentGroupedEvents(sourceComponentName); unsortedComponentGroupedEvents.put(sourceComponentName, groupedEvents); } groupedEvents.addOutputEventId(event.getEventId()); for (String component : targetComponents) { groupedEvents = unsortedComponentGroupedEvents.get(component); if (groupedEvents == null) { groupedEvents = new ComponentGroupedEvents(component); unsortedComponentGroupedEvents.put(component, groupedEvents); } groupedEvents.addInputEventId(event.getEventId()); } }); componentGroupedEvents = unsortedComponentGroupedEvents.entrySet() .stream() .collect(toMap(Map.Entry::getKey, entry -> new SortedComponentGroupedEvents(allEvents, entry.getValue(), rootEventId))); }
@Override public int hashCode() { int result = (int) (getTimestamp() ^ (getTimestamp() >>> 32)); result = 31 * result + (getComponentName() != null ? getComponentName().hashCode() : 0); result = 31 * result + (getStreamId() != null ? getStreamId().hashCode() : 0); result = 31 * result + (getTargetComponents() != null ? getTargetComponents().hashCode() : 0); result = 31 * result + (getEventId() != null ? getEventId().hashCode() : 0); result = 31 * result + (getRootIds() != null ? getRootIds().hashCode() : 0); result = 31 * result + (getParentIds() != null ? getParentIds().hashCode() : 0); result = 31 * result + (getFieldsAndValues() != null ? getFieldsAndValues().hashCode() : 0); return result; }
@Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof EventInformation)) return false; EventInformation that = (EventInformation) o; if (getTimestamp() != that.getTimestamp()) return false; if (getComponentName() != null ? !getComponentName().equals(that.getComponentName()) : that.getComponentName() != null) return false; if (getStreamId() != null ? !getStreamId().equals(that.getStreamId()) : that.getStreamId() != null) return false; if (getTargetComponents() != null ? !getTargetComponents().equals(that.getTargetComponents()) : that.getTargetComponents() != null) return false; if (getEventId() != null ? !getEventId().equals(that.getEventId()) : that.getEventId() != null) return false; if (getRootIds() != null ? !getRootIds().equals(that.getRootIds()) : that.getRootIds() != null) return false; if (getParentIds() != null ? !getParentIds().equals(that.getParentIds()) : that.getParentIds() != null) return false; return getFieldsAndValues() != null ? getFieldsAndValues().equals(that.getFieldsAndValues()) : that.getFieldsAndValues() == null; }