/**
*
*/
package com.teefun.db;
import javax.annotation.Resource;
import org.springframework.stereotype.Component;
import com.google.common.eventbus.Subscribe;
import com.teefun.db.service.QueueService;
import com.teefun.events.event.QueueCreatedEvent;
import com.teefun.events.event.QueueDeletedEvent;
/**
* Process events for DB in this class due to Transactional creating a proxy preventing the events to work correctly.
*
* @author Rajh
*
*/
@Component
public class DBEventProcessor {
/**
* Queue service.
*/
@Resource
private QueueService queueService;
/**
* Persist queue on queue created.
*
* @param queueCreatedEvent the event
*/
@Subscribe
public void onQueueCreated(final QueueCreatedEvent queueCreatedEvent) {
this.queueService.saveQueue(queueCreatedEvent.getQueue());
}
/**
* Remove from DB queue on queue deleted.
*
* @param queueCreatedEvent the event
*/
@Subscribe
public void onQueueDeleted(final QueueDeletedEvent queueDeletedEvent) {
this.queueService.removeQueue(queueDeletedEvent.getQueue());
}
}