/** * Starts a new DefaultUnitOfWork instance, registering it a CurrentUnitOfWork. This methods returns the started * UnitOfWork instance. * <p> * Note that this Unit Of Work type is not meant to be shared among different Threads. A single DefaultUnitOfWork * instance should be used exclusively by the Thread that created it. * * @param message the message that will be processed in the context of the unit of work * @return the started UnitOfWork instance */ public static <T extends Message<?>> DefaultUnitOfWork<T> startAndGet(T message) { DefaultUnitOfWork<T> uow = new DefaultUnitOfWork<>(message); uow.start(); return uow; }
@SuppressWarnings("unchecked") @Override public void run() { EventMessage<?> eventMessage = createMessage(); if (logger.isDebugEnabled()) { logger.debug("Triggered the publication of event [{}]", eventMessage.getPayloadType().getSimpleName()); } try { UnitOfWork<EventMessage<?>> unitOfWork = new DefaultUnitOfWork<>(null); unitOfWork.attachTransaction(transactionManager); unitOfWork.execute(() -> eventBus.publish(eventMessage)); } finally { tokens.remove(tokenId); } }
protected void executeStorageJob(EventMessage<?>... events) { UnitOfWork<?> unitOfWork = new DefaultUnitOfWork<>(null); unitOfWork.execute(() -> storeEvents(events)); }
@Override public void run() { if (logger.isDebugEnabled()) { logger.debug("Triggered deadline"); } try { Instant triggerInstant = GenericEventMessage.clock.instant(); UnitOfWork<DeadlineMessage<?>> unitOfWork = new DefaultUnitOfWork<>( new GenericDeadlineMessage<>(deadlineName, deadlineMessage, () -> triggerInstant)); unitOfWork.attachTransaction(transactionManager); InterceptorChain chain = new DefaultInterceptorChain<>(unitOfWork, handlerInterceptors(), deadlineMessage -> { executeScheduledDeadline(deadlineMessage, deadlineScope); return null; }); ResultMessage<?> resultMessage = unitOfWork.executeWithResult(chain::proceed); if (resultMessage.isExceptional()) { Throwable e = resultMessage.exceptionResult(); throw new DeadlineException(format("An error occurred while triggering the deadline %s %s", deadlineName, deadlineId), e); } } finally { scheduledTasks.remove(new DeadlineId(deadlineName, deadlineId)); } }
/** * Starts a new DefaultUnitOfWork instance, registering it a CurrentUnitOfWork. This methods returns the started * UnitOfWork instance. * <p> * Note that this Unit Of Work type is not meant to be shared among different Threads. A single DefaultUnitOfWork * instance should be used exclusively by the Thread that created it. * * @param message the message that will be processed in the context of the unit of work * @return the started UnitOfWork instance */ public static <T extends Message<?>> DefaultUnitOfWork<T> startAndGet(T message) { DefaultUnitOfWork<T> uow = new DefaultUnitOfWork<>(message); uow.start(); return uow; }
/** * Starts a new DefaultUnitOfWork instance, registering it a CurrentUnitOfWork. This methods returns the started * UnitOfWork instance. * <p> * Note that this Unit Of Work type is not meant to be shared among different Threads. A single DefaultUnitOfWork * instance should be used exclusively by the Thread that created it. * * @param message the message that will be processed in the context of the unit of work * @return the started UnitOfWork instance */ public static <T extends Message<?>> DefaultUnitOfWork<T> startAndGet(T message) { DefaultUnitOfWork<T> uow = new DefaultUnitOfWork<>(message); uow.start(); return uow; }
@SuppressWarnings("unchecked") @Override public void run() { EventMessage<?> eventMessage = createMessage(); if (logger.isDebugEnabled()) { logger.debug("Triggered the publication of event [{}]", eventMessage.getPayloadType().getSimpleName()); } try { UnitOfWork<EventMessage<?>> unitOfWork = new DefaultUnitOfWork<>(null); unitOfWork.attachTransaction(transactionManager); unitOfWork.execute(() -> eventBus.publish(eventMessage)); } finally { tokens.remove(tokenId); } }
@SuppressWarnings("unchecked") @Override public void run() { EventMessage<?> eventMessage = createMessage(); if (logger.isDebugEnabled()) { logger.debug("Triggered the publication of event [{}]", eventMessage.getPayloadType().getSimpleName()); } try { UnitOfWork<EventMessage<?>> unitOfWork = new DefaultUnitOfWork<>(null); unitOfWork.attachTransaction(transactionManager); unitOfWork.execute(() -> eventBus.publish(eventMessage)); } finally { tokens.remove(tokenId); } }
@Override public void run() { Instant triggerInstant = GenericEventMessage.clock.instant(); DeadlineMessage<?> deadlineMessage = new GenericDeadlineMessage<>( deadlineName, new GenericMessage<>(messageOrPayload), () -> triggerInstant ); if (logger.isDebugEnabled()) { logger.debug("Triggered deadline"); } try { UnitOfWork<DeadlineMessage<?>> unitOfWork = new DefaultUnitOfWork<>(deadlineMessage); unitOfWork.attachTransaction(transactionManager); unitOfWork.execute(() -> executeScheduledDeadline(deadlineMessage, deadlineScope)); } finally { scheduledTasks.remove(new DeadlineId(deadlineName, deadlineId)); } }
@Override public void run() { if (logger.isDebugEnabled()) { logger.debug("Triggered deadline"); } try { Instant triggerInstant = GenericEventMessage.clock.instant(); UnitOfWork<DeadlineMessage<?>> unitOfWork = new DefaultUnitOfWork<>( new GenericDeadlineMessage<>(deadlineName, deadlineMessage, () -> triggerInstant)); unitOfWork.attachTransaction(transactionManager); InterceptorChain chain = new DefaultInterceptorChain<>(unitOfWork, handlerInterceptors(), deadlineMessage -> { executeScheduledDeadline(deadlineMessage, deadlineScope); return null; }); ResultMessage<?> resultMessage = unitOfWork.executeWithResult(chain::proceed); if (resultMessage.isExceptional()) { Throwable e = resultMessage.exceptionResult(); throw new DeadlineException(format("An error occurred while triggering the deadline %s %s", deadlineName, deadlineId), e); } } finally { scheduledTasks.remove(new DeadlineId(deadlineName, deadlineId)); } }