Commit 49e5b7fca7e9cb4bca8c970c96b0b4726fec009c

Authored by Emerson Oliveira
1 parent 986983e5
Exists in master

Ajustes no layout do texto.

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]]&gt;&lt;/programlisting&gt; @@ -67,7 +67,7 @@ button.save=Salvar]]&gt;&lt;/programlisting&gt;
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;]]&gt;&lt;/programlisting&gt; @@ -122,9 +122,7 @@ private MessageContext messageContext;]]&gt;&lt;/programlisting&gt;
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;]]&gt;&lt;/programlisting&gt; @@ -145,7 +143,6 @@ private MessageContext messageContext;]]&gt;&lt;/programlisting&gt;
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);]]&gt;&lt;/programlisting&gt; @@ -204,14 +201,11 @@ messageContext.add(message);]]&gt;&lt;/programlisting&gt;
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(), &quot;falta de professor&quot;); @@ -245,7 +239,6 @@ messageContext.add(message, new Integer(502), new Date(), &quot;falta de professor&quot;);
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&#39;étudiant {0} a été supprimé avec succès]]&gt;&lt;/programlis @@ -333,7 +326,6 @@ ALUNO_EXCLUIR_OK = L&#39;étudiant {0} a été supprimé avec succès]]&gt;&lt;/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}]]&gt;&lt;/programlisting&gt; @@ -375,7 +367,6 @@ BOOKMARK_UPDATE_OK = Bookmark atualizado: {0}]]&gt;&lt;/programlisting&gt;
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&lt;SuaEntidade, Long&gt; { @@ -39,7 +39,6 @@ public class SuaEntidadeDAO extends JPACrud&lt;SuaEntidade, Long&gt; {
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&lt;SuaEntidade, Long&gt; { @@ -65,7 +64,7 @@ public class SuaEntidadeDAO extends JPACrud&lt;SuaEntidade, Long&gt; {
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&lt;SuaEntidade, Long, SuaEntidadeDA @@ -76,7 +75,6 @@ public class SuaEntidadeBC extends DelegateCrud&lt;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&lt;SuaEntidade, Long, SuaEntidadeDA @@ -99,14 +97,12 @@ public class SuaEntidadeBC extends DelegateCrud&lt;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() { }]]&gt;&lt;/programlisting&gt; @@ -56,13 +53,9 @@ public void inserir() { }]]&gt;&lt;/programlisting&gt;
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>