Tabnine Logo
DomainEventMessage.getSequenceNumber
Code IndexAdd Tabnine to your IDE (free)

How to use
getSequenceNumber
method
in
org.axonframework.eventhandling.DomainEventMessage

Best Java code snippets using org.axonframework.eventhandling.DomainEventMessage.getSequenceNumber (Showing top 20 results out of 315)

origin: AxonFramework/AxonFramework

@Override
public Long resolveParameterValue(Message message) {
  if (message instanceof DomainEventMessage) {
    return ((DomainEventMessage) message).getSequenceNumber();
  }
  return null;
}
origin: AxonFramework/AxonFramework

  @Override
  public Long getLastSequenceNumber() {
    return event.getSequenceNumber();
  }
};
origin: AxonFramework/AxonFramework

private DomainEventMessage<?> readNext() {
  DomainEventMessage<?> next = iterator.next();
  this.sequenceNumber = next.getSequenceNumber();
  return next;
}
origin: AxonFramework/AxonFramework

@Override
public DomainEventStream readEvents(String aggregateIdentifier, long firstSequenceNumber) {
  AtomicReference<Long> sequenceNumber = new AtomicReference<>();
  Stream<? extends DomainEventMessage<?>> stream =
      events.values().stream().filter(event -> event instanceof DomainEventMessage<?>)
         .map(event -> (DomainEventMessage<?>) event)
         .filter(event -> aggregateIdentifier.equals(event.getAggregateIdentifier())
             && event.getSequenceNumber() >= firstSequenceNumber)
         .peek(event -> sequenceNumber.set(event.getSequenceNumber()));
  return DomainEventStream.of(stream, sequenceNumber::get);
}
origin: AxonFramework/AxonFramework

private List<DomainEventMessage<?>> unexpectedEvents() {
  if (events == null) {
    if (expectedVersion >= actualVersion) {
      return Collections.emptyList();
    }
    events = eventStore.readEvents(aggregateIdentifier, expectedVersion + 1).asStream()
              .filter(event -> event.getSequenceNumber() <= actualVersion).collect(toList());
  }
  return events;
}
origin: AxonFramework/AxonFramework

/**
 * Create a new DomainEventStream with events obtained from the given {@code list}.
 *
 * @param list list that serves as a source of events in the resulting DomainEventStream
 * @return A DomainEventStream containing all events returned by the list
 */
static DomainEventStream of(List<? extends DomainEventMessage<?>> list) {
  return list.isEmpty() ? of(Stream.empty(), () -> null) :
      of(list.stream(), () -> list.isEmpty() ? null : list.get(list.size() - 1).getSequenceNumber());
}
origin: AxonFramework/AxonFramework

@Override
public DomainEventMessage<?> next() {
  if (!hasNext()) {
    return null;
  }
  DomainEventMessage<?> next = delegate.next();
  lastSequenceNumber = next.getSequenceNumber();
  return next;
}
origin: AxonFramework/AxonFramework

  @Override
  public void run() {
    DomainEventStream eventStream = eventStore.readEvents(identifier);
    // a snapshot should only be stored if the snapshot replaces at least more than one event
    long firstEventSequenceNumber = eventStream.peek().getSequenceNumber();
    DomainEventMessage snapshotEvent = createSnapshot(aggregateType, identifier, eventStream);
    if (snapshotEvent != null && snapshotEvent.getSequenceNumber() > firstEventSequenceNumber) {
      eventStore.storeSnapshot(snapshotEvent);
    }
  }
}
origin: AxonFramework/AxonFramework

/**
 * Publish an event to the aggregate root and its entities first and external event handlers (using the given
 * event bus) later.
 *
 * @param msg the event message to publish
 */
protected void publish(EventMessage<?> msg) {
  if (msg instanceof DomainEventMessage) {
    lastKnownSequence = ((DomainEventMessage) msg).getSequenceNumber();
  }
  inspector.publish(msg, aggregateRoot);
  publishOnEventBus(msg);
}
origin: AxonFramework/AxonFramework

