| :index-group: Unrevised |
| :jbake-type: page |
| :jbake-status: status=published |
| = Apache DeltaSpike I18n Demo |
| |
| Este exemplo mostra como usar o DeltaSpike I18n. |
| |
| == Introdução ao Apache DeltaSpike I18n |
| |
| O Apache DeltaSpike I18n é um módulo do projeto Apache DeltaSpike que permite o uso de mensagens de tipo seguro e internacionalização. |
| |
| == Amostra de código |
| |
| === @MessageBundle interface |
| Criamos uma interface com um método para cada mensagem de tipo seguro. A interface deve ser anotatada com `@MessageBundle` e para cada mensagem é necessário ser anotada com `@MessageTemplate`: |
| |
| [source,java] |
| ---- |
| @MessageBundle |
| public interface MessageHelper { |
| |
| @MessageTemplate("{openejb.and.deltaspike}") |
| String openejbAndDeltaspike(); |
| } |
| ---- |
| |
| === Arquivo de propriedades do MessageHelper |
| Ele procurará a string "openejb.and.deltaspike" (sem as chaves "{}") em um arquivo de propriedades com o mesmo nome da interface, mas com a extensão .properties em vez de .java ou .class. |
| |
| MessageHelper.properties |
| |
| [source,java] |
| ---- |
| openejb.and.deltaspike = OpenEJB and DeltaSpike are cool products! |
| ---- |
| |
| === Usando o tipo de mensagens seguras |
| Agora você pode injetar a interface e recuperar a mensagem de tipo seguro: |
| |
| [source,java] |
| ---- |
| @Inject |
| private MessageHelper msg; |
| |
| @Test |
| public void check() { |
| assertEquals("OpenEJB and DeltaSpike are cool products!", msg.openejbAndDeltaspike()); |
| } |
| } |
| ---- |
| |
| == Executando |
| |
| Executando o exemplo é bastante simples. No diretorio `/tomee/examples/deltaspike-i18n` execute: |
| |
| $ mvn clean install |
| |
| Qual deve criar a saída como o seguinte. |
| |
| [source,java] |
| ---- |
| Running org.superbiz.deltaspike.i18n.MessageHelperTest |
| INFO - ******************************************************************************** |
| INFO - OpenEJB http://tomee.apache.org/ |
| INFO - Startup: Tue Mar 05 17:05:52 GMT 2019 |
| INFO - Copyright 1999-2018 (C) Apache OpenEJB Project, All Rights Reserved. |
| INFO - Version: 8.0.0-SNAPSHOT |
| INFO - Build date: 20190305 |
| INFO - Build time: 01:33 |
| INFO - ******************************************************************************** |
| INFO - openejb.home = /Users/marcos.ferreira/Marcos/tomee/examples/deltaspike-i18n |
| INFO - openejb.base = /Users/marcos.ferreira/Marcos/tomee/examples/deltaspike-i18n |
| INFO - Created new singletonService org.apache.openejb.cdi.ThreadSingletonServiceImpl@436a4e4b |
| INFO - Succeeded in installing singleton service |
| INFO - Cannot find the configuration file [conf/openejb.xml]. Will attempt to create one for the beans deployed. |
| INFO - Configuring Service(id=Default Security Service, type=SecurityService, provider-id=Default Security Service) |
| INFO - Configuring Service(id=Default Transaction Manager, type=TransactionManager, provider-id=Default Transaction Manager) |
| INFO - Using 'openejb.deployments.classpath=false' |
| INFO - Creating TransactionManager(id=Default Transaction Manager) |
| INFO - Creating SecurityService(id=Default Security Service) |
| INFO - Configuring enterprise application: /Users/marcos.ferreira/Marcos/tomee/examples/deltaspike-i18n/a9dac2c3-841d-4954-b038-450896c63783.war |
| INFO - Configuring Service(id=Default Managed Container, type=Container, provider-id=Default Managed Container) |
| INFO - Auto-creating a container for bean a9dac2c3-841d-4954-b038-450896c63783_org.superbiz.deltaspike.i18n.MessageHelperTest: Container(type=MANAGED, id=Default Managed Container) |
| INFO - Creating Container(id=Default Managed Container) |
| INFO - Using directory /var/folders/p6/lmyy1_jd7fv_h5lzqg8rpvhh0000gp/T for stateful session passivation |
| INFO - Enterprise application "/Users/marcos.ferreira/Marcos/tomee/examples/deltaspike-i18n/a9dac2c3-841d-4954-b038-450896c63783.war" loaded. |
| INFO - Assembling app: /Users/marcos.ferreira/Marcos/tomee/examples/deltaspike-i18n/a9dac2c3-841d-4954-b038-450896c63783.war |
| INFO - Existing thread singleton service in SystemInstance(): org.apache.openejb.cdi.ThreadSingletonServiceImpl@436a4e4b |
| INFO - Some Principal APIs could not be loaded: org.eclipse.microprofile.jwt.JsonWebToken out of org.eclipse.microprofile.jwt.JsonWebToken not found |
| INFO - OpenWebBeans Container is starting... |
| INFO - Adding OpenWebBeansPlugin : [CdiPlugin] |
| INFO - class: org.apache.deltaspike.core.impl.exception.control.extension.ExceptionControlExtension activated=true |
| INFO - class: org.apache.deltaspike.core.impl.message.MessageBundleExtension activated=true |
| INFO - class: org.apache.deltaspike.core.impl.message.NamedMessageBundleInvocationHandler activated=true |
| INFO - class: org.apache.deltaspike.core.impl.config.ConfigurationExtension activated=true |
| INFO - class: org.apache.deltaspike.core.impl.exclude.extension.ExcludeExtension activated=true |
| INFO - class: org.apache.deltaspike.core.impl.exclude.CustomProjectStageBeanFilter activated=true |
| INFO - class: org.apache.deltaspike.core.impl.exclude.GlobalAlternative activated=true |
| INFO - class: org.apache.deltaspike.core.impl.jmx.MBeanExtension activated=true |
| INFO - class: org.apache.deltaspike.core.impl.scope.DeltaSpikeContextExtension activated=true |
| INFO - Computed the following DeltaSpike ProjectStage: Production |
| INFO - All injection points were validated successfully. |
| INFO - OpenWebBeans Container has started, it took 1051 ms. |
| INFO - Deployed Application(path=/Users/marcos.ferreira/Marcos/tomee/examples/deltaspike-i18n/a9dac2c3-841d-4954-b038-450896c63783.war) |
| INFO - Undeploying app: /Users/marcos.ferreira/Marcos/tomee/examples/deltaspike-i18n/a9dac2c3-841d-4954-b038-450896c63783.war |
| Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.51 sec |
| INFO - Destroying container system |
| |
| Results : |
| |
| Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 |
| ---- |