package org.needle4j.db.configuration; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import org.hibernate.ejb.Ejb3Configuration; import org.needle4j.configuration.PropertyBasedConfigurationFactory; /** * Allows a fine configuration of an {@link EntityManagerFactory}. */ @Deprecated class EJB3Configuration implements PersistenceConfiguration { private final EntityManagerFactory factory; private final EntityManager entityManager; /** * Creates an {@link EntityManagerFactory} and {@link EntityManager} for the * given entity classes by using the configured hibernate specific * configuration file (*cfg.xml). * * @param entityClasses * the entity classes */ public EJB3Configuration(final Class<?>[] entityClasses) { factory = createEntityManagerFactory(entityClasses); entityManager = EntityManagerProxyFactory.createProxy(factory.createEntityManager()); } /** * {@inheritDoc} */ @Override public EntityManager getEntityManager() { return entityManager; } /** * {@inheritDoc} */ @Override public EntityManagerFactory getEntityManagerFactory() { return factory; } private static EntityManagerFactory createEntityManagerFactory(final Class<?>[] entityClasses) { final Ejb3Configuration cfg = new Ejb3Configuration(); // add a regular hibernate.cfg.xml cfg.configure(PropertyBasedConfigurationFactory.get().getHibernateCfgFilename()); for (final Class<?> clazz : entityClasses) { cfg.addAnnotatedClass(clazz); } return cfg.buildEntityManagerFactory(); } }