File tree Expand file tree Collapse file tree 2 files changed +40
-30
lines changed
vraptor-core/src/main/java/br/com/caelum/vraptor/validator Expand file tree Collapse file tree 2 files changed +40
-30
lines changed Original file line number Diff line number Diff line change 2222import java .util .List ;
2323import java .util .Map ;
2424
25- import javax .annotation .PostConstruct ;
26- import javax .enterprise .context .RequestScoped ;
27- import javax .inject .Inject ;
28- import javax .servlet .http .HttpServletRequest ;
25+ import javax .enterprise .inject .Vetoed ;
2926
3027import org .slf4j .Logger ;
3128
4239 * @since 4.1
4340 * @author Otávio S Garcia
4441 */
45- @ RequestScoped
42+ @ Vetoed
4643public class Messages {
4744
48- public static final String ATTRIBUTE_KEY = "vmessages" ;
49-
5045 private final static Logger log = getLogger (Messages .class );
5146
5247 private Map <Severity , List <Message >> messages = new HashMap <>();
5348 private boolean unhandledErrors = false ;
5449
55- private final HttpServletRequest request ;
56-
57- /**
58- * @deprecated CDI eyes only
59- */
60- protected Messages () {
61- this (null );
62- }
63-
64- @ Inject
65- public Messages (HttpServletRequest request ) {
66- this .request = request ;
67- }
68-
69- /**
70- * Put this instance into request attributes to allow this instance survive between requests using flash
71- * scope.
72- */
73- @ PostConstruct
74- public void init () {
75- request .setAttribute (ATTRIBUTE_KEY , this );
76- }
77-
7850 public Messages add (Message message ) {
7951 get (message .getSeverity ()).add (message );
8052 if (Severity .ERROR .equals (message .getSeverity ())) {
Original file line number Diff line number Diff line change 1+ package br .com .caelum .vraptor .validator ;
2+
3+ import static com .google .common .base .Objects .firstNonNull ;
4+
5+ import javax .enterprise .context .RequestScoped ;
6+ import javax .enterprise .inject .Produces ;
7+ import javax .inject .Inject ;
8+
9+ import br .com .caelum .vraptor .Result ;
10+
11+ @ RequestScoped
12+ public class MessagesProducer {
13+
14+ private static final String MESSAGES_KEY = "vmessages" ;
15+
16+ private final Result result ;
17+
18+ /**
19+ * @deprecated CDI eyes only
20+ */
21+ protected MessagesProducer () {
22+ this (null );
23+ }
24+
25+ @ Inject
26+ public MessagesProducer (Result result ) {
27+ this .result = result ;
28+ }
29+
30+ @ Produces @ RequestScoped
31+ public Messages create () {
32+ Messages messages = (Messages ) result .included ().get (MESSAGES_KEY );
33+ messages = firstNonNull (messages , new Messages ());
34+ result .include (MESSAGES_KEY , messages );
35+ return messages ;
36+ }
37+
38+ }
You can’t perform that action at this time.
0 commit comments