Commit d3ebc76367803780fbbd20f64b65a37f8bdcfbc6

Authored by Dancovich
2 parents 77ef30a9 f4f0d1bc
Exists in master

Merge remote-tracking branch 'origin/master'

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
... ... @@ -55,7 +55,7 @@ public interface MessageContext {
55 55 *
56 56 * @param message
57 57 */
58   -
  58 + @Deprecated
59 59 void add(Message message, Object... params);
60 60  
61 61 void add(String text, Object... params);
... ...
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) {
... ...