Search in sources :

Example 61 with Event

use of io.spine.core.Event in project core-java by SpineEventEngine.

the class EventFactory method toEvent.

/**
 * Creates an event based on the passed integration event.
 */
public static Event toEvent(IntegrationEvent integrationEvent) {
    final IntegrationEventContext sourceContext = integrationEvent.getContext();
    final EventContext context = toEventContext(sourceContext);
    final Event result = createEvent(sourceContext.getEventId(), integrationEvent.getMessage(), context);
    return result;
}
Also used : EventContext(io.spine.core.EventContext) IntegrationEventContext(io.spine.server.integration.IntegrationEventContext) IntegrationEventContext(io.spine.server.integration.IntegrationEventContext) Event(io.spine.core.Event) IntegrationEvent(io.spine.server.integration.IntegrationEvent)

Example 62 with Event

use of io.spine.core.Event in project core-java by SpineEventEngine.

the class EventStore method appendAll.

/**
 * Appends the passed events to the history of events.
 *
 * <p>If the passed {@link Iterable} is empty, no action is performed.
 *
 * <p>If the passed {@linkplain Event Events} belong to the different
 * {@linkplain TenantId tenants}, an {@link IllegalArgumentException} is thrown.
 *
 * @param events the events to append
 */
public void appendAll(final Iterable<Event> events) {
    checkNotNull(events);
    final Optional<Event> tenantDefiningEvent = tryFind(events, Predicates.<Event>notNull());
    if (!tenantDefiningEvent.isPresent()) {
        return;
    }
    final Event event = tenantDefiningEvent.get();
    final TenantAwareOperation op = new EventOperation(event) {

        @Override
        public void run() {
            if (isTenantSet()) {
                // If multitenant context
                ensureSameTenant(events);
            }
            store(events);
        }
    };
    op.execute();
    logStored(events);
}
Also used : EventOperation(io.spine.server.tenant.EventOperation) Event(io.spine.core.Event) TenantAwareOperation(io.spine.server.tenant.TenantAwareOperation)

Example 63 with Event

use of io.spine.core.Event in project core-java by SpineEventEngine.

the class DomesticEventPublisher method dispatch.

@Override
public Set<String> dispatch(EventEnvelope envelope) {
    final Event event = envelope.getOuterObject();
    final ExternalMessage msg = ExternalMessages.of(event, boundedContextName);
    final ExternalMessageClass messageClass = ExternalMessageClass.of(envelope.getMessageClass());
    final Publisher channel = publisherHub.get(messageClass);
    channel.publish(AnyPacker.pack(envelope.getId()), msg);
    return ImmutableSet.of(channel.toString());
}
Also used : Event(io.spine.core.Event)

Example 64 with Event

use of io.spine.core.Event in project core-java by SpineEventEngine.

the class EventBusAdapter method markExternal.

@Override
ExternalMessageEnvelope markExternal(ExternalMessage externalMsg) {
    final Any packedEvent = externalMsg.getOriginalMessage();
    final Event event = AnyPacker.unpack(packedEvent);
    final Event.Builder eventBuilder = event.toBuilder();
    final EventContext modifiedContext = eventBuilder.getContext().toBuilder().setExternal(true).build();
    final Event marked = eventBuilder.setContext(modifiedContext).build();
    final ExternalMessage result = ExternalMessages.of(marked, externalMsg.getBoundedContextName());
    return ExternalMessageEnvelope.of(result, Events.getMessage(event));
}
Also used : EventContext(io.spine.core.EventContext) Event(io.spine.core.Event) Any(com.google.protobuf.Any)

Example 65 with Event

use of io.spine.core.Event in project core-java by SpineEventEngine.

the class EventBusAdapter method toExternalEnvelope.

@Override
ExternalMessageEnvelope toExternalEnvelope(ExternalMessage message) {
    final Message unpacked = AnyPacker.unpack(message.getOriginalMessage());
    final Event event = (Event) unpacked;
    final ExternalMessageEnvelope result = ExternalMessageEnvelope.of(message, Events.getMessage(event));
    return result;
}
Also used : Message(com.google.protobuf.Message) Event(io.spine.core.Event)

Aggregations

Event (io.spine.core.Event)115 Test (org.junit.Test)75 Command (io.spine.core.Command)19 EventContext (io.spine.core.EventContext)12 BoundedContext (io.spine.server.BoundedContext)12 GivenEvent (io.spine.server.event.given.EventBusTestEnv.GivenEvent)12 Version (io.spine.core.Version)10 TestEventFactory (io.spine.server.command.TestEventFactory)10 Message (com.google.protobuf.Message)9 EventEnvelope (io.spine.core.EventEnvelope)9 InMemoryTransportFactory (io.spine.server.integration.memory.InMemoryTransportFactory)9 Timestamp (com.google.protobuf.Timestamp)6 Ack (io.spine.core.Ack)6 TenantId (io.spine.core.TenantId)6 Error (io.spine.base.Error)5 AggregateMessageDispatcher.dispatchCommand (io.spine.server.aggregate.AggregateMessageDispatcher.dispatchCommand)5 AggregateTestEnv.newTenantId (io.spine.server.aggregate.given.aggregate.AggregateTestEnv.newTenantId)5 StringValue (com.google.protobuf.StringValue)4 GivenEvent (io.spine.core.given.GivenEvent)4 Duration (com.google.protobuf.Duration)3