package net.curisit.securis.ioc; import javax.enterprise.context.ApplicationScoped; import javax.enterprise.inject.Default; import javax.enterprise.inject.Disposes; import javax.enterprise.inject.Produces; import javax.inject.Inject; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @ApplicationScoped public class DatabaseProvider { private static final Logger LOG = LogManager.getLogger(DatabaseProvider.class); @Inject public DatabaseProvider() { LOG.info("Contructor DatabaseProvider, emf: {}, em: {} ", entityManagerFactory, getEM()); } private EntityManagerFactory entityManagerFactory = javax.persistence.Persistence.createEntityManagerFactory("localdb"); // EntityManagerFactory emfH2 = // javax.persistence.Persistence.createEntityManagerFactory("localdb"); @Produces private EntityManager getEM() { return entityManagerFactory.createEntityManager(); } public void dispose(@Disposes @Default EntityManager entityManager) { if (entityManager.isOpen()) { entityManager.close(); } } }