package org.jboss.weld.examples.pastecode.session;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import javax.ejb.Singleton;
import javax.ejb.Startup;
import javax.ejb.Timeout;
import javax.ejb.TimerService;
import javax.enterprise.event.Event;
import javax.inject.Inject;
/**
* Responsible for starting the timer for printing recently added code fragments
*
* @author Pete Muir
* @author Jozef Hartinger
*/
@Startup
@Singleton
public class Timer {
private static final int INTERVAL = 30 * 1000;
@Resource
private TimerService timerService;
@Inject
private Event<TimerEvent> event;
@PostConstruct
void startTimer() {
timerService.createTimer(0, INTERVAL, null);
}
@Timeout
void timeout() {
event.fire(new TimerEvent());
}
}