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;
}
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);
}
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());
}
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));
}
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;
}
Aggregations