Commit a3c6cf6bfcf2140683a2224439aa6071f023f6ff
1 parent
fd12a4b3
Exists in
master
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.
Showing
2 changed files
with
37 additions
and
9 deletions
Show diff stats
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/context/CustomContextProducer.java
... | ... | @@ -134,27 +134,52 @@ public class CustomContextProducer { |
134 | 134 | |
135 | 135 | @Produces |
136 | 136 | public RequestContext getRequestContext(InjectionPoint ip){ |
137 | - return getContext(ip); | |
137 | + if (ip!=null){ | |
138 | + return getContext(ip); | |
139 | + } | |
140 | + else{ | |
141 | + return getContext(RequestContext.class); | |
142 | + } | |
138 | 143 | } |
139 | 144 | |
140 | 145 | @Produces |
141 | 146 | public SessionContext getSessionContext(InjectionPoint ip){ |
142 | - return getContext(ip); | |
147 | + if (ip!=null){ | |
148 | + return getContext(ip); | |
149 | + } | |
150 | + else{ | |
151 | + return getContext(SessionContext.class); | |
152 | + } | |
143 | 153 | } |
144 | 154 | |
145 | 155 | @Produces |
146 | 156 | public ViewContext getViewContext(InjectionPoint ip){ |
147 | - return getContext(ip); | |
157 | + if (ip!=null){ | |
158 | + return getContext(ip); | |
159 | + } | |
160 | + else{ | |
161 | + return getContext(ViewContext.class); | |
162 | + } | |
148 | 163 | } |
149 | 164 | |
150 | 165 | @Produces |
151 | 166 | public StaticContext getStaticContext(InjectionPoint ip){ |
152 | - return getContext(ip); | |
167 | + if (ip!=null){ | |
168 | + return getContext(ip); | |
169 | + } | |
170 | + else{ | |
171 | + return getContext(StaticContext.class); | |
172 | + } | |
153 | 173 | } |
154 | 174 | |
155 | 175 | @Produces |
156 | 176 | public ConversationContext getConversationContext(InjectionPoint ip){ |
157 | - return getContext(ip); | |
177 | + if (ip!=null){ | |
178 | + return getContext(ip); | |
179 | + } | |
180 | + else{ | |
181 | + return getContext(ConversationContext.class); | |
182 | + } | |
158 | 183 | } |
159 | 184 | |
160 | 185 | /////////////END OF PRODUCERS/////////////////// |
... | ... | @@ -175,7 +200,8 @@ public class CustomContextProducer { |
175 | 200 | return producedContext; |
176 | 201 | } |
177 | 202 | |
178 | - private CustomContext getContext(Class<? extends CustomContext> contextClass){ | |
203 | + @SuppressWarnings("unchecked") | |
204 | + private <T extends CustomContext> T getContext(Class<T> contextClass){ | |
179 | 205 | CustomContext producedContext = null; |
180 | 206 | |
181 | 207 | ArrayList<CustomContext> selectableContexts = new ArrayList<CustomContext>(); |
... | ... | @@ -196,7 +222,7 @@ public class CustomContextProducer { |
196 | 222 | producedContext = StrategySelector.selectInstance(CustomContext.class, selectableContexts); |
197 | 223 | } |
198 | 224 | |
199 | - return producedContext; | |
225 | + return (T) producedContext; | |
200 | 226 | } |
201 | 227 | |
202 | 228 | private Logger getLogger() { | ... | ... |
impl/extension/jpa/src/test/java/producer/ProducerTest.java
... | ... | @@ -4,6 +4,7 @@ import static org.junit.Assert.assertEquals; |
4 | 4 | import static org.junit.Assert.assertNotNull; |
5 | 5 | import static org.junit.Assert.assertTrue; |
6 | 6 | |
7 | +import javax.inject.Inject; | |
7 | 8 | import javax.persistence.EntityManager; |
8 | 9 | |
9 | 10 | import org.jboss.arquillian.container.test.api.Deployment; |
... | ... | @@ -25,6 +26,9 @@ import br.gov.frameworkdemoiselle.util.NameQualifier; |
25 | 26 | public class ProducerTest { |
26 | 27 | |
27 | 28 | private static final String PATH = "src/test/resources/producer"; |
29 | + | |
30 | + @Inject | |
31 | + private RequestContext ctx; | |
28 | 32 | |
29 | 33 | @Deployment(name="request_scoped_producer") |
30 | 34 | public static WebArchive createDeployment() { |
... | ... | @@ -46,13 +50,11 @@ public class ProducerTest { |
46 | 50 | |
47 | 51 | @Before |
48 | 52 | public void before(){ |
49 | - RequestContext ctx = Beans.getReference(RequestContext.class); | |
50 | 53 | ctx.activate(); |
51 | 54 | } |
52 | 55 | |
53 | 56 | @After |
54 | 57 | public void after(){ |
55 | - RequestContext ctx = Beans.getReference(RequestContext.class); | |
56 | 58 | ctx.deactivate(); |
57 | 59 | } |
58 | 60 | ... | ... |