Desenvolvimento Web com Framework Demoiselle versão 1.

0
Módulo 01: Arquitetura e Instalação
Serpro / Superintendência de Suporte à Tecnologia / Curitiba

Vanderson Botelho

Autor:

www.frameworkdemoiselle.gov.br
Modificado em: 13/10/2009

Licença

Esta obra está licenciada sob uma Licença Creative Commons
http://creativecommons.org/licenses/by/2.5/br/
Módulo 01 - Arquitetura 2

Ficha Técnica
Tutorial Framework Demoiselle

Autor
Vanderson Botelho da Silva Serpro / Superintendência de Suporte à Tecnologia – Regional Curitiba (STCTA)

Revisores
Flávio Gomes da Silva Lisboa Serpro / Coordenação Estratégica de Tecnologia – Regional Curitiba (CTCTA) Robson Saraiva Ximenes / Serge Normando Rehem Serpro / Coordenação Estratégica de Tecnologia – Regional Salvador (CTSDR)
Módulo 01 - Arquitetura 3

Ficha Técnica Aviso  Esta apresentação é praticamente teórica. e mesmo a parte de instalação está reproduzida no laboratório. Módulo 01 . Se você quer colocar a mão na massa imediatamente. pode saltar esta apresentação e retornar a ela se surgirem dúvidas conceituais.Arquitetura 4 .

Agenda Agenda  Arquitetura   Instalação Maven Arquétipo Demoiselle Plugin Update Site Download Site Maven Laboratório Criação do projeto mínimo Conceitos Representação Arquitetural  Módulos do Framework  Core  Util  Web Contextos Transação Mensagem Segurança Módulo 01 .Arquitetura 5 .

Arquitetura 6 .Tutorial Pré-Requisitos  Conhecimento básico     Orientação a Objetos Plataforma Java Enterprise Edition (JEE) Hibernate/JPA Java Server Faces (JSF) Maven Integração contínua  Conhecimento Intermediário   Módulo 01 .

Arquitetura 7 .0 aplicado à construção de sistemas Web Módulo 01 .Tutorial Objetivo  Capacitar desenvolvedores ao uso do Framework Demoiselle em sua versão 1.

sem nada cobrar.” [Dumont. no início do século XX Realizou vôos de até 18 km.Conceitos História  Demoiselle     Melhor projeto da aviação construído por SantosDumont (1907) que influenciou significativamente a indústria da aviação.09] Módulo 01 . superiores aos 200m do 14bis O Demoiselle foi o primeiro avião fabricado em série no mundo Projeto de “código livre” “Santos-Dumont presenteou a todos.Arquitetura 8 . todas as suas dezenas de invenções.

org/licenses/lgpl.2  2008    *http://www.1 Abril: criação da equipe gestora do framework (Serpro/Cetec/CTJEE) Agosto: Release 0. por meio das licenças de software livre (LGPL License 3*) Março: Release 0.html Módulo 01 .Arquitetura 9 .gnu.Conceitos História  Framework Demoiselle  Preserva a mesma filosofia de Santos-Dumont.

Conceitos História  2008  Dezembro (08/12):  Lançamento Oficial da Versão 1.freesoftwarerio.html Módulo 01 .br  2009  Abril (14/04):  Liberação do código-fonte no Source Forge *http://www.com.gnu.Arquitetura 10 .org/licenses/lgpl.0:  Free Software Rio 2008  http://www.

Conceitos Framework   Visa direcionar o desenvolvedor aos problemas relacionados as regras de negócio do cliente e a apresentação das informações Reduz o esforço utilizado para resolver detalhes de baixo nível como segurança.” Módulo 01 . um framework ou arcabouço é uma estrutura de suporte definida em que um outro projeto de software pode ser organizado e desenvolvido. etc. comunicação com outros ambientes.Arquitetura 11 . “No desenvolvimento do software. acesso a dados.

Conceitos
Framework Demoiselle

Objetivos Gerais
 

