@Override public Void inTransaction(final QueueSqlDao<T> transactional, final TransactionStatus status) throws Exception { insertEntryFromTransaction(transactional, entry); return null; } });
@Override public void recordFutureNotificationFromTransaction(final Transmogrifier transmogrifier, final DateTime futureNotificationTime, final NotificationEvent event, final UUID userToken, final Long searchKey1, final Long searchKey2) throws IOException { final NotificationSqlDao transactionalNotificationDao = transmogrifier.become(NotificationSqlDao.class); final String eventJson = objectMapper.writeValueAsString(event); final UUID futureUserToken = UUID.randomUUID(); final Long searchKey2WithNull = Objects.firstNonNull(searchKey2, new Long(0)); final NotificationEventModelDao notification = new NotificationEventModelDao(Hostname.get(), clock.getUTCNow(), event.getClass().getName(), eventJson, userToken, searchKey1, searchKey2WithNull, futureUserToken, futureNotificationTime, getFullQName()); dao.insertEntryFromTransaction(transactionalNotificationDao, notification); }
@Override public void postFromTransaction(final BusEvent event, final Transmogrifier transmogrifier) throws EventBusException { try { final PersistentBusSqlDao transactional = transmogrifier.become(PersistentBusSqlDao.class); if (isStarted.get()) { final String json = objectMapper.writeValueAsString(event); final BusEventModelDao entry = new BusEventModelDao(Hostname.get(), clock.getUTCNow(), event.getClass().getName(), json, event.getUserToken(), event.getSearchKey1(), event.getSearchKey2()); dao.insertEntryFromTransaction(transactional, entry); } else { log.warn("Attempting to post event " + event + " in a non initialized bus"); } } catch (Exception e) { log.error("Failed to post BusEvent " + event, e); } } }