Commit 49e5b7fca7e9cb4bca8c970c96b0b4726fec009c
1 parent
986983e5
Exists in
master
Ajustes no layout do texto.
Showing
16 changed files
with
219 additions
and
326 deletions
Show diff stats
documentation/reference/pt-BR/arquetipo.xml
| @@ -38,7 +38,7 @@ | @@ -38,7 +38,7 @@ | ||
| 38 | <section> | 38 | <section> |
| 39 | <title>Vaadin com JPA</title> | 39 | <title>Vaadin com JPA</title> |
| 40 | <para> | 40 | <para> |
| 41 | - Uma das principais novidades com relação à esta nova versão do Framework Demoiselle | 41 | + Uma das principais novidades com relação à esta nova versão do <emphasis>Demoiselle Framework</emphasis> |
| 42 | é sua integração mais completa à outras tecnologias de apresentação. Na versão anterior | 42 | é sua integração mais completa à outras tecnologias de apresentação. Na versão anterior |
| 43 | apesar de ser possível a utilização de outra soluções, não havia ainda facilitadores realmente integrados ao Demoiselle. | 43 | apesar de ser possível a utilização de outra soluções, não havia ainda facilitadores realmente integrados ao Demoiselle. |
| 44 | Seguindo este princípio, um dos arquétipos disponibilizados pelo Framework gera uma aplicação de exemplo, nos mesmo moldes | 44 | Seguindo este princípio, um dos arquétipos disponibilizados pelo Framework gera uma aplicação de exemplo, nos mesmo moldes |
documentation/reference/pt-BR/bookinfo.xml
| @@ -9,7 +9,9 @@ | @@ -9,7 +9,9 @@ | ||
| 9 | <abstract>Demoiselle 2.3.0: Framework de Código Aberto para o Desenvolvimento de Aplicações Java EE 6</abstract> | 9 | <abstract>Demoiselle 2.3.0: Framework de Código Aberto para o Desenvolvimento de Aplicações Java EE 6</abstract> |
| 10 | <titleabbrev>Demoiselle 2.3.0 - Guia de Referência</titleabbrev> | 10 | <titleabbrev>Demoiselle 2.3.0 - Guia de Referência</titleabbrev> |
| 11 | 11 | ||
| 12 | + <!-- | ||
| 12 | <xi:include href="revhistory.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> | 13 | <xi:include href="revhistory.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> |
| 14 | + --> | ||
| 13 | <xi:include href="authorgroup.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> | 15 | <xi:include href="authorgroup.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> |
| 14 | 16 | ||
| 15 | </bookinfo> | 17 | </bookinfo> |
documentation/reference/pt-BR/bundle.xml
| @@ -67,7 +67,7 @@ button.save=Salvar]]></programlisting> | @@ -67,7 +67,7 @@ button.save=Salvar]]></programlisting> | ||
| 67 | <programlisting role="JAVA"><![CDATA[@Inject | 67 | <programlisting role="JAVA"><![CDATA[@Inject |
| 68 | @Name("messages-core") | 68 | @Name("messages-core") |
| 69 | private ResourceBundle bundle; | 69 | private ResourceBundle bundle; |
| 70 | - | 70 | + |
| 71 | public String metodoQueRetornaOValorDaChavebuttonedit() { | 71 | public String metodoQueRetornaOValorDaChavebuttonedit() { |
| 72 | return bundle.getString("button.edit"); | 72 | return bundle.getString("button.edit"); |
| 73 | }]]></programlisting> | 73 | }]]></programlisting> |
| @@ -75,9 +75,8 @@ public String metodoQueRetornaOValorDaChavebuttonedit() { | @@ -75,9 +75,8 @@ public String metodoQueRetornaOValorDaChavebuttonedit() { | ||
| 75 | Utilizando Resource Bundle sem uso de injeção: | 75 | Utilizando Resource Bundle sem uso de injeção: |
| 76 | </para> | 76 | </para> |
| 77 | <programlisting role="JAVA"><![CDATA[private ResourceBundleFactory bundleFactory = new ResourceBundleFactory(Locale.getDefault()); | 77 | <programlisting role="JAVA"><![CDATA[private ResourceBundleFactory bundleFactory = new ResourceBundleFactory(Locale.getDefault()); |
| 78 | - | ||
| 79 | private ResourceBundle bundle; | 78 | private ResourceBundle bundle; |
| 80 | - | 79 | + |
| 81 | public String metodoQueRetornaOValorDaChavebuttonedit() { | 80 | public String metodoQueRetornaOValorDaChavebuttonedit() { |
| 82 | bundle = bundleFactory.create("messages-core"); | 81 | bundle = bundleFactory.create("messages-core"); |
| 83 | return bundle.getString("button.edit"); | 82 | return bundle.getString("button.edit"); |
documentation/reference/pt-BR/configuracao.xml
| @@ -77,17 +77,13 @@ | @@ -77,17 +77,13 @@ | ||
| 77 | public class BookmarkConfig { | 77 | public class BookmarkConfig { |
| 78 | 78 | ||
| 79 | private String applicationTitle; | 79 | private String applicationTitle; |
| 80 | - | ||
| 81 | private boolean loadInitialData; | 80 | private boolean loadInitialData; |
| 82 | - | ||
| 83 | public String getApplicationTitle() { | 81 | public String getApplicationTitle() { |
| 84 | return applicationTitle; | 82 | return applicationTitle; |
| 85 | } | 83 | } |
| 86 | - | ||
| 87 | public boolean isLoadInitialData() { | 84 | public boolean isLoadInitialData() { |
| 88 | return loadInitialData; | 85 | return loadInitialData; |
| 89 | } | 86 | } |
| 90 | - | ||
| 91 | }]]></programlisting> | 87 | }]]></programlisting> |
| 92 | <para> | 88 | <para> |
| 93 | Na classe os atributos devem ser tratados como sendo somente de leitura, possuindo apenas seus respectivos métodos | 89 | Na classe os atributos devem ser tratados como sendo somente de leitura, possuindo apenas seus respectivos métodos |
| @@ -193,7 +189,6 @@ public class BookmarkConfig { | @@ -193,7 +189,6 @@ public class BookmarkConfig { | ||
| 193 | public boolean isLoadInitialData() { | 189 | public boolean isLoadInitialData() { |
| 194 | return loadInitialData; | 190 | return loadInitialData; |
| 195 | } | 191 | } |
| 196 | - | ||
| 197 | }]]></programlisting> | 192 | }]]></programlisting> |
| 198 | <calloutlist> | 193 | <calloutlist> |
| 199 | <callout arearefs="resource-prefix"> | 194 | <callout arearefs="resource-prefix"> |
| @@ -258,7 +253,6 @@ general.load.initial.data = true | @@ -258,7 +253,6 @@ general.load.initial.data = true | ||
| 258 | ... | 253 | ... |
| 259 | } | 254 | } |
| 260 | } | 255 | } |
| 261 | - | ||
| 262 | }]]></programlisting> | 256 | }]]></programlisting> |
| 263 | <note> | 257 | <note> |
| 264 | <para> | 258 | <para> |
| @@ -302,7 +296,6 @@ public class EscolaConfig { | @@ -302,7 +296,6 @@ public class EscolaConfig { | ||
| 302 | public List<String> getPapeis() { | 296 | public List<String> getPapeis() { |
| 303 | return papeis; | 297 | return papeis; |
| 304 | } | 298 | } |
| 305 | - | ||
| 306 | }]]></programlisting> | 299 | }]]></programlisting> |
| 307 | </section> | 300 | </section> |
| 308 | 301 | ||
| @@ -332,7 +325,6 @@ public class EscolaConfig { | @@ -332,7 +325,6 @@ public class EscolaConfig { | ||
| 332 | public String getJavaDirectory() { | 325 | public String getJavaDirectory() { |
| 333 | return javaDirectory; | 326 | return javaDirectory; |
| 334 | } | 327 | } |
| 335 | - | ||
| 336 | }]]></programlisting> | 328 | }]]></programlisting> |
| 337 | </section> | 329 | </section> |
| 338 | 330 |
documentation/reference/pt-BR/excecao.xml
| @@ -17,18 +17,14 @@ | @@ -17,18 +17,14 @@ | ||
| 17 | <para> | 17 | <para> |
| 18 | Para um correto funcionamento do Demoiselle é necessário inserir o interceptador de exceção no arquivo <filename>src/main/WEB-INF/beans.xml</filename>. | 18 | Para um correto funcionamento do Demoiselle é necessário inserir o interceptador de exceção no arquivo <filename>src/main/WEB-INF/beans.xml</filename>. |
| 19 | </para> | 19 | </para> |
| 20 | - <programlisting role="XML"> | ||
| 21 | - <![CDATA[ | ||
| 22 | - <beans xmlns="http://java.sun.com/xml/ns/javaee" | ||
| 23 | - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
| 24 | - xsi:schemaLocation="http://java.sun.com/xml/ns/javaee | ||
| 25 | - http://java.sun.com/xml/ns/javaee/beans_1_0.xsd"> | ||
| 26 | - <interceptors> | ||
| 27 | - <class>br.gov.frameworkdemoiselle.internal.interceptor.ExceptionHandlerInterceptor</class> | ||
| 28 | - </interceptors> | ||
| 29 | - </beans> | ||
| 30 | - ]]> | ||
| 31 | - </programlisting> | 20 | + <programlisting role="XML"><![CDATA[<beans xmlns="http://java.sun.com/xml/ns/javaee" |
| 21 | +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
| 22 | +xsi:schemaLocation="http://java.sun.com/xml/ns/javaee | ||
| 23 | + http://java.sun.com/xml/ns/javaee/beans_1_0.xsd"> | ||
| 24 | + <interceptors> | ||
| 25 | + <class>br.gov.frameworkdemoiselle.internal.interceptor.ExceptionHandlerInterceptor</class> | ||
| 26 | + </interceptors> | ||
| 27 | +</beans>]]></programlisting> | ||
| 32 | </section> | 28 | </section> |
| 33 | 29 | ||
| 34 | <section> | 30 | <section> |
| @@ -43,13 +39,9 @@ public class Simples { | @@ -43,13 +39,9 @@ public class Simples { | ||
| 43 | 39 | ||
| 44 | @ExceptionHandler | 40 | @ExceptionHandler |
| 45 | public void tratador(NullPointerException cause) { } | 41 | public void tratador(NullPointerException cause) { } |
| 46 | - | ||
| 47 | public void inserir() { } | 42 | public void inserir() { } |
| 48 | - | ||
| 49 | public void alterar() { } | 43 | public void alterar() { } |
| 50 | - | ||
| 51 | public void excluir() { } | 44 | public void excluir() { } |
| 52 | - | ||
| 53 | }]]></programlisting> | 45 | }]]></programlisting> |
| 54 | <para> | 46 | <para> |
| 55 | Neste exemplo, qualquer exceção do tipo <literal>NullPointerException</literal> que ocorrer nos métodos | 47 | Neste exemplo, qualquer exceção do tipo <literal>NullPointerException</literal> que ocorrer nos métodos |
| @@ -68,16 +60,11 @@ public class Simples { | @@ -68,16 +60,11 @@ public class Simples { | ||
| 68 | 60 | ||
| 69 | @ExceptionHandler | 61 | @ExceptionHandler |
| 70 | public void tratador(NullPointerException cause) { } | 62 | public void tratador(NullPointerException cause) { } |
| 71 | - | ||
| 72 | @ExceptionHandler | 63 | @ExceptionHandler |
| 73 | - public void tratador(AbacaxiException cause) { } | ||
| 74 | - | ||
| 75 | - public void inserir() { } | ||
| 76 | - | ||
| 77 | - public void alterar() { } | ||
| 78 | - | ||
| 79 | - public void excluir() { } | ||
| 80 | - | 64 | + public void tratador(AbacaxiException cause) { } |
| 65 | + public void inserir() { } | ||
| 66 | + public void alterar() { } | ||
| 67 | + public void excluir() { } | ||
| 81 | }]]></programlisting> | 68 | }]]></programlisting> |
| 82 | <para> | 69 | <para> |
| 83 | Caso as exceções <literal>NullPointerException</literal> ou <literal>AbacaxiException</literal> ocorram | 70 | Caso as exceções <literal>NullPointerException</literal> ou <literal>AbacaxiException</literal> ocorram |
| @@ -100,7 +87,6 @@ public class Simples { | @@ -100,7 +87,6 @@ public class Simples { | ||
| 100 | 87 | ||
| 101 | @ExceptionHandler | 88 | @ExceptionHandler |
| 102 | public void tratador(NullPointerException cause) { } | 89 | public void tratador(NullPointerException cause) { } |
| 103 | - | ||
| 104 | public void inserir() { | 90 | public void inserir() { |
| 105 | try { | 91 | try { |
| 106 | // tenta algo | 92 | // tenta algo |
| @@ -108,11 +94,8 @@ public class Simples { | @@ -108,11 +94,8 @@ public class Simples { | ||
| 108 | // trata o problema | 94 | // trata o problema |
| 109 | } | 95 | } |
| 110 | } | 96 | } |
| 111 | - | ||
| 112 | public void alterar() { } | 97 | public void alterar() { } |
| 113 | - | ||
| 114 | public void excluir() { } | 98 | public void excluir() { } |
| 115 | - | ||
| 116 | }]]></programlisting> | 99 | }]]></programlisting> |
| 117 | <para> | 100 | <para> |
| 118 | Neste caso a exceção <literal>AbacaxiException</literal> só será tratada no método <literal>inserir()</literal>. | 101 | Neste caso a exceção <literal>AbacaxiException</literal> só será tratada no método <literal>inserir()</literal>. |
documentation/reference/pt-BR/inicializacao.xml
| @@ -48,7 +48,7 @@ | @@ -48,7 +48,7 @@ | ||
| 48 | Eis um exemplo de implementação de inicializador em uma aplicação: | 48 | Eis um exemplo de implementação de inicializador em uma aplicação: |
| 49 | </para> | 49 | </para> |
| 50 | <programlisting role="JAVA"><![CDATA[public class BookmarkInitializer { | 50 | <programlisting role="JAVA"><![CDATA[public class BookmarkInitializer { |
| 51 | - | 51 | + |
| 52 | @Startup | 52 | @Startup |
| 53 | @Priority(1) | 53 | @Priority(1) |
| 54 | public void initialize() { | 54 | public void initialize() { |
| @@ -60,7 +60,6 @@ | @@ -60,7 +60,6 @@ | ||
| 60 | public void finalize() { | 60 | public void finalize() { |
| 61 | ... | 61 | ... |
| 62 | } | 62 | } |
| 63 | - | ||
| 64 | }]]></programlisting> | 63 | }]]></programlisting> |
| 65 | <tip> | 64 | <tip> |
| 66 | <para> | 65 | <para> |
| @@ -106,7 +105,6 @@ public class DatabaseServer { | @@ -106,7 +105,6 @@ public class DatabaseServer { | ||
| 106 | public void shutdown() { | 105 | public void shutdown() { |
| 107 | server.stop(); | 106 | server.stop(); |
| 108 | } | 107 | } |
| 109 | - | ||
| 110 | }]]></programlisting> | 108 | }]]></programlisting> |
| 111 | </section> | 109 | </section> |
| 112 | 110 |
documentation/reference/pt-BR/intro.xml
| @@ -8,7 +8,7 @@ | @@ -8,7 +8,7 @@ | ||
| 8 | <section> | 8 | <section> |
| 9 | <title>O que é o Demoiselle?</title> | 9 | <title>O que é o Demoiselle?</title> |
| 10 | <para> | 10 | <para> |
| 11 | - O framework Demoiselle implementa o conceito de | 11 | + O <emphasis>Demoiselle Framework</emphasis> implementa o conceito de |
| 12 | <emphasis>framework integrador</emphasis>. | 12 | <emphasis>framework integrador</emphasis>. |
| 13 | Seu objetivo é facilitar a construção de aplicações minimizando tempo dedicado à escolha e integração de frameworks | 13 | Seu objetivo é facilitar a construção de aplicações minimizando tempo dedicado à escolha e integração de frameworks |
| 14 | especialistas, o que resulta no aumento da produtividade e garante a manutenibilidade dos sistemas. Disponibiliza | 14 | especialistas, o que resulta no aumento da produtividade e garante a manutenibilidade dos sistemas. Disponibiliza |
| @@ -23,7 +23,7 @@ | @@ -23,7 +23,7 @@ | ||
| 23 | técnicas para qualquer pessoa que se interessasse. | 23 | técnicas para qualquer pessoa que se interessasse. |
| 24 | </para> | 24 | </para> |
| 25 | <para> | 25 | <para> |
| 26 | - O <emphasis>framework Demoiselle</emphasis> usa a mesma filosofia do <quote>Pai da Aviação</quote>, tendo sido | 26 | + O <emphasis>Demoiselle Framework</emphasis> usa a mesma filosofia do <quote>Pai da Aviação</quote>, tendo sido |
| 27 | disponibilizado como software livre em abril de 2009, sob a licença livre LGPL version 3. Mais informações no portal | 27 | disponibilizado como software livre em abril de 2009, sob a licença livre LGPL version 3. Mais informações no portal |
| 28 | <ulink url="http://www.frameworkdemoiselle.gov.br">"www.frameworkdemoiselle.gov.br</ulink> | 28 | <ulink url="http://www.frameworkdemoiselle.gov.br">"www.frameworkdemoiselle.gov.br</ulink> |
| 29 | </para> | 29 | </para> |
| @@ -33,7 +33,7 @@ | @@ -33,7 +33,7 @@ | ||
| 33 | <title>Sobre a versão 2</title> | 33 | <title>Sobre a versão 2</title> |
| 34 | <para> | 34 | <para> |
| 35 | O principal objetivo da versão 2 do | 35 | O principal objetivo da versão 2 do |
| 36 | - <emphasis>framework Demoiselle</emphasis> | 36 | + <emphasis>Demoiselle Framework</emphasis> |
| 37 | é a completa aderência à especificação | 37 | é a completa aderência à especificação |
| 38 | <ulink url="http://jcp.org/en/jsr/detail?id=316">JSR 316: Java Platform, Enterprise Edition 6</ulink>, ou simplesmente | 38 | <ulink url="http://jcp.org/en/jsr/detail?id=316">JSR 316: Java Platform, Enterprise Edition 6</ulink>, ou simplesmente |
| 39 | <emphasis>Java EE 6</emphasis>. Para saber mais, recomendamos os links | 39 | <emphasis>Java EE 6</emphasis>. Para saber mais, recomendamos os links |
documentation/reference/pt-BR/logger.xml
| @@ -17,12 +17,11 @@ | @@ -17,12 +17,11 @@ | ||
| 17 | 17 | ||
| 18 | @Inject | 18 | @Inject |
| 19 | private Logger logger; | 19 | private Logger logger; |
| 20 | - | 20 | + |
| 21 | public void meuMetodo() { | 21 | public void meuMetodo() { |
| 22 | logger.debug("logando meu metodo"); | 22 | logger.debug("logando meu metodo"); |
| 23 | logger.warn("mensagem de alerta do meu metodo"); | 23 | logger.warn("mensagem de alerta do meu metodo"); |
| 24 | } | 24 | } |
| 25 | - | ||
| 26 | }]]></programlisting> | 25 | }]]></programlisting> |
| 27 | 26 | ||
| 28 | </chapter> | 27 | </chapter> |
documentation/reference/pt-BR/master.xml
| @@ -14,16 +14,35 @@ | @@ -14,16 +14,35 @@ | ||
| 14 | </para> | 14 | </para> |
| 15 | <note> | 15 | <note> |
| 16 | <para> | 16 | <para> |
| 17 | - Esta documentação refere-se à release 2.3 do <emphasis>Framework Demoiselle</emphasis> | 17 | + Esta documentação refere-se à release 2.3.0 do <emphasis>Demoiselle Framework</emphasis> |
| 18 | e pode diferir significativamente das versões anteriores. | 18 | e pode diferir significativamente das versões anteriores. |
| 19 | </para> | 19 | </para> |
| 20 | </note> | 20 | </note> |
| 21 | </preface> | 21 | </preface> |
| 22 | 22 | ||
| 23 | <toc /> | 23 | <toc /> |
| 24 | + | ||
| 25 | + <xi:include href="intro.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
| 26 | + <xi:include href="arquitetura.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
| 27 | + <xi:include href="parentsPom.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
| 28 | + <xi:include href="arquetipo.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
| 29 | + <xi:include href="controlador.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
| 30 | + <xi:include href="transacao.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
| 31 | + <xi:include href="excecao.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
| 32 | + <xi:include href="configuracao.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
| 33 | + <xi:include href="inicializacao.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
| 34 | + <xi:include href="mensagem.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
| 35 | + <xi:include href="bundle.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
| 36 | + <xi:include href="parametro.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
| 37 | + <xi:include href="logger.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
| 38 | + <xi:include href="templates.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
| 39 | + <xi:include href="security.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
| 40 | + <xi:include href="paginacao.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
| 41 | + <xi:include href="properties.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
| 24 | 42 | ||
| 25 | <!-- parte 1 --> | 43 | <!-- parte 1 --> |
| 26 | <!-- TODO: dividir melhor os capítulos em seções --> | 44 | <!-- TODO: dividir melhor os capítulos em seções --> |
| 45 | +<!-- | ||
| 27 | <part id="1"> | 46 | <part id="1"> |
| 28 | <title>Framework</title> | 47 | <title>Framework</title> |
| 29 | <xi:include href="intro.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> | 48 | <xi:include href="intro.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> |
| @@ -44,6 +63,8 @@ | @@ -44,6 +63,8 @@ | ||
| 44 | <xi:include href="paginacao.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> | 63 | <xi:include href="paginacao.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> |
| 45 | <xi:include href="properties.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> | 64 | <xi:include href="properties.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> |
| 46 | </part> | 65 | </part> |
| 66 | +--> | ||
| 67 | + | ||
| 47 | <!-- parte 2 --> | 68 | <!-- parte 2 --> |
| 48 | <!-- <part id="2">--> | 69 | <!-- <part id="2">--> |
| 49 | <!-- <title>Componentes</title>--> | 70 | <!-- <title>Componentes</title>--> |
documentation/reference/pt-BR/mensagem.xml
| @@ -122,9 +122,7 @@ private MessageContext messageContext;]]></programlisting> | @@ -122,9 +122,7 @@ private MessageContext messageContext;]]></programlisting> | ||
| 122 | <programlisting role="JAVA"><![CDATA[public interface Message { | 122 | <programlisting role="JAVA"><![CDATA[public interface Message { |
| 123 | 123 | ||
| 124 | String getText(); | 124 | String getText(); |
| 125 | - | ||
| 126 | SeverityType getSeverity(); | 125 | SeverityType getSeverity(); |
| 127 | - | ||
| 128 | }]]></programlisting> | 126 | }]]></programlisting> |
| 129 | <para> | 127 | <para> |
| 130 | A classe <literal>DefaultMessage</literal> fornecida pelo <emphasis>Demoiselle Framework</emphasis> | 128 | A classe <literal>DefaultMessage</literal> fornecida pelo <emphasis>Demoiselle Framework</emphasis> |
| @@ -145,7 +143,6 @@ private MessageContext messageContext;]]></programlisting> | @@ -145,7 +143,6 @@ private MessageContext messageContext;]]></programlisting> | ||
| 145 | exemplo disso utilizando a classe <literal>DefaultMessage</literal>: | 143 | exemplo disso utilizando a classe <literal>DefaultMessage</literal>: |
| 146 | </para> | 144 | </para> |
| 147 | <programlisting role="JAVA"><![CDATA[Message message = new DefaultMessage("Ocorreu um erro ao excluir o aluno!", SeverityType.ERROR); | 145 | <programlisting role="JAVA"><![CDATA[Message message = new DefaultMessage("Ocorreu um erro ao excluir o aluno!", SeverityType.ERROR); |
| 148 | - | ||
| 149 | messageContext.add(message);]]></programlisting> | 146 | messageContext.add(message);]]></programlisting> |
| 150 | <para> | 147 | <para> |
| 151 | Uma vez inseridas no contexto em determinada camada da aplicação, as mensagens podem ser posteriormente | 148 | Uma vez inseridas no contexto em determinada camada da aplicação, as mensagens podem ser posteriormente |
| @@ -204,14 +201,11 @@ messageContext.add(message);]]></programlisting> | @@ -204,14 +201,11 @@ messageContext.add(message);]]></programlisting> | ||
| 204 | da mensagem e ao inseri-la no contexto especificar os parâmetros: | 201 | da mensagem e ao inseri-la no contexto especificar os parâmetros: |
| 205 | </para> | 202 | </para> |
| 206 | <programlisting role="JAVA"><![CDATA[Message message = new DefaultMessage("Aluno {0} inserido com sucesso"); | 203 | <programlisting role="JAVA"><![CDATA[Message message = new DefaultMessage("Aluno {0} inserido com sucesso"); |
| 207 | - | ||
| 208 | messageContext.add(message, aluno.getNome());]]></programlisting> | 204 | messageContext.add(message, aluno.getNome());]]></programlisting> |
| 209 | <para> | 205 | <para> |
| 210 | Eis um exemplo mais avançado do uso de parametrizações em mensagens: | 206 | Eis um exemplo mais avançado do uso de parametrizações em mensagens: |
| 211 | </para> | 207 | </para> |
| 212 | - <programlisting role="JAVA"><![CDATA[Message message = new DefaultMessage( | ||
| 213 | - "As {1,time} do dia {1,date,short} houve {2} na turma {0}"); | ||
| 214 | - | 208 | + <programlisting role="JAVA"><![CDATA[Message message = new DefaultMessage("As {1,time} do dia {1,date,short} houve {2} na turma {0}"); |
| 215 | messageContext.add(message, new Integer(502), new Date(), "falta de professor");]]></programlisting> | 209 | messageContext.add(message, new Integer(502), new Date(), "falta de professor");]]></programlisting> |
| 216 | <para> | 210 | <para> |
| 217 | O resultado da execução deste código seria um texto como: | 211 | O resultado da execução deste código seria um texto como: |
| @@ -245,7 +239,6 @@ messageContext.add(message, new Integer(502), new Date(), "falta de professor"); | @@ -245,7 +239,6 @@ messageContext.add(message, new Integer(502), new Date(), "falta de professor"); | ||
| 245 | chaves, tal como no exemplo a seguir: | 239 | chaves, tal como no exemplo a seguir: |
| 246 | </para> | 240 | </para> |
| 247 | <programlisting role="JAVA"><![CDATA[Message message = new DefaultMessage("{ALUNO_INSERIR_OK}"); | 241 | <programlisting role="JAVA"><![CDATA[Message message = new DefaultMessage("{ALUNO_INSERIR_OK}"); |
| 248 | - | ||
| 249 | messageContext.add(message, aluno.getNome());]]></programlisting> | 242 | messageContext.add(message, aluno.getNome());]]></programlisting> |
| 250 | <para> | 243 | <para> |
| 251 | Ou seja, ao invés de usar a string literal, passamos o identificador da chave presente no arquivo de propriedades. | 244 | Ou seja, ao invés de usar a string literal, passamos o identificador da chave presente no arquivo de propriedades. |
| @@ -333,7 +326,6 @@ ALUNO_EXCLUIR_OK = L'étudiant {0} a été supprimé avec succès]]></programlis | @@ -333,7 +326,6 @@ ALUNO_EXCLUIR_OK = L'étudiant {0} a été supprimé avec succès]]></programlis | ||
| 333 | final Message BOOKMARK_DELETE_OK = new DefaultMessage("{BOOKMARK_DELETE_OK}"); | 326 | final Message BOOKMARK_DELETE_OK = new DefaultMessage("{BOOKMARK_DELETE_OK}"); |
| 334 | final Message BOOKMARK_INSERT_OK = new DefaultMessage("{BOOKMARK_INSERT_OK}"); | 327 | final Message BOOKMARK_INSERT_OK = new DefaultMessage("{BOOKMARK_INSERT_OK}"); |
| 335 | final Message BOOKMARK_UPDATE_OK = new DefaultMessage("{BOOKMARK_UPDATE_OK}"); | 328 | final Message BOOKMARK_UPDATE_OK = new DefaultMessage("{BOOKMARK_UPDATE_OK}"); |
| 336 | - | ||
| 337 | }]]></programlisting> | 329 | }]]></programlisting> |
| 338 | <para> | 330 | <para> |
| 339 | No exemplo em questão, o texto das mensagens será recuperado do arquivo de recursos <filename>messages.properties</filename> | 331 | No exemplo em questão, o texto das mensagens será recuperado do arquivo de recursos <filename>messages.properties</filename> |
| @@ -375,7 +367,6 @@ BOOKMARK_UPDATE_OK = Bookmark atualizado: {0}]]></programlisting> | @@ -375,7 +367,6 @@ BOOKMARK_UPDATE_OK = Bookmark atualizado: {0}]]></programlisting> | ||
| 375 | public SeverityType getSeverity() { | 367 | public SeverityType getSeverity() { |
| 376 | return msg.getSeverity(); | 368 | return msg.getSeverity(); |
| 377 | } | 369 | } |
| 378 | - | ||
| 379 | }]]></programlisting> | 370 | }]]></programlisting> |
| 380 | <para> | 371 | <para> |
| 381 | A fim de adicionar mensagens ao contexto, eis um exemplo de código que faz uso do artefato <literal>InfoMessages</literal>, | 372 | A fim de adicionar mensagens ao contexto, eis um exemplo de código que faz uso do artefato <literal>InfoMessages</literal>, |
| @@ -413,7 +404,6 @@ public class BookmarkBC { | @@ -413,7 +404,6 @@ public class BookmarkBC { | ||
| 413 | messageContext.add(InfoMessages.BOOKMARK_DELETE_OK, | 404 | messageContext.add(InfoMessages.BOOKMARK_DELETE_OK, |
| 414 | bookmark.getDescription()); | 405 | bookmark.getDescription()); |
| 415 | } | 406 | } |
| 416 | - | ||
| 417 | }]]></programlisting> | 407 | }]]></programlisting> |
| 418 | <calloutlist> | 408 | <calloutlist> |
| 419 | <callout arearefs="inject-context"> | 409 | <callout arearefs="inject-context"> |
documentation/reference/pt-BR/paginacao.xml
| @@ -73,101 +73,77 @@ | @@ -73,101 +73,77 @@ | ||
| 73 | </itemizedlist> | 73 | </itemizedlist> |
| 74 | </para> | 74 | </para> |
| 75 | 75 | ||
| 76 | - <para>Códigos internos de suporte no Core:</para> | ||
| 77 | - | ||
| 78 | - <programlisting role="JAVA"><![CDATA[ | ||
| 79 | - public class Pagination { | ||
| 80 | - | ||
| 81 | - private int currentPage; | ||
| 82 | - private int pageSize; | ||
| 83 | - | ||
| 84 | - private Long totalResults; | ||
| 85 | - private Integer totalPages; | ||
| 86 | - | ||
| 87 | - // ... | ||
| 88 | - } | ||
| 89 | - | ||
| 90 | - @SessionScoped | ||
| 91 | - public class PaginationContext { | ||
| 92 | - | ||
| 93 | - private final Map<Class<?>, Pagination> map; | ||
| 94 | - | ||
| 95 | - public Pagination getPagination(Class<?> clazz) { ... } | ||
| 96 | - | ||
| 97 | - public Pagination getPagination(Class<?> clazz, boolean create) { ... } | ||
| 98 | - | ||
| 99 | - } | ||
| 100 | - | ||
| 101 | - @Configuration | ||
| 102 | - public class PaginationConfig { | ||
| 103 | - | ||
| 104 | - @Key("default_page_size") | ||
| 105 | - private int defaultPageSize = 10; | ||
| 106 | - | ||
| 107 | - @Key("max_page_links") | ||
| 108 | - private int maxPageLinks = 5; | ||
| 109 | - | ||
| 110 | - } | ||
| 111 | - ]]></programlisting> | ||
| 112 | - | ||
| 113 | - <para>Códigos internos de suporte em JPA:</para> | ||
| 114 | - | ||
| 115 | - <programlisting role="JAVA"><![CDATA[ | ||
| 116 | - public class JPACrud<T, I> implements Crud<T, I> { | ||
| 117 | - | ||
| 118 | - @Inject | ||
| 119 | - private PaginationContext paginationContext; | ||
| 120 | - | ||
| 121 | - // ... | ||
| 122 | - | ||
| 123 | - public List<T> findAll() { | ||
| 124 | - | ||
| 125 | - final String jpql = "select this from " + getBeanClass().getSimpleName() + " this"; | ||
| 126 | - final Query query = getEntityManager().createQuery(jpql); | ||
| 127 | - | ||
| 128 | - final Pagination pagination = paginationContext.getPagination(getBeanClass()); | ||
| 129 | - if (pagination != null) { | ||
| 130 | - if (pagination.getTotalPages() == null) { | ||
| 131 | - pagination.setTotalResults(this.countAll()); | ||
| 132 | - } | ||
| 133 | - query.setFirstResult(pagination.getFirstResult()); | ||
| 134 | - query.setMaxResults(pagination.getPageSize()); | ||
| 135 | - } | ||
| 136 | - | ||
| 137 | - // ... | ||
| 138 | - } | ||
| 139 | - | 76 | + <para>Códigos internos de suporte no Core:</para><programlisting role="JAVA"><![CDATA[public class Pagination { |
| 77 | + | ||
| 78 | + private int currentPage; | ||
| 79 | + private int pageSize; | ||
| 80 | + private Long totalResults; | ||
| 81 | + private Integer totalPages; | ||
| 82 | + // ... | ||
| 83 | +} | ||
| 84 | + | ||
| 85 | +@SessionScoped | ||
| 86 | +public class PaginationContext { | ||
| 87 | + | ||
| 88 | + private final Map<Class<?>, Pagination> map; | ||
| 89 | + public Pagination getPagination(Class<?> clazz) { ... } | ||
| 90 | + public Pagination getPagination(Class<?> clazz, boolean create) { ... } | ||
| 91 | +} | ||
| 92 | + | ||
| 93 | +@Configuration | ||
| 94 | +public class PaginationConfig { | ||
| 95 | + | ||
| 96 | + @Key("default_page_size") | ||
| 97 | + private int defaultPageSize = 10; | ||
| 98 | + | ||
| 99 | + @Key("max_page_links") | ||
| 100 | + private int maxPageLinks = 5; | ||
| 101 | +}]]></programlisting> | ||
| 102 | + | ||
| 103 | + <para>Códigos internos de suporte em JPA:</para><programlisting role="JAVA"><![CDATA[public class JPACrud<T, I> implements Crud<T, I> { | ||
| 104 | + | ||
| 105 | + @Inject | ||
| 106 | + private PaginationContext paginationContext; | ||
| 107 | + // ... | ||
| 108 | + | ||
| 109 | + public List<T> findAll() { | ||
| 110 | + | ||
| 111 | + final String jpql = "select this from " + getBeanClass().getSimpleName() + " this"; | ||
| 112 | + final Query query = getEntityManager().createQuery(jpql); | ||
| 113 | + final Pagination pagination = paginationContext.getPagination(getBeanClass()); | ||
| 114 | + | ||
| 115 | + if (pagination != null) { | ||
| 116 | + if (pagination.getTotalPages() == null) { | ||
| 117 | + pagination.setTotalResults(this.countAll()); | ||
| 140 | } | 118 | } |
| 141 | - ]]></programlisting> | 119 | + query.setFirstResult(pagination.getFirstResult()); |
| 120 | + query.setMaxResults(pagination.getPageSize()); | ||
| 121 | + } | ||
| 122 | + // ... | ||
| 123 | + } | ||
| 124 | +}]]></programlisting> | ||
| 142 | 125 | ||
| 143 | - <para>Códigos internos de suporte em JSF:</para> | ||
| 144 | - | ||
| 145 | - <programlisting role="JAVA"><![CDATA[ | ||
| 146 | - public abstract class AbstractListPageBean<T, I> extends AbstractPage | ||
| 147 | - implements ListPageBean<T, I> { | ||
| 148 | - | ||
| 149 | - @Inject | ||
| 150 | - private PaginationContext paginationContext; | ||
| 151 | - | ||
| 152 | - @Inject | ||
| 153 | - private PaginationConfig paginationConfig; | ||
| 154 | - | ||
| 155 | - // ... | ||
| 156 | - | ||
| 157 | - public Pagination getPagination() { | ||
| 158 | - return paginationContext.getPagination(getBeanClass(), true); | ||
| 159 | - } | ||
| 160 | - | ||
| 161 | - public int getPageSize() { | ||
| 162 | - return paginationConfig.getDefaultPageSize(); | ||
| 163 | - } | ||
| 164 | - | ||
| 165 | - public int getMaxPageLinks() { | ||
| 166 | - return paginationConfig.getMaxPageLinks(); | ||
| 167 | - } | ||
| 168 | - | ||
| 169 | - } | ||
| 170 | - ]]></programlisting> | 126 | + <para>Códigos internos de suporte em JSF:</para><programlisting role="JAVA"><![CDATA[public abstract class AbstractListPageBean<T, I> extends AbstractPage implements ListPageBean<T, I> { |
| 127 | + | ||
| 128 | + @Inject | ||
| 129 | + private PaginationContext paginationContext; | ||
| 130 | + | ||
| 131 | + @Inject | ||
| 132 | + private PaginationConfig paginationConfig; | ||
| 133 | + // ... | ||
| 134 | + | ||
| 135 | + public Pagination getPagination() { | ||
| 136 | + return paginationContext.getPagination(getBeanClass(), true); | ||
| 137 | + } | ||
| 138 | + | ||
| 139 | + public int getPageSize() { | ||
| 140 | + return paginationConfig.getDefaultPageSize(); | ||
| 141 | + } | ||
| 142 | + | ||
| 143 | + public int getMaxPageLinks() { | ||
| 144 | + return paginationConfig.getMaxPageLinks(); | ||
| 145 | + } | ||
| 146 | +}]]></programlisting> | ||
| 171 | </section> | 147 | </section> |
| 172 | 148 | ||
| 173 | <section> | 149 | <section> |
| @@ -194,73 +170,54 @@ | @@ -194,73 +170,54 @@ | ||
| 194 | </para> | 170 | </para> |
| 195 | <para> | 171 | <para> |
| 196 | À classe <emphasis>BookmarkList</emphasis> devem ser adicionados os seguintes trechos de código: | 172 | À classe <emphasis>BookmarkList</emphasis> devem ser adicionados os seguintes trechos de código: |
| 197 | - </para> | ||
| 198 | - | ||
| 199 | - <programlisting role="JAVA"><![CDATA[ | ||
| 200 | - // ... | ||
| 201 | - import java.util.Map; | ||
| 202 | - import br.gov.frameworkdemoiselle.pagination.Pagination; | ||
| 203 | - | ||
| 204 | - // ... | ||
| 205 | - private LazyDataModel<Bookmark> lazyModel; | ||
| 206 | - | ||
| 207 | - public BookmarkListMB() { | ||
| 208 | - lazyModel = new LazyDataModel<Bookmark>() { | ||
| 209 | - | ||
| 210 | - @Override | ||
| 211 | - public List<Bookmark> load (int first, int pageSize, String sortField, | ||
| 212 | - SortOrder sortOrder, Map<String, String> filters){ | ||
| 213 | - | ||
| 214 | - Pagination pagination = getPagination(); | ||
| 215 | - pagination.setPageSize(pageSize); | ||
| 216 | - pagination.setFirstResult(first); | ||
| 217 | - | ||
| 218 | - List<Bookmark> itemsList = bc.findAll(); | ||
| 219 | - | ||
| 220 | - lazyModel.setRowCount(pagination.getTotalResults()); | ||
| 221 | - | ||
| 222 | - return itemsList; | ||
| 223 | - } | ||
| 224 | - }; | ||
| 225 | - } | ||
| 226 | - | ||
| 227 | - // ... | ||
| 228 | - | ||
| 229 | - public LazyDataModel<Bookmark> getLazyModel() { | ||
| 230 | - return lazyModel; | ||
| 231 | - } | ||
| 232 | - | ||
| 233 | - // ... | ||
| 234 | - ]]></programlisting> | 173 | + </para><programlisting role="JAVA"><![CDATA[// ... |
| 174 | +import java.util.Map; | ||
| 175 | +import br.gov.frameworkdemoiselle.pagination.Pagination; | ||
| 176 | +// ... | ||
| 177 | + | ||
| 178 | +public BookmarkListMB() { | ||
| 179 | + | ||
| 180 | + private LazyDataModel<Bookmark> lazyModel; | ||
| 181 | + lazyModel = new LazyDataModel<Bookmark>() { | ||
| 182 | + | ||
| 183 | + @Override | ||
| 184 | + public List<Bookmark> load (int first, int pageSize, String sortField, | ||
| 185 | + SortOrder sortOrder, Map<String, String> filters){ | ||
| 186 | + | ||
| 187 | + Pagination pagination = getPagination(); | ||
| 188 | + pagination.setPageSize(pageSize); | ||
| 189 | + pagination.setFirstResult(first); | ||
| 190 | + | ||
| 191 | + List<Bookmark> itemsList = bc.findAll(); | ||
| 192 | + | ||
| 193 | + lazyModel.setRowCount(pagination.getTotalResults()); | ||
| 194 | + | ||
| 195 | + return itemsList; | ||
| 196 | + } | ||
| 197 | + }; | ||
| 198 | + // ... | ||
| 199 | + public LazyDataModel<Bookmark> getLazyModel() { | ||
| 200 | + return lazyModel; | ||
| 201 | + } | ||
| 202 | + // ... | ||
| 203 | +}]]></programlisting> | ||
| 235 | 204 | ||
| 236 | <para> | 205 | <para> |
| 237 | No arquivo <literal>messages.properties</literal> adicione as linhas: | 206 | No arquivo <literal>messages.properties</literal> adicione as linhas: |
| 238 | - </para> | ||
| 239 | - | ||
| 240 | - <programlisting role="JAVA"><![CDATA[ | ||
| 241 | - page.first=0 | ||
| 242 | - page.rows=4 | ||
| 243 | - page.max.links=3 | ||
| 244 | - ]]></programlisting> | ||
| 245 | - | 207 | + </para><programlisting role="JAVA"><![CDATA[page.first=0 |
| 208 | +page.rows=4 | ||
| 209 | +page.max.links=3]]></programlisting> | ||
| 246 | <para> | 210 | <para> |
| 247 | Na página JSF <literal>bookmark_list.xhtml</literal>, substitua a linha: | 211 | Na página JSF <literal>bookmark_list.xhtml</literal>, substitua a linha: |
| 248 | </para> | 212 | </para> |
| 249 | - | ||
| 250 | - <programlisting role="JAVA"><![CDATA[ | ||
| 251 | - <p:dataTable id="list" var="bean" value="#{bookmarkListMB.resultList}"> | ||
| 252 | - ]]></programlisting> | 213 | + <programlisting role="JAVA"><![CDATA[<p:dataTable id="list" var="bean" value="#{bookmarkListMB.resultList}">]]></programlisting> |
| 253 | 214 | ||
| 254 | <para> | 215 | <para> |
| 255 | por: | 216 | por: |
| 256 | - </para> | ||
| 257 | - | ||
| 258 | - <programlisting role="JAVA"><![CDATA[ | ||
| 259 | - <p:dataTable id="list" var="bean" | ||
| 260 | - value="#{bookmarkListMB.lazyModel}" lazy="true" paginator="true" | ||
| 261 | - first="#{messages['page.first']}" rows="#{messages['page.rows']}" | ||
| 262 | - pageLinks="#{messages['page.max.links']}"> | ||
| 263 | - ]]></programlisting> | 217 | + </para><programlisting role="JAVA"><![CDATA[<p:dataTable id="list" var="bean" |
| 218 | +value="#{bookmarkListMB.lazyModel}" lazy="true" paginator="true" | ||
| 219 | +first="#{messages['page.first']}" rows="#{messages['page.rows']}" | ||
| 220 | +pageLinks="#{messages['page.max.links']}">]]></programlisting> | ||
| 264 | 221 | ||
| 265 | <para> | 222 | <para> |
| 266 | Com essas alterações simples, a aplicação Bookmarks passa a utilizar o mecanismo de paginação oferecido pelo <emphasis>Demoiselle Framework</emphasis>. | 223 | Com essas alterações simples, a aplicação Bookmarks passa a utilizar o mecanismo de paginação oferecido pelo <emphasis>Demoiselle Framework</emphasis>. |
documentation/reference/pt-BR/parametro.xml
| @@ -20,13 +20,12 @@ | @@ -20,13 +20,12 @@ | ||
| 20 | Captura do parâmetro pelo Page Bean | 20 | Captura do parâmetro pelo Page Bean |
| 21 | </para> | 21 | </para> |
| 22 | <programlisting role="JAVA"><![CDATA[public class Classe { | 22 | <programlisting role="JAVA"><![CDATA[public class Classe { |
| 23 | - | 23 | + |
| 24 | public void metodo() { | 24 | public void metodo() { |
| 25 | FacesContext context = FacesContext.getCurrentInstance(); | 25 | FacesContext context = FacesContext.getCurrentInstance(); |
| 26 | HttpServletRequest req = (HttpServletRequest) context.getExternalContext().getRequest(); | 26 | HttpServletRequest req = (HttpServletRequest) context.getExternalContext().getRequest(); |
| 27 | String param = req.getParameter("parametro"); | 27 | String param = req.getParameter("parametro"); |
| 28 | } | 28 | } |
| 29 | - | ||
| 30 | }]]></programlisting> | 29 | }]]></programlisting> |
| 31 | 30 | ||
| 32 | <section> | 31 | <section> |
| @@ -54,16 +53,15 @@ http://localhost:8080/aplicacao/pagina.jsf?parametroString=valorParametroString] | @@ -54,16 +53,15 @@ http://localhost:8080/aplicacao/pagina.jsf?parametroString=valorParametroString] | ||
| 54 | Captura do parâmetro pelo Page Bean | 53 | Captura do parâmetro pelo Page Bean |
| 55 | </para> | 54 | </para> |
| 56 | <programlisting role="JAVA"><![CDATA[public class Classe { | 55 | <programlisting role="JAVA"><![CDATA[public class Classe { |
| 57 | - | 56 | + |
| 58 | @ViewScoped | 57 | @ViewScoped |
| 59 | @Inject | 58 | @Inject |
| 60 | private Parameter<Long> parametro; | 59 | private Parameter<Long> parametro; |
| 61 | - | 60 | + |
| 62 | @Name("parametroString") | 61 | @Name("parametroString") |
| 63 | @SessionScoped | 62 | @SessionScoped |
| 64 | @Inject | 63 | @Inject |
| 65 | private Parameter<String> objetoComNomeDiferenteDoParametro; | 64 | private Parameter<String> objetoComNomeDiferenteDoParametro; |
| 66 | - | ||
| 67 | }]]></programlisting> | 65 | }]]></programlisting> |
| 68 | </section> | 66 | </section> |
| 69 | 67 | ||
| @@ -78,15 +76,14 @@ http://localhost:8080/aplicacao/pagina.jsf?parametroString=valorParametroString] | @@ -78,15 +76,14 @@ http://localhost:8080/aplicacao/pagina.jsf?parametroString=valorParametroString] | ||
| 78 | <function>getValue()</function>, tal como mostrado a seguir: | 76 | <function>getValue()</function>, tal como mostrado a seguir: |
| 79 | </para> | 77 | </para> |
| 80 | <programlisting role="JAVA"><![CDATA[public class Classe { | 78 | <programlisting role="JAVA"><![CDATA[public class Classe { |
| 81 | - | 79 | + |
| 82 | @ViewScoped | 80 | @ViewScoped |
| 83 | @Inject | 81 | @Inject |
| 84 | private Parameter<Long> parametro; | 82 | private Parameter<Long> parametro; |
| 85 | - | 83 | + |
| 86 | public void metodo() { | 84 | public void metodo() { |
| 87 | System.out.println("Valor do parâmetro: " + parametro.getValue()); | 85 | System.out.println("Valor do parâmetro: " + parametro.getValue()); |
| 88 | } | 86 | } |
| 89 | - | ||
| 90 | }]]></programlisting> | 87 | }]]></programlisting> |
| 91 | </section> | 88 | </section> |
| 92 | 89 |
documentation/reference/pt-BR/parentsPom.xml
| @@ -21,7 +21,11 @@ | @@ -21,7 +21,11 @@ | ||
| 21 | <para>Seguindo esse conceito, foram criados alguns arquivos (pom.xml) e também disponibilizados no repositório Maven do Demoiselle , que facilitam a configuração dos projetos, e inclusive para o desenvolvimento do próprio Demoiselle. | 21 | <para>Seguindo esse conceito, foram criados alguns arquivos (pom.xml) e também disponibilizados no repositório Maven do Demoiselle , que facilitam a configuração dos projetos, e inclusive para o desenvolvimento do próprio Demoiselle. |
| 22 | Os arquivos gerados foram divididos em perfis, para que o desenvolvedor possa escolher qual usar de acordo com o tipo de aplicação que está desenvolvendo. | 22 | Os arquivos gerados foram divididos em perfis, para que o desenvolvedor possa escolher qual usar de acordo com o tipo de aplicação que está desenvolvendo. |
| 23 | Assim, a alteração no POM.XML da aplicação será a minima possível. Outra vantagem, é que as bibliotecas apontadas como dependências são testadas pela equipe do Demoiselle o que evita eventuais incompatibilidades.</para> | 23 | Assim, a alteração no POM.XML da aplicação será a minima possível. Outra vantagem, é que as bibliotecas apontadas como dependências são testadas pela equipe do Demoiselle o que evita eventuais incompatibilidades.</para> |
| 24 | - <tip>Para excluir uma dependência vinda do Parent, mas não necessária utilize a tag Exclusions </tip> | 24 | + <tip> |
| 25 | + <para> | ||
| 26 | + Para excluir uma dependência vinda do Parent, mas não necessária utilize a tag Exclusions | ||
| 27 | + </para> | ||
| 28 | + </tip> | ||
| 25 | 29 | ||
| 26 | <section> | 30 | <section> |
| 27 | <title>Demoiselle-Minimal-Parent</title> | 31 | <title>Demoiselle-Minimal-Parent</title> |
documentation/reference/pt-BR/security.xml
| @@ -22,19 +22,15 @@ | @@ -22,19 +22,15 @@ | ||
| 22 | <para> | 22 | <para> |
| 23 | Para um correto funcionamento do Demoiselle é necessário inserir os interceptadores de segurança no arquivo <filename>src/main/WEB-INF/beans.xml</filename>. | 23 | Para um correto funcionamento do Demoiselle é necessário inserir os interceptadores de segurança no arquivo <filename>src/main/WEB-INF/beans.xml</filename>. |
| 24 | </para> | 24 | </para> |
| 25 | - <programlisting role="XML"> | ||
| 26 | - <![CDATA[ | ||
| 27 | - <beans xmlns="http://java.sun.com/xml/ns/javaee" | ||
| 28 | - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
| 29 | - xsi:schemaLocation="http://java.sun.com/xml/ns/javaee | ||
| 30 | - http://java.sun.com/xml/ns/javaee/beans_1_0.xsd"> | ||
| 31 | - <interceptors> | ||
| 32 | - <class>br.gov.frameworkdemoiselle.internal.interceptor.RequiredPermissionInterceptor</class> | ||
| 33 | - <class>br.gov.frameworkdemoiselle.internal.interceptor.RequiredRoleInterceptor</class> | ||
| 34 | - </interceptors> | ||
| 35 | - </beans> | ||
| 36 | - ]]> | ||
| 37 | - </programlisting> | 25 | + <programlisting role="XML"><![CDATA[<beans xmlns="http://java.sun.com/xml/ns/javaee" |
| 26 | +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
| 27 | +xsi:schemaLocation="http://java.sun.com/xml/ns/javaee | ||
| 28 | + http://java.sun.com/xml/ns/javaee/beans_1_0.xsd"> | ||
| 29 | + <interceptors> | ||
| 30 | + <class>br.gov.frameworkdemoiselle.internal.interceptor.RequiredPermissionInterceptor</class> | ||
| 31 | + <class>br.gov.frameworkdemoiselle.internal.interceptor.RequiredRoleInterceptor</class> | ||
| 32 | + </interceptors> | ||
| 33 | +</beans>]]></programlisting> | ||
| 38 | </section> | 34 | </section> |
| 39 | 35 | ||
| 40 | <section> | 36 | <section> |
| @@ -66,11 +62,8 @@ | @@ -66,11 +62,8 @@ | ||
| 66 | public class Credential { | 62 | public class Credential { |
| 67 | 63 | ||
| 68 | private String login; | 64 | private String login; |
| 69 | - | ||
| 70 | private String senha; | 65 | private String senha; |
| 71 | - | ||
| 72 | // ... | 66 | // ... |
| 73 | - | ||
| 74 | }]]></programlisting> | 67 | }]]></programlisting> |
| 75 | <para> | 68 | <para> |
| 76 | Feito isso, podemos implementar a classe na qual se deseja adicionar o mecanismo de segurança: | 69 | Feito isso, podemos implementar a classe na qual se deseja adicionar o mecanismo de segurança: |
| @@ -90,7 +83,6 @@ public class Credential { | @@ -90,7 +83,6 @@ public class Credential { | ||
| 90 | // codigo do metodo | 83 | // codigo do metodo |
| 91 | context.logout(); | 84 | context.logout(); |
| 92 | } | 85 | } |
| 93 | - | ||
| 94 | }]]></programlisting> | 86 | }]]></programlisting> |
| 95 | <para> | 87 | <para> |
| 96 | Neste caso, a interface SecurityContext e o bean Credential estão sendo injetados na classe utilizando o CDI. | 88 | Neste caso, a interface SecurityContext e o bean Credential estão sendo injetados na classe utilizando o CDI. |
| @@ -129,7 +121,6 @@ public class Credential { | @@ -129,7 +121,6 @@ public class Credential { | ||
| 129 | @RequiredPermission(resource = "contact", operation = "insert") | 121 | @RequiredPermission(resource = "contact", operation = "insert") |
| 130 | public void requiredPermissionWithDeclaredResourceAndOperation() { | 122 | public void requiredPermissionWithDeclaredResourceAndOperation() { |
| 131 | } | 123 | } |
| 132 | - | ||
| 133 | }]]></programlisting> | 124 | }]]></programlisting> |
| 134 | <para> | 125 | <para> |
| 135 | Observe o método cuja anotação não possui parâmetros. Nesse caso serão considerados como recurso e operação o nome da classe e | 126 | Observe o método cuja anotação não possui parâmetros. Nesse caso serão considerados como recurso e operação o nome da classe e |
| @@ -158,7 +149,6 @@ public class Credential { | @@ -158,7 +149,6 @@ public class Credential { | ||
| 158 | @RequiredRole({ "firstRole", "secondRole", "thirdRole", "fourthRole", "fifthRole" }) | 149 | @RequiredRole({ "firstRole", "secondRole", "thirdRole", "fourthRole", "fifthRole" }) |
| 159 | public void requiredRoleWithArrayOfRoles() { | 150 | public void requiredRoleWithArrayOfRoles() { |
| 160 | } | 151 | } |
| 161 | - | ||
| 162 | }]]></programlisting> | 152 | }]]></programlisting> |
| 163 | <para> | 153 | <para> |
| 164 | As restrições de segurança pode ser utilizadas, ainda, em páginas web, com o auxílio de Expression Language, como no | 154 | As restrições de segurança pode ser utilizadas, ainda, em páginas web, com o auxílio de Expression Language, como no |
| @@ -183,8 +173,7 @@ public class Credential { | @@ -183,8 +173,7 @@ public class Credential { | ||
| 183 | a implementação, e torna essa classe a implementação padrão dessas interfaces:<!-- Essas classes devem ser | 173 | a implementação, e torna essa classe a implementação padrão dessas interfaces:<!-- Essas classes devem ser |
| 184 | anotadas com @Alternative para que o CDI saiba que se trata de uma estratégia: --> | 174 | anotadas com @Alternative para que o CDI saiba que se trata de uma estratégia: --> |
| 185 | </para> | 175 | </para> |
| 186 | - <programlisting role="JAVA"><![CDATA[ | ||
| 187 | -public class MeuAuthenticator implements Authenticator { | 176 | + <programlisting role="JAVA"><![CDATA[public class MeuAuthenticator implements Authenticator { |
| 188 | 177 | ||
| 189 | @Override | 178 | @Override |
| 190 | public boolean authenticate() { | 179 | public boolean authenticate() { |
| @@ -201,12 +190,9 @@ public class MeuAuthenticator implements Authenticator { | @@ -201,12 +190,9 @@ public class MeuAuthenticator implements Authenticator { | ||
| 201 | @Override | 190 | @Override |
| 202 | public void unAuthenticate() { | 191 | public void unAuthenticate() { |
| 203 | // Escreva aqui seu codigo de desautenticacao | 192 | // Escreva aqui seu codigo de desautenticacao |
| 204 | - | ||
| 205 | } | 193 | } |
| 206 | - | ||
| 207 | }]]></programlisting> | 194 | }]]></programlisting> |
| 208 | - <programlisting role="JAVA"><![CDATA[ | ||
| 209 | -public class MeuAuthorizer implements Authorizer { | 195 | + <programlisting role="JAVA"><![CDATA[public class MeuAuthorizer implements Authorizer { |
| 210 | 196 | ||
| 211 | @Override | 197 | @Override |
| 212 | public boolean hasRole(String role) { | 198 | public boolean hasRole(String role) { |
| @@ -219,7 +205,6 @@ public class MeuAuthorizer implements Authorizer { | @@ -219,7 +205,6 @@ public class MeuAuthorizer implements Authorizer { | ||
| 219 | // Escreva aqui seu codigo de verificação de permissao | 205 | // Escreva aqui seu codigo de verificação de permissao |
| 220 | return false; | 206 | return false; |
| 221 | } | 207 | } |
| 222 | - | ||
| 223 | }]]></programlisting> | 208 | }]]></programlisting> |
| 224 | <!-- <para> | 209 | <!-- <para> |
| 225 | Feito isso deve-se definir no arquivo <filename>demoiselle.properties</filename>, as classes criadas: | 210 | Feito isso deve-se definir no arquivo <filename>demoiselle.properties</filename>, as classes criadas: |
| @@ -236,10 +221,8 @@ public class MeuAuthorizer implements Authorizer { | @@ -236,10 +221,8 @@ public class MeuAuthorizer implements Authorizer { | ||
| 236 | Se você tem mais de uma implementação de <literal>Authenticator</literal> e/ou <literal>Authorizer</literal> (o que pode acontecer, por exemplo, quando | 221 | Se você tem mais de uma implementação de <literal>Authenticator</literal> e/ou <literal>Authorizer</literal> (o que pode acontecer, por exemplo, quando |
| 237 | se necessite de uma implementação na aplicação principal, e outra para os testes), deverá definir no arquivo <filename>demoiselle.properties</filename> | 222 | se necessite de uma implementação na aplicação principal, e outra para os testes), deverá definir no arquivo <filename>demoiselle.properties</filename> |
| 238 | qual classe será a padrão: | 223 | qual classe será a padrão: |
| 239 | - <programlisting> | ||
| 240 | - frameworkdemoiselle.security.authenticator.class=projeto.MeuAuthenticatorPadrao | ||
| 241 | - frameworkdemoiselle.security.authorizer.class=projeto.MeuAuthorizerPadrao | ||
| 242 | - </programlisting> | 224 | + <programlisting>frameworkdemoiselle.security.authenticator.class=projeto.MeuAuthenticatorPadrao |
| 225 | +frameworkdemoiselle.security.authorizer.class=projeto.MeuAuthorizerPadrao</programlisting> | ||
| 243 | </para> | 226 | </para> |
| 244 | </section> | 227 | </section> |
| 245 | <caution> <para>O Demoiselle também oferece o componente | 228 | <caution> <para>O Demoiselle também oferece o componente |
documentation/reference/pt-BR/templates.xml
| @@ -39,7 +39,6 @@ public class SuaEntidadeDAO extends JPACrud<SuaEntidade, Long> { | @@ -39,7 +39,6 @@ public class SuaEntidadeDAO extends JPACrud<SuaEntidade, Long> { | ||
| 39 | query.setParameter("criterio", criterio); | 39 | query.setParameter("criterio", criterio); |
| 40 | return query.getResultList(); | 40 | return query.getResultList(); |
| 41 | } | 41 | } |
| 42 | - | ||
| 43 | }]]></programlisting> | 42 | }]]></programlisting> |
| 44 | </section> | 43 | </section> |
| 45 | 44 | ||
| @@ -65,7 +64,7 @@ public class SuaEntidadeDAO extends JPACrud<SuaEntidade, Long> { | @@ -65,7 +64,7 @@ public class SuaEntidadeDAO extends JPACrud<SuaEntidade, Long> { | ||
| 65 | </para> | 64 | </para> |
| 66 | <programlisting role="JAVA"><![CDATA[@BusinessController | 65 | <programlisting role="JAVA"><![CDATA[@BusinessController |
| 67 | public class SuaEntidadeBC extends DelegateCrud<SuaEntidade, Long, SuaEntidadeDAO> { | 66 | public class SuaEntidadeBC extends DelegateCrud<SuaEntidade, Long, SuaEntidadeDAO> { |
| 68 | - | 67 | + |
| 69 | private void validateInsert(SuaEntidade se) { | 68 | private void validateInsert(SuaEntidade se) { |
| 70 | // valida os atributos da entidade | 69 | // valida os atributos da entidade |
| 71 | } | 70 | } |
| @@ -76,7 +75,6 @@ public class SuaEntidadeBC extends DelegateCrud<SuaEntidade, Long, SuaEntidadeDA | @@ -76,7 +75,6 @@ public class SuaEntidadeBC extends DelegateCrud<SuaEntidade, Long, SuaEntidadeDA | ||
| 76 | validateInsert(se); | 75 | validateInsert(se); |
| 77 | super.insert(se); | 76 | super.insert(se); |
| 78 | } | 77 | } |
| 79 | - | ||
| 80 | }]]></programlisting> | 78 | }]]></programlisting> |
| 81 | </section> | 79 | </section> |
| 82 | 80 | ||
| @@ -99,14 +97,12 @@ public class SuaEntidadeBC extends DelegateCrud<SuaEntidade, Long, SuaEntidadeDA | @@ -99,14 +97,12 @@ public class SuaEntidadeBC extends DelegateCrud<SuaEntidade, Long, SuaEntidadeDA | ||
| 99 | </para> | 97 | </para> |
| 100 | <programlisting role="JAVA"><![CDATA[@ViewController | 98 | <programlisting role="JAVA"><![CDATA[@ViewController |
| 101 | public class SuaEntidadeListMB extends AbstractListPageBean<SuaEntidade, Long> { | 99 | public class SuaEntidadeListMB extends AbstractListPageBean<SuaEntidade, Long> { |
| 102 | - | ||
| 103 | }]]></programlisting> | 100 | }]]></programlisting> |
| 104 | <para> | 101 | <para> |
| 105 | Estendendo o <literal>AbstractEditPageBean</literal>: | 102 | Estendendo o <literal>AbstractEditPageBean</literal>: |
| 106 | </para> | 103 | </para> |
| 107 | <programlisting role="JAVA"><![CDATA[@ViewController | 104 | <programlisting role="JAVA"><![CDATA[@ViewController |
| 108 | public class SuaEntidadeEditMB extends AbstractEditPageBean<SuaEntidade, Long> { | 105 | public class SuaEntidadeEditMB extends AbstractEditPageBean<SuaEntidade, Long> { |
| 109 | - | ||
| 110 | }]]></programlisting> | 106 | }]]></programlisting> |
| 111 | </section> | 107 | </section> |
| 112 | 108 |
documentation/reference/pt-BR/transacao.xml
| @@ -26,20 +26,17 @@ | @@ -26,20 +26,17 @@ | ||
| 26 | <section> | 26 | <section> |
| 27 | <title>Configurando</title> | 27 | <title>Configurando</title> |
| 28 | <para> | 28 | <para> |
| 29 | - Para um correto funcionamento do Demoiselle é necessário inserir o interceptador de transação no arquivo <filename>src/main/WEB-INF/beans.xml</filename>. | 29 | + Para um correto funcionamento do Demoiselle é necessário inserir o interceptador de transação no arquivo <filename>src/main/WEB-INF/beans.xml</filename>. |
| 30 | </para> | 30 | </para> |
| 31 | - <programlisting role="XML"> | ||
| 32 | - <![CDATA[ | ||
| 33 | - <beans xmlns="http://java.sun.com/xml/ns/javaee" | ||
| 34 | - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
| 35 | - xsi:schemaLocation="http://java.sun.com/xml/ns/javaee | ||
| 36 | - http://java.sun.com/xml/ns/javaee/beans_1_0.xsd"> | ||
| 37 | - <interceptors> | ||
| 38 | - <class>br.gov.frameworkdemoiselle.internal.interceptor.TransactionalInterceptor</class> | ||
| 39 | - </interceptors> | ||
| 40 | - </beans> | ||
| 41 | - ]]> | ||
| 42 | - </programlisting> | 31 | + <programlisting role="XML"><![CDATA[<beans xmlns="http://java.sun.com/xml/ns/javaee" |
| 32 | + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
| 33 | + xsi:schemaLocation="http://java.sun.com/xml/ns/javaee | ||
| 34 | + http://java.sun.com/xml/ns/javaee/beans_1_0.xsd"> | ||
| 35 | + | ||
| 36 | + <interceptors> | ||
| 37 | + <class>br.gov.frameworkdemoiselle.internal.interceptor.TransactionalInterceptor</class> | ||
| 38 | + </interceptors> | ||
| 39 | +</beans>]]></programlisting> | ||
| 43 | </section> | 40 | </section> |
| 44 | 41 | ||
| 45 | <section> | 42 | <section> |
| @@ -56,13 +53,9 @@ public void inserir() { }]]></programlisting> | @@ -56,13 +53,9 @@ public void inserir() { }]]></programlisting> | ||
| 56 | </para> | 53 | </para> |
| 57 | <programlisting role="JAVA"><![CDATA[@Transactional | 54 | <programlisting role="JAVA"><![CDATA[@Transactional |
| 58 | public class Simples { | 55 | public class Simples { |
| 59 | - | ||
| 60 | - public void inserir() { } | ||
| 61 | - | 56 | + public void inserir() { } |
| 62 | public void alterar() { } | 57 | public void alterar() { } |
| 63 | - | ||
| 64 | public void excluir() { } | 58 | public void excluir() { } |
| 65 | - | ||
| 66 | }]]></programlisting> | 59 | }]]></programlisting> |
| 67 | <para> | 60 | <para> |
| 68 | Neste exemplo, os métodos <function>inserir()</function>, <function>alterar()</function> e | 61 | Neste exemplo, os métodos <function>inserir()</function>, <function>alterar()</function> e |
| @@ -78,7 +71,6 @@ public class Simples { | @@ -78,7 +71,6 @@ public class Simples { | ||
| 78 | </para> | 71 | </para> |
| 79 | <programlisting role="JAVA"><![CDATA[@ApplicationException(rollback = false) | 72 | <programlisting role="JAVA"><![CDATA[@ApplicationException(rollback = false) |
| 80 | public class AbacaxiException { | 73 | public class AbacaxiException { |
| 81 | - | ||
| 82 | }]]></programlisting> | 74 | }]]></programlisting> |
| 83 | </section> | 75 | </section> |
| 84 | 76 | ||
| @@ -88,10 +80,8 @@ public class AbacaxiException { | @@ -88,10 +80,8 @@ public class AbacaxiException { | ||
| 88 | Para ter acesso à instância da transação corrente, basta injetá-la em sua classe. | 80 | Para ter acesso à instância da transação corrente, basta injetá-la em sua classe. |
| 89 | </para> | 81 | </para> |
| 90 | <programlisting role="JAVA"><![CDATA[public class Simples { | 82 | <programlisting role="JAVA"><![CDATA[public class Simples { |
| 91 | - | ||
| 92 | @Inject | 83 | @Inject |
| 93 | private Transaction transaction; | 84 | private Transaction transaction; |
| 94 | - | ||
| 95 | }]]></programlisting> | 85 | }]]></programlisting> |
| 96 | </section> | 86 | </section> |
| 97 | 87 | ||
| @@ -136,10 +126,10 @@ public class AbacaxiException { | @@ -136,10 +126,10 @@ public class AbacaxiException { | ||
| 136 | <tip><para> Caso não esteja utilizando o arquétipo JSF-JPA fornecidos pelo Demoiselle, confira se a dependência para a | 126 | <tip><para> Caso não esteja utilizando o arquétipo JSF-JPA fornecidos pelo Demoiselle, confira se a dependência para a |
| 137 | extensão está indicada corretamente no arquivo POM.XML.</para> | 127 | extensão está indicada corretamente no arquivo POM.XML.</para> |
| 138 | <programlisting role="XML"><![CDATA[<dependency> | 128 | <programlisting role="XML"><![CDATA[<dependency> |
| 139 | - <groupId>br.gov.frameworkdemoiselle</groupId> | ||
| 140 | - <artifactId>demoiselle-jpa</artifactId> | ||
| 141 | - <scope>compile</scope> | ||
| 142 | - </dependency>]]></programlisting></tip> | 129 | + <groupId>br.gov.frameworkdemoiselle</groupId> |
| 130 | + <artifactId>demoiselle-jpa</artifactId> | ||
| 131 | + <scope>compile</scope> | ||
| 132 | +</dependency>]]></programlisting></tip> | ||
| 143 | </section> | 133 | </section> |
| 144 | 134 | ||
| 145 | <section> | 135 | <section> |
| @@ -173,34 +163,32 @@ public class AbacaxiException { | @@ -173,34 +163,32 @@ public class AbacaxiException { | ||
| 173 | É preciso também informar no arquivo <filename>persistence.xml</filename> o endereço da conexão | 163 | É preciso também informar no arquivo <filename>persistence.xml</filename> o endereço da conexão |
| 174 | JTA gerenciada. Veja um exemplo utilizando o servidor de aplicações JBoss-AS6 e com o provider Hibernate (embutido no JBoss-AS) como implementação JPA: | 164 | JTA gerenciada. Veja um exemplo utilizando o servidor de aplicações JBoss-AS6 e com o provider Hibernate (embutido no JBoss-AS) como implementação JPA: |
| 175 | </para> | 165 | </para> |
| 176 | - <programlisting role="XML"><![CDATA[ | ||
| 177 | - <?xml version="1.0" encoding="UTF-8"?> | ||
| 178 | - <persistence version="2.0" | ||
| 179 | - xmlns="http://java.sun.com/xml/ns/persistence" | ||
| 180 | - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
| 181 | - xsi:schemaLocation="http://java.sun.com/xml/ns/persistence | ||
| 182 | - http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> | ||
| 183 | - | ||
| 184 | - <persistence-unit name="bookmark-ds" transaction-type="JTA"> | ||
| 185 | - <jta-data-source>java:jboss/datasources/ExampleDS</jta-data-source> | ||
| 186 | - <properties> | ||
| 187 | - <property name="hibernate.show_sql" value="true" /> | ||
| 188 | - <property name="hibernate.format_sql" value="false" /> | ||
| 189 | - <property name="hibernate.hbm2ddl.auto" value="update" /> | ||
| 190 | - <property name="hibernate.transaction.jta.platform" | ||
| 191 | - value="org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform" /> | ||
| 192 | - </properties> | ||
| 193 | - </persistence-unit> | ||
| 194 | - </persistence>]]></programlisting> | 166 | +<programlisting role="XML"><![CDATA[<?xml version="1.0" encoding="UTF-8"?> |
| 167 | +<persistence version="2.0" | ||
| 168 | + xmlns="http://java.sun.com/xml/ns/persistence" | ||
| 169 | + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | ||
| 170 | + xsi:schemaLocation="http://java.sun.com/xml/ns/persistence | ||
| 171 | + http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> | ||
| 172 | + | ||
| 173 | + <persistence-unit name="bookmark-ds" transaction-type="JTA"> | ||
| 174 | + <jta-data-source>java:jboss/datasources/ExampleDS</jta-data-source> | ||
| 175 | + <properties> | ||
| 176 | + <property name="hibernate.show_sql" value="true" /> | ||
| 177 | + <property name="hibernate.format_sql" value="false" /> | ||
| 178 | + <property name="hibernate.hbm2ddl.auto" value="update" /> | ||
| 179 | + <property name="hibernate.transaction.jta.platform" | ||
| 180 | + value="org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform" /> | ||
| 181 | + </properties> | ||
| 182 | + </persistence-unit> | ||
| 183 | +</persistence>]]></programlisting> | ||
| 195 | 184 | ||
| 196 | <tip><para> Caso não esteja utilizando o arquétipo JSF-JPA fornecidos pelo Demoiselle, confira se a dependência para a | 185 | <tip><para> Caso não esteja utilizando o arquétipo JSF-JPA fornecidos pelo Demoiselle, confira se a dependência para a |
| 197 | extensão está indicada corretamente, no arquivo POM.XML.</para> | 186 | extensão está indicada corretamente, no arquivo POM.XML.</para> |
| 198 | - <programlisting role="XML"><![CDATA[ | ||
| 199 | - <dependency> | ||
| 200 | - <groupId>br.gov.frameworkdemoiselle</groupId> | ||
| 201 | - <artifactId>demoiselle-jta</artifactId> | ||
| 202 | - <scope>compile</scope> | ||
| 203 | - </dependency>]]></programlisting></tip> | 187 | + <programlisting role="XML"><![CDATA[<dependency> |
| 188 | + <groupId>br.gov.frameworkdemoiselle</groupId> | ||
| 189 | + <artifactId>demoiselle-jta</artifactId> | ||
| 190 | + <scope>compile</scope> | ||
| 191 | +</dependency>]]></programlisting></tip> | ||
| 204 | 192 | ||
| 205 | </section> | 193 | </section> |
| 206 | 194 | ||
| @@ -223,25 +211,15 @@ public class AbacaxiException { | @@ -223,25 +211,15 @@ public class AbacaxiException { | ||
| 223 | import br.gov.frameworkdemoiselle.transaction.Transaction; | 211 | import br.gov.frameworkdemoiselle.transaction.Transaction; |
| 224 | 212 | ||
| 225 | public class MegaTransaction implements Transaction { | 213 | public class MegaTransaction implements Transaction { |
| 226 | - | ||
| 227 | public void begin() { } | 214 | public void begin() { } |
| 228 | - | ||
| 229 | public void commit() { } | 215 | public void commit() { } |
| 230 | - | ||
| 231 | public void rollback() { } | 216 | public void rollback() { } |
| 232 | - | ||
| 233 | public void setRollbackOnly() { } | 217 | public void setRollbackOnly() { } |
| 234 | - | ||
| 235 | public int getStatus() { } | 218 | public int getStatus() { } |
| 236 | - | ||
| 237 | public void setTransactionTimeout(int seconds) { } | 219 | public void setTransactionTimeout(int seconds) { } |
| 238 | - | ||
| 239 | public boolean isActive() { } | 220 | public boolean isActive() { } |
| 240 | - | ||
| 241 | public boolean isMarkedRollback() { } | 221 | public boolean isMarkedRollback() { } |
| 242 | - | ||
| 243 | -} | ||
| 244 | -]]></programlisting> | 222 | +}]]></programlisting> |
| 245 | <para> | 223 | <para> |
| 246 | Pronto, é só isso! Agora, os métodos anotados com <literal>@Transactional</literal> irão utilizar a estratégia criada em seu projeto de forma automática, | 224 | Pronto, é só isso! Agora, os métodos anotados com <literal>@Transactional</literal> irão utilizar a estratégia criada em seu projeto de forma automática, |
| 247 | mesmo que as extensões <literal>demoiselle-jpa</literal> e <literal>demoiselle-jta</literal> sejam adicionadas ao projeto, pois o framework da prioridade | 225 | mesmo que as extensões <literal>demoiselle-jpa</literal> e <literal>demoiselle-jta</literal> sejam adicionadas ao projeto, pois o framework da prioridade |
| @@ -263,15 +241,9 @@ public class MegaTransaction implements Transaction { | @@ -263,15 +241,9 @@ public class MegaTransaction implements Transaction { | ||
| 263 | arquivo <filename>demoiselle.properties</filename> qual estratégia será utilizada. Veja alguns exemplos de definição de estratégias própria, | 241 | arquivo <filename>demoiselle.properties</filename> qual estratégia será utilizada. Veja alguns exemplos de definição de estratégias própria, |
| 264 | <literal>JTATransaction</literal> e <literal>JPATransaction</literal> (importante notar que apenas uma estratégia pode estar ativa por vez): | 242 | <literal>JTATransaction</literal> e <literal>JPATransaction</literal> (importante notar que apenas uma estratégia pode estar ativa por vez): |
| 265 | </para> | 243 | </para> |
| 266 | - <programlisting> | ||
| 267 | - frameworkdemoiselle.transaction.class=projeto.MyTransaction | ||
| 268 | - </programlisting> | ||
| 269 | - <programlisting> | ||
| 270 | - frameworkdemoiselle.transaction.class=br.gov.frameworkdemoiselle.transaction.JTATransaction | ||
| 271 | - </programlisting> | ||
| 272 | - <programlisting> | ||
| 273 | - frameworkdemoiselle.transaction.class=br.gov.frameworkdemoiselle.transaction.JPATransaction | ||
| 274 | - </programlisting> | 244 | + <programlisting>frameworkdemoiselle.transaction.class=projeto.MyTransaction</programlisting> |
| 245 | + <programlisting>frameworkdemoiselle.transaction.class=br.gov.frameworkdemoiselle.transaction.JTATransaction</programlisting> | ||
| 246 | + <programlisting>frameworkdemoiselle.transaction.class=br.gov.frameworkdemoiselle.transaction.JPATransaction</programlisting> | ||
| 275 | </section> | 247 | </section> |
| 276 | 248 | ||
| 277 | </chapter> | 249 | </chapter> |