use of org.killbill.bus.api.PersistentBus.EventBusException in project killbill by killbill.
the class DefaultBroadcastApi method broadcast.
@Override
public void broadcast(final String serviceName, final String type, final String event, final DateTime createdDate, final String createdBy, final boolean localNodeOnly) {
// If localNodeOnly, this is not really a broadcast api anymore, but we still rely on that broadcast bus event to notify the local node
if (localNodeOnly) {
final BroadcastInternalEvent busEvent = new DefaultBroadcastInternalEvent(serviceName, type, event);
try {
eventBus.post(busEvent);
} catch (final EventBusException e) {
logger.warn("Failed to post event {}", event, e);
}
} else {
final BroadcastModelDao modelDao = new BroadcastModelDao(serviceName, type, event, createdDate, createdBy);
dao.create(modelDao);
}
}
use of org.killbill.bus.api.PersistentBus.EventBusException in project killbill by killbill.
the class DefaultAccountDao method postBusEventFromTransaction.
@Override
protected void postBusEventFromTransaction(final AccountModelDao account, final AccountModelDao savedAccount, final ChangeType changeType, final EntitySqlDaoWrapperFactory entitySqlDaoWrapperFactory, final InternalCallContext context) throws BillingExceptionBase {
// This is only called for the create call (see update below)
switch(changeType) {
case INSERT:
break;
default:
return;
}
final Long recordId = entitySqlDaoWrapperFactory.become(AccountSqlDao.class).getRecordId(savedAccount.getId().toString(), context);
// We need to re-hydrate the callcontext with the account record id
final InternalCallContext rehydratedContext = internalCallContextFactory.createInternalCallContext(recordId, context);
final AccountCreationInternalEvent creationEvent = new DefaultAccountCreationEvent(new DefaultAccountData(savedAccount), savedAccount.getId(), rehydratedContext.getAccountRecordId(), rehydratedContext.getTenantRecordId(), rehydratedContext.getUserToken());
try {
eventBus.postFromTransaction(creationEvent, entitySqlDaoWrapperFactory.getHandle().getConnection());
} catch (final EventBusException e) {
log.warn("Failed to post account creation event for accountId='{}'", savedAccount.getId(), e);
}
}
use of org.killbill.bus.api.PersistentBus.EventBusException in project killbill by killbill.
the class MockAccountDao method create.
@Override
public void create(final AccountModelDao account, final InternalCallContext context) throws AccountApiException {
super.create(account, context);
try {
final Long accountRecordId = getRecordId(account.getId(), context);
final long tenantRecordId = context == null ? InternalCallContextFactory.INTERNAL_TENANT_RECORD_ID : context.getTenantRecordId();
eventBus.post(new DefaultAccountCreationEvent(new DefaultAccountData(account), account.getId(), accountRecordId, tenantRecordId, UUID.randomUUID()));
} catch (final EventBusException ex) {
Assert.fail(ex.toString());
}
}
use of org.killbill.bus.api.PersistentBus.EventBusException in project killbill by killbill.
the class DefaultSubscriptionDao method notifyBusOfEffectiveImmediateChange.
private void notifyBusOfEffectiveImmediateChange(final EntitySqlDaoWrapperFactory entitySqlDaoWrapperFactory, final DefaultSubscriptionBase subscription, final SubscriptionBaseEvent immediateEvent, final int seqId, final InternalCallContext context) {
try {
final SubscriptionBaseTransitionData transition = subscription.getTransitionFromEvent(immediateEvent, seqId);
if (transition != null) {
final BusEvent busEvent = new DefaultEffectiveSubscriptionEvent(transition, subscription.getAlignStartDate(), context.getUserToken(), context.getAccountRecordId(), context.getTenantRecordId());
eventBus.postFromTransaction(busEvent, entitySqlDaoWrapperFactory.getHandle().getConnection());
}
} catch (final EventBusException e) {
log.warn("Failed to post effective event for subscriptionId='{}'", subscription.getId(), e);
}
}
Aggregations