/**
 * Construct a new event entry from a published domain event message to enable storing the event or sending it to a
 * remote location.
 * <p>
 * The given {@code serializer} will be used to serialize the payload and metadata in the given {@code
 * eventMessage}. The type of the serialized data will be the same as the given {@code contentType}.
 *
 * @param eventMessage The event message to convert to a serialized event entry
 * @param serializer   The serializer to convert the event
 * @param contentType  The data type of the payload and metadata after serialization
 */
public AbstractSnapshotEventEntry(DomainEventMessage<?> eventMessage, Serializer serializer, Class<T> contentType) {
  super(eventMessage, serializer, contentType);
  type = eventMessage.getType();
  aggregateIdentifier = eventMessage.getAggregateIdentifier();
  sequenceNumber = eventMessage.getSequenceNumber();
}
origin: AxonFramework/AxonFramework

/**
 * Initialize a DomainEventMessage originating from an aggregate.
 *
 * @param trackingToken Tracking token of the event
 * @param delegate      Delegate domain event containing other event data
 */
public GenericTrackedDomainEventMessage(TrackingToken trackingToken, DomainEventMessage<T> delegate) {
  this(trackingToken, delegate.getType(), delegate.getAggregateIdentifier(), delegate.getSequenceNumber(),
     delegate, delegate.getTimestamp());
}
origin: AxonFramework/AxonFramework

@Override
public DomainEventStream readEvents(String aggregateIdentifier, long firstSequenceNumber) {
  return DomainEventStream.concat(storageEngine.readEvents(aggregateIdentifier, firstSequenceNumber),
                  DomainEventStream.of(
                      stagedDomainEventMessages(aggregateIdentifier)
                          .filter(m -> m.getSequenceNumber() >= firstSequenceNumber)));
}
origin: AxonFramework/AxonFramework

@Override
public DomainEventMessage<?> next() {
  if (!hasNext()) {
    return null;
  }
  DomainEventMessage<?> next = streams.peekFirst().next();
  lastSequenceNumber = next.getSequenceNumber();
  return next;
}
origin: AxonFramework/AxonFramework

@Override
public <T> Message<T> convertToOutboundMessage(EventMessage<T> event) {
  Map<String, Object> headers = new HashMap<>();
  event.getMetaData().forEach(headers::put);
  headers.put(MESSAGE_ID, event.getIdentifier());
  if (event instanceof DomainEventMessage) {
    headers.put(AGGREGATE_ID, ((DomainEventMessage) event).getAggregateIdentifier());
    headers.put(AGGREGATE_SEQ, ((DomainEventMessage) event).getSequenceNumber());
    headers.put(AGGREGATE_TYPE, ((DomainEventMessage) event).getType());
  }
  return new GenericMessage<>(event.getPayload(), new SettableTimestampMessageHeaders(headers, event.getTimestamp().toEpochMilli()));
}
origin: AxonFramework/AxonFramework

@Override
protected void storeSnapshot(DomainEventMessage<?> snapshot, Serializer serializer) {
  try {
    entityManager().merge(createSnapshotEntity(snapshot, serializer));
    deleteSnapshots(snapshot.getAggregateIdentifier(), snapshot.getSequenceNumber());
    if (explicitFlush) {
      entityManager().flush();
    }
  } catch (Exception e) {
    handlePersistenceException(e, snapshot);
  }
}
origin: AxonFramework/AxonFramework

@Test
@SuppressWarnings("OptionalGetWithoutIsPresent")
public void testLoad_LargeAmountOfEvents() {
  int eventCount = testSubject.batchSize() + 10;
  testSubject.appendEvents(createEvents(eventCount));
  assertEquals(eventCount, testSubject.readEvents(AGGREGATE).asStream().count());
  assertEquals(eventCount - 1,
         testSubject.readEvents(AGGREGATE).asStream().reduce((a, b) -> b).get().getSequenceNumber());
}
origin: AxonFramework/AxonFramework

