@Override public Optional<DomainEventMessage<?>> readSnapshot(String aggregateIdentifier) { return delegate.readSnapshot(aggregateIdentifier); }
@Override public Optional<DomainEventMessage<?>> readSnapshot(String aggregateIdentifier) { return Optional.ofNullable(activeStorage.readSnapshot(aggregateIdentifier).orElseGet( () -> historicStorage.readSnapshot(aggregateIdentifier).orElse(null))); }
/** * {@inheritDoc} * <p> * This implementation returns a {@link DomainEventStream} starting with the last stored snapshot of the aggregate * followed by subsequent domain events. */ @Override public DomainEventStream readEvents(String aggregateIdentifier) { Optional<DomainEventMessage<?>> optionalSnapshot; try { optionalSnapshot = storageEngine.readSnapshot(aggregateIdentifier); } catch (Exception | LinkageError e) { optionalSnapshot = handleSnapshotReadingError(aggregateIdentifier, e); } DomainEventStream eventStream; if (optionalSnapshot.isPresent()) { DomainEventMessage<?> snapshot = optionalSnapshot.get(); eventStream = DomainEventStream.concat(DomainEventStream.of(snapshot), storageEngine.readEvents(aggregateIdentifier, snapshot.getSequenceNumber() + 1)); } else { eventStream = storageEngine.readEvents(aggregateIdentifier); } Stream<? extends DomainEventMessage<?>> domainEventMessages = stagedDomainEventMessages(aggregateIdentifier); return DomainEventStream.concat(eventStream, DomainEventStream.of(domainEventMessages)); }
@Test public void testStoreAndLoadSnapshot() { testSubject.storeSnapshot(createEvent(0)); testSubject.storeSnapshot(createEvent(1)); testSubject.storeSnapshot(createEvent(3)); testSubject.storeSnapshot(createEvent(2)); assertTrue(testSubject.readSnapshot(AGGREGATE).isPresent()); assertEquals(3, testSubject.readSnapshot(AGGREGATE).get().getSequenceNumber()); }
@Override public Optional<DomainEventMessage<?>> readSnapshot(String aggregateIdentifier) { return delegate.readSnapshot(aggregateIdentifier); }
@Override public Optional<DomainEventMessage<?>> readSnapshot(String aggregateIdentifier) { return delegate.readSnapshot(aggregateIdentifier); }
@Override public Optional<DomainEventMessage<?>> readSnapshot(String aggregateIdentifier) { return Optional.ofNullable(activeStorage.readSnapshot(aggregateIdentifier).orElseGet( () -> historicStorage.readSnapshot(aggregateIdentifier).orElse(null))); }
@Override public Optional<DomainEventMessage<?>> readSnapshot(String aggregateIdentifier) { return Optional.ofNullable(activeStorage.readSnapshot(aggregateIdentifier).orElseGet( () -> historicStorage.readSnapshot(aggregateIdentifier).orElse(null))); }
/** * {@inheritDoc} * <p> * This implementation returns a {@link DomainEventStream} starting with the last stored snapshot of the aggregate * followed by subsequent domain events. */ @Override public DomainEventStream readEvents(String aggregateIdentifier) { Optional<DomainEventMessage<?>> optionalSnapshot; try { optionalSnapshot = storageEngine.readSnapshot(aggregateIdentifier); } catch (Exception | LinkageError e) { optionalSnapshot = handleSnapshotReadingError(aggregateIdentifier, e); } DomainEventStream eventStream; if (optionalSnapshot.isPresent()) { DomainEventMessage<?> snapshot = optionalSnapshot.get(); eventStream = DomainEventStream.concat(DomainEventStream.of(snapshot), storageEngine.readEvents(aggregateIdentifier, snapshot.getSequenceNumber() + 1)); } else { eventStream = storageEngine.readEvents(aggregateIdentifier); } Stream<? extends DomainEventMessage<?>> domainEventMessages = stagedDomainEventMessages(aggregateIdentifier); return DomainEventStream.concat(eventStream, DomainEventStream.of(domainEventMessages)); }
/** * {@inheritDoc} * <p> * This implementation returns a {@link DomainEventStream} starting with the last stored snapshot of the aggregate * followed by subsequent domain events. */ @Override public DomainEventStream readEvents(String aggregateIdentifier) { Optional<DomainEventMessage<?>> optionalSnapshot; try { optionalSnapshot = storageEngine.readSnapshot(aggregateIdentifier); } catch (Exception | LinkageError e) { optionalSnapshot = handleSnapshotReadingError(aggregateIdentifier, e); } DomainEventStream eventStream; if (optionalSnapshot.isPresent()) { DomainEventMessage<?> snapshot = optionalSnapshot.get(); eventStream = DomainEventStream.concat(DomainEventStream.of(snapshot), storageEngine.readEvents(aggregateIdentifier, snapshot.getSequenceNumber() + 1)); } else { eventStream = storageEngine.readEvents(aggregateIdentifier); } Stream<? extends DomainEventMessage<?>> domainEventMessages = stagedDomainEventMessages(aggregateIdentifier); return DomainEventStream.concat(eventStream, DomainEventStream.of(domainEventMessages)); }