@Override public void appendEvents(List<? extends EventMessage<?>> events) { synchronized (this.events) { GlobalSequenceTrackingToken trackingToken = nextTrackingToken(); this.events.putAll(IntStream.range(0, events.size()).mapToObj( i -> asTrackedEventMessage((EventMessage<?>) events.get(i), trackingToken.offsetBy(i))).collect( Collectors.toMap(TrackedEventMessage::trackingToken, Function.identity()))); } }
TrackingToken trackingToken = new GlobalSequenceTrackingToken(0); List<TrackedEventMessage<?>> events = createEvents(2).stream().map(event -> asTrackedEventMessage(event, trackingToken)).collect(toList()); when(eventBus.openStream(null)).thenReturn(trackingEventStreamOf(events.iterator())); testSubject = TrackingEventProcessor.builder()
@Override public void appendEvents(List<? extends EventMessage<?>> events) { synchronized (this.events) { GlobalSequenceTrackingToken trackingToken = nextTrackingToken(); this.events.putAll(IntStream.range(0, events.size()).mapToObj( i -> asTrackedEventMessage((EventMessage<?>) events.get(i), trackingToken.offsetBy(i))).collect( Collectors.toMap(TrackedEventMessage::trackingToken, Function.identity()))); } }
public static KafkaEventMessage from(EventMessage<?> eventMessage, ConsumerRecord<?, ?> record, KafkaTrackingToken token) { return new KafkaEventMessage( asTrackedEventMessage(eventMessage, token), record.partition(), record.offset(), record.timestamp() ); }