package br.com.caelum.vraptor.musicjungle.observer;
import javax.enterprise.context.Dependent;
import javax.enterprise.event.Observes;
import javax.inject.Inject;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import br.com.caelum.vraptor.events.VRaptorInitialized;
import br.com.caelum.vraptor.musicjungle.model.User;
/**
* <p> Insert some data when VRaptor is initialized.</p>
*
* This is an example that you can observe any event triggered by VRaptor.
*
* See more at {@link http://www.vraptor.org/en/docs/events/}.
*
* @author Rodrigo Turini
*/
@Dependent
public class InitialDataObserver {
private EntityManagerFactory factory;
@Inject
public InitialDataObserver(EntityManagerFactory factory) {
this.factory = factory;
}
public void insert(@Observes VRaptorInitialized event) {
EntityManager manager = null;
try {
manager = factory.createEntityManager();
manager.getTransaction().begin();
User defaultUser = new User();
defaultUser.setLogin("vraptor");
defaultUser.setPassword("vraptor");
defaultUser.setName("VRaptor's Default User");
manager.persist(defaultUser);
manager.getTransaction().commit();
} finally {
if (manager != null && manager.isOpen()) {
manager.close();
}
}
}
}