@Test
@SuppressWarnings("OptionalGetWithoutIsPresent")
public void testReadPartialStream() {
  testSubject.appendEvents(createEvents(5));
  assertEquals(2L, testSubject.readEvents(AGGREGATE, 2).asStream().findFirst().get().getSequenceNumber());
  assertEquals(4L, testSubject.readEvents(AGGREGATE, 2).asStream().reduce((a, b) -> b).get().getSequenceNumber());
  assertEquals(3L, testSubject.readEvents(AGGREGATE, 2).asStream().count());
}
origin: AxonFramework/AxonFramework

@Override
protected void storeSnapshot(DomainEventMessage<?> snapshot, Serializer serializer) {
  transactionManager.executeInTransaction(() -> {
    try {
      executeUpdates(
          getConnection(), e -> handlePersistenceException(e, snapshot),
          connection -> appendSnapshot(connection, snapshot, serializer),
          connection -> deleteSnapshots(
              connection, snapshot.getAggregateIdentifier(), snapshot.getSequenceNumber()
          )
      );
    } catch (ConcurrencyException e) {
      // Ignore duplicate key issues in snapshot. It just means a snapshot already exists
    }
  });
}
origin: AxonFramework/AxonFramework

@Before
public void setUp() {
  tokenStore = spy(new InMemoryTokenStore());
  mockHandler = mock(EventMessageHandler.class);
  when(mockHandler.canHandle(any())).thenReturn(true);
  eventHandlerInvoker = SimpleEventHandlerInvoker.builder()
                          .eventHandlers(singletonList(mockHandler))
                          .sequencingPolicy(event -> {
                            if (event instanceof DomainEventMessage) {
                              return ((DomainEventMessage) event)
                                  .getSequenceNumber();
                            }
                            return event.getIdentifier();
                          })
                          .build();
  eventBus = EmbeddedEventStore.builder().storageEngine(new InMemoryEventStorageEngine()).build();
  // A processor config, with a policy which guarantees segmenting by using the sequence number.
  configureProcessor(TrackingEventProcessorConfiguration.forParallelProcessing(2));
}
origin: AxonFramework/AxonFramework

@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());
}
org.axonframework.eventhandlingDomainEventMessagegetSequenceNumber

Javadoc

Returns the sequence number that allows DomainEvents originating from the same Aggregate to be placed in the order of generation.

Popular methods of DomainEventMessage

  • getAggregateIdentifier
    Returns the identifier of the Aggregate that generated this DomainEvent. Note that the value returne
  • getType
    Returns the type of the Aggregate that generated this DomainEvent. By default this is equal to the s
  • getIdentifier
  • getPayload
  • getTimestamp
  • serializeMetaData
  • serializePayload
  • andMetaData
  • getMetaData
  • getPayloadType
  • withMetaData
  • withMetaData

Popular in Java

  • Parsing JSON documents to java classes using gson
  • orElseThrow (Optional)
    Return the contained value, if present, otherwise throw an exception to be created by the provided s
  • setContentView (Activity)
  • getOriginalFilename (MultipartFile)
    Return the original filename in the client's filesystem.This may contain path information depending
  • Component (java.awt)
    A component is an object having a graphical representation that can be displayed on the screen and t
  • Runnable (java.lang)
    Represents a command that can be executed. Often used to run code in a different Thread.
  • HashMap (java.util)
    HashMap is an implementation of Map. All optional operations are supported.All elements are permitte
  • LinkedList (java.util)
    Doubly-linked list implementation of the List and Dequeinterfaces. Implements all optional list oper
  • SortedSet (java.util)
    SortedSet is a Set which iterates over its elements in a sorted order. The order is determined eithe
  • BasicDataSource (org.apache.commons.dbcp)
    Basic implementation of javax.sql.DataSource that is configured via JavaBeans properties. This is no
  • Github Copilot alternatives
Tabnine Logo
  • Products

    Search for Java codeSearch for JavaScript code
  • IDE Plugins

    IntelliJ IDEAWebStormVisual StudioAndroid StudioEclipseVisual Studio CodePyCharmSublime TextPhpStormVimGoLandRubyMineEmacsJupyter NotebookJupyter LabRiderDataGripAppCode
  • Company

    About UsContact UsCareers
  • Resources

    FAQBlogTabnine AcademyTerms of usePrivacy policyJava Code IndexJavascript Code Index
Get Tabnine for your IDE now