Commit d3ebc76367803780fbbd20f64b65a37f8bdcfbc6
Exists in
master
Merge remote-tracking branch 'origin/master'
Showing
8 changed files
with
38 additions
and
13 deletions
Show diff stats
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/LoggerMessageAppender.java
... | ... | @@ -55,7 +55,7 @@ public class LoggerMessageAppender implements MessageAppender { |
55 | 55 | private Logger logger; |
56 | 56 | |
57 | 57 | @Override |
58 | - public void append(Message message) { | |
58 | + public void append(Message message, Object... params) { | |
59 | 59 | String text = message.getText(); |
60 | 60 | |
61 | 61 | switch (message.getSeverity()) { | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/MessageContextImpl.java
... | ... | @@ -66,17 +66,24 @@ public class MessageContextImpl implements Serializable, MessageContext { |
66 | 66 | private transient Logger logger; |
67 | 67 | |
68 | 68 | @Override |
69 | + @Deprecated | |
69 | 70 | public void add(final Message message, Object... params) { |
70 | - Message aux; | |
71 | - | |
72 | - if (params != null) { | |
73 | - aux = new DefaultMessage(message.getText(), message.getSeverity(), params); | |
71 | + | |
72 | + getLogger().debug(getBundle().getString("adding-message-to-context", message.toString())); | |
73 | + if (params == null || params.length == 0) { | |
74 | + getAppender().append(message); | |
74 | 75 | } else { |
75 | - aux = message; | |
76 | + getLogger().warn("Atualmente, ao chamar o método add do MessageContext passando um objeto" | |
77 | + + " do tipo Message e mais parâmetros, será recriando um objeto" +"\n" | |
78 | + + " Message, na implementação DefaultMessage para que os parâmetros sejam utilizados." | |
79 | + + " Note que isso poderá trazer problemas para sua aplicação, caso" +"\n" | |
80 | + + " a implementação de Message utilizada não seja a DefaultMessage. Para evitar esse tipo de problema" | |
81 | + + " e garantir compatibilidade com versões futuras, recomendamos que" +"\n" | |
82 | + + " o objeto message seja criado com os parâmetros, e que para o método add apenas seja passado" | |
83 | + + " esse objeto como parâmetro."); | |
84 | + | |
85 | + getAppender().append(new DefaultMessage(message.getText(), message.getSeverity(), params)); | |
76 | 86 | } |
77 | - | |
78 | - getLogger().debug(getBundle().getString("adding-message-to-context", message.toString())); | |
79 | - getAppender().append(aux); | |
80 | 87 | } |
81 | 88 | |
82 | 89 | private MessageAppender getAppender() { | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/message/MessageAppender.java
... | ... | @@ -51,6 +51,8 @@ public interface MessageAppender extends Serializable { |
51 | 51 | * |
52 | 52 | * @param message |
53 | 53 | * message to be stored. |
54 | + * @param params | |
55 | + * optional params to replace variables in the message | |
54 | 56 | */ |
55 | - void append(Message message); | |
57 | + void append(Message message , Object... params); | |
56 | 58 | } | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/message/MessageContext.java
impl/core/src/test/java/message/DummyMessageAppender.java
... | ... | @@ -52,7 +52,7 @@ public class DummyMessageAppender implements MessageAppender { |
52 | 52 | private List<Message> messages = new ArrayList<Message>(); |
53 | 53 | |
54 | 54 | @Override |
55 | - public void append(Message message) { | |
55 | + public void append(Message message, Object... params) { | |
56 | 56 | messages.add(message); |
57 | 57 | } |
58 | 58 | ... | ... |
impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/FacesMessageAppender.java
... | ... | @@ -50,7 +50,7 @@ public class FacesMessageAppender extends LoggerMessageAppender { |
50 | 50 | private static final long serialVersionUID = 1L; |
51 | 51 | |
52 | 52 | @Override |
53 | - public void append(Message message) { | |
53 | + public void append(Message message , Object... params) { | |
54 | 54 | try { |
55 | 55 | Faces.addMessage(message); |
56 | 56 | } catch (ContextNotActiveException cause) { | ... | ... |
impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/message/ValidationFailedMessage.java
0 → 100644
... | ... | @@ -0,0 +1,12 @@ |
1 | +package br.gov.frameworkdemoiselle.message; | |
2 | + | |
3 | +public class ValidationFailedMessage extends DefaultMessage { | |
4 | + | |
5 | + public ValidationFailedMessage(String text, Object[] params) { | |
6 | + super(text, params); | |
7 | + } | |
8 | + | |
9 | + public ValidationFailedMessage(String text, SeverityType severity, Object... params) { | |
10 | + super(text, severity, params); | |
11 | + } | |
12 | +} | ... | ... |
impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/util/Faces.java
... | ... | @@ -54,6 +54,7 @@ import javax.faces.convert.Converter; |
54 | 54 | import br.gov.frameworkdemoiselle.exception.ApplicationException; |
55 | 55 | import br.gov.frameworkdemoiselle.message.Message; |
56 | 56 | import br.gov.frameworkdemoiselle.message.SeverityType; |
57 | +import br.gov.frameworkdemoiselle.message.ValidationFailedMessage; | |
57 | 58 | |
58 | 59 | /** |
59 | 60 | * Utility class to insert messages in the FacesContext. |
... | ... | @@ -75,6 +76,9 @@ public class Faces { |
75 | 76 | |
76 | 77 | public static void addMessage(final Message message) { |
77 | 78 | getFacesContext().addMessage(null, parse(message)); |
79 | + if (message instanceof ValidationFailedMessage) { | |
80 | + getFacesContext().validationFailed(); | |
81 | + } | |
78 | 82 | } |
79 | 83 | |
80 | 84 | public static void addMessage(final String clientId, final Message message) { | ... | ... |