logger.debug("Starting job to publish a scheduled event");
Object event = context.getJobDetail().getJobDataMap().get(EVENT_KEY);
EventMessage<?> eventMessage = createMessage(event);
try {
EventBus eventBus = (EventBus) context.getScheduler().getContext().get(EVENT_BUS_KEY);
UnitOfWorkFactory unitOfWorkFactory =
(UnitOfWorkFactory) context.getScheduler().getContext().get(UNIT_OF_WORK_FACTORY_KEY);
UnitOfWork uow = unitOfWorkFactory.createUnitOfWork();
try {
uow.publishEvent(eventMessage, eventBus);
} finally {
uow.commit();
}