diff --git a/documentation/reference/pt-BR/arquetipo.xml b/documentation/reference/pt-BR/arquetipo.xml
index 6664e55..0b302fa 100644
--- a/documentation/reference/pt-BR/arquetipo.xml
+++ b/documentation/reference/pt-BR/arquetipo.xml
@@ -38,7 +38,7 @@
Vaadin com JPA
- Uma das principais novidades com relação à esta nova versão do Framework Demoiselle
+ Uma das principais novidades com relação à esta nova versão do Demoiselle Framework
é sua integração mais completa à outras tecnologias de apresentação. Na versão anterior
apesar de ser possível a utilização de outra soluções, não havia ainda facilitadores realmente integrados ao Demoiselle.
Seguindo este princípio, um dos arquétipos disponibilizados pelo Framework gera uma aplicação de exemplo, nos mesmo moldes
diff --git a/documentation/reference/pt-BR/bookinfo.xml b/documentation/reference/pt-BR/bookinfo.xml
index de1ebdb..ecf1b2b 100644
--- a/documentation/reference/pt-BR/bookinfo.xml
+++ b/documentation/reference/pt-BR/bookinfo.xml
@@ -9,7 +9,9 @@
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/bundle.xml b/documentation/reference/pt-BR/bundle.xml
index 07c117b..6457f36 100644
--- a/documentation/reference/pt-BR/bundle.xml
+++ b/documentation/reference/pt-BR/bundle.xml
@@ -67,7 +67,7 @@ button.save=Salvar]]>
@@ -75,9 +75,8 @@ public String metodoQueRetornaOValorDaChavebuttonedit() {
Utilizando Resource Bundle sem uso de injeção:
Na classe os atributos devem ser tratados como sendo somente de leitura, possuindo apenas seus respectivos métodos
@@ -193,7 +189,6 @@ public class BookmarkConfig {
public boolean isLoadInitialData() {
return loadInitialData;
}
-
}]]>
@@ -258,7 +253,6 @@ general.load.initial.data = true
...
}
}
-
}]]>
@@ -302,7 +296,6 @@ public class EscolaConfig {
public List getPapeis() {
return papeis;
}
-
}]]>
@@ -332,7 +325,6 @@ public class EscolaConfig {
public String getJavaDirectory() {
return javaDirectory;
}
-
}]]>
diff --git a/documentation/reference/pt-BR/excecao.xml b/documentation/reference/pt-BR/excecao.xml
index ab0cf9d..a0f1922 100644
--- a/documentation/reference/pt-BR/excecao.xml
+++ b/documentation/reference/pt-BR/excecao.xml
@@ -17,18 +17,14 @@
Para um correto funcionamento do Demoiselle é necessário inserir o interceptador de exceção no arquivo src/main/WEB-INF/beans.xml.
-
-
-
- br.gov.frameworkdemoiselle.internal.interceptor.ExceptionHandlerInterceptor
-
-
- ]]>
-
+
+
+ br.gov.frameworkdemoiselle.internal.interceptor.ExceptionHandlerInterceptor
+
+]]>
@@ -43,13 +39,9 @@ public class Simples {
@ExceptionHandler
public void tratador(NullPointerException cause) { }
-
public void inserir() { }
-
public void alterar() { }
-
public void excluir() { }
-
}]]>
Neste exemplo, qualquer exceção do tipo NullPointerException que ocorrer nos métodos
@@ -68,16 +60,11 @@ public class Simples {
@ExceptionHandler
public void tratador(NullPointerException cause) { }
-
@ExceptionHandler
- public void tratador(AbacaxiException cause) { }
-
- public void inserir() { }
-
- public void alterar() { }
-
- public void excluir() { }
-
+ public void tratador(AbacaxiException cause) { }
+ public void inserir() { }
+ public void alterar() { }
+ public void excluir() { }
}]]>
Caso as exceções NullPointerException ou AbacaxiException ocorram
@@ -100,7 +87,6 @@ public class Simples {
@ExceptionHandler
public void tratador(NullPointerException cause) { }
-
public void inserir() {
try {
// tenta algo
@@ -108,11 +94,8 @@ public class Simples {
// trata o problema
}
}
-
public void alterar() { }
-
public void excluir() { }
-
}]]>
Neste caso a exceção AbacaxiException só será tratada no método inserir().
diff --git a/documentation/reference/pt-BR/inicializacao.xml b/documentation/reference/pt-BR/inicializacao.xml
index a8cd6ad..f59b94f 100644
--- a/documentation/reference/pt-BR/inicializacao.xml
+++ b/documentation/reference/pt-BR/inicializacao.xml
@@ -48,7 +48,7 @@
Eis um exemplo de implementação de inicializador em uma aplicação:
@@ -106,7 +105,6 @@ public class DatabaseServer {
public void shutdown() {
server.stop();
}
-
}]]>
diff --git a/documentation/reference/pt-BR/intro.xml b/documentation/reference/pt-BR/intro.xml
index cfc51cf..0f900f2 100644
--- a/documentation/reference/pt-BR/intro.xml
+++ b/documentation/reference/pt-BR/intro.xml
@@ -8,7 +8,7 @@
O que é o Demoiselle?
- O framework Demoiselle implementa o conceito de
+ O Demoiselle Framework implementa o conceito de
framework integrador.
Seu objetivo é facilitar a construção de aplicações minimizando tempo dedicado à escolha e integração de frameworks
especialistas, o que resulta no aumento da produtividade e garante a manutenibilidade dos sistemas. Disponibiliza
@@ -23,7 +23,7 @@
técnicas para qualquer pessoa que se interessasse.
- O framework Demoiselle usa a mesma filosofia do Pai da Aviação
, tendo sido
+ O Demoiselle Framework 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
@@ -33,7 +33,7 @@
Sobre a versão 2
O principal objetivo da versão 2 do
- framework Demoiselle
+ Demoiselle Framework
é a completa aderência à especificação
JSR 316: Java Platform, Enterprise Edition 6, ou simplesmente
Java EE 6. Para saber mais, recomendamos os links
diff --git a/documentation/reference/pt-BR/logger.xml b/documentation/reference/pt-BR/logger.xml
index efbaa7a..09e5a11 100644
--- a/documentation/reference/pt-BR/logger.xml
+++ b/documentation/reference/pt-BR/logger.xml
@@ -17,12 +17,11 @@
@Inject
private Logger logger;
-
+
public void meuMetodo() {
logger.debug("logando meu metodo");
logger.warn("mensagem de alerta do meu metodo");
}
-
}]]>
diff --git a/documentation/reference/pt-BR/master.xml b/documentation/reference/pt-BR/master.xml
index b745f3f..d313a14 100644
--- a/documentation/reference/pt-BR/master.xml
+++ b/documentation/reference/pt-BR/master.xml
@@ -14,16 +14,35 @@
- Esta documentação refere-se à release 2.3 do Framework Demoiselle
+ Esta documentação refere-se à release 2.3.0 do Demoiselle Framework
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 346b9ce..069e163 100644
--- a/documentation/reference/pt-BR/mensagem.xml
+++ b/documentation/reference/pt-BR/mensagem.xml
@@ -122,9 +122,7 @@ private MessageContext messageContext;]]>
A classe DefaultMessage fornecida pelo Demoiselle Framework
@@ -145,7 +143,6 @@ private MessageContext messageContext;]]>
exemplo disso utilizando a classe DefaultMessage:
Uma vez inseridas no contexto em determinada camada da aplicação, as mensagens podem ser posteriormente
@@ -204,14 +201,11 @@ messageContext.add(message);]]>
da mensagem e ao inseri-la no contexto especificar os parâmetros:
Eis um exemplo mais avançado do uso de parametrizações em mensagens:
-
O resultado da execução deste código seria um texto como:
@@ -245,7 +239,6 @@ messageContext.add(message, new Integer(502), new Date(), "falta de professor");
chaves, tal como no exemplo a seguir:
Ou seja, ao invés de usar a string literal, passamos o identificador da chave presente no arquivo de propriedades.
@@ -333,7 +326,6 @@ ALUNO_EXCLUIR_OK = L'étudiant {0} a été supprimé avec succès]]>
No exemplo em questão, o texto das mensagens será recuperado do arquivo de recursos messages.properties
@@ -375,7 +367,6 @@ BOOKMARK_UPDATE_OK = Bookmark atualizado: {0}]]>
public SeverityType getSeverity() {
return msg.getSeverity();
}
-
}]]>
A fim de adicionar mensagens ao contexto, eis um exemplo de código que faz uso do artefato InfoMessages,
@@ -413,7 +404,6 @@ public class BookmarkBC {
messageContext.add(InfoMessages.BOOKMARK_DELETE_OK,
bookmark.getDescription());
}
-
}]]>
diff --git a/documentation/reference/pt-BR/paginacao.xml b/documentation/reference/pt-BR/paginacao.xml
index b747dc2..7715f54 100644
--- a/documentation/reference/pt-BR/paginacao.xml
+++ b/documentation/reference/pt-BR/paginacao.xml
@@ -73,101 +73,77 @@
- Códigos internos de suporte no Core:
-
- , Pagination> map;
-
- public Pagination getPagination(Class> clazz) { ... }
-
- public Pagination getPagination(Class> clazz, boolean create) { ... }
-
- }
-
- @Configuration
- public class PaginationConfig {
-
- @Key("default_page_size")
- private int defaultPageSize = 10;
-
- @Key("max_page_links")
- private int maxPageLinks = 5;
-
- }
- ]]>
-
- Códigos internos de suporte em JPA:
-
- implements Crud {
-
- @Inject
- private PaginationContext paginationContext;
-
- // ...
-
- public List findAll() {
-
- final String jpql = "select this from " + getBeanClass().getSimpleName() + " this";
- final Query query = getEntityManager().createQuery(jpql);
-
- final Pagination pagination = paginationContext.getPagination(getBeanClass());
- if (pagination != null) {
- if (pagination.getTotalPages() == null) {
- pagination.setTotalResults(this.countAll());
- }
- query.setFirstResult(pagination.getFirstResult());
- query.setMaxResults(pagination.getPageSize());
- }
-
- // ...
- }
-
+ Códigos internos de suporte no Core:, Pagination> map;
+ public Pagination getPagination(Class> clazz) { ... }
+ public Pagination getPagination(Class> clazz, boolean create) { ... }
+}
+
+@Configuration
+public class PaginationConfig {
+
+ @Key("default_page_size")
+ private int defaultPageSize = 10;
+
+ @Key("max_page_links")
+ private int maxPageLinks = 5;
+}]]>
+
+ Códigos internos de suporte em JPA: implements Crud {
+
+ @Inject
+ private PaginationContext paginationContext;
+ // ...
+
+ public List findAll() {
+
+ final String jpql = "select this from " + getBeanClass().getSimpleName() + " this";
+ final Query query = getEntityManager().createQuery(jpql);
+ final Pagination pagination = paginationContext.getPagination(getBeanClass());
+
+ if (pagination != null) {
+ if (pagination.getTotalPages() == null) {
+ pagination.setTotalResults(this.countAll());
}
- ]]>
+ query.setFirstResult(pagination.getFirstResult());
+ query.setMaxResults(pagination.getPageSize());
+ }
+ // ...
+ }
+}]]>
- Códigos internos de suporte em JSF:
-
- extends AbstractPage
- implements ListPageBean {
-
- @Inject
- private PaginationContext paginationContext;
-
- @Inject
- private PaginationConfig paginationConfig;
-
- // ...
-
- public Pagination getPagination() {
- return paginationContext.getPagination(getBeanClass(), true);
- }
-
- public int getPageSize() {
- return paginationConfig.getDefaultPageSize();
- }
-
- public int getMaxPageLinks() {
- return paginationConfig.getMaxPageLinks();
- }
-
- }
- ]]>
+ Códigos internos de suporte em JSF: extends AbstractPage implements ListPageBean {
+
+ @Inject
+ private PaginationContext paginationContext;
+
+ @Inject
+ private PaginationConfig paginationConfig;
+ // ...
+
+ public Pagination getPagination() {
+ return paginationContext.getPagination(getBeanClass(), true);
+ }
+
+ public int getPageSize() {
+ return paginationConfig.getDefaultPageSize();
+ }
+
+ public int getMaxPageLinks() {
+ return paginationConfig.getMaxPageLinks();
+ }
+}]]>
@@ -194,73 +170,54 @@
À classe BookmarkList devem ser adicionados os seguintes trechos de código:
-
-
- lazyModel;
-
- public BookmarkListMB() {
- lazyModel = new LazyDataModel() {
-
- @Override
- public List load (int first, int pageSize, String sortField,
- SortOrder sortOrder, Map filters){
-
- Pagination pagination = getPagination();
- pagination.setPageSize(pageSize);
- pagination.setFirstResult(first);
-
- List itemsList = bc.findAll();
-
- lazyModel.setRowCount(pagination.getTotalResults());
-
- return itemsList;
- }
- };
- }
-
- // ...
-
- public LazyDataModel getLazyModel() {
- return lazyModel;
- }
-
- // ...
- ]]>
+ lazyModel;
+ lazyModel = new LazyDataModel() {
+
+ @Override
+ public List load (int first, int pageSize, String sortField,
+ SortOrder sortOrder, Map filters){
+
+ Pagination pagination = getPagination();
+ pagination.setPageSize(pageSize);
+ pagination.setFirstResult(first);
+
+ List itemsList = bc.findAll();
+
+ lazyModel.setRowCount(pagination.getTotalResults());
+
+ return itemsList;
+ }
+ };
+ // ...
+ public LazyDataModel getLazyModel() {
+ return lazyModel;
+ }
+ // ...
+}]]>
No arquivo messages.properties adicione as linhas:
-
-
-
-
+
Na página JSF bookmark_list.xhtml, substitua a linha:
-
-
- ]]>
+ ]]>
por:
-
-
-
- ]]>
+ ]]>
Com essas alterações simples, a aplicação Bookmarks passa a utilizar o mecanismo de paginação oferecido pelo Demoiselle Framework.
diff --git a/documentation/reference/pt-BR/parametro.xml b/documentation/reference/pt-BR/parametro.xml
index 8d4b820..5817fbe 100644
--- a/documentation/reference/pt-BR/parametro.xml
+++ b/documentation/reference/pt-BR/parametro.xml
@@ -20,13 +20,12 @@
Captura do parâmetro pelo Page Bean
@@ -54,16 +53,15 @@ http://localhost:8080/aplicacao/pagina.jsf?parametroString=valorParametroString]
Captura do parâmetro pelo Page Bean
parametro;
-
+
@Name("parametroString")
@SessionScoped
@Inject
private Parameter objetoComNomeDiferenteDoParametro;
-
}]]>
@@ -78,15 +76,14 @@ http://localhost:8080/aplicacao/pagina.jsf?parametroString=valorParametroString]
getValue(), tal como mostrado a seguir:
parametro;
-
+
public void metodo() {
System.out.println("Valor do parâmetro: " + parametro.getValue());
}
-
}]]>
diff --git a/documentation/reference/pt-BR/parentsPom.xml b/documentation/reference/pt-BR/parentsPom.xml
index 17a304d..8696098 100644
--- a/documentation/reference/pt-BR/parentsPom.xml
+++ b/documentation/reference/pt-BR/parentsPom.xml
@@ -21,7 +21,11 @@
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.
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.
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 excluir uma dependência vinda do Parent, mas não necessária utilize a tag Exclusions
+
+
+ Para excluir uma dependência vinda do Parent, mas não necessária utilize a tag Exclusions
+
+
Demoiselle-Minimal-Parent
diff --git a/documentation/reference/pt-BR/security.xml b/documentation/reference/pt-BR/security.xml
index 042712c..8bad17e 100644
--- a/documentation/reference/pt-BR/security.xml
+++ b/documentation/reference/pt-BR/security.xml
@@ -22,19 +22,15 @@
Para um correto funcionamento do Demoiselle é necessário inserir os interceptadores de segurança no arquivo src/main/WEB-INF/beans.xml.
-
-
-
- br.gov.frameworkdemoiselle.internal.interceptor.RequiredPermissionInterceptor
- br.gov.frameworkdemoiselle.internal.interceptor.RequiredRoleInterceptor
-
-
- ]]>
-
+
+
+ br.gov.frameworkdemoiselle.internal.interceptor.RequiredPermissionInterceptor
+ br.gov.frameworkdemoiselle.internal.interceptor.RequiredRoleInterceptor
+
+]]>
@@ -66,11 +62,8 @@
public class Credential {
private String login;
-
private String senha;
-
// ...
-
}]]>
Feito isso, podemos implementar a classe na qual se deseja adicionar o mecanismo de segurança:
@@ -90,7 +83,6 @@ public class Credential {
// codigo do metodo
context.logout();
}
-
}]]>
Neste caso, a interface SecurityContext e o bean Credential estão sendo injetados na classe utilizando o CDI.
@@ -129,7 +121,6 @@ public class Credential {
@RequiredPermission(resource = "contact", operation = "insert")
public void requiredPermissionWithDeclaredResourceAndOperation() {
}
-
}]]>
Observe o método cuja anotação não possui parâmetros. Nesse caso serão considerados como recurso e operação o nome da classe e
@@ -158,7 +149,6 @@ public class Credential {
@RequiredRole({ "firstRole", "secondRole", "thirdRole", "fourthRole", "fifthRole" })
public void requiredRoleWithArrayOfRoles() {
}
-
}]]>
As restrições de segurança pode ser utilizadas, ainda, em páginas web, com o auxílio de Expression Language, como no
@@ -183,8 +173,7 @@ public class Credential {
a implementação, e torna essa classe a implementação padrão dessas interfaces:
-
-