From a3c6cf6bfcf2140683a2224439aa6071f023f6ff Mon Sep 17 00:00:00 2001 From: Dancovich Date: Wed, 18 Sep 2013 19:44:40 -0300 Subject: [PATCH] Resolvido bug onde produtor de contexto não produzia se InjectionPoint no produtor for nulo, mesmo quando um InjectionPoint não é necessário para produzir. --- impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/context/CustomContextProducer.java | 40 +++++++++++++++++++++++++++++++++------- impl/extension/jpa/src/test/java/producer/ProducerTest.java | 6 ++++-- 2 files changed, 37 insertions(+), 9 deletions(-) diff --git a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/context/CustomContextProducer.java b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/context/CustomContextProducer.java index 178de8b..aae6c7a 100644 --- a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/context/CustomContextProducer.java +++ b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/context/CustomContextProducer.java @@ -134,27 +134,52 @@ public class CustomContextProducer { @Produces public RequestContext getRequestContext(InjectionPoint ip){ - return getContext(ip); + if (ip!=null){ + return getContext(ip); + } + else{ + return getContext(RequestContext.class); + } } @Produces public SessionContext getSessionContext(InjectionPoint ip){ - return getContext(ip); + if (ip!=null){ + return getContext(ip); + } + else{ + return getContext(SessionContext.class); + } } @Produces public ViewContext getViewContext(InjectionPoint ip){ - return getContext(ip); + if (ip!=null){ + return getContext(ip); + } + else{ + return getContext(ViewContext.class); + } } @Produces public StaticContext getStaticContext(InjectionPoint ip){ - return getContext(ip); + if (ip!=null){ + return getContext(ip); + } + else{ + return getContext(StaticContext.class); + } } @Produces public ConversationContext getConversationContext(InjectionPoint ip){ - return getContext(ip); + if (ip!=null){ + return getContext(ip); + } + else{ + return getContext(ConversationContext.class); + } } /////////////END OF PRODUCERS/////////////////// @@ -175,7 +200,8 @@ public class CustomContextProducer { return producedContext; } - private CustomContext getContext(Class contextClass){ + @SuppressWarnings("unchecked") + private T getContext(Class contextClass){ CustomContext producedContext = null; ArrayList selectableContexts = new ArrayList(); @@ -196,7 +222,7 @@ public class CustomContextProducer { producedContext = StrategySelector.selectInstance(CustomContext.class, selectableContexts); } - return producedContext; + return (T) producedContext; } private Logger getLogger() { diff --git a/impl/extension/jpa/src/test/java/producer/ProducerTest.java b/impl/extension/jpa/src/test/java/producer/ProducerTest.java index 8750eb1..dd5fac6 100644 --- a/impl/extension/jpa/src/test/java/producer/ProducerTest.java +++ b/impl/extension/jpa/src/test/java/producer/ProducerTest.java @@ -4,6 +4,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; +import javax.inject.Inject; import javax.persistence.EntityManager; import org.jboss.arquillian.container.test.api.Deployment; @@ -25,6 +26,9 @@ import br.gov.frameworkdemoiselle.util.NameQualifier; public class ProducerTest { private static final String PATH = "src/test/resources/producer"; + + @Inject + private RequestContext ctx; @Deployment(name="request_scoped_producer") public static WebArchive createDeployment() { @@ -46,13 +50,11 @@ public class ProducerTest { @Before public void before(){ - RequestContext ctx = Beans.getReference(RequestContext.class); ctx.activate(); } @After public void after(){ - RequestContext ctx = Beans.getReference(RequestContext.class); ctx.deactivate(); } -- libgit2 0.21.2