Reuso do conhecimento Prover um ambiente de desenvolvimento
  

Aberto Compartilhado Colaborativo Diferentes instituições Diferentes tecnologias

Voltado para Integração
 

Módulo 01 - Arquitetura

12

Conceitos
Framework Demoiselle

Objetivos Específicos
  

Arquitetura extensível através da componentização Arquitetura de referência às aplicações Web JEE Prover mecanismos tranparentes para
  

Segurança Integração entre camadas Controle de transacional

 

Prover utilitários de infraestrutura para aplicações Web Prover mecanismo de segurança utilizando certificados digitais para autenticação, criptografia e assinatura digital no padrão ICP-Brasil

Módulo 01 - Arquitetura

13

Conceitos
Framework Demoiselle

Estruturação em domínios

Gestão orientada a políticas de conteúdos e promoções de conteúdos (Camadas / Domínios) Domínios específicos

 

Framework arquitetural – Integração de organizações do Governo e com a sociedade Organizacional – Integração na Organização Sistemas – Integração de Grupo de Sistemas

Módulo 01 - Arquitetura

14

Arquitetura 15 . técnicas e processos padronizados Negócios – Reuso de componentes de negócio Módulo 01 .Conceitos Framework Demoiselle  Estruturação em domínios  Orientação a componentes   Tecnologia – Reuso de métodos.

Conceitos Framework Demoiselle  Estruturação em domínios Módulo 01 .Arquitetura 16 .

integração e utilização de tecnologias mais reconhecidas utilizadas pelas comunidades de desenvolvedores. contendo as regras do sistema  Dados: Camada de armazenamento e recuperação de dados Módulo 01 .Conceitos Framework Demoiselle  Padronização  Visa facilitar a padronização das soluções do governo   Padronização de tecnologias  Análise.Arquitetura 17 . Padronização de arquitetura  Acesso: Camada de interface das informações do sistema  Negócio: Camada lógica.

Arquitetura 18 .Conceitos Framework Demoiselle  Padronização     Maior facilidade de suporte e absorção de sistemas Reuso de conceitos e práticas maduras Facilidade de integração e disponibilização de serviços para os novos sistemas Camada de acesso do usuário (interface gráfica) pode ser substituída para a disponibilização de serviços. reaproveitando toda a lógica do sistema Módulo 01 .

net  Provê informações dinâmicas do projeto Demoiselle como relatórios.sourceforge. manuais.http://demoiselle.Conceitos Framework Demoiselle  Site Maven . entre outros documentos. downloads.Arquitetura 19 . Módulo 01 .

Arquitetura 20 .09] Módulo 01 .Conceitos Framework Demoiselle  Arquitetura * * Padrões de Interoperabilidade de Governo Eletrônico. [E-Ping.

Conceitos Framework Demoiselle  Arquitetura     Integração de definições e desenvolvimento Alinhamento de projetos Direcionamento Reuso de soluções Módulo 01 .Arquitetura 21 .

Arquitetura 22 .Conceitos Framework Demoiselle  Arquitetura Módulo 01 .

Conceitos Framework Demoiselle  Reuso e Geração automática de código     Conjunto de componentes com ciclo de vida independente Não geram dependência obrigatória nas aplicações geradas Podem ser construídos colaborativamente Devem ser facilmente acoplados à aplicação Módulo 01 .Arquitetura 23 .

Conceitos Framework Demoiselle  Reuso e Geração automática de código   A geração de código automática deve ser encarada como um “componente especial” Ele deve ser utilizado durante o desenvolvimento Módulo 01 .Arquitetura 24 .

manutenção simplificada  Desempenho: Controle de integração de camadas e controle de transação  Estabilidade / Confiabilidade: Baseada em especificações (Foundation Framework) reconhecidas pelo mercado Módulo 01 . Abstract Factory)   Reusabilidade: Arquitetura de referência e componentes Manutenibilidade: Divisão em modulos.Arquitetura 25 . inversão de controle.Conceitos Framework Demoiselle  Premissas  Extensibilidade: Pontos de extensão (interfaces. abstrações. baixo acoplamento.

Arquitetura 26 .Conceitos Framework Demoiselle  Desenvolvimento em Camadas  Uma camada equivale a um dos particionamentos lógicos de diversos aspectos tratados em um sistema Cada camada possui responsabilidade distinta ou única no sistema Uma camada não está estritamente acoplada a camada adjacente Representa-se o sistema como uma pilha de camadas    Módulo 01 .

Conceitos Framework Demoiselle  Desenvolvimento em Camadas Apresentação Dependência Apresentação das informações e Interação com o usuário. Deve ser projetada de forma independente da interface (camada de apresentação) Lógica de Domínío Dependência Acesso a Dados Camada responsável por tratar conexões e transações com o banco de dados Módulo 01 .Arquitetura 27 . Centraliza o processamento das regras de negócio do sistema.

Conceitos
Framework Demoiselle

Desenvolvimento em Camadas

Arquitetura Model View Controller
Seu objetivo é separar o modelo: que corresponde ao objeto que está sendo exibido pela visão em determinado momento; a visão: que corresponde à interface que o sistema disponibiliza para que o usuário possa manipular o modelo; e o controlador: que é responsável pro tratar os eventos de interação entre o usuário e o sistema. O MVC pode ser aplicado a uma das camadas do sistemas. Ex.: Apresentação.
Módulo 01 - Arquitetura 28

Conceitos
Framework Integrador

Tecnologias Utilizadas
Como integrar tantas ferramentas ?

Módulo 01 - Arquitetura

29

Conceitos
Framework Integrador
Framework Integrador “Um Framework Integrador tem “Um Framework Integrador tem por objetivo facilitar aaconstrução por objetivo facilitar construção de aplicações sem oo de aplicações sem investimento de tempo em investimento de tempo em escolha escolha ee integração integração de de frameworks especialistas, que frameworks especialistas, que resulta resulta no no aumento aumento da da produtividade ee garante aa produtividade garante manutenibilidade dos sistemas.” manutenibilidade dos sistemas.”

Módulo 01 - Arquitetura

30

Arquitetura 31 .Conceitos Framework Demoiselle  Evolução  Abordagem de Evolução Descontinuação Suporte Funcionalidades em discussão Desenvolvimento N-2 N-1 N N+1 N+2 Linha do tempo Módulo 01 .

Arquitetura 32 .Arquitetura Módulo 01 .

Arquitetura 33 .Arquitetura Representação Arquitetural Módulo 01 .

Arquitetura 34 .Arquitetura Representação Arquitetural  Architectural Framework  Representa os módulos implementados pelo Demoiselle Representa o conjunto de frameworks especialistas utilizados e compatíveis ao Demoiselle Representa as especificações de mercado que balizam o Arquitetural Framework como os mecanismos de controle de transação. acesso a dados entre outros  Base Frameworks   Foundation Frameworks  Módulo 01 . segurança.

Arquitetura Representação Arquitetural  Platform  Representa as plataformas de produção compatíveis ao Framework Representa a camada da máquina virtual Representa a camada do sistema operacional  Virtual Machine   OS  Módulo 01 .Arquitetura 35 .

Arquitetura Módulo Core  Este módulo contém o conjunto de especificações que dão base estrutural ao framework possibilitando padronização.Arquitetura 36 . negócio e persistência Módulo 01 . extensão e integração entre as camadas das aplicações nele baseadas Divisão de Camadas   O Demoiselle propõe às aplicações a divisão em três camadas distintas: visão.

Arquitetura Módulo Core  Interfaces  IViewController  Abstração para o objeto da camada de visão Abstração para o objeto da camada de negócio Abstração para o objeto da camada de persistência Abstração para o objeto da camada de integração de módulos/subsistemas  IBusinessController   IDAO   IFacade  Módulo 01 .Arquitetura 37 .

escrita e legibilidade das classes representantes destas camadas Módulo 01 .Arquitetura Módulo Core  Integração entre Camadas  Utiliza padrões de projeto tais como: Factory. a fim de garantir melhor manutenção. IoC e injeção de dependências para manter a integração de camadas com baixo nível de acoplamento.Arquitetura 38 . Proxy.

business.gov.implementation. } Módulo 01 .Arquitetura Módulo Core  Integração entre Camadas  Exemplo de Injeção de um IBusinessController public class MeuMB implements IViewController{ @Injection private IMeuBC meuBC.escola.Arquitetura 39 .AlunoBC”) private IMeuBC meuBC. } public class MeuMB implements IViewController{ @Injection (name=”br.

} Módulo 01 . } public class MeuBC implements IBusinessController{ @Injection( name="br.implementation.persistence.Arquitetura Módulo Core  Integração entre Camadas  Exemplo de Injeção de um IDAO public class MeuBC implements IBusinessController{ @Injection private IMeuDAO meuDAO.AlunoDAO") private IMeuDAO meuDAO.gov.escola.Arquitetura 40 .dao.

Arquitetura 41 .0 do Demoiselle a injeção de dependência é implementada no módulo Web Módulo 01 .Arquitetura Módulo Core  Injeção    O módulo Core especifica quem trata a injeção de dependência Os módulos que implementam o Core devem definir como a injeção será realizada Na versão 1.

Arquitetura 42 .Arquitetura Módulo Core  Contexto de Mensagens  Define uma abstração de mensagens trocadas durante uma requisição entre as camadas do sistema Módulo 01 .

Arquitetura Módulo Core  Contexto de Mensagens  Interfaces   IMessage: Abstração da unidade de mensagem IMessageContext: Abstração do contexto de mensagem Severity: Lista de severidades  Enumerations  Módulo 01 .Arquitetura 43 .

Arquitetura 44 .Arquitetura Módulo Core  Tratamento de Exceção  O Módulo Core define uma exceção padrão para as aplicações  ApplicationRuntimeException  Esta exceção encapsula uma mensagem padronizada para facilitar o tratamento pelos módulos do aplicação Módulo 01 .

Arquitetura 45 .ERRO_01). } } Captura public void MetodoMB () { try { MetodoBC().Arquitetura Módulo Core  Tratamento de Exceção  Classes  ApplicationRuntimeException  Exceção do tipo “unchecked”. padroniza as exceções da aplicação Lançamento public void MetodoBC(){ if ( /*Condição para lançamento de exceção*/ ){ throw new ApplicationRuntimeException(ErrorMessage. } catch (ApplicationRuntimeException ex) { /**Trata exceção*/ } } Módulo 01 .

Arquitetura 46 .Arquitetura Módulo Core  Java Authentication and Authorization Service (JAAS)  API que permite às aplicações escritas na plataforma J2EE usar serviços de controle de autenticação e autorização sem necessidade de estarem fortemente dependentes desses serviços  JAAS Authentication  Especifica como uma aplicação pode autenticar usuários usando JAAS Especifica como implementar controle de acesso usando JAAS  JAAS Authorization  Módulo 01 .

Arquitetura 47 .Arquitetura Módulo Core  JAAS Authentication  Principal  representa um usuário  JAAS Authorization  Role  representa papéis do usuário no sistema  Exemplo – Implementação padrão do Tomcat Módulo 01 .

Arquitetura 48 .Arquitetura Módulo Core  Representação Principal e Roles  Exemplo Tomcat-Users.xml: <tomcat-users> <role rolename="role_aluno"/> <role rolename="role_professor"/> <role rolename="role_administrador"/> <user username="aluno" password="aluno" roles="role_aluno"/> <user username="professor" password="professor" roles="role_professor"/> <user username="admin" password="admin" roles="role_administrador"/> </tomcat-users> Módulo 01 .

09] Módulo 01 .Arquitetura 49 .Arquitetura Módulo Core  Contexto de Segurança    Especifica um mecanismo padrão para acesso a dados de segurança referentes a autenticação e autorização Trata a autorização por meio de papéis Baseada na especificação JAAS [JAAS.

.isUserInRole("Administrador")){ . Módulo 01 .getInstance().getSecurityContext().Arquitetura 50 ..Arquitetura Módulo Core  Contexto de Segurança  Intefaces  Abstração do contexto de segurança  Exemplo: ISecurityContext contexto = ContextLocator. if } (contexto.

Arquitetura Módulo Core  Entidades  O Core propõe uma abstração para as entidades da aplicação Módulo 01 .Arquitetura 51 .

} } Módulo 01 .id = id.Arquitetura 52 .Arquitetura Módulo Core  Entidades  Exemplo public class MeuPojo implements IPojo{ private Long id. } public void setId(Long id) { this. public Long getId() { return id.

Arquitetura 53 . seja Local ou JTA1. 09] Módulo 01 .   Local: indica que a aplicação será responsável pelo gerenciamento da transação Distribuída (JTA): a aplicação dependerá de uma implementação JTA disponível no container 1 JTA: Java Transaction API [JTA.Arquitetura Módulo Core  Transação    Especifica o mecanismo de controle transacional Define um contexto transacional que atua no início e no fim de cada ação Seu funcionamento depende de um tipo definido.

Arquitetura Módulo Core  Transação  Diagrama Módulo 01 .Arquitetura 54 .

Arquitetura Módulo Core  Transação  Interfaces   ITransactionResource  Define um recurso a ser registrado no contexto de transação ITransactionContext  Contexto de transação responsável por registrar o início e fim de cada ação e registrar recursos transacionais TransactionType  Tipos de funcionamento do mecanismo de controle de transação  Enumerations  Módulo 01 .Arquitetura 55 .

Módulo 01 .Arquitetura 56 .Arquitetura Módulo Core  Acionadores   Define um mecanismo padronizado de ações a serem executadas pela aplicação Essas ações são definidas como funções estruturais da aplicação:    carregamento de configuração inicialização de ambiente etc.

Arquitetura 57 .Arquitetura Módulo Core  Acionadores  Diagrama Módulo 01 .

Arquitetura Módulo Core  Acionadores  Interfaces    IActionManager  Executa ações que foram recuperadas pelo mecanismo de recuperação ILoaderAction  Mecanismo de recuperação das ações IAction  Representa uma ação Módulo 01 .Arquitetura 58 .

Arquitetura Módulo Core  Acionadores  Exemplo: class MinhaAplicacaoAction implements IAction { private static Logger log = Logger.debug("Lendo arquivos de configuração").getLogger(MinhaAplicacaoAction.class). public void execute() { log. } public } Módulo 01 .Arquitetura 59 .

Arquitetura 60 . mensagem.) deverá utilizar o localizador como canal de acesso Módulo 01 .Arquitetura Módulo Core  Localizador de Contextos   Para que a aplicação possa usufruir dos contextos definidos no Módulo Lógico CORE. transação.. . a existência de um localizador é fundamental A implementação de cada contexto (segurança..

Arquitetura 61 .Arquitetura Módulo Core  Localizador de Contextos Módulo 01 .

Arquitetura 62 .Arquitetura Módulo Web  Definição   Implementação do módulo lógico CORE para aplicações Web (J2EE) Prover utilitários comuns de aplicações web para facilitar o tratamento de sessões de usuário e suas requisições Módulo 01 .

Arquitetura Módulo Web  Contexto de Segurança   Implementa o contexto de segurança proposto no módulo CORE através de um Singleton É inicializado a cada requisição do usuário com informações de autenticação e autorização Módulo 01 .Arquitetura 63 .

Arquitetura 64 .Arquitetura Módulo Web  Contexto de Segurança  Classes   WebSecurityContext  Implementa o contexto de segurança através do padrão singleton  Gerencia os dados de segurança vinculados a thread corrente WebSecurityServletRequestListener  Responsável por repassar o objeto “request” para o contexto de segurança WebSecurityContext Módulo 01 .

.getSecurityContext().xml) <tomcat-users> <role rolename="role_aluno"/> <role rolename="role_professor"/> <role rolename="role_administrador"/> <user username="al" password="al" roles="role_aluno"/> <user username="prof" password="prof" roles="role_professor"/> <user username="admin" password="admin" roles="role_administrador"/> </tomcat-users> Configuração Uso ISecurityContext contexto = ContextLocator.Arquitetura 65 . if (contexto. } Módulo 01 ..isUserInRole("role_administrador")){ .getInstance().Arquitetura Módulo Web  Exemplo de Uso  Uso do Realm padrão do tomcat (tomcat-users.

Arquitetura 66 .Arquitetura Módulo Web  Contexto de Mensagens  Contexto de mensagens para aplicações web Módulo 01 .

} } Módulo 01 ..getMessages(){ addMessage(imsg).getInstance().Arquitetura 67 .addMessage(InfoMessage.getMessageContext().. contextoMsg.Mensagem). } } Captura public class MeuMB extends IViewController { public void meu_metodo(){ for (IMessage imsg : contextoMsg. public class MeuBC implements IBusinessController { public void meu_metodo(){ .Arquitetura Módulo Web  Contexto de Mensagens  Exemplo Lançamento IMessageContext contextoMsg = ContextLocator.

Arquitetura 68 .Arquitetura Módulo Web  Integração entre Camadas   O módulo WEB implementa a especificação de integração de camadas proposto pelo módulo CORE O mecanismo implementado utiliza Programação Orientada a Aspectos (AOP) para detectar os pontos de integração Módulo 01 .

demoiselle.gov.WebTransactionServletRequestListener </listener-class> </listener>   Prover um mecanismo transparente de gerenciamento de transação É possível utilizar o controle transacional do container (JTA) para isso deve existir uma implementação de um mecanismo de lookup via JNDI Módulo 01 .framework.web. por meio de Listeners do container JEE <listener> <listener-class> br.Arquitetura Módulo Web  Transação  Implementa a especificação do contexto transacional do módulo CORE.transaction.Arquitetura 69 .

essas ações estão implementadas nesse módulo Os componentes e aplicações baseadas no framework podem implementar outras ações e adicioná-las para que sejam executadas na inicialização do ambiente Módulo 01 .Arquitetura Módulo Web  Inicialização do Ambiente     A inicialização de ambiente segue a especificação de ações proposto no módulo CORE A inicialização ocorre sempre que o container iniciar a aplicação O módulo WEB necessita que algumas ações sejam executadas.Arquitetura 70 .

debug("Inicializando minha action"). } public void setServletContext(ServletContext context) { } } #Configuração no arquivo Demoiselle.web.action=MinhaAction Módulo 01 .demoiselle.Arquitetura Módulo Web  Inicialização do Ambiente  Exemplo de uso public class MinhaAction implements IInitializationAction { public void execute() { log.Arquitetura 71 .initialization.properties framework.

Arquitetura Módulo Web  Redirecionamento baseado em URL    O módulo WEB implementa um mecanismo de redirecionamento baseado em URL É utilizado por componentes do Demoiselle como o Report Pode ser utilizado pelas aplicações Módulo 01 .Arquitetura 72 .

response = resp. } public void setRequest(ServletRequest req) { this.Arquitetura 73 .Arquitetura Exemplo de Redirecionamento URL  Criando uma IRedirectAction public class MinhaRedirectAction implements IRedirectAction { private ServletRequest request. } public void execute() { /*Minha execução*/ } } Módulo 01 . public String getParameter() { return "MinhaActionParameter".request = req. private ServletResponse response. } public String getValue() { return "MinhaActionValue". } public void setResponse(ServletResponse resp) { this.

Arquitetura 74 .web.action=MinhaRedirectAction01 framework.redirect.Web Configuration --framework.xml <servlet> <servlet-name>WebRedirectServlet</servlet-name> <servlet-class> br.framework.gov.redirect.properties # --.Arquitetura Exemplo de Redirecionamento URL  Cadastrando no demoiselle.redirect.web.demoiselle.demoiselle.redirect.demoiselle.action=MinhaRedirectAction02 framework.action=MinhaRedirectAction03  Configuração do web.demoiselle.web.web.WebRedirectServlet </servlet-class> </servlet> <servlet-mapping> <servlet-name>WebRedirectServlet</servlet-name> <url-pattern>/redirect</url-pattern> </servlet-mapping> Módulo 01 .

Arquitetura 75 .Arquitetura Exemplo de Redirecionamento URL  Chamando a RedirectAction <a href="minhaAplicacao/redirect?MinhaActionParameter=MinhaActionValue"> Chamar Minha Action </a> Módulo 01 .

Arquitetura Módulo Util  Este módulo contém componentes utilitários que facilitam o trabalho de outras funcionalidades do framework e seus módulos lógicos Módulo 01 .Arquitetura 76 .

Arquitetura Módulo Util  Carregamento de Configuração  Permite carregar variáveis configuradas em    arquivos xml arquivos de propriedades Propriedades do System   Utilizado em vários outros componentes do framework Recomenda-se seu uso também pelas aplicações Módulo 01 .Arquitetura 77 .

xml") private String stringValueXML. Módulo 01 .stringValue". type=ConfigType. @ConfigKey (name = "framework. resourceName="configuration.Arquitetura Módulo Util  Carregamento de Configuração  Exemplo: Declaração @ConfigKey (name = "key". type=ConfigType. @ConfigKey (name = "framework. resourceName="configuration.PROPERTIES.XML.Arquitetura 78 .stringValue".properties") private String stringValueProperties.SYSTEM) private String stringValueSystem. type=ConfigType.

getMinhaPropriedade()). System.out.print(meuConfig.Arquitetura 79 . } Módulo 01 .load(meuConfig).Arquitetura Módulo Util  Carregamento de Configuração  Exemplo: Carregamento e uso public void meuMetodo() { MeuConfig meuConfig = new MeuConfig(). ConfigurationLoader.

Arquitetura 80 .Arquitetura Módulo Util  Paginação de Resultados   Normalmente as aplicações necessitam trafegar resultados entre as camadas de forma paginada garantindo o desempenho da aplicação Esse mecanismo é implementado por meio de um objeto que permite configurar os dados da página que será requisitada e um objeto que contém os resultados de forma paginada Módulo 01 .

Arquitetura 81 .Arquitetura Módulo Util  Paginação de Resultados  Diagrama Módulo 01 .

listar(page)). } Módulo 01 .Arquitetura 82 .Arquitetura Módulo Util  Paginação de Resultados  Classes   Page  Configuração da Página PagedResult  Resultados paginados  Exemplo public void carregarLista() { Page page = new Page(50. meuBC. 1)).

Arquitetura 83 .Arquitetura Considerações Finais      O framework é baseado(em) e direcionado(a) arquiteturas O reuso de código é possibilitado através da componentização Cada componente é facilmente acoplado e desacoplado a cada aplicação conforme demanda A arquitetura deve ser baseada em padrões e direcionamento A padronização visa facilitar a integração e manutenção dos sistemas Módulo 01 .

http://www. 08] Eclipse.09] História de Santos Dumont.org: community driven. http://www.sun. http://java. http://java.com/javaee/technologies/jta/index.Arquitetura 84 .fab.09] Padrões de Interoperabilidade de Governo Eletrônico.sun.governoeletronico. 09] Java Transaction API. 08] Java. http://www. http://www.com/products/archive/jaas/ [JBoss.gov.com/ [JTA. 09] Site Oficial do Framework Demoiselle.org/ [Eclipse.br/acoes-e-projetos/e-ping-padroes-de-interoperabilidade Módulo 01 .sun.net/ [JAAS.org/ [Java. 09] Especificação JAAS.jsp [Dumont.sun.eclipse.Bibliografia [Demoiselle.sourceforge.com.htm [E-Ping.org home. http://demoiselle.br/portal/aeronaves/htm/historia.mil.jboss. http://java. 08] jboss.

Instalação Módulo 01 .Arquitetura 85 .

7 Versão 4.1 AspectJ 1.4.Instalação Softwares Necessários  JVM  Versão mínima: 1.0.2 Versão 6.0 Módulo 01 .17 Ganymede 3.3 M2 0.9.5.Arquitetura 86  Eclipse     JBoss   Tomcat  .6.

Arquitetura 87 .Instalação Instaladores  Três Caminhos:    Arquétipo Maven Update Site – Demoiselle Wizard Download Direto – Site Demoiselle Framework no SourceForge O uso do arquétipo Maven é recomendado visto que o Maven faz a gestão das dependências. Módulo 01 .

0" encoding="UTF-8"?> <archetype-catalog> <archetypes> <archetype> <groupId>br.0.net/repository/release </repository> </archetype> </archetypes> </archetype-catalog> Módulo 01 .0</version> <repository> http://demoiselle.gov.Arquitetura 88 .xml no repositório local do desenvolvedor: <?xml version="1.archetypes</groupId> <artifactId>demoiselle-archetype-webapp-sample</artifactId> <version>1.sourceforge.demoiselle.Instalação Instaladores  Arquétipo Maven  Cadastrar o demoiselle-archetype-webapp no arquivo arquivo archetype-catalog.component.

Instalação Instaladores  Arquétipo Maven  Eclipse: -> File -> New Project -> Maven Project Módulo 01 .Arquitetura 89 .

Instalação Instaladores  Arquétipo Maven  Selecione o local onde o projeto será criado. Caso não informe ele criará o workspace local  Módulo 01 .Arquitetura 90 .

Instalação Instaladores  Arquétipo Maven  Selecione o Catálogo “Default Local” o arquétipo do Demoiselle Módulo 01 .Arquitetura 91 .

 nome do projeto Módulo 01 .Instalação Instaladores  Arquétipo Maven  Informe GroupId: representa o ArtificatId: representa o  nome da organização.Arquitetura 92 .

08 Richfaces 3.7 Jsf-facelets 1.Instalação Instaladores  Arquétipo Maven  A aplicação é construída com os seguintes componentes/frameworks:        Jsf Api 1.1 Myfaces Tomahawk 1.1.1.1.2 Weblets Api 1.0 Módulo 01 .Arquitetura 93 .14 Postgresql 8.2.0-318 JasperReports 3.1.

Instalação Instaladores  Demoiselle Wizard   Instalando o plugin demoiselle para IDE Eclipse via update site Eclipse   Help -> Software Updates Available Software -> Add Site Módulo 01 .Arquitetura 94 .

Instalação Instaladores  Demoiselle Wizard  Adicionando um novo Site Módulo 01 .Arquitetura 95 .

Instalação Instaladores  Demoiselle Wizard  Selecionando Demoiselle Wizard Módulo 01 .Arquitetura 96 .

Instalação Instaladores  Demoiselle Wizard Módulo 01 .Arquitetura 97 .

Arquitetura 98 .net/projects/demoiselle Módulo 01 .Instalação Instaladores  Download das Bibliotecas   Entrar na seção Downloads no site do projeto do Framework Demoiselle no Source Forge Baixar os binários e suas respectivas dependências  https://www.sourceforge.

1  Objetivos:  Fixar conceitos de arquitetura  Criar projeto mínimo via arquétipo Maven  Usar o Demoiselle Wizard para configuração da aplicação Módulo 01 .Instalação Laboratório 01  Exercício 1.Arquitetura 99 .

sourceforge.net/projects/demoiselle  Colaborações  Lista demoiselle-users@lists.sourceforge.Arquitetura 100 .net Módulo 01 .Contato Tutorial Framework Demoiselle  Comunidade Demoiselle  Framework http://www.

Sign up to vote on this title
UsefulNot useful