From 77a5174386f5bdf8ad0a0aa531b94484f28cc218 Mon Sep 17 00:00:00 2001 From: Dancovich Date: Wed, 11 Sep 2013 12:11:21 -0300 Subject: [PATCH] Implementando escopo configuravel para Entity Manager --- impl/extension/jpa/src/main/java/br/gov/frameworkdemoiselle/internal/bootstrap/EntityManagerBootstrap.java | 14 ++++++++++---- impl/extension/jpa/src/main/java/br/gov/frameworkdemoiselle/internal/producer/RequestScopedProducer.java | 20 ++++++++++++++++++++ 2 files changed, 30 insertions(+), 4 deletions(-) create mode 100644 impl/extension/jpa/src/main/java/br/gov/frameworkdemoiselle/internal/producer/RequestScopedProducer.java diff --git a/impl/extension/jpa/src/main/java/br/gov/frameworkdemoiselle/internal/bootstrap/EntityManagerBootstrap.java b/impl/extension/jpa/src/main/java/br/gov/frameworkdemoiselle/internal/bootstrap/EntityManagerBootstrap.java index 91ce44f..51abeeb 100644 --- a/impl/extension/jpa/src/main/java/br/gov/frameworkdemoiselle/internal/bootstrap/EntityManagerBootstrap.java +++ b/impl/extension/jpa/src/main/java/br/gov/frameworkdemoiselle/internal/bootstrap/EntityManagerBootstrap.java @@ -16,10 +16,11 @@ import javax.enterprise.inject.spi.AnnotatedField; import javax.enterprise.inject.spi.AnnotatedMethod; import javax.enterprise.inject.spi.AnnotatedType; import javax.enterprise.inject.spi.BeanManager; +import javax.enterprise.inject.spi.BeforeBeanDiscovery; import javax.enterprise.inject.spi.Extension; import javax.enterprise.inject.spi.ProcessAnnotatedType; import javax.enterprise.inject.spi.ProcessBean; -import javax.enterprise.util.AnnotationLiteral; +import javax.enterprise.inject.spi.ProcessManagedBean; import org.apache.commons.configuration.PropertiesConfiguration; import org.slf4j.Logger; @@ -42,6 +43,7 @@ public class EntityManagerBootstrap implements Extension { private EntityManagerScope selectedScope; public void replaceAnnotatedType(@Observes final ProcessAnnotatedType event , BeanManager manager){ + if (event.getAnnotatedType().getJavaClass().equals(EntityManagerProducer.class)){ AnnotatedType wrapper = new AnnotatedType() { @@ -67,9 +69,10 @@ public class EntityManagerBootstrap implements Extension { return delegate.getMethods(); } - @SuppressWarnings("unchecked") public T getAnnotation(Class annotationType) { - T returnedAnnotation; + return delegate.getAnnotation(annotationType); + + /*T returnedAnnotation; switch(getConfiguredEntityManagerScope()){ case APPLICATION: returnedAnnotation = (T) (annotationType.equals(ApplicationScoped.class) ? new AnnotationLiteral() { @@ -97,7 +100,7 @@ public class EntityManagerBootstrap implements Extension { returnedAnnotation = delegate.getAnnotation(annotationType); } - return returnedAnnotation; + return returnedAnnotation;*/ } public Set> getFields() { @@ -132,6 +135,9 @@ public class EntityManagerBootstrap implements Extension { } } + public void a(@Observes BeforeBeanDiscovery event){ + } + public void configureBean(@Observes ProcessBean event , BeanManager manager){ Class beanScope = event.getBean().getScope(); System.out.println(beanScope.toString()); diff --git a/impl/extension/jpa/src/main/java/br/gov/frameworkdemoiselle/internal/producer/RequestScopedProducer.java b/impl/extension/jpa/src/main/java/br/gov/frameworkdemoiselle/internal/producer/RequestScopedProducer.java new file mode 100644 index 0000000..94ca895 --- /dev/null +++ b/impl/extension/jpa/src/main/java/br/gov/frameworkdemoiselle/internal/producer/RequestScopedProducer.java @@ -0,0 +1,20 @@ +package br.gov.frameworkdemoiselle.internal.producer; + +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Inherited; +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +import javax.enterprise.context.RequestScoped; +import javax.enterprise.inject.Stereotype; + +@RequestScoped +@Stereotype +@Inherited +@Retention(RUNTIME) +@Target({ TYPE }) +public @interface RequestScopedProducer { + +} -- libgit2 0.21.2