diff --git a/impl/extension/jpa/src/main/java/br/gov/frameworkdemoiselle/internal/producer/AbstractEntityManagerStore.java b/impl/extension/jpa/src/main/java/br/gov/frameworkdemoiselle/internal/producer/AbstractEntityManagerStore.java
index 941df30..266ef59 100644
--- a/impl/extension/jpa/src/main/java/br/gov/frameworkdemoiselle/internal/producer/AbstractEntityManagerStore.java
+++ b/impl/extension/jpa/src/main/java/br/gov/frameworkdemoiselle/internal/producer/AbstractEntityManagerStore.java
@@ -36,13 +36,10 @@
*/
package br.gov.frameworkdemoiselle.internal.producer;
-import java.io.Serializable;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
-import javax.annotation.PostConstruct;
-import javax.annotation.PreDestroy;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.persistence.EntityManager;
@@ -71,7 +68,7 @@ import br.gov.frameworkdemoiselle.util.ResourceBundle;
* @author serpro
*
*/
-public abstract class AbstractEntityManagerStore implements Serializable {
+public abstract class AbstractEntityManagerStore implements EntityManagerStore {
private static final long serialVersionUID = 1L;
@@ -90,7 +87,7 @@ public abstract class AbstractEntityManagerStore implements Serializable {
@Inject
private EntityManagerConfig configuration;
- EntityManager getEntityManager(String persistenceUnit) {
+ public EntityManager getEntityManager(String persistenceUnit) {
EntityManager entityManager = null;
if (cache.containsKey(persistenceUnit)) {
@@ -107,19 +104,6 @@ public abstract class AbstractEntityManagerStore implements Serializable {
return entityManager;
}
- /**
- * Run this to initialize all persistence units. It's recomended this method
- * be annotated with {@link PostConstruct}, so it runs as soon as an EntityManager gets injected.
- */
- public abstract void initialize();
-
- /**
- * Run this to close all persistence units. It's recomended this method
- * be annotated with {@link PreDestroy}, so it runs as soon as the scope the EntityManager is
- * attached to ends.
- */
- public abstract void terminate();
-
void init() {
for (String persistenceUnit : getFactory().getCache().keySet()) {
getEntityManager(persistenceUnit);
@@ -138,7 +122,11 @@ public abstract class AbstractEntityManagerStore implements Serializable {
cache.clear();
}
- Map
@@ -136,47 +127,6 @@ public class EntityManagerProducer implements Serializable{
return new EntityManagerProxy(persistenceUnit);
}
- /*public EntityManager getEntityManager(String persistenceUnit) {
- return getStore().getEntityManager(persistenceUnit);
- }*/
-
- @PostConstruct
- void init() {
- for (String persistenceUnit : getFactory().getCache().keySet()) {
- getEntityManager(persistenceUnit);
- }
- }
-
- @PreDestroy
- void close() {
- //Se o produtor não possui escopo, então o ciclo de vida
- //de EntityManager produzidos é responsabilidade do desenvolvedor. Não
- //fechamos os EntityManagers aqui.
- //if (configuration.getEntityManagerScope() != EntityManagerScope.NOSCOPE){
- for (EntityManager entityManager : cache.values()) {
- entityManager.close();
- }
- //}
- cache.clear();
- }
-
- public EntityManager getEntityManager(String persistenceUnit) {
- EntityManager entityManager = null;
-
- if (cache.containsKey(persistenceUnit)) {
- entityManager = cache.get(persistenceUnit);
-
- } else {
- entityManager = getFactory().create(persistenceUnit).createEntityManager();
- entityManager.setFlushMode(FlushModeType.AUTO);
-
- cache.put(persistenceUnit, entityManager);
- this.getLogger().info(getBundle().getString("entity-manager-was-created", persistenceUnit));
- }
-
- return entityManager;
- }
-
/**
* Tries to get persistence unit name from demoiselle.properties.
*
@@ -212,12 +162,15 @@ public class EntityManagerProducer implements Serializable{
}
}
+ public EntityManager getEntityManager(String persistenceUnit) {
+ return getStore().getEntityManager(persistenceUnit);
+ }
+
public Map