Package org.axonframework.domain

Examples of org.axonframework.domain.DomainEventMessage


        assertEquals("Return value", result);
        uow.commit();

        verify(mockAuditDataProvider, atLeast(1)).provideAuditDataFor(command);
        verify(mockAuditLogger, times(1)).logSuccessful(eq(command), any(Object.class), listWithTwoEventMessages());
        DomainEventMessage eventFromAggregate = aggregate.getUncommittedEvents().next();
        assertEquals("value", eventFromAggregate.getMetaData().get("key"));
    }
View Full Code Here


               .expectEvents(new MyEvent("AggregateId", 3));

        DomainEventStream events = fixture.getEventStore().readEvents("StandardAggregate", "AggregateId");
        for (int t=0;t<3;t++) {
            assertTrue(events.hasNext());
            DomainEventMessage next = events.next();
            assertEquals("AggregateId", next.getAggregateIdentifier());
            assertEquals(t, next.getSequenceNumber());
        }
    }
View Full Code Here

               .expectEvents(new MyEvent("AggregateId", 3));

        DomainEventStream events = fixture.getEventStore().readEvents("StandardAggregate", "AggregateId");
        for (int t = 0; t < 3; t++) {
            assertTrue(events.hasNext());
            DomainEventMessage next = events.next();
            assertEquals("AggregateId", next.getAggregateIdentifier());
            assertEquals(t, next.getSequenceNumber());
        }
    }
View Full Code Here

    }

    @Test(timeout = 4000)
    public void testAfterReplayInvokedAfterHandlingOfLastEvent() throws Exception {
        final ReplayAwareListener listener = mock(ReplayAwareListener.class);
        final DomainEventMessage event1 = new GenericDomainEventMessage<String>("id1", 0, "event1");
        final DomainEventMessage event2 = new GenericDomainEventMessage<String>("id1", 0, "event2");
        final ExecutorService executor = Executors.newSingleThreadExecutor();
        doAnswer(new Answer() {
            @Override
            public Object answer(final InvocationOnMock invocation) throws Throwable {
                executor.submit(new Runnable() {
View Full Code Here

    @Test(timeout = 1000)
    public void testAfterReplayInvokedWhenTimeoutExpires() throws Exception {
        testSubject.getMetaData().setProperty(ReplayingCluster.AFTER_REPLAY_TIMEOUT, "0");
        final ReplayAwareListener listener = mock(ReplayAwareListener.class);
        final DomainEventMessage event1 = new GenericDomainEventMessage<String>("id1", 0, "event1");
        final DomainEventMessage event2 = new GenericDomainEventMessage<String>("id1", 0, "event2");
        doNothing().when(delegateCluster).publish(event2);
        doAnswer(new Answer() {
            @Override
            public Object answer(InvocationOnMock invocation) throws Throwable {
                ((EventVisitor) invocation.getArguments()[0]).doWithEvent(event1);
View Full Code Here

        EventMessageReader in = new EventMessageReader(
                new DataInputStream(new ByteArrayInputStream(baos.toByteArray())), serializer);
        EventMessage<Object> serializedMessage = in.readEventMessage();
        assertTrue(serializedMessage instanceof DomainEventMessage);

        DomainEventMessage serializedDomainEventMessage = (DomainEventMessage) serializedMessage;

        assertEquals(message.getIdentifier(), serializedDomainEventMessage.getIdentifier());
        assertEquals(message.getPayloadType(), serializedDomainEventMessage.getPayloadType());
        assertEquals(message.getTimestamp(), serializedDomainEventMessage.getTimestamp());
        assertEquals(message.getMetaData(), serializedDomainEventMessage.getMetaData());
        assertEquals(message.getPayload(), serializedDomainEventMessage.getPayload());
        assertEquals(message.getAggregateIdentifier(), serializedDomainEventMessage.getAggregateIdentifier());
        assertEquals(message.getSequenceNumber(), serializedDomainEventMessage.getSequenceNumber());
    }
View Full Code Here

    private RedisConnectionProvider redisConnectionProvider;

    @Override
    public void appendEvents(String type, final DomainEventStream events) {
        Jedis jedis = redisConnectionProvider.newConnection();
        DomainEventMessage firstEvent = events.peek();
        final byte[] key = (type + "." + firstEvent.getAggregateIdentifier()).getBytes(IOUtils.UTF8);
        jedis.watch(key);
        Long eventCount = jedis.llen(key);
        if ((firstEvent.getSequenceNumber() != 0 && eventCount == null)
                || firstEvent.getSequenceNumber() != eventCount) {
            jedis.unwatch();
            throw new ConcurrencyException(
                    String.format("Concurrent modification detected for Aggregate identifier [%s], sequence: [%s]",
                                  firstEvent.getAggregateIdentifier(),
                                  firstEvent.getSequenceNumber()));
        }

        try {
//            jedis.pipelined(new PipelineBlock() {
//                @Override
//                public void execute() {
            Transaction multi = jedis.multi();
            while (events.hasNext()) {
                DomainEventMessage domainEvent = events.next();
                multi.rpush(new String(key, IOUtils.UTF8), new String(eventSerializer.serialize(domainEvent, byte[].class)
                                                                             .getData(), IOUtils.UTF8));
            }
            multi.exec();
//                }
View Full Code Here

    public void initializeState(DomainEventStream domainEventStream) {
        Assert.state(getUncommittedEventCount() == 0, "Aggregate is already initialized");
        inReplay = true;
        long lastSequenceNumber = -1;
        while (domainEventStream.hasNext()) {
            DomainEventMessage event = domainEventStream.next();
            lastSequenceNumber = event.getSequenceNumber();
            handleRecursively(event);
        }
        initializeEventStream(lastSequenceNumber);
        inReplay = false;
    }
View Full Code Here

            return next != null && next.getSequenceNumber() <= lastSequenceNumber;
        }

        @Override
        public DomainEventMessage next() {
            DomainEventMessage current = next;
            initializeNextItem();
            return current;
        }
View Full Code Here

     * {@inheritDoc}
     */
    @SuppressWarnings("unchecked")
    @Override
    public void appendEvents(String type, DomainEventStream events) {
        DomainEventMessage event = null;
        try {
            while (events.hasNext()) {
                event = events.next();
                validateIdentifier(event.getAggregateIdentifier().getClass());
                final Class dataType = eventEntryStore.getDataType();
                SerializedObject serializedPayload = serializer.serializePayload(event, dataType);
                SerializedObject serializedMetaData = serializer.serializeMetaData(event, dataType);
                eventEntryStore.persistEvent(type, event, serializedPayload, serializedMetaData);
            }
        } catch (RuntimeException exception) {
            if (persistenceExceptionResolver != null
                    && persistenceExceptionResolver.isDuplicateKeyViolation(exception)) {
                //noinspection ConstantConditions
                throw new ConcurrencyException(
                        String.format("Concurrent modification detected for Aggregate identifier [%s], sequence: [%s]",
                                      event.getAggregateIdentifier(),
                                      event.getSequenceNumber()),
                        exception
                );
            }
            throw exception;
        }
View Full Code Here

TOP

Related Classes of org.axonframework.domain.DomainEventMessage

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.