Commit d55001c6927c3c3650d2f566968cb0faba940f28

Authored by Cleverson Sacramento
2 parents 6e5cb42d 70d786e3
Exists in master

Merge branch 'revisao-referencia' of

https://github.com/rodrigorgs/framework into
rodrigorgs-revisao-referencia

Conflicts:
	documentation/reference/pt-BR/arquetipo.xml
	documentation/reference/pt-BR/paginacao.xml
	documentation/reference/pt-BR/parentsPom.xml
documentation/reference/pt-BR/arquetipo.xml
@@ -6,7 +6,7 @@ @@ -6,7 +6,7 @@
6 <title>Arquétipos</title> 6 <title>Arquétipos</title>
7 7
8 <para> 8 <para>
9 - O projeto Demoiselle recomenda e usa a ferramenta <ulink url="http://maven.apache.org/">Apache-Maven</ulink> , para gerenciamento do ciclo de vida do desenvolvimento 9 + O projeto Demoiselle recomenda e usa a ferramenta <ulink url="http://maven.apache.org/">Apache-Maven</ulink>, para gerenciamento do ciclo de vida do desenvolvimento
10 de projeto. Baseada nesta ferramenta, além do fornecimento dos POMs Parentes, também fornece as estruturas chamadas <ulink url="http://maven.apache.org/archetype/maven-archetype-plugin/">arquétipos</ulink> 10 de projeto. Baseada nesta ferramenta, além do fornecimento dos POMs Parentes, também fornece as estruturas chamadas <ulink url="http://maven.apache.org/archetype/maven-archetype-plugin/">arquétipos</ulink>
11 para facilitar a criação de aplicações, garantido a estrutura recomendada pelo framework e o conceito de gerenciamento do próprio Maven. 11 para facilitar a criação de aplicações, garantido a estrutura recomendada pelo framework e o conceito de gerenciamento do próprio Maven.
12 Atualmente estão disponíveis os seguintes artefatos: 12 Atualmente estão disponíveis os seguintes artefatos:
@@ -15,7 +15,7 @@ @@ -15,7 +15,7 @@
15 <section> 15 <section>
16 <title>Mínimo</title> 16 <title>Mínimo</title>
17 <para> 17 <para>
18 - Fornece um conjunto mínimo de artefatos para criar uma aplicação Java, utiliza o Demoiselle-Minimal-Parent 18 + Fornece um conjunto mínimo de artefatos para criar uma aplicação Java, utiliza o Demoiselle-Minimal-Parent,
19 sendo útil quando os outros arquétipos disponíveis não se enquadram nas características do projeto a ser criado. 19 sendo útil quando os outros arquétipos disponíveis não se enquadram nas características do projeto a ser criado.
20 </para> 20 </para>
21 </section> 21 </section>
@@ -24,22 +24,22 @@ @@ -24,22 +24,22 @@
24 <title>JSF com JPA</title> 24 <title>JSF com JPA</title>
25 <para> 25 <para>
26 Útil para os projetos que precisam de uma arquitetura que utilize as tecnologias JSF e JPA, 26 Útil para os projetos que precisam de uma arquitetura que utilize as tecnologias JSF e JPA,
27 - é baseado no Demoiselle-JSF-Parent,  
28 - e que já traz uma estrutura padrão de pacotes e todas 27 + é baseado no Demoiselle-JSF-Parent
  28 + e já traz uma estrutura padrão de pacotes e todas
29 as dependências necessárias para rodar a aplicação. Ao usar este 29 as dependências necessárias para rodar a aplicação. Ao usar este
30 arquétipo, você terá uma pequena aplicação de 30 arquétipo, você terá uma pequena aplicação de
31 Bookmarks já pronta para rodar. Para isto, basta instalá-la em um 31 Bookmarks já pronta para rodar. Para isto, basta instalá-la em um
32 servidor da sua preferência! Para mais detalhes 32 servidor da sua preferência! Para mais detalhes
33 sobre esta aplicação de exemplo e em como usar o arquétipo, acesse 33 sobre esta aplicação de exemplo e em como usar o arquétipo, acesse
34 - a sessão de documentação chamada <ulink url="http://demoiselle.sourceforge.net/docs/quickstart/">Quickstart</ulink>. 34 + a sessão de documentação chamada <ulink url="http://demoiselle.sourceforge.net/docs/quickstart/">QuickStart</ulink>.
35 </para> 35 </para>
36 </section> 36 </section>
37 37
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 <emphasis>Demoiselle Framework</emphasis>  
42 - é sua integração mais completa à outras tecnologias de apresentação. Na versão anterior 41 + Uma das principais novidades com relação a esta nova versão do Framework Demoiselle
  42 + é sua integração mais completa com 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
45 que é disponibilizado para a tecnologia JSF, mas com a tecnologia de apresentação chamada <ulink url="http://vaadin.com">VAADIN</ulink>. 45 que é disponibilizado para a tecnologia JSF, mas com a tecnologia de apresentação chamada <ulink url="http://vaadin.com">VAADIN</ulink>.
documentation/reference/pt-BR/arquitetura.xml
@@ -21,7 +21,7 @@ @@ -21,7 +21,7 @@
21 <para> 21 <para>
22 As Extensões, como o próprio nome sugere, estendem o Core com funcionalidades extras e bem específicas a um domínio ou 22 As Extensões, como o próprio nome sugere, estendem o Core com funcionalidades extras e bem específicas a um domínio ou
23 tecnologia. Neste contexto, caso sua aplicação necessite de persistência com JPA, o framework fornecerá facilidades 23 tecnologia. Neste contexto, caso sua aplicação necessite de persistência com JPA, o framework fornecerá facilidades
24 - para você, contudo, estas funcionalidades não estão no Core. Para este propósito existem as extensões como a 24 + para você; contudo, estas funcionalidades não estão no Core. Para este propósito existem as extensões como a
25 <literal>demoiselle-jpa</literal>, por exemplo. Cabe destacar que as extensões não possuem vida própria, 25 <literal>demoiselle-jpa</literal>, por exemplo. Cabe destacar que as extensões não possuem vida própria,
26 pois estão diretamente ligadas ao núcleo do framework, inclusive o ciclo de vida das extensões está 26 pois estão diretamente ligadas ao núcleo do framework, inclusive o ciclo de vida das extensões está
27 totalmente acoplado ao do Core. 27 totalmente acoplado ao do Core.
@@ -43,7 +43,7 @@ @@ -43,7 +43,7 @@
43 interfaces ou, como alguns costumam dizer, <quote>depender de contratos</quote>. 43 interfaces ou, como alguns costumam dizer, <quote>depender de contratos</quote>.
44 As interfaces existem para isto: definem um contrato, enquanto as implementações deste contrato ficam à parte, de 44 As interfaces existem para isto: definem um contrato, enquanto as implementações deste contrato ficam à parte, de
45 preferência, distante do programador da aplicação. O mecanismo de injeção de dependência fortalece ainda mais esta 45 preferência, distante do programador da aplicação. O mecanismo de injeção de dependência fortalece ainda mais esta
46 - idéia. Sua aplicação precisará apenas depender das interfaces que o Demoiselle provê. A implementação específica será 46 + ideia. Sua aplicação precisará apenas depender das interfaces que o Demoiselle provê. A implementação específica será
47 injetada automaticamente pelo CDI. 47 injetada automaticamente pelo CDI.
48 </para> 48 </para>
49 <tip> 49 <tip>
@@ -68,12 +68,12 @@ @@ -68,12 +68,12 @@
68 <title>Arquitetura das aplicações</title> 68 <title>Arquitetura das aplicações</title>
69 <para> 69 <para>
70 É importante reforçar que o Demoiselle não obriga nenhum tipo de arquitetura para as aplicações, que podem ser 70 É importante reforçar que o Demoiselle não obriga nenhum tipo de arquitetura para as aplicações, que podem ser
71 - constituídas com quantas camadas forem necessárias. Contudo, é prudente não exagerar! Para quem não sabe por onde 71 + constituídas por quantas camadas forem necessárias. Contudo, é prudente não exagerar! Para quem não sabe por onde
72 começar, sugerimos uma arquitetura e padrões largamente utilizados pelo mercado, de forma a facilitar a manutenção e 72 começar, sugerimos uma arquitetura e padrões largamente utilizados pelo mercado, de forma a facilitar a manutenção e
73 para melhor modularização de seu projeto. 73 para melhor modularização de seu projeto.
74 </para> 74 </para>
75 <para> 75 <para>
76 - Usualmente, as aplicações são constituídas com pelo menos três camadas, desta forma é comum separar as lógicas de 76 + Usualmente, as aplicações são constituídas por pelo menos três camadas, desta forma é comum separar as lógicas de
77 apresentação, regras de negócio e persistência. O Demoiselle já fornece estereótipos que visam tornar esta 77 apresentação, regras de negócio e persistência. O Demoiselle já fornece estereótipos que visam tornar esta
78 separação mais clara, respectivamente: 78 separação mais clara, respectivamente:
79 <literal>@ViewController</literal>, <literal>@BusinessController</literal> e <literal>@PersistenceController</literal>. 79 <literal>@ViewController</literal>, <literal>@BusinessController</literal> e <literal>@PersistenceController</literal>.
documentation/reference/pt-BR/bundle.xml
@@ -6,7 +6,7 @@ @@ -6,7 +6,7 @@
6 <title>Resource Bundle</title> 6 <title>Resource Bundle</title>
7 7
8 <para> 8 <para>
9 - Um dos requisitos para se construir uma aplicação nos dias de hoje, é o de que seja utilizada por pessoas 9 + Um dos requisitos para se construir uma aplicação nos dias de hoje é o de que seja utilizada por pessoas
10 em vários lugares no mundo e em diferentes línguas. Portanto, é preciso que as aplicações sejam facilmente 10 em vários lugares no mundo e em diferentes línguas. Portanto, é preciso que as aplicações sejam facilmente
11 internacionalizáveis. Para isso, existe um recurso no java chamado de <emphasis>Resource Bundle</emphasis>, 11 internacionalizáveis. Para isso, existe um recurso no java chamado de <emphasis>Resource Bundle</emphasis>,
12 que nada mais é do que um esquema de arquivos <filename>properties</filename>, onde cada arquivo representa 12 que nada mais é do que um esquema de arquivos <filename>properties</filename>, onde cada arquivo representa
@@ -50,7 +50,7 @@ button.save=Salvar]]&gt;&lt;/programlisting&gt; @@ -50,7 +50,7 @@ button.save=Salvar]]&gt;&lt;/programlisting&gt;
50 Na versão 2.X do <emphasis>Demoiselle Framework</emphasis>, existe uma fábrica de Resource Bundle que fica no 50 Na versão 2.X do <emphasis>Demoiselle Framework</emphasis>, existe uma fábrica de Resource Bundle que fica no
51 Core e permite seu uso através da injeção ou através de uma instanciação normal. O grande detalhe é que nessa 51 Core e permite seu uso através da injeção ou através de uma instanciação normal. O grande detalhe é que nessa
52 fábrica é injetado um objeto do tipo <literal>Locale</literal>, isso quer dizer que é necessário criar também 52 fábrica é injetado um objeto do tipo <literal>Locale</literal>, isso quer dizer que é necessário criar também
53 - uma fabrica de <literal>Locale</literal>. Como a definição de <literal>Locale</literal> varia de acordo com a 53 + uma fábrica de <literal>Locale</literal>. Como a definição de <literal>Locale</literal> varia de acordo com a
54 camada de apresentação, essas fábricas foram criadas nas extensões de apresentação: 54 camada de apresentação, essas fábricas foram criadas nas extensões de apresentação:
55 <literal>demoiselle-jsf</literal>, <literal>demoiselle-se</literal> e <literal>demoiselle-vaadin</literal>. 55 <literal>demoiselle-jsf</literal>, <literal>demoiselle-se</literal> e <literal>demoiselle-vaadin</literal>.
56 Na extensão <literal>demoiselle-se</literal> a definição do <literal>Locale</literal> é dada através do 56 Na extensão <literal>demoiselle-se</literal> a definição do <literal>Locale</literal> é dada através do
documentation/reference/pt-BR/configuracao.xml
@@ -8,7 +8,7 @@ @@ -8,7 +8,7 @@
8 <section> 8 <section>
9 <title>Configurações em uma aplicação</title> 9 <title>Configurações em uma aplicação</title>
10 <para> 10 <para>
11 - Em aplicações no modelo Java EE, as quais são executadas hospedadas em um servidor de aplicações ou contêiner Web, 11 + Em aplicações no modelo Java EE, as quais são hospedadas em um servidor de aplicações ou contêiner Web,
12 existem diversos papéis além do desenvolvedor, tais como assembler e deployer. É comum nestas aplicações que informações 12 existem diversos papéis além do desenvolvedor, tais como assembler e deployer. É comum nestas aplicações que informações
13 de configuração de ambiente, especialmente por questões de segurança, sejam de conhecimento restrito. Por exemplo, 13 de configuração de ambiente, especialmente por questões de segurança, sejam de conhecimento restrito. Por exemplo,
14 o usuário e senha de um banco de dados ou o nome de uma fila de mensagens são informações que o desenvolvedor não deve 14 o usuário e senha de um banco de dados ou o nome de uma fila de mensagens são informações que o desenvolvedor não deve
documentation/reference/pt-BR/controlador.xml
@@ -21,10 +21,10 @@ @@ -21,10 +21,10 @@
21 <para> 21 <para>
22 Além de identificar as camadas, os controllers são pré-requisitos para utilização da funcionalidade de tratamento de exceções, 22 Além de identificar as camadas, os controllers são pré-requisitos para utilização da funcionalidade de tratamento de exceções,
23 através do uso da anotação <literal>@ExceptionHandler</literal>. Isso quer dizer que para utilizar essa funcionalidade, a classe 23 através do uso da anotação <literal>@ExceptionHandler</literal>. Isso quer dizer que para utilizar essa funcionalidade, a classe
24 - precisa usar um dos controllers citados acima ou a própria anotação <literal>@Controller</literal> ou ainda um controller criado 24 + precisa usar um dos controllers citados acima ou a própria anotação <literal>@Controller</literal>, ou ainda um controller criado
25 exclusivamente para sua aplicação. Todos os controllers criados no framework são estereótipos e podem ser usados também para 25 exclusivamente para sua aplicação. Todos os controllers criados no framework são estereótipos e podem ser usados também para
26 definição de características como, por exemplo, o escopo. Isso quer dizer que se um controller tem um determinado escopo, todas 26 definição de características como, por exemplo, o escopo. Isso quer dizer que se um controller tem um determinado escopo, todas
27 - as classes desse controller, também terão o mesmo escopo. Foi falado que é possível criar um controller para uso exclusivo em sua 27 + as classes desse controller também terão o mesmo escopo. Foi falado que é possível criar um controller para uso exclusivo em sua
28 aplicação, mas como fazer isso? Veja na seção abaixo. 28 aplicação, mas como fazer isso? Veja na seção abaixo.
29 </para> 29 </para>
30 <!-- TODO: explicar o que é um "estereótipo" e qual o seu uso na aplicação --> 30 <!-- TODO: explicar o que é um "estereótipo" e qual o seu uso na aplicação -->
@@ -43,7 +43,7 @@ public @interface SeuController { @@ -43,7 +43,7 @@ public @interface SeuController {
43 }]]></programlisting> 43 }]]></programlisting>
44 <para> 44 <para>
45 Neste exemplo foi criado um controlador chamado <literal>SeuController</literal> que tem a característica de ter um escopo de 45 Neste exemplo foi criado um controlador chamado <literal>SeuController</literal> que tem a característica de ter um escopo de
46 - View. Isto quer dizer que toda classe que seja desse tipo de controlador, também terá o escopo de View. 46 + View. Isto quer dizer que toda classe que seja desse tipo de controlador também terá o escopo de View.
47 </para> 47 </para>
48 <!-- TODO: qual a vantagem em se criar um controlador customizado? incluir um exemplo possível e prático de utilização disso --> 48 <!-- TODO: qual a vantagem em se criar um controlador customizado? incluir um exemplo possível e prático de utilização disso -->
49 </section> 49 </section>
documentation/reference/pt-BR/excecao.xml
@@ -8,7 +8,7 @@ @@ -8,7 +8,7 @@
8 <para> 8 <para>
9 Esta funcionalidade foi feita para você que acha muito verboso encher o código de <literal>try/catch</literal>. 9 Esta funcionalidade foi feita para você que acha muito verboso encher o código de <literal>try/catch</literal>.
10 E o que dizer de repetir o tratamento de exceções em vários métodos da mesma classe na base do copiar/colar? 10 E o que dizer de repetir o tratamento de exceções em vários métodos da mesma classe na base do copiar/colar?
11 - Oferecemos à você uma alternativa para resolver estes problemas, mas você estará livre para usá-la: isoladamente, 11 + Oferecemos a você uma alternativa para resolver estes problemas, mas você estará livre para usá-la: isoladamente,
12 misturando com a forma verbosa ou até mesmo não usá-la. 12 misturando com a forma verbosa ou até mesmo não usá-la.
13 </para> 13 </para>
14 14
@@ -105,7 +105,7 @@ public class Simples { @@ -105,7 +105,7 @@ public class Simples {
105 <section> 105 <section>
106 <title>Exceção de Aplicação</title> 106 <title>Exceção de Aplicação</title>
107 <para> 107 <para>
108 - Imagine que você precise informar que caso um determinado tipo de exceção seja lançado através do seu método, a transação atual sofrerá um 108 + Imagine que você precise informar que, caso um determinado tipo de exceção seja lançado através do seu método, a transação atual sofrerá um
109 <emphasis>rollback</emphasis>. Ou, então, que haja necessidade de informar o grau de severidade da exceção, de forma que uma camada de apresentação 109 <emphasis>rollback</emphasis>. Ou, então, que haja necessidade de informar o grau de severidade da exceção, de forma que uma camada de apresentação
110 específica a trate de forma diferenciada. Estas duas opções são possíveis através do uso da anotação <literal>@ApplicationException</literal>. 110 específica a trate de forma diferenciada. Estas duas opções são possíveis através do uso da anotação <literal>@ApplicationException</literal>.
111 Utilize-a em suas exceções e informe os atributos <literal>rollback</literal> e <literal>severity</literal> para alcançar os objetivos acima. 111 Utilize-a em suas exceções e informe os atributos <literal>rollback</literal> e <literal>severity</literal> para alcançar os objetivos acima.
@@ -124,13 +124,13 @@ public class MinhaException extends Exception { @@ -124,13 +124,13 @@ public class MinhaException extends Exception {
124 <section> 124 <section>
125 <title>Tratamento Padrão</title> 125 <title>Tratamento Padrão</title>
126 <para> 126 <para>
127 - As exceções lançadas a partir da camada de negócio, ou de persistência, não causam a interrupção de sua aplicação. Muito menos, apresentam a tela  
128 - padrão de erro do JSF ou de outra tecnologia de visão. Qualquer exceção lançada, e que chega até a camada de apresentação, recebe um tratamento 127 + As exceções lançadas a partir da camada de negócio, ou de persistência, não causam a interrupção de sua aplicação, muito menos apresentam a tela
  128 + padrão de erro do JSF ou de outra tecnologia de visão. Qualquer exceção lançada que chega até a camada de apresentação recebe um tratamento
129 especial. Inicialmente, ela é encapsulada de forma que possa ser exibida de forma elegante para o usuário. No caso do JSF, é utilizado o mecanismo 129 especial. Inicialmente, ela é encapsulada de forma que possa ser exibida de forma elegante para o usuário. No caso do JSF, é utilizado o mecanismo
130 de Messages próprio desta tecnologia. 130 de Messages próprio desta tecnologia.
131 </para> 131 </para>
132 <para> 132 <para>
133 - No caso do Vaadin, o tratamento é bem semelhante, contudo, a exceção é tratada de forma que possa ser exibida adotando os mecanismos próprios da 133 + No caso do Vaadin, o tratamento é bem semelhante, contudo a exceção é tratada de forma que possa ser exibida adotando os mecanismos próprios da
134 tecnologia. No caso de exceções que não usam a anotação <literal>@ApplicationException</literal>, um <emphasis>rollback</emphasis> é realizado 134 tecnologia. No caso de exceções que não usam a anotação <literal>@ApplicationException</literal>, um <emphasis>rollback</emphasis> é realizado
135 de forma automática. Por último, sem o uso desta anotação, toda exceção é vista como tendo nível de gravidade igual a <literal>ERROR</literal>. 135 de forma automática. Por último, sem o uso desta anotação, toda exceção é vista como tendo nível de gravidade igual a <literal>ERROR</literal>.
136 </para> 136 </para>
documentation/reference/pt-BR/inicializacao.xml
@@ -37,7 +37,7 @@ @@ -37,7 +37,7 @@
37 As instruções contidas em um método anotado com <literal>@Startup</literal> serão executadas automaticamente quando a aplicação 37 As instruções contidas em um método anotado com <literal>@Startup</literal> serão executadas automaticamente quando a aplicação
38 Java for inicializada, seja ela hospedada em um contêiner Web ou executada através de um método <literal>main()</literal>. 38 Java for inicializada, seja ela hospedada em um contêiner Web ou executada através de um método <literal>main()</literal>.
39 Nenhum outro arquivo ou classe precisa ser definido. A anotação <literal>@Startup</literal> pode ser utilizada em conjunto com a anotação 39 Nenhum outro arquivo ou classe precisa ser definido. A anotação <literal>@Startup</literal> pode ser utilizada em conjunto com a anotação
40 - <literal>@Priority</literal>, que recebe como parametro um número inteiro que serve para definir a prioridade de execução do respectivo 40 + <literal>@Priority</literal>, que recebe como parâmetro um número inteiro que serve para definir a prioridade de execução do respectivo
41 método, na existência de mais de um inicializador para a aplicação. 41 método, na existência de mais de um inicializador para a aplicação.
42 </para> 42 </para>
43 <para> 43 <para>
@@ -74,7 +74,7 @@ @@ -74,7 +74,7 @@
74 <title>Um exemplo prático</title> 74 <title>Um exemplo prático</title>
75 <para> 75 <para>
76 Eis um interessante caso de uso de inicialização e finalização: rodar um servidor de modo standalone em paralelo à 76 Eis um interessante caso de uso de inicialização e finalização: rodar um servidor de modo standalone em paralelo à
77 - execução da aplicação principal. Eis o código referente à essa implementação: 77 + execução da aplicação principal. Eis o código referente a essa implementação:
78 </para> 78 </para>
79 <programlisting role="JAVA"><![CDATA[import br.gov.frameworkdemoiselle.lifecycle.Shutdown; 79 <programlisting role="JAVA"><![CDATA[import br.gov.frameworkdemoiselle.lifecycle.Shutdown;
80 import br.gov.frameworkdemoiselle.lifecycle.Startup; 80 import br.gov.frameworkdemoiselle.lifecycle.Startup;
documentation/reference/pt-BR/mensagem.xml
@@ -176,7 +176,7 @@ messageContext.add(message);]]&gt;&lt;/programlisting&gt; @@ -176,7 +176,7 @@ messageContext.add(message);]]&gt;&lt;/programlisting&gt;
176 <note> 176 <note>
177 <para> 177 <para>
178 O contexto de mensagens, representado pela interface <literal>MessageContext</literal>, é capaz de 178 O contexto de mensagens, representado pela interface <literal>MessageContext</literal>, é capaz de
179 - armazenar diversas mensagens em uma mesma requisição. Ele não é restrito à aplicações do tipo Web, 179 + armazenar diversas mensagens em uma mesma requisição. Ele não é restrito a aplicações do tipo Web,
180 isto é, pode ser usado também para aplicações do tipo desktop (i.e., Swing). 180 isto é, pode ser usado também para aplicações do tipo desktop (i.e., Swing).
181 </para> 181 </para>
182 </note> 182 </note>
documentation/reference/pt-BR/paginacao.xml
@@ -46,7 +46,7 @@ @@ -46,7 +46,7 @@
46 <para> 46 <para>
47 O <emphasis>mecanismo de paginação</emphasis> do <emphasis>Demoiselle Framework</emphasis> permite que os parâmetros para a consulta 47 O <emphasis>mecanismo de paginação</emphasis> do <emphasis>Demoiselle Framework</emphasis> permite que os parâmetros para a consulta
48 no banco sejam configurados de forma bastante prática. Por outro lado, a consulta paginada ao banco já é feita pela extensão 48 no banco sejam configurados de forma bastante prática. Por outro lado, a consulta paginada ao banco já é feita pela extensão
49 - <literal>demoiselle-jpa</literal>. Dessa forma, basta ajustar os parametros da paginação, e pedir as consultas normalmente. 49 + <literal>demoiselle-jpa</literal>. Dessa forma, basta ajustar os parâmetros da paginação, e pedir as consultas normalmente.
50 O resultado da consulta é então passado para algum componente de iteração de dados com suporte ao mecanismo conhecido como <emphasis>Lazy 50 O resultado da consulta é então passado para algum componente de iteração de dados com suporte ao mecanismo conhecido como <emphasis>Lazy
51 Load</emphasis> (ou <emphasis>Lazy Loading</emphasis>). 51 Load</emphasis> (ou <emphasis>Lazy Loading</emphasis>).
52 </para> 52 </para>
@@ -72,7 +72,7 @@ @@ -72,7 +72,7 @@
72 </listitem> 72 </listitem>
73 </itemizedlist> 73 </itemizedlist>
74 </para> 74 </para>
75 - 75 +
76 <para>Códigos internos de suporte no Core:</para><programlisting role="JAVA"><![CDATA[public class Pagination { 76 <para>Códigos internos de suporte no Core:</para><programlisting role="JAVA"><![CDATA[public class Pagination {
77 77
78 private int currentPage; 78 private int currentPage;
@@ -149,7 +149,7 @@ public class PaginationConfig { @@ -149,7 +149,7 @@ public class PaginationConfig {
149 <section> 149 <section>
150 <title>Implementação na aplicação</title> 150 <title>Implementação na aplicação</title>
151 <para> 151 <para>
152 - Veremos nessa seção como implementar a paginação em uma aplicação Java. Para esse exemplo tomamos como base a aplicação de Bookmarks 152 + Veremos nessa seção como implementar a paginação em uma aplicação Java. Para esse exmplo tomamos como base a aplicação de Bookmarks
153 fornecida pelo arquétipo <emphasis>JSF com JPA</emphasis> do <emphasis>Demoiselle Framework</emphasis> (para maiores detalhes 153 fornecida pelo arquétipo <emphasis>JSF com JPA</emphasis> do <emphasis>Demoiselle Framework</emphasis> (para maiores detalhes
154 ver <link linkend="estrutura">Arquétipos</link>). Iremos utilizar o componente <literal>DataTable</literal> do <emphasis>PrimeFaces</emphasis>, 154 ver <link linkend="estrutura">Arquétipos</link>). Iremos utilizar o componente <literal>DataTable</literal> do <emphasis>PrimeFaces</emphasis>,
155 que oferece o mecanismo de <emphasis>Lazy Loading</emphasis> conhecido como <literal>LazyDataModel</literal>, muito útil para paginação 155 que oferece o mecanismo de <emphasis>Lazy Loading</emphasis> conhecido como <literal>LazyDataModel</literal>, muito útil para paginação
@@ -157,15 +157,15 @@ public class PaginationConfig { @@ -157,15 +157,15 @@ public class PaginationConfig {
157 </para> 157 </para>
158 <para> 158 <para>
159 Primeiro é preciso configurar um objeto <literal>LazyDataModel</literal> no construtor do <emphasis>Managed Bean</emphasis> 159 Primeiro é preciso configurar um objeto <literal>LazyDataModel</literal> no construtor do <emphasis>Managed Bean</emphasis>
160 - (<emphasis>BookmarkList</emphasis> nesse exemplo): instanciá-lo e sobrescrever o método abstrado <literal>load</literal>, que recebe 160 + (<emphasis>BookmarkList</emphasis> nesse exemplo): instancia-lo e sobrescrever o método abstrado <literal>load</literal>, que recebe
161 vários argumentos. Esses argumentos são recuperados na página <literal>jsf</literal> que carrega a instância do objeto <literal>LazyDataModel</literal>. 161 vários argumentos. Esses argumentos são recuperados na página <literal>jsf</literal> que carrega a instância do objeto <literal>LazyDataModel</literal>.
162 </para> 162 </para>
163 <para> 163 <para>
164 Dentro do método <literal>load</literal> iremos pegar do contexto de paginação uma instância da implementação da interface <literal>Pagination</literal> 164 Dentro do método <literal>load</literal> iremos pegar do contexto de paginação uma instância da implementação da interface <literal>Pagination</literal>
165 e ajustar alguns dos seus parâmetros para: indicar a partir de qual item a paginação deve iniciar, e o tamanho (quantidade de itens) de cada página. 165 e ajustar alguns dos seus parâmetros para: indicar a partir de qual item a paginação deve iniciar, e o tamanho (quantidade de itens) de cada página.
166 Esses dados são usados no método <literal>findAll()</literal>, da classe <literal>JPACrud</literal> (extensão JPA), que utiliza o contexto de 166 Esses dados são usados no método <literal>findAll()</literal>, da classe <literal>JPACrud</literal> (extensão JPA), que utiliza o contexto de
167 - paginação para pegar os parametros e fazer a consulta no banco buscando apenas os itens que estão dentro da pagina que o parametro  
168 - <literal>first</literal> indicar. O resultado é passado para a instância do <literal>LazyDataModel</literal>, que é responsável por exibir 167 + paginação para pegar os parâmetros e fazer a consulta no banco buscando apenas os itens que estão dentro da página que o parâmetro
  168 + <literal>first</literal> indicar. O resultado é passado para a instancia do <literal>LazyDataModel</literal>, que é responsável por exibir
169 os dados de forma apropriada. 169 os dados de forma apropriada.
170 </para> 170 </para>
171 <para> 171 <para>
@@ -246,7 +246,7 @@ pageLinks=&quot;#{messages[&#39;page.max.links&#39;]}&quot;&gt;]]&gt;&lt;/programlisting&gt; @@ -246,7 +246,7 @@ pageLinks=&quot;#{messages[&#39;page.max.links&#39;]}&quot;&gt;]]&gt;&lt;/programlisting&gt;
246 <title>Um exemplo usando PrimeFaces</title> 246 <title>Um exemplo usando PrimeFaces</title>
247 <para> 247 <para>
248 Eis um interessante caso de uso de paginação: ????. 248 Eis um interessante caso de uso de paginação: ????.
249 - A seguir o código referente à essa implementação: 249 + A seguir o código referente a essa implementação:
250 // camada de persistência 250 // camada de persistência
251 </para> 251 </para>
252 <programlisting role="JAVA"><![CDATA[@PersistenceController 252 <programlisting role="JAVA"><![CDATA[@PersistenceController
documentation/reference/pt-BR/parentsPom.xml
@@ -7,8 +7,8 @@ @@ -7,8 +7,8 @@
7 7
8 <para> 8 <para>
9 O Demoiselle faz uso da solução proposta pelo Apache Maven para diversas fases do desenvolvimento de software. 9 O Demoiselle faz uso da solução proposta pelo Apache Maven para diversas fases do desenvolvimento de software.
10 - O artefato principal do Maven é o POM.XML que é o arquivo XML que contém todas as informações necessárias para a ferramenta gerenciar o projeto,  
11 - entre as quais está o gerenciamento de dependências(bibliotecas), build do projeto, etc. 10 + O artefato principal do Maven é o POM.XML, que é o arquivo XML que contém todas as informações necessárias para a ferramenta gerenciar o projeto,
  11 + entre as quais está o gerenciamento de dependências (bibliotecas), build do projeto, etc.
12 Mas é muito comum que vários projetos, vinculados ou não, utilizem muitas configurações em comum. 12 Mas é muito comum que vários projetos, vinculados ou não, utilizem muitas configurações em comum.
13 Para o “reaproveitamento” dessas configurações, evitando a cópia de texto, o Maven provê dois tipos de estratégia: 13 Para o “reaproveitamento” dessas configurações, evitando a cópia de texto, o Maven provê dois tipos de estratégia:
14 </para> 14 </para>
@@ -18,12 +18,12 @@ @@ -18,12 +18,12 @@
18 <para> 18 <para>
19 No Demoiselle 2 a estratégia adota foi também o da herança. E o termo usado no Demoiselle para identificar essa estratégia é que chamamos de Parent POM. 19 No Demoiselle 2 a estratégia adota foi também o da herança. E o termo usado no Demoiselle para identificar essa estratégia é que chamamos de Parent POM.
20 </para> 20 </para>
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> 24 <tip>
25 <para> 25 <para>
26 - Para excluir uma dependência vinda do Parent, mas não necessária utilize a tag Exclusions 26 + Para excluir uma dependência desnecessária vinda do Parent, utilize a tag Exclusions.
27 </para> 27 </para>
28 </tip> 28 </tip>
29 29
documentation/reference/pt-BR/properties.xml
@@ -46,7 +46,7 @@ @@ -46,7 +46,7 @@
46 <para> 46 <para>
47 <literal>frameworkdemoiselle.security.enabled</literal> - Configura a habilitação das funcionalidades do 47 <literal>frameworkdemoiselle.security.enabled</literal> - Configura a habilitação das funcionalidades do
48 <emphasis>Demoiselle</emphasis> relacionadas a segurança (como autenticação de usuário e verificação de 48 <emphasis>Demoiselle</emphasis> relacionadas a segurança (como autenticação de usuário e verificação de
49 - permissão de acesso à recursos). Por padrão, essas funcionalidades ficam habilitadas. 49 + permissão de acesso a recursos). Por padrão, essas funcionalidades ficam habilitadas.
50 </para> 50 </para>
51 <para> 51 <para>
52 Exemplo de configuração: <literal>frameworkdemoiselle.security.enabled = false</literal>, desabilita as 52 Exemplo de configuração: <literal>frameworkdemoiselle.security.enabled = false</literal>, desabilita as
@@ -138,7 +138,7 @@ @@ -138,7 +138,7 @@
138 <para> 138 <para>
139 <literal>frameworkdemoiselle.persistence.unit.name</literal> - Quando é definida mais de uma unidade de persitencia 139 <literal>frameworkdemoiselle.persistence.unit.name</literal> - Quando é definida mais de uma unidade de persitencia
140 no arquivo <literal>persistence.xml</literal>, muitas vezes é conveniente escolher uma unidade padrão, ao invés de 140 no arquivo <literal>persistence.xml</literal>, muitas vezes é conveniente escolher uma unidade padrão, ao invés de
141 - definir as unidades individualmente em cada <emphasis>Entity Manager</emphasis>. Esse parametro é utilizado para 141 + definir as unidades individualmente em cada <emphasis>Entity Manager</emphasis>. Esse parâmetro é utilizado para
142 indicar qual é a unidade de persistência que deve ser utilizada quando no <emphasis>Entity Manager</emphasis> não 142 indicar qual é a unidade de persistência que deve ser utilizada quando no <emphasis>Entity Manager</emphasis> não
143 houver essa definição. 143 houver essa definição.
144 </para> 144 </para>
documentation/reference/pt-BR/security.xml
@@ -129,7 +129,7 @@ public class Credential { @@ -129,7 +129,7 @@ public class Credential {
129 </para> 129 </para>
130 <para> 130 <para>
131 Assim como na autenticação, o contexto de segurança possui métodos destinados a delegar as requisições de autorização para 131 Assim como na autenticação, o contexto de segurança possui métodos destinados a delegar as requisições de autorização para
132 - a implementação de segurança. No caso da anotação @RequiredPermission , o método hasPermission(String resource, String 132 + a implementação de segurança. No caso da anotação @RequiredPermission, o método hasPermission(String resource, String
133 operation) executa esta tarefa. Para tanto, deve existir uma classe que implemente a interface Authorizer, cujo 133 operation) executa esta tarefa. Para tanto, deve existir uma classe que implemente a interface Authorizer, cujo
134 método hasPermission(Object resource, String operation) verifica se o usuário logado possui permissão para executar 134 método hasPermission(Object resource, String operation) verifica se o usuário logado possui permissão para executar
135 uma determinada operação em um recurso específico. 135 uma determinada operação em um recurso específico.
documentation/reference/pt-BR/templates.xml
@@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@
11 persistência. Tais classes podem ser encontradas no pacote 11 persistência. Tais classes podem ser encontradas no pacote
12 <literal>br.gov.frameworkdemoiselle.template</literal> 12 <literal>br.gov.frameworkdemoiselle.template</literal>
13 e auxiliam o desenvolvedor ao disponibilizar métodos comuns à maioria das 13 e auxiliam o desenvolvedor ao disponibilizar métodos comuns à maioria das
14 - aplicações. À seguir iremos exemplificar o uso de cada uma delas. 14 + aplicações. A seguir iremos exemplificar o uso de cada uma delas.
15 </para> 15 </para>
16 16
17 <section> 17 <section>
@@ -60,7 +60,7 @@ public class SuaEntidadeDAO extends JPACrud&lt;SuaEntidade, Long&gt; { @@ -60,7 +60,7 @@ public class SuaEntidadeDAO extends JPACrud&lt;SuaEntidade, Long&gt; {
60 Segue abaixo um exemplo da utilização do <emphasis>DelegateCrud</emphasis>. 60 Segue abaixo um exemplo da utilização do <emphasis>DelegateCrud</emphasis>.
61 Neste caso, foi implementado um método para validar a entidade antes 61 Neste caso, foi implementado um método para validar a entidade antes
62 de proceder com a inclusão no banco de dados. Para isso, o método 62 de proceder com a inclusão no banco de dados. Para isso, o método
63 - <function>insert()</function> fornecido pela classe foi sobreescrito. 63 + <function>insert()</function> fornecido pela classe foi sobrescrito.
64 </para> 64 </para>
65 <programlisting role="JAVA"><![CDATA[@BusinessController 65 <programlisting role="JAVA"><![CDATA[@BusinessController
66 public class SuaEntidadeBC extends DelegateCrud<SuaEntidade, Long, SuaEntidadeDAO> { 66 public class SuaEntidadeBC extends DelegateCrud<SuaEntidade, Long, SuaEntidadeDAO> {
documentation/reference/pt-BR/transacao.xml
@@ -44,7 +44,7 @@ @@ -44,7 +44,7 @@
44 <para> 44 <para>
45 Vamos começar pelo mais importante: como declarar os métodos como transacionais? Como informar ao 45 Vamos começar pelo mais importante: como declarar os métodos como transacionais? Como informar ao
46 <emphasis>Demoiselle Framework</emphasis> que o método deve participar da sessão transacional? 46 <emphasis>Demoiselle Framework</emphasis> que o método deve participar da sessão transacional?
47 - A resposta é muito simples, anote seu método com <literal>@Transactional</literal>. 47 + A resposta é muito simples: anote seu método com <literal>@Transactional</literal>.
48 </para> 48 </para>
49 <programlisting role="JAVA"><![CDATA[@Transactional 49 <programlisting role="JAVA"><![CDATA[@Transactional
50 public void inserir() { }]]></programlisting> 50 public void inserir() { }]]></programlisting>
@@ -66,7 +66,7 @@ public class Simples { @@ -66,7 +66,7 @@ public class Simples {
66 <section> 66 <section>
67 <title>E se acontecer uma Exception?</title> 67 <title>E se acontecer uma Exception?</title>
68 <para> 68 <para>
69 - Caso ocorra uma exceção na execução de um método transacional o mecanismo fará rollback na transação 69 + Caso ocorra uma exceção na execução de um método transacional, o mecanismo fará rollback na transação
70 automaticamente. É possível mudar este comportamento utilizando exceções de aplicação (para maiores detalhes ver <link linkend="excecao">Exceção</link>). 70 automaticamente. É possível mudar este comportamento utilizando exceções de aplicação (para maiores detalhes ver <link linkend="excecao">Exceção</link>).
71 </para> 71 </para>
72 <programlisting role="JAVA"><![CDATA[@ApplicationException(rollback = false) 72 <programlisting role="JAVA"><![CDATA[@ApplicationException(rollback = false)
@@ -92,7 +92,7 @@ public class AbacaxiException { @@ -92,7 +92,7 @@ public class AbacaxiException {
92 caso. Não existe a bala de prata, você tem que avaliar a melhor estratégia para o seu projeto. 92 caso. Não existe a bala de prata, você tem que avaliar a melhor estratégia para o seu projeto.
93 </para> 93 </para>
94 <para> 94 <para>
95 - Você pode optar também por não utilizar controle de transação. Neste caso, basta não utilizar a anotação <literal>@Transactional</literal>. Contudo, 95 + Você também pode optar por não utilizar controle de transação. Neste caso, basta não utilizar a anotação <literal>@Transactional</literal>. Contudo,
96 caso você a utilize, você poderá escolher entre as estratégias JPA, JTA (ambas fornecidas pelo <literal>Framework</literal>) e uma estratégia que você 96 caso você a utilize, você poderá escolher entre as estratégias JPA, JTA (ambas fornecidas pelo <literal>Framework</literal>) e uma estratégia que você
97 pode criar ou importar para seu projeto. 97 pode criar ou importar para seu projeto.
98 </para> 98 </para>
@@ -135,7 +135,7 @@ public class AbacaxiException { @@ -135,7 +135,7 @@ public class AbacaxiException {
135 <section> 135 <section>
136 <title>Estratégia JTA</title> 136 <title>Estratégia JTA</title>
137 <para> 137 <para>
138 - Esta estratégia, também está disponível através de uma extensão (<literal>demoiselle-jta</literal>), e é 138 + Esta estratégia, também disponível através de uma extensão (<literal>demoiselle-jta</literal>), é
139 responsável por delegar o controle de transação para um container JEE. Com a <literal>JTATransaction</literal> 139 responsável por delegar o controle de transação para um container JEE. Com a <literal>JTATransaction</literal>
140 é possível incluir várias unidades de persistência de uma mesma aplicação no mesmo contexto transacional. 140 é possível incluir várias unidades de persistência de uma mesma aplicação no mesmo contexto transacional.
141 Isso mesmo, o famoso <emphasis>Two-Phase Commit (2PC)</emphasis>. 141 Isso mesmo, o famoso <emphasis>Two-Phase Commit (2PC)</emphasis>.
@@ -145,7 +145,7 @@ public class AbacaxiException { @@ -145,7 +145,7 @@ public class AbacaxiException {
145 tecnologias que façam acesso ao contexto JTA, como é o caso do EJB. Para ativar esta estratégia basta 145 tecnologias que façam acesso ao contexto JTA, como é o caso do EJB. Para ativar esta estratégia basta
146 que seu projeto adicione no arquivo POM.XML a dependência à extensão <literal>demoiselle-jta</literal>, que o 146 que seu projeto adicione no arquivo POM.XML a dependência à extensão <literal>demoiselle-jta</literal>, que o
147 Demoiselle fará a seleção por essa estratégia de forma automática, pois essa estratégia tem prioridade em relação 147 Demoiselle fará a seleção por essa estratégia de forma automática, pois essa estratégia tem prioridade em relação
148 - a estratégia JPA. 148 + à estratégia JPA.
149 </para> 149 </para>
150 <!-- 150 <!--
151 defina no 151 defina no
@@ -222,7 +222,7 @@ public class MegaTransaction implements Transaction { @@ -222,7 +222,7 @@ public class MegaTransaction implements Transaction {
222 }]]></programlisting> 222 }]]></programlisting>
223 <para> 223 <para>
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, 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,
225 - 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 dá prioridade
226 máxima à estratégia criada no projeto. 226 máxima à estratégia criada no projeto.
227 </para> 227 </para>
228 <!-- <para> 228 <!-- <para>