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> |