Commit 70d786e3cf940ef665db1a33719d568ce3184b12

Authored by rodrigorgs
1 parent 67b2e6e4
Exists in master

Revisão leve da redação do Guia de Referência.

documentation/reference/pt-BR/arquetipo.xml
... ... @@ -6,7 +6,7 @@
6 6 <title>Arquétipos</title>
7 7  
8 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 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 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 12 Atualmente estão disponíveis os seguintes artefatos:
... ... @@ -15,7 +15,7 @@
15 15 <section>
16 16 <title>Mínimo</title>
17 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 19 sendo útil quando os outros arquétipos disponíveis não se enquadram nas características do projeto a ser criado.
20 20 </para>
21 21 </section>
... ... @@ -24,22 +24,22 @@
24 24 <title>JSF com JPA</title>
25 25 <para>
26 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 29 as dependências necessárias para rodar a aplicação. Ao usar este
30 30 arquétipo, você terá uma pequena aplicação de
31 31 Bookmarks já pronta para rodar. Para isto, basta instalá-la em um
32 32 servidor da sua preferência! Para mais detalhes
33 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 35 </para>
36 36 </section>
37 37  
38 38 <section>
39 39 <title>Vaadin com JPA</title>
40 40 <para>
41   - Uma das principais novidades com relação à esta nova versão do Framework Demoiselle
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 43 apesar de ser possível a utilização de outra soluções, não havia ainda facilitadores realmente integrados ao Demoiselle.
44 44 Seguindo este princípio, um dos arquétipos disponibilizados pelo Framework gera uma aplicação de exemplo, nos mesmo moldes
45 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 21 <para>
22 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 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 25 <literal>demoiselle-jpa</literal>, por exemplo. Cabe destacar que as extensões não possuem vida própria,
26 26 pois estão diretamente ligadas ao núcleo do framework, inclusive o ciclo de vida das extensões está
27 27 totalmente acoplado ao do Core.
... ... @@ -43,7 +43,7 @@
43 43 interfaces ou, como alguns costumam dizer, <quote>depender de contratos</quote>.
44 44 As interfaces existem para isto: definem um contrato, enquanto as implementações deste contrato ficam à parte, de
45 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 47 injetada automaticamente pelo CDI.
48 48 </para>
49 49 <tip>
... ... @@ -68,12 +68,12 @@
68 68 <title>Arquitetura das aplicações</title>
69 69 <para>
70 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 72 começar, sugerimos uma arquitetura e padrões largamente utilizados pelo mercado, de forma a facilitar a manutenção e
73 73 para melhor modularização de seu projeto.
74 74 </para>
75 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 77 apresentação, regras de negócio e persistência. O Demoiselle já fornece estereótipos que visam tornar esta
78 78 separação mais clara, respectivamente:
79 79 <literal>@ViewController</literal>, <literal>@BusinessController</literal> e <literal>@PersistenceController</literal>.
... ...
documentation/reference/pt-BR/bundle.xml
... ... @@ -6,7 +6,7 @@
6 6 <title>Resource Bundle</title>
7 7  
8 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 10 em vários lugares no mundo e em diferentes línguas. Portanto, é preciso que as aplicações sejam facilmente
11 11 internacionalizáveis. Para isso, existe um recurso no java chamado de <emphasis>Resource Bundle</emphasis>,
12 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 50 Na versão 2.X do <emphasis>Demoiselle Framework</emphasis>, existe uma fábrica de Resource Bundle que fica no
51 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 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 54 camada de apresentação, essas fábricas foram criadas nas extensões de apresentação:
55 55 <literal>demoiselle-jsf</literal>, <literal>demoiselle-se</literal> e <literal>demoiselle-vaadin</literal>.
56 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 8 <section>
9 9 <title>Configurações em uma aplicação</title>
10 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 12 existem diversos papéis além do desenvolvedor, tais como assembler e deployer. É comum nestas aplicações que informações
13 13 de configuração de ambiente, especialmente por questões de segurança, sejam de conhecimento restrito. Por exemplo,
14 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 21 <para>
22 22 Além de identificar as camadas, os controllers são pré-requisitos para utilização da funcionalidade de tratamento de exceções,
23 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 25 exclusivamente para sua aplicação. Todos os controllers criados no framework são estereótipos e podem ser usados também para
26 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 28 aplicação, mas como fazer isso? Veja na seção abaixo.
29 29 </para>
30 30 <!-- TODO: explicar o que é um "estereótipo" e qual o seu uso na aplicação -->
... ... @@ -43,7 +43,7 @@ public @interface SeuController {
43 43 }]]></programlisting>
44 44 <para>
45 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 47 </para>
48 48 <!-- TODO: qual a vantagem em se criar um controlador customizado? incluir um exemplo possível e prático de utilização disso -->
49 49 </section>
... ...
documentation/reference/pt-BR/excecao.xml
... ... @@ -8,7 +8,7 @@
8 8 <para>
9 9 Esta funcionalidade foi feita para você que acha muito verboso encher o código de <literal>try/catch</literal>.
10 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 12 misturando com a forma verbosa ou até mesmo não usá-la.
13 13 </para>
14 14  
... ... @@ -122,7 +122,7 @@ public class Simples {
122 122 <section>
123 123 <title>Exceção de Aplicação</title>
124 124 <para>
125   - 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
  125 + 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
126 126 <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
127 127 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>.
128 128 Utilize-a em suas exceções e informe os atributos <literal>rollback</literal> e <literal>severity</literal> para alcançar os objetivos acima.
... ... @@ -141,13 +141,13 @@ public class MinhaException extends Exception {
141 141 <section>
142 142 <title>Tratamento Padrão</title>
143 143 <para>
144   - 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
145   - 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
  144 + 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
  145 + 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
146 146 especial. Inicialmente, ela é encapsulada de forma que possa ser exibida de forma elegante para o usuário. No caso do JSF, é utilizado o mecanismo
147 147 de Messages próprio desta tecnologia.
148 148 </para>
149 149 <para>
150   - 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
  150 + 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
151 151 tecnologia. No caso de exceções que não usam a anotação <literal>@ApplicationException</literal>, um <emphasis>rollback</emphasis> é realizado
152 152 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>.
153 153 </para>
... ...
documentation/reference/pt-BR/inicializacao.xml
... ... @@ -37,7 +37,7 @@
37 37 As instruções contidas em um método anotado com <literal>@Startup</literal> serão executadas automaticamente quando a aplicação
38 38 Java for inicializada, seja ela hospedada em um contêiner Web ou executada através de um método <literal>main()</literal>.
39 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 41 método, na existência de mais de um inicializador para a aplicação.
42 42 </para>
43 43 <para>
... ... @@ -75,7 +75,7 @@
75 75 <title>Um exemplo prático</title>
76 76 <para>
77 77 Eis um interessante caso de uso de inicialização e finalização: rodar um servidor de modo standalone em paralelo à
78   - execução da aplicação principal. Eis o código referente à essa implementação:
  78 + execução da aplicação principal. Eis o código referente a essa implementação:
79 79 </para>
80 80 <programlisting role="JAVA"><![CDATA[import br.gov.frameworkdemoiselle.lifecycle.Shutdown;
81 81 import br.gov.frameworkdemoiselle.lifecycle.Startup;
... ...
documentation/reference/pt-BR/mensagem.xml
... ... @@ -179,7 +179,7 @@ messageContext.add(message);]]&gt;&lt;/programlisting&gt;
179 179 <note>
180 180 <para>
181 181 O contexto de mensagens, representado pela interface <literal>MessageContext</literal>, é capaz de
182   - armazenar diversas mensagens em uma mesma requisição. Ele não é restrito à aplicações do tipo Web,
  182 + armazenar diversas mensagens em uma mesma requisição. Ele não é restrito a aplicações do tipo Web,
183 183 isto é, pode ser usado também para aplicações do tipo desktop (i.e., Swing).
184 184 </para>
185 185 </note>
... ...
documentation/reference/pt-BR/paginacao.xml
... ... @@ -46,7 +46,7 @@
46 46 <para>
47 47 O <emphasis>mecanismo de paginação</emphasis> do <emphasis>Demoiselle Framework</emphasis> permite que os parâmetros para a consulta
48 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 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 51 Load</emphasis> (ou <emphasis>Lazy Loading</emphasis>).
52 52 </para>
... ... @@ -94,7 +94,7 @@
94 94  
95 95 public Pagination getPagination(Class<?> clazz) { ... }
96 96  
97   - public Pagination getPagination(Class<?> clazz, boolean create) { ... }
  97 + public Pagination get -->Pagination(Class<?> clazz, boolean create) { ... }
98 98  
99 99 }
100 100  
... ... @@ -173,7 +173,7 @@
173 173 <section>
174 174 <title>Implementação na aplicação</title>
175 175 <para>
176   - 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
  176 + 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
177 177 fornecida pelo arquétipo <emphasis>JSF com JPA</emphasis> do <emphasis>Demoiselle Framework</emphasis> (para maiores detalhes
178 178 ver <link linkend="estrutura">Arquétipos</link>). Iremos utilizar o componente <literal>DataTable</literal> do <emphasis>PrimeFaces</emphasis>,
179 179 que oferece o mecanismo de <emphasis>Lazy Loading</emphasis> conhecido como <literal>LazyDataModel</literal>, muito útil para paginação
... ... @@ -181,15 +181,15 @@
181 181 </para>
182 182 <para>
183 183 Primeiro é preciso configurar um objeto <literal>LazyDataModel</literal> no construtor do <emphasis>Managed Bean</emphasis>
184   - (<emphasis>BookmarkList</emphasis> nesse exemplo): instanciá-lo e sobrescrever o método abstrado <literal>load</literal>, que recebe
  184 + (<emphasis>BookmarkList</emphasis> nesse exemplo): instancia-lo e sobrescrever o método abstrado <literal>load</literal>, que recebe
185 185 vários argumentos. Esses argumentos são recuperados na página <literal>jsf</literal> que carrega a instância do objeto <literal>LazyDataModel</literal>.
186 186 </para>
187 187 <para>
188 188 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>
189 189 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.
190 190 Esses dados são usados no método <literal>findAll()</literal>, da classe <literal>JPACrud</literal> (extensão JPA), que utiliza o contexto de
191   - 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
192   - <literal>first</literal> indicar. O resultado é passado para a instância do <literal>LazyDataModel</literal>, que é responsável por exibir
  191 + 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
  192 + <literal>first</literal> indicar. O resultado é passado para a instancia do <literal>LazyDataModel</literal>, que é responsável por exibir
193 193 os dados de forma apropriada.
194 194 </para>
195 195 <para>
... ... @@ -289,7 +289,7 @@
289 289 <title>Um exemplo usando PrimeFaces</title>
290 290 <para>
291 291 Eis um interessante caso de uso de paginação: ????.
292   - A seguir o código referente à essa implementação:
  292 + A seguir o código referente a essa implementação:
293 293 // camada de persistência
294 294 </para>
295 295 <programlisting role="JAVA"><![CDATA[@PersistenceController
... ...
documentation/reference/pt-BR/parentsPom.xml
... ... @@ -7,8 +7,8 @@
7 7  
8 8 <para>
9 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 12 Mas é muito comum que vários projetos, vinculados ou não, utilizem muitas configurações em comum.
13 13 Para o “reaproveitamento” dessas configurações, evitando a cópia de texto, o Maven provê dois tipos de estratégia:
14 14 </para>
... ... @@ -18,10 +18,10 @@
18 18 <para>
19 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 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 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>
24   - <tip>Para excluir uma dependência vinda do Parent, mas não necessária utilize a tag Exclusions </tip>
  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 desnecessária vinda do Parent, utilize a tag Exclusions.</tip>
25 25  
26 26 <section>
27 27 <title>Demoiselle-Minimal-Parent</title>
... ...
documentation/reference/pt-BR/properties.xml
... ... @@ -46,7 +46,7 @@
46 46 <para>
47 47 <literal>frameworkdemoiselle.security.enabled</literal> - Configura a habilitação das funcionalidades do
48 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 50 </para>
51 51 <para>
52 52 Exemplo de configuração: <literal>frameworkdemoiselle.security.enabled = false</literal>, desabilita as
... ... @@ -138,7 +138,7 @@
138 138 <para>
139 139 <literal>frameworkdemoiselle.persistence.unit.name</literal> - Quando é definida mais de uma unidade de persitencia
140 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 142 indicar qual é a unidade de persistência que deve ser utilizada quando no <emphasis>Entity Manager</emphasis> não
143 143 houver essa definição.
144 144 </para>
... ...
documentation/reference/pt-BR/security.xml
... ... @@ -138,7 +138,7 @@ public class Credential {
138 138 </para>
139 139 <para>
140 140 Assim como na autenticação, o contexto de segurança possui métodos destinados a delegar as requisições de autorização para
141   - a implementação de segurança. No caso da anotação @RequiredPermission , o método hasPermission(String resource, String
  141 + a implementação de segurança. No caso da anotação @RequiredPermission, o método hasPermission(String resource, String
142 142 operation) executa esta tarefa. Para tanto, deve existir uma classe que implemente a interface Authorizer, cujo
143 143 método hasPermission(Object resource, String operation) verifica se o usuário logado possui permissão para executar
144 144 uma determinada operação em um recurso específico.
... ...
documentation/reference/pt-BR/templates.xml
... ... @@ -11,7 +11,7 @@
11 11 persistência. Tais classes podem ser encontradas no pacote
12 12 <literal>br.gov.frameworkdemoiselle.template</literal>
13 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 15 </para>
16 16  
17 17 <section>
... ... @@ -61,7 +61,7 @@ public class SuaEntidadeDAO extends JPACrud&lt;SuaEntidade, Long&gt; {
61 61 Segue abaixo um exemplo da utilização do <emphasis>DelegateCrud</emphasis>.
62 62 Neste caso, foi implementado um método para validar a entidade antes
63 63 de proceder com a inclusão no banco de dados. Para isso, o método
64   - <function>insert()</function> fornecido pela classe foi sobreescrito.
  64 + <function>insert()</function> fornecido pela classe foi sobrescrito.
65 65 </para>
66 66 <programlisting role="JAVA"><![CDATA[@BusinessController
67 67 public class SuaEntidadeBC extends DelegateCrud<SuaEntidade, Long, SuaEntidadeDAO> {
... ...
documentation/reference/pt-BR/transacao.xml
... ... @@ -47,7 +47,7 @@
47 47 <para>
48 48 Vamos começar pelo mais importante: como declarar os métodos como transacionais? Como informar ao
49 49 <emphasis>Demoiselle Framework</emphasis> que o método deve participar da sessão transacional?
50   - A resposta é muito simples, anote seu método com <literal>@Transactional</literal>.
  50 + A resposta é muito simples: anote seu método com <literal>@Transactional</literal>.
51 51 </para>
52 52 <programlisting role="JAVA"><![CDATA[@Transactional
53 53 public void inserir() { }]]></programlisting>
... ... @@ -73,7 +73,7 @@ public class Simples {
73 73 <section>
74 74 <title>E se acontecer uma Exception?</title>
75 75 <para>
76   - Caso ocorra uma exceção na execução de um método transacional o mecanismo fará rollback na transação
  76 + Caso ocorra uma exceção na execução de um método transacional, o mecanismo fará rollback na transação
77 77 automaticamente. É possível mudar este comportamento utilizando exceções de aplicação (para maiores detalhes ver <link linkend="excecao">Exceção</link>).
78 78 </para>
79 79 <programlisting role="JAVA"><![CDATA[@ApplicationException(rollback = false)
... ... @@ -102,7 +102,7 @@ public class AbacaxiException {
102 102 caso. Não existe a bala de prata, você tem que avaliar a melhor estratégia para o seu projeto.
103 103 </para>
104 104 <para>
105   - 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,
  105 + 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,
106 106 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ê
107 107 pode criar ou importar para seu projeto.
108 108 </para>
... ... @@ -145,7 +145,7 @@ public class AbacaxiException {
145 145 <section>
146 146 <title>Estratégia JTA</title>
147 147 <para>
148   - Esta estratégia, também está disponível através de uma extensão (<literal>demoiselle-jta</literal>), e é
  148 + Esta estratégia, também disponível através de uma extensão (<literal>demoiselle-jta</literal>), é
149 149 responsável por delegar o controle de transação para um container JEE. Com a <literal>JTATransaction</literal>
150 150 é possível incluir várias unidades de persistência de uma mesma aplicação no mesmo contexto transacional.
151 151 Isso mesmo, o famoso <emphasis>Two-Phase Commit (2PC)</emphasis>.
... ... @@ -155,7 +155,7 @@ public class AbacaxiException {
155 155 tecnologias que façam acesso ao contexto JTA, como é o caso do EJB. Para ativar esta estratégia basta
156 156 que seu projeto adicione no arquivo POM.XML a dependência à extensão <literal>demoiselle-jta</literal>, que o
157 157 Demoiselle fará a seleção por essa estratégia de forma automática, pois essa estratégia tem prioridade em relação
158   - a estratégia JPA.
  158 + à estratégia JPA.
159 159 </para>
160 160 <!--
161 161 defina no
... ... @@ -244,7 +244,7 @@ public class MegaTransaction implements Transaction {
244 244 ]]></programlisting>
245 245 <para>
246 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,
247   - mesmo que as extensões <literal>demoiselle-jpa</literal> e <literal>demoiselle-jta</literal> sejam adicionadas ao projeto, pois o framework da prioridade
  247 + mesmo que as extensões <literal>demoiselle-jpa</literal> e <literal>demoiselle-jta</literal> sejam adicionadas ao projeto, pois o framework dá prioridade
248 248 máxima à estratégia criada no projeto.
249 249 </para>
250 250 <!-- <para>
... ...