From 1154ae17b0d14ba2b8ae9c4ece9fbcbaac176f67 Mon Sep 17 00:00:00 2001 From: Cleverson Sacramento Date: Fri, 28 Jun 2013 08:55:44 -0300 Subject: [PATCH] Mais ajustes no appender de mensagem padrão --- impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/ConsoleMessageAppender.java | 52 ---------------------------------------------------- impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/LoggerMessageAppender.java | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ impl/core/src/main/java/br/gov/frameworkdemoiselle/message/DefaultMessage.java | 63 ++++++++++++++++++++++++++++++++++++++++++++++----------------- impl/core/src/main/java/br/gov/frameworkdemoiselle/message/MessageContext.java | 2 ++ 4 files changed, 121 insertions(+), 69 deletions(-) delete mode 100644 impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/ConsoleMessageAppender.java create mode 100644 impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/LoggerMessageAppender.java diff --git a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/ConsoleMessageAppender.java b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/ConsoleMessageAppender.java deleted file mode 100644 index 086d845..0000000 --- a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/ConsoleMessageAppender.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Demoiselle Framework - * Copyright (C) 2010 SERPRO - * ---------------------------------------------------------------------------- - * This file is part of Demoiselle Framework. - * - * Demoiselle Framework is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License version 3 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License version 3 - * along with this program; if not, see - * or write to the Free Software Foundation, Inc., 51 Franklin Street, - * Fifth Floor, Boston, MA 02110-1301, USA. - * ---------------------------------------------------------------------------- - * Este arquivo é parte do Framework Demoiselle. - * - * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou - * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação - * do Software Livre (FSF). - * - * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA - * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou - * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português - * para maiores detalhes. - * - * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título - * "LICENCA.txt", junto com esse programa. Se não, acesse - * ou escreva para a Fundação do Software Livre (FSF) Inc., - * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. - */ -package br.gov.frameworkdemoiselle.internal.implementation; - -import static br.gov.frameworkdemoiselle.internal.implementation.StrategySelector.CORE_PRIORITY; -import br.gov.frameworkdemoiselle.annotation.Priority; -import br.gov.frameworkdemoiselle.message.Message; - -@Priority(CORE_PRIORITY) -public class ConsoleMessageAppender implements MessageAppender { - - private static final long serialVersionUID = 1L; - - @Override - public void append(Message message) { - System.out.println(message.getText()); - } -} diff --git a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/LoggerMessageAppender.java b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/LoggerMessageAppender.java new file mode 100644 index 0000000..609d1a8 --- /dev/null +++ b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/LoggerMessageAppender.java @@ -0,0 +1,73 @@ +/* + * Demoiselle Framework + * Copyright (C) 2010 SERPRO + * ---------------------------------------------------------------------------- + * This file is part of Demoiselle Framework. + * + * Demoiselle Framework is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License version 3 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License version 3 + * along with this program; if not, see + * or write to the Free Software Foundation, Inc., 51 Franklin Street, + * Fifth Floor, Boston, MA 02110-1301, USA. + * ---------------------------------------------------------------------------- + * Este arquivo é parte do Framework Demoiselle. + * + * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou + * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação + * do Software Livre (FSF). + * + * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA + * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou + * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português + * para maiores detalhes. + * + * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título + * "LICENCA.txt", junto com esse programa. Se não, acesse + * ou escreva para a Fundação do Software Livre (FSF) Inc., + * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. + */ +package br.gov.frameworkdemoiselle.internal.implementation; + +import static br.gov.frameworkdemoiselle.internal.implementation.StrategySelector.CORE_PRIORITY; + +import javax.inject.Inject; + +import org.slf4j.Logger; + +import br.gov.frameworkdemoiselle.annotation.Priority; +import br.gov.frameworkdemoiselle.message.Message; + +@Priority(CORE_PRIORITY) +public class LoggerMessageAppender implements MessageAppender { + + private static final long serialVersionUID = 1L; + + @Inject + private Logger logger; + + @Override + public void append(Message message) { + String text = message.getText(); + + switch (message.getSeverity()) { + case INFO: + logger.info(text); + break; + + case WARN: + logger.warn(text); + break; + + default: + logger.error(text); + } + } +} diff --git a/impl/core/src/main/java/br/gov/frameworkdemoiselle/message/DefaultMessage.java b/impl/core/src/main/java/br/gov/frameworkdemoiselle/message/DefaultMessage.java index c75b77d..315d866 100644 --- a/impl/core/src/main/java/br/gov/frameworkdemoiselle/message/DefaultMessage.java +++ b/impl/core/src/main/java/br/gov/frameworkdemoiselle/message/DefaultMessage.java @@ -36,8 +36,6 @@ */ package br.gov.frameworkdemoiselle.message; -import javax.enterprise.inject.Alternative; - import br.gov.frameworkdemoiselle.util.Beans; import br.gov.frameworkdemoiselle.util.ResourceBundle; import br.gov.frameworkdemoiselle.util.Strings; @@ -45,7 +43,6 @@ import br.gov.frameworkdemoiselle.util.Strings; /** * @author SERPRO */ -@Alternative public class DefaultMessage implements Message { private final String originalText; @@ -65,28 +62,27 @@ public class DefaultMessage implements Message { this.severity = (severity == null ? DEFAULT_SEVERITY : severity); this.params = params; this.bundle = Beans.getReference(ResourceBundle.class); + + initParsedText(); } public DefaultMessage(String text, Object... params) { this(text, null, (Object[]) params); } - public String getText() { - initParsedText(); - return parsedText; - } - private void initParsedText() { - if (parsedText == null) { - if (Strings.isResourceBundleKeyFormat(originalText)) { - parsedText = bundle.getString(Strings.removeBraces(originalText)); - - } else if (originalText != null) { - parsedText = new String(originalText); - } + if (Strings.isResourceBundleKeyFormat(originalText)) { + parsedText = bundle.getString(Strings.removeBraces(originalText)); - parsedText = Strings.getString(parsedText, params); + } else if (originalText != null) { + parsedText = new String(originalText); } + + parsedText = Strings.getString(parsedText, params); + } + + public String getText() { + return parsedText; } public SeverityType getSeverity() { @@ -95,7 +91,40 @@ public class DefaultMessage implements Message { @Override public String toString() { - initParsedText(); return Strings.toString(this); } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((parsedText == null) ? 0 : parsedText.hashCode()); + result = prime * result + ((severity == null) ? 0 : severity.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + DefaultMessage other = (DefaultMessage) obj; + if (parsedText == null) { + if (other.parsedText != null) { + return false; + } + } else if (!parsedText.equals(other.parsedText)) { + return false; + } + if (severity != other.severity) { + return false; + } + return true; + } } diff --git a/impl/core/src/main/java/br/gov/frameworkdemoiselle/message/MessageContext.java b/impl/core/src/main/java/br/gov/frameworkdemoiselle/message/MessageContext.java index 4675868..bf5b2ea 100644 --- a/impl/core/src/main/java/br/gov/frameworkdemoiselle/message/MessageContext.java +++ b/impl/core/src/main/java/br/gov/frameworkdemoiselle/message/MessageContext.java @@ -65,11 +65,13 @@ public interface MessageContext { /** * Returns all messages in the context. */ + @Deprecated List getMessages(); /** * Clears the list of messages in the context. */ + @Deprecated void clear(); } -- libgit2 0.21.2