Arquétipos
- Como o projeto Demoiselle recomenda e usa a ferramenta Apache-Maven , para gerenciamento do ciclo de vida do desenvolvimento
+ O projeto Demoiselle recomenda e usa a ferramenta Apache-Maven , para gerenciamento do ciclo de vida do desenvolvimento
de projeto. Baseada nesta ferramenta, além do fornecimento dos POMs Parentes, também fornece as estruturas chamadas arquétipos
- para facilitar a criação de aplicações, garantido a estrutura recomendada pelo framework e conceito de gerenciamento do próprio Maven.
+ para facilitar a criação de aplicações, garantido a estrutura recomendada pelo framework e o conceito de gerenciamento do próprio Maven.
Atualmente estão disponíveis os seguintes artefatos:
@@ -27,7 +27,7 @@
é baseado no Demoiselle-JSF-Parent,
e que já traz uma estrutura padrão de pacotes e todas
as dependências necessárias para rodar a aplicação. Ao usar este
- arquétipo, você já terá uma pequena aplicação de
+ arquétipo, você terá uma pequena aplicação de
Bookmarks já pronta para rodar. Para isto, basta instalá-la em um
servidor da sua preferência! Para mais detalhes
sobre esta aplicação de exemplo e em como usar o arquétipo, acesse
diff --git a/documentation/reference/pt-BR/arquitetura.xml b/documentation/reference/pt-BR/arquitetura.xml
index eb3ed56..1d8be75 100644
--- a/documentation/reference/pt-BR/arquitetura.xml
+++ b/documentation/reference/pt-BR/arquitetura.xml
@@ -30,7 +30,9 @@
Já os Componentes são artefatos separados e que, portanto, não são dependentes diretamente do Core. Aliás, os
Componentes podem até mesmo existir sem referenciar o Core. Desta forma, o seu ciclo de vida é totalmente
independente do Core e Extensões. Um componente não precisa, necessariamente, estender o comportamento do Core, mas
- permitir disponibilizar novas funcionalidades ao usuário. Um exemplo é o demoiselle-validation.
+ permitir disponibilizar novas funcionalidades ao usuário. Outra diferença importante é que, diferente de Core e
+ Extensões, os Componentes não necessariamente são aderentes a alguma especificação. Um exemplo é o
+ demoiselle-validation.
diff --git a/documentation/reference/pt-BR/authorgroup.xml b/documentation/reference/pt-BR/authorgroup.xml
index 523d65e..6d4487e 100644
--- a/documentation/reference/pt-BR/authorgroup.xml
+++ b/documentation/reference/pt-BR/authorgroup.xml
@@ -8,9 +8,17 @@
Emerson
+ Oliveira
+
+
+ EmersonSaito
+ Luciano
+ Borges
+
+ MarlonCarvalho
@@ -34,12 +42,4 @@
WilsonGuimarães
-
- Emerson
- Oliveira
-
-
- Luciano
- Borges
-
diff --git a/documentation/reference/pt-BR/bookinfo.xml b/documentation/reference/pt-BR/bookinfo.xml
index 2704de4..de1ebdb 100644
--- a/documentation/reference/pt-BR/bookinfo.xml
+++ b/documentation/reference/pt-BR/bookinfo.xml
@@ -3,11 +3,11 @@
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" []>
- Framework Demoiselle 2.2.0
+ Framework Demoiselle 2.3.0Guia de Referência
- Demoiselle 2.2.0: Framework de Código Aberto para o Desenvolvimento de Aplicações Java EE 6
- Demoiselle 2.2.0 - Guia de Referência
+ Demoiselle 2.3.0: Framework de Código Aberto para o Desenvolvimento de Aplicações Java EE 6
+ Demoiselle 2.3.0 - Guia de Referência
diff --git a/documentation/reference/pt-BR/configuracao.xml b/documentation/reference/pt-BR/configuracao.xml
index d612668..1bd62ca 100644
--- a/documentation/reference/pt-BR/configuracao.xml
+++ b/documentation/reference/pt-BR/configuracao.xml
@@ -46,6 +46,7 @@
+
As classes de configuração
@@ -233,7 +235,8 @@ general.load.initial.data = true
Além de String e boolean, existe a possibilidade de se recuperar valores de qualquer
tipo primitivo do Java (i.e., int, byte, short, char, long, float, double e boolean)
- e também arrays desses tipos.
+ e também arrays desses tipos e de alguns tipos complexos (i.e., Integer, BigDecimal, BigInteger, Calendar, Date,
+ Color, Locale, URL e String).
diff --git a/documentation/reference/pt-BR/controlador.xml b/documentation/reference/pt-BR/controlador.xml
index c239cd3..39193d2 100644
--- a/documentation/reference/pt-BR/controlador.xml
+++ b/documentation/reference/pt-BR/controlador.xml
@@ -42,7 +42,7 @@
public @interface SeuController {
}]]>
- Neste exemplo foi criado um controlador chamado SeuController quem tem a característica de ter um escopo de
+ Neste exemplo foi criado um controlador chamado SeuController que tem a característica de ter um escopo de
View. Isto quer dizer que toda classe que seja desse tipo de controlador, também terá o escopo de View.
diff --git a/documentation/reference/pt-BR/excecao.xml b/documentation/reference/pt-BR/excecao.xml
index 54c7712..ab0cf9d 100644
--- a/documentation/reference/pt-BR/excecao.xml
+++ b/documentation/reference/pt-BR/excecao.xml
@@ -122,10 +122,10 @@ public class Simples {
Exceção de Aplicação
- 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 rollback.
- Ou, então, que haja necessidade de informar o grau de severidade da exceção, de forma que uma camada de apresentação específica a trate de forma
- diferenciada. Estas duas opções são possíveis através do uso da anotação @ApplicationException. Utilize-a em suas exceções e informe
- os atributos rollback e severity para alcançar os objetivos acima.
+ 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
+ rollback. Ou, então, que haja necessidade de informar o grau de severidade da exceção, de forma que uma camada de apresentação
+ específica a trate de forma diferenciada. Estas duas opções são possíveis através do uso da anotação @ApplicationException.
+ Utilize-a em suas exceções e informe os atributos rollback e severity para alcançar os objetivos acima.
Tratamento Padrão
- 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 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 especial. Inicialmente, ela é encapsulada de forma
- que possa ser exibida de forma elegante para o usuário. No caso do JSF, é utilizado o mecanismo de Messages próprio desta tecnologia.
+ 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
+ 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
+ especial. Inicialmente, ela é encapsulada de forma que possa ser exibida de forma elegante para o usuário. No caso do JSF, é utilizado o mecanismo
+ de Messages próprio desta tecnologia.
- 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 tecnologia. No caso de
- exceções que não usam a anotação @ApplicationException, um rollback é realizado de forma automática. Por último, sem o uso desta
- anotação, toda exceção é vista como tendo nível de gravidade igual a ERROR.
+ 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
+ tecnologia. No caso de exceções que não usam a anotação @ApplicationException, um rollback é realizado
+ de forma automática. Por último, sem o uso desta anotação, toda exceção é vista como tendo nível de gravidade igual a ERROR.
diff --git a/documentation/reference/pt-BR/inicializacao.xml b/documentation/reference/pt-BR/inicializacao.xml
index 66ec8ad..a8cd6ad 100644
--- a/documentation/reference/pt-BR/inicializacao.xml
+++ b/documentation/reference/pt-BR/inicializacao.xml
@@ -36,25 +36,27 @@
As instruções contidas em um método anotado com @Startup serão executadas automaticamente quando a aplicação
Java for inicializada, seja ela hospedada em um contêiner Web ou executada através de um método main().
- Nenhum outro arquivo ou classe precisa ser definido. A anotação @Startup permite a indicação do argumento
- priority, um número inteiro que serve para definir a prioridade de execução do respectivo método na existência
- de mais de um inicializador para a aplicação.
+ Nenhum outro arquivo ou classe precisa ser definido. A anotação @Startup pode ser utilizada em conjunto com a anotação
+ @Priority, que recebe como parametro um número inteiro que serve para definir a prioridade de execução do respectivo
+ método, na existência de mais de um inicializador para a aplicação.
De maneira análoga, um método anotado com @Shutdown será executado no momento de finalização de uma aplicação,
- obedecendo também à ordem de prioridade definida com o argumento priority.
+ obedecendo também à ordem de prioridade definida com a anotação @Priority.
Eis um exemplo de implementação de inicializador em uma aplicação:
Para a definição de prioridade de execução de um método na inicialização ou finalização, podem ser
utilizadas as constantes MIN_PRIORITY ou MAX_PRIORITY presentes em
- br.gov.frameworkdemoiselle.annotation.Startup.
+ br.gov.frameworkdemoiselle.annotation.Priority.
@@ -75,11 +77,11 @@
Eis um interessante caso de uso de inicialização e finalização: rodar um servidor de modo standalone em paralelo à
execução da aplicação principal. Eis o código referente à essa implementação:
-
O nome Demoiselle
é uma homenagem à série de aeroplanos construídos por Santos Dummont entre 1907 e 1909. Também conhecido como
- Libellule, as Demoiselles foram os melhores,
- menores e mais baratos aviões da sua época. Como sua intenção era popularizar a
- aviação com fabricação em larga escala, o inventor disponibilizou os planos em revistas técnicas para qualquer pessoa
- que se interessasse.
+ Libellule, as Demoiselles foram os melhores, menores e mais baratos aviões da sua época. Como
+ sua intenção era popularizar a aviação com fabricação em larga escala, o inventor disponibilizou os planos em revistas
+ técnicas para qualquer pessoa que se interessasse.
- O framework Demoiselle
- usa a mesma filosofia do Pai da Aviação,
- tendo sido disponibilizado como software livre em abril de 2009, sob a
- licença livre LGPL version 3. Mais informações no portal
+ O framework Demoiselle usa a mesma filosofia do Pai da Aviação, tendo sido
+ disponibilizado como software livre em abril de 2009, sob a licença livre LGPL version 3. Mais informações no portal
"www.frameworkdemoiselle.gov.br
diff --git a/documentation/reference/pt-BR/master.xml b/documentation/reference/pt-BR/master.xml
index c25dce9..b745f3f 100644
--- a/documentation/reference/pt-BR/master.xml
+++ b/documentation/reference/pt-BR/master.xml
@@ -14,7 +14,7 @@
- Esta documentação refere-se à release 2.2 do Framework Demoiselle
+ Esta documentação refere-se à release 2.3 do Framework Demoiselle
e pode diferir significativamente das versões anteriores.
diff --git a/documentation/reference/pt-BR/mensagem.xml b/documentation/reference/pt-BR/mensagem.xml
index 4b53e7f..346b9ce 100644
--- a/documentation/reference/pt-BR/mensagem.xml
+++ b/documentation/reference/pt-BR/mensagem.xml
@@ -8,8 +8,8 @@
Mensagens em uma aplicação
- Uma aplicação bem estruturada, seja na plataforma Web ou desktop, deve exibir mensagens informativas,
- de aviso ou de erro ao usuário após efetuar determinadas tarefas. Por exemplo, após gravar um registro
+ Uma aplicação bem estruturada, seja na plataforma Web ou Desktop, deve exibir mensagens informativas,
+ de aviso, ou de erro para o usuário após efetuar determinadas tarefas. Por exemplo, após gravar um registro
no banco de dados, é aconselhável que a aplicação exiba uma mensagem informativa. Se alguma exceção
ocorreu, é preciso exibir uma mensagem de erro. Ou seja, a severidade da mensagem deve ser escolhida de
acordo com o resultado da execução.
diff --git a/documentation/reference/pt-BR/paginacao.xml b/documentation/reference/pt-BR/paginacao.xml
index 74c69f5..0f520fa 100644
--- a/documentation/reference/pt-BR/paginacao.xml
+++ b/documentation/reference/pt-BR/paginacao.xml
@@ -20,7 +20,7 @@
A apresentação de conjuntos de registros de médio a grande porte em formato de tabelas em aplicações Web geralmente requer um
mecanismo de paginação, o qual permite ao cliente ver apenas um pedaço do resultado final, podendo este
navegar para frente e para trás através dos registros. A menos que o conjunto de registros seja garantidamente pequeno, qualquer
- aplicação do tipo Web com funcionalidades de busca precisa ser dotada de paginação.
+ aplicação do tipo Web com funcionalidades de busca e/ou listagem de registros, precisa ser dotada de paginação.
O mecanismo de paginação para as aplicações fornecido pelo Demoiselle Framework consiste em um algoritmo
diff --git a/documentation/reference/pt-BR/parametro.xml b/documentation/reference/pt-BR/parametro.xml
index 66dec3d..8d4b820 100644
--- a/documentation/reference/pt-BR/parametro.xml
+++ b/documentation/reference/pt-BR/parametro.xml
@@ -43,7 +43,7 @@
nome diferente ao objeto, ele pode anotá-lo com @Name e no valor dessa anotação, colocar o
nome do parâmetro. Por default o objeto criado tem o escopo de request, mas é possível usar o escopo de sessão
ou de visão, bastando anotar o objeto com @SessionScoped ou @ViewScoped,
- respectivamente. Veja abaixo como ficaria essa passagem de parãmetros na versão 2.X do Demoiselle.
+ respectivamente. Veja abaixo como ficaria essa passagem de parâmetros na versão 2.X do Demoiselle.
Passagem do parâmetro
diff --git a/documentation/reference/pt-BR/parentsPom.xml b/documentation/reference/pt-BR/parentsPom.xml
index 1947c23..17a304d 100644
--- a/documentation/reference/pt-BR/parentsPom.xml
+++ b/documentation/reference/pt-BR/parentsPom.xml
@@ -32,19 +32,34 @@ Assim, a alteração no POM.XML da aplicação será a minima possível. Outra v
- Demoiselle-WEB-Parent
+ Demoiselle-SE-Parent
- Especialização do POM mínimo, contendo configurações úteis para todas as aplicações JEE6/Web que utilizam o Demoiselle, mas sem a definição de
- qual camada de apresentação utilizará.
+ Especialização do POM mínimo, contendo configurações úteis para todas as aplicações Desktop que utilizam o framework, mas sem definição da
+ camada de apresentação que será utilizada.
+
+
+
+
+ Demoiselle-Servlet-Parent
+
+ Especialização do POM mínimo, contendo profiles para Tomcat 6, Tomcat 7, GAE, Glassfish 3, JBoss 6 e JBoss 7, e outras configurações úteis para todas
+ as aplicações JEE6/Web que utilizam o Demoiselle, mas sem a definição de qual camada de apresentação utilizará. Entre as dependências referênciadas
+ por este POM está a extensão Demoiselle-Servlet.
Demoiselle-JSF-Parent
- Especialização do POM demoiselle-web-parent, contendo configurações úteis e necessárias para todas as aplicações que utilizarão a tecnologia JSF2
- para camada de apresentação.
- Entre as dependências referênciadas por este POM está obviamente a extensão Demoiselle-JSF.
+ Especialização do POM demoiselle-servlet-parent, contendo configurações úteis e necessárias para todas as aplicações que utilizarão a tecnologia JSF2
+ para camada de apresentação. Entre as dependências referênciadas por este POM está obviamente a extensão Demoiselle-JSF.
+
+
+
+
+ Demoiselle-Archetype-Parent
+
+ Contém configurações comuns a todos os projetos geradores de arquétipos.
diff --git a/documentation/reference/pt-BR/properties.xml b/documentation/reference/pt-BR/properties.xml
index 1474494..45b6df9 100644
--- a/documentation/reference/pt-BR/properties.xml
+++ b/documentation/reference/pt-BR/properties.xml
@@ -8,14 +8,14 @@
Em um projeto com o Demoiselle Framework, algumas propriedades e configurações
do Framework podem ser ajustadas no arquivo demoiselle.properties.
- Além disso, a partir da versão 2.3.0 também é nesse arquivo que devem ser definidas as estratégias de
- Transação, Autorização e Autenticação.
+
A seguir listamos as propriedades e configurações do Demoiselle Framework que o usuário pode modificar,
- acompanhados de alguns exemplos ilustrativos. Também mostraremos como escolher as estratégias para
+ acompanhados de alguns exemplos ilustrativos.
@@ -151,7 +151,7 @@
-
+
diff --git a/documentation/reference/pt-BR/security.xml b/documentation/reference/pt-BR/security.xml
index ea2edc3..042712c 100644
--- a/documentation/reference/pt-BR/security.xml
+++ b/documentation/reference/pt-BR/security.xml
@@ -20,7 +20,7 @@
Configurando
- Para um correto funcionamento do Demoiselle é necessário inserir od interceptadores de segurança no arquivo src/main/WEB-INF/beans.xml.
+ Para um correto funcionamento do Demoiselle é necessário inserir os interceptadores de segurança no arquivo src/main/WEB-INF/beans.xml.
- O primeiro passo é criar classes para implementar as interfaces Authenticator e Authorizer. Essas classes devem ser
- anotadas com @Alternative para que o CDI saiba que se trata de uma estratégia:
+ O primeiro passo é criar classes para implementar as interfaces Authenticator e Authorizer. O Demoiselle detecta automaticamente
+ a implementação, e torna essa classe a implementação padrão dessas interfaces:
-
-
-
+
- À partir desse momento, a aplicação já possui uma implementação de segurança definida.
+ Pronto! Sua aplicação já possui uma implementação de segurança definida. Caso sua ela não implemente essas interfaces, no momento em que
+ forem chamadas, o framework lançará uma exceção informando que a aplicação precisa implementá-las.
+
+ Se você tem mais de uma implementação de Authenticator e/ou Authorizer (o que pode acontecer, por exemplo, quando
+ se necessite de uma implementação na aplicação principal, e outra para os testes), deverá definir no arquivo demoiselle.properties
+ qual classe será a padrão:
+
+ frameworkdemoiselle.security.authenticator.class=projeto.MeuAuthenticatorPadrao
+ frameworkdemoiselle.security.authorizer.class=projeto.MeuAuthorizerPadrao
+
+
- O Demoiselle também oferece o componente Authorization
- que facilita o uso de segurança com JAAS. Obviamente, não é possível utilizá-los ao mesmo tempo. Há arquétipos Maven que já trazem esse componente como dependência, por isso sempre confira o arquivo
- POM.XML e se for o caso retire esse dependência.
+ O Demoiselle também oferece o componente
+ Authorization
+ que facilita o uso de segurança com JAAS. Obviamente, não é possível utilizá-los ao mesmo tempo. Há arquétipos Maven que já trazem esse componente
+ como dependência, por isso sempre confira o arquivo POM.XML e se for o caso retire essa dependência.
\ No newline at end of file
diff --git a/documentation/reference/pt-BR/transacao.xml b/documentation/reference/pt-BR/transacao.xml
index 0f60a33..4ed9d37 100644
--- a/documentation/reference/pt-BR/transacao.xml
+++ b/documentation/reference/pt-BR/transacao.xml
@@ -6,8 +6,8 @@
Transação
- Esta funcionalidade utiliza os recursos do CDI para interceptar e delegar o tratamento adequado das transações
- para quem é de direito. Em outras palavras, não reinventamos a roda. Criamos algumas estratégias de delegação e
+ Esta funcionalidade utiliza os recursos do CDI para interceptar e delegar adequadamente o tratamento das transações.
+ Em outras palavras, não reinventamos a roda. Criamos algumas estratégias de delegação e
controle de transação com base no que está sendo mais utilizado no mercado, algumas mais simples de configurar,
outras mais completas para utilizar.
@@ -74,7 +74,7 @@ public class Simples {
E se acontecer uma Exception?
Caso ocorra uma exceção na execução de um método transacional o mecanismo fará rollback na transação
- automaticamente. É possível mudar este comportamento utilizando exceções de aplicação.
+ automaticamente. É possível mudar este comportamento utilizando exceções de aplicação (para maiores detalhes ver Exceção).
Você pode optar também por não utilizar controle de transação. Neste caso, basta não utilizar a anotação @Transactional. Contudo,
- caso você a utilize e não defina qual estratégia deseja utilizar, o framework lançará uma exceção lhe avisando sobre isto!
+ caso você a utilize, você poderá escolher entre as estratégias JPA, JTA (ambas fornecidas pelo Framework) e uma estratégia que você
+ pode criar ou importar para seu projeto.
+
+
+ A forma de selecionar cada uma dessas estratégias é descrita abaixo. Caso tente utilizar o controle de transação e não selecione nenhuma estratégia,
+ o framework lançará uma exceção lhe avisando sobre isto!
@@ -118,11 +123,16 @@ public class AbacaxiException {
A transação JPA é simples de configurar e não exige nenhum recurso externo à sua aplicação.
- Basta definir no arquivo demoiselle.properties a seguinte configuração:
+ Para utilizá-la basta que seu projeto adicione no arquivo POM.XML dependência à extensão demoiselle-jpa, que o
+ Demoiselle fará a seleção por essa estratégia de forma automática.
+
+
+
Caso não esteja utilizando o arquétipo JSF-JPA fornecidos pelo Demoiselle, confira se a dependência para a
extensão está indicada corretamente no arquivo POM.XML.
@@ -135,17 +145,24 @@ public class AbacaxiException {
Estratégia JTA
- Esta estratégia, também está disponível através de uma extensão: demoiselle-jta e é
+ Esta estratégia, também está disponível através de uma extensão (demoiselle-jta), e é
responsável por delegar o controle de transação para um container JEE. Com a JTATransaction
é possível incluir várias unidades de persistência de uma mesma aplicação no mesmo contexto transacional.
Isso mesmo, o famoso Two-Phase Commit (2PC).
A estratégia JTA não serve apenas para persistência em banco de dados, serve também para integrar com
- tecnologias que façam acesso ao contexto JTA, como é o caso do EJB. Para ativar esta estratégia defina no
+ tecnologias que façam acesso ao contexto JTA, como é o caso do EJB. Para ativar esta estratégia basta
+ que seu projeto adicione no arquivo POM.XML a dependência à extensão demoiselle-jta, que o
+ Demoiselle fará a seleção por essa estratégia de forma automática, pois essa estratégia tem prioridade em relação
+ a estratégia JPA.
+
+
Feito isto, o controle transacional será delegado para a transação acessível via JNDI com o nome
UserTransaction. A estratégia acessa o objeto da seguinte maneira:
@@ -156,14 +173,15 @@ public class AbacaxiException {
É preciso também informar no arquivo persistence.xml o endereço da conexão
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:
-
-
+
-
+ java:jboss/datasources/ExampleDS
@@ -172,12 +190,13 @@ public class AbacaxiException {
-
-]]>
+
+ ]]> Caso não esteja utilizando o arquétipo JSF-JPA fornecidos pelo Demoiselle, confira se a dependência para a
extensão está indicada corretamente, no arquivo POM.XML.
-
+ br.gov.frameworkdemoiselledemoiselle-jtacompile
@@ -190,19 +209,19 @@ public class AbacaxiException {
Caso nenhuma das estratégias oferecidas sirva para você, crie a sua. Basta escrever uma
classe não-final que implemente a interface Transaction do pacote
- br.gov.frameworkdemoiselle.transaction. Anote a classe com
+ br.gov.frameworkdemoiselle.transaction. É preciso que sua classe não possua construtores explícitos ou
que possua um construtor público sem parâmetros. É possível fazer injeções nesta classe.
+
+ Pronto, é só isso! Agora, os métodos anotados com @Transactional irão utilizar a estratégia criada em seu projeto de forma automática,
+ mesmo que as extensões demoiselle-jpa e demoiselle-jta sejam adicionadas ao projeto, pois o framework da prioridade
+ máxima à estratégia criada no projeto.
+
+
+
+
+
+ Escolhendo estratégias manualmente
+
+ Existem alguns casos nos quais você vai ter que definir a estratégia manualmente. Um exemplo é quando seu projeto implementa mais do que uma estratégia
+ de transação. Outra situação pode acontecer em casos de teste, nos quais você queira utilizar estratégia diferente. Nesses casos você deve definir no
+ arquivo demoiselle.properties qual estratégia será utilizada. Veja alguns exemplos de definição de estratégias própria,
+ JTATransaction e JPATransaction (importante notar que apenas uma estratégia pode estar ativa por vez):
+
+
+ frameworkdemoiselle.transaction.class=projeto.MyTransaction
+
+
+ frameworkdemoiselle.transaction.class=br.gov.frameworkdemoiselle.transaction.JTATransaction
+
+
+ frameworkdemoiselle.transaction.class=br.gov.frameworkdemoiselle.transaction.JPATransaction
--
libgit2 0.21.2