Messages
Para as mensagens dos sistemas desenvolvidos com o Framework Demoiselle foi utilizada a biblioteca DeltaSpike que é considerada uma extensão do CDI dentro do próprio ecosistema como pode ser visto na página da especificação do CDI (http://cdi-spec.org).
Ele é descrito pela própria especificação do CDI como o seguinte:
O DeltaSpike consiste em um módulo core e módulos opcionais que fornecem funcionalidades adicionais a soluções corporativas
Para saber mais informações sobre o DeltaSpike acesse https://deltaspike.apache.org e com relação a mensagens de sistema o link direto é o seguinte:
https://deltaspike.apache.org/documentation/core.html#Messagesandi18n
Utilização Básica
Para utilizar as mensagens no sistema basta criar uma classe como o exemplo abaixo:
package meuprojeto.pacote.mensagens;
import org.apache.deltaspike.core.api.message.MessageBundle;
@MessageBundle
public interface AppMessage {
@MessageTemplate("{mensagem-de-teste}")
String mensagemDeTeste();
}
Após a criação da classe é necessária a criação de um arquivo de propriedades que contenham as mensagens propriamente ditas como mostra o exemplo abaixo:
# Arquivo de mensagens do pacote meuprojeto.pacote.mensagens
mensagem-de-teste=Mensagem a ser exibida ao usuário
É importante que o arquivo de properties seja cocado na mesma estrutura de pastas da classe, por exemplo, se a classe esta em /src/main/java/meuprojeto/pacote/mensagens
o arquivo de propriedades com as mensagens deverá estar em /src/main/resources/meuprojeto/pacote/mensagens
.
Utilização de Parâmetros
É possível parametrizar a utilização das mensagens por meio de parâmetros de métodos e marcadores nas mensagens do arquivo de propriedades.
Abaixo um exemplo de método (Que deve estar dentro de uma classe anotada com @MessageBundle):
@MessageTemplate("{mensagem-de-teste-com-parametro}")
String mensagemDeTesteComParametro(String parametro1, String parametro2);
O arquivo de propriedades ficará da seguinte forma:
mensagem-de-teste-com-parametro=Mensagem ao usuário com parametro 1: %s e parametro 2 %s
Sobre escrita de Mensagens dos Módulos
Para sobreescrever as mensagens dos módulos do Framework crie a mesma estrutura de pastas do arquivo properties que deseja sobrescrever, sendo que o caminho inicial padrão para estes arquivos é /src/main/resources/
). Por exemplo, para sobrescrever o arquivo de mensagens do core basta criar a estrutura de pastas /src/main/resources/org/demoiselle/jee/core/message/
e o arquivo DemoiselleMessage.properties
dentro. A interface que representa este arquivo pode ser encontrada aqui e o arquivo com os valores iniciais aqui.
Cada arquivo de properties representa uma classe Java que contém os métodos equivalentes, portanto para saber outros arquivos de mensagens do Framework e sua estrutura de pastas basta fazer uma busca dentro do projeto por qualquer arquivo que tenha no nome o texto Message, para facilitar utilize o próprio GitHub a funcionalidade Find File (https://github.com/demoiselle/framework/find/master) e busque por Message.
É importante saber que não é possível sobrescrever apenas uma mensagem, portanto ao sobrescrever um arquivo é necessário sobrescrever todas as mensagens