maverick v1.0

Download Maverick v1.0

Post on 26-May-2015

119 views

Category:

Technology

5 download

Embed Size (px)

DESCRIPTION

Apresentação Jboss Seam

TRANSCRIPT

  • 1. MAVERICKPRESSO

2. Maverick 1.0 o framework Jboss Seam 2.2.x para utilizao com JavaEE 5customizado!Full stack abstrai/resolve praticamente todos os problemas de uma aplicao WEB.Exemplo: Autenticao, autorizao, pool de conexes, injeo de dependncia, envio dee-mail, gerao de PDFs, Web Services, cache etc.Customizaes:- Templates de pginas- Seam Crud Application Framework 3. Servidor de Aplicao- Implementam diversas das especificaes anteriores para podermos utiliz-lasem nossos sistemas.- RedHat Jboss Application Server 5- GlassFish Application Server v2 a referncia de implementao, no querdizer que o melhor- O termo application server web profile passou a existir desde o JavaEE 6 ereferencia servidores que no ofertam tudo, somente parte das especificaes.Fontes:http://www.oracle.com/technetwork/java/javaee/overview/compatibility-jsp-136984.htmlhttp://www.oracle.com/technetwork/java/javaee/overview/compatibility-javaee5-jsp-141098.htmlhttps://access.redhat.com/articles/112673 4. Maverick-GenO Processo de criao de um sistema sempre tedioso e propenso a erros. Um script de configurao auxilia odesenvolvedor nesse processo, copiando os arquivos necessrios para os lugares corretos e seguindo as convenesde desenvolvimento da IPLANRIO.O Maverick-Gen cria o sistema com o Padro de Interface da Empresa, autenticando no LDAP do RIOMAIL eseguindo as convenes de pacotes definidas pela IPLANRIO.A Ferramenta uma customizao do Seam-Gen distribudo em conjunto com o Framework JBoss Seam. Nadafoi criado do zero, a mesma estrutura do Seam-Gen utilizada para a criao do Sistema com as devidascustomizaes para o Ambiente e Padres de Desenvolvimento da Empresa.O Maverick-Gen utiliza somente a parte de criao de projetos do Seam-Gen. O Gerador automtico de CRUDSe as ferramentas de engenharia reversa no so utilizadas por no estarem em conformidade com as prticasutilizadas na IPLANRIO.O Seam Crud Framework no deve ser utilizado. As classes EntityHome e EntityQuery devem ser evitadas. 5. JavaEE 5- So uma srie de especificaes bem detalhadas de como deve serimplementado um software utilizando-se de servios de infraestrutura.- Finalidade reutilizar essa base de infraestrutura j pronta para focarmos nodesenvolvimento do negcio sem preocupar-se com grande parte de cdigo deinfraestrutura.Outra finalidade evitar o vendor lock-in trazendo liberdade para utilizao daimplementao de outro fabricante qualquer sem precisar alterar seu software.- Quais especificaes so estas?Fontes:http://www.caelum.com.br/apostila-java-web/o-que-e-java-ee/#3-3-servidor-de-aplicacao 6. Algumas Especificaoes do JavaEE- JSF Java Server Faces- EJB Enterprise Java Beans- JPA Java Persistence API- JAX-WS e JAX-B Java API for XML Web Services e Java API for XMLBinding- JAAS Java Authentication and Authorization Service- JTA Java Transaction API- JMS Java Message Service- JNDI Java Naming and Directory Interface 7. Servidor de Aplicao- Implementam diversas das especificaes anteriores para podermos utiliz-lasem nossos sistemas.- RedHat Jboss Application Server 5- GlassFish Application Server v2 a referncia de implementao, no querdizer que o melhor- O termo application server web profile passou a existir desde o JavaEE 6 ereferencia servidores que no ofertam tudo, somente parte das especificaes.Fontes:http://www.oracle.com/technetwork/java/javaee/overview/compatibility-jsp-136984.htmlhttp://www.oracle.com/technetwork/java/javaee/overview/compatibility-javaee5-jsp-141098.htmlhttps://access.redhat.com/articles/112673 8. Servlet Container- Servidor que suporta basicamente a parte WEB Servlet, JSP, JSTL, JSF- No necessariamente o JavaEE Web Profile nem o JavaEE completo.- Exemplos: Apache Tomcat e Jetty- O Tomcat o servlet container padro utlizado pelo JBoss.Fontes:http://www.caelum.com.br/apostila-java-web/servlets/#5-2-servletshttp://www.caelum.com.br/apostila-java-web/ 9. Camadas- Viso view exibe informaes para o cliente - pginas- Controle controller recebe as informaes capturadas repassando-aspara a camada de servio. Tambm controla o fluxo de navegao das pginasexibindo os resultados e mensagens para a camada de viso.- Servio service coordena as classes de domnio para executar umahistria de usurio.- Domnio domain possui as regras de negcio. Est dividada em entidades,objetos de valor, repositrios, fbricas...- Infra infra manipulao de arquivos, criptografia, envio de e-mail...Fontes:http://jeap.rio.rj.gov.br/maverick 10. Estrutura de um Projeto Maverick- src/main --> Pasta de cdigo onde devem ficar os pacotes da camada de domnio.Exemplo: br.gov.rj.rio.iplanrio.nomedoprojeto.domainDevido a restries no classloader do seam as classes desse pacote no so "Hot-Deploy" qualquer alterao forao desenvolvedor a restartar o Servidor de Aplicao para suas alteraes serem refletidas na aplicao.- src/hot --> Pasta de cdigo que abriga todas as outras classes das mais variadas camadas da aplicao.Exemplo: br.gov.rio.rj.iplanrio.nomedoprojeto.controller, br.gov.rio.rj.iplanrio.nomedoprojeto.service,br.gov.rj.rio.iplanrio.nomedoprojeto.domain.repository, br.gov.rio.rj.iplanrio.nomedoprojeto.infraTodas as classes nesse pacote so "Hot-Deploy", qualquer alterao nas mesmas so refletidas automaticamentepara a aplicao.src/test --> Pasta de cdigo que contm as classes de teste da aplicao. Cada pacote nas pastas src/main e src/hotdevem ter seus respectivos pacotes de testes.Fontes:http://jeap.rio.rj.gov.br/maverick 11. + Estrutura de um Projeto Maverick- JRE System Library Item especfico do eclipse quie indica o JRE/JDK utilizado no projeto- Referenced Libraries As bibliotecas referenciadas pelo eclipse so exibidas aqui. Deve-se atentar que essasbibliotecas no so construdas junto com a aplicao, essa funo realizada em outro lugar, aqui so asbibliotecas referenciadas pela IDE, para o desenvolvedor conseguir efetuar o autocomplete do cdigo e achecagem automtica de tipos do eclipse.- classes Esta pasta contm os arquivos compilados(.class) da aplicao. Um filtro do eclipse impede avisualizao desses arquivos.lib Pasta que possui todas as bibliotecas necessrias para o desenvolvimento de uma aplicao com JbossSeam. Nessa pasta esto todas as possveis bibliotecas que a aplicao poder utilizar.No momento da construo da aplicao o script ANT verifica as bibliotecas declaradas nos arquivosdeployed-jars-ear.list e deployed-jars-war.list e efetua uma cpia das mesmas para a aplicaoResumindo, se precisa incluir uma biblioteca em sua aplicao voc deve efetuar uma cpia para a pasta lib,incluir seu nome no arquivo deployed-jars-ear.list ou deployed-jars-war.list e incluir a mesma no buildpath doeclipse.Fontes:http://jeap.rio.rj.gov.br/maverick 12. + Estrutura de um Projeto Maverick- dist Esta pasta contm o arquivo .ear da aplicao. O script de construo monta o "binrio" da aplicaonessa pasta e depois copia a mesma para o servidor de aplicao.exploded-archives Nesta pasta a aplicao criada em seu modo de desenvolvimento. O script *ANT monta aaplicao nessa pasta em sua forma explodida, assim conseguimos atualizao Real Time de qualquer alteraona aplicao (excluindo as alteraes na pasta de cdigo src/main).resources Todos os arquivos de configurao esto nessa pasta.src Representao fsica das pastas src/main, src/hot e src/test, um filtro do eclipse impede a visualizao dasclasses nessa pasta. Qualquer alterao deve ser efetuada pela verso lgica das pastas em src/main, src/hot esrc/test.view Todas as pginas, imagens e arquivos CSS esto nessa pasta.build.xml Arquivo de construo ANT. Todas as tarefas de construo esto nesse arquivo. O script compila asclasses, executa os testes, monta a aplicao e copia a mesma para o servidor de aplicao.*ANT um construtor feito em Java para construir aplicativos no s em Java mas em outras linguagenstambm.Fontes:http://ant.apache.org/ 13. + Estrutura de um Projeto Maverick- build-dev.properties Arquivo com parmetros para o script de construo em modo de desenvolvimento.- build-prod.properties Arquivo com parmetros para o script de construo em modo de produo.- build.properties Arquivo com parmetros para o script de construo tanto para o modo de desenvolvimentoquanto para o modo de produo. Definimos aqui as variveis jboss.home e jboss.domain.- debug-jboss-estoque.lauch, estoque.lauch e explode.lauch Arquivos responsveis pela construo automticada aplicao. Quando voc salva qualquer arquivo no eclipse ele automaticamente constri a aplicao e atualizaa mesma no servidor de aplicao.- deployed-jars-ear.list Arquivo onde esto declaradas as bibliotecas necessrias para a execuo da aplicao.Nesse arquivo ficam as bibliotecas relacionadas com as funces Enterprise da aplicao.- deployed-jars-war.list Arquivo onde esto declaradas as bibliotecas necessrias para a execuo da aplicao.Nesse arquivo ficam as bibliotecas relacionadas com as funes WEB da aplicao.- hibernate-console.properties Arquivo de configurao do plugin Hibernate Console.- seam-gen.properties Cpia do arquivo de configurao necessrio para a criao da aplicao.- validate.xml Arquivo responsvel por validaes no momento da construo da aplicao. 14. + Estrutura de um Projeto Maverick- .classpath Arquivo que contm LIBs necessrias para execuo e compilao do projeto Java dentro doEclipse e no no projeto executado diretamente no Servidor de Aplicao Jboss, pois no servidor as LIBs tem queestar em locais prprios para seu perfeito reconhecimento.- .project Arquivo com configuraes gerais para poder importar o projeto no Eclipse.Para onde vo as LIBs declaradas nestes arquivos?- deployed-jars-ear.list vo para a pasta LIB de um pacote EAR deployado.- deployed-jars-war.list vo para a pasta WEB-INF/LIB do pacote WAR deployado.Fontes:http://www.guj.com.br/articles/108 15. Pasta resources- nomedoprojeto-dev-ds.xml e nomedoprojeto-prod-ds.xml configuram os respectivos datasources(string deconexo com o banco, usurio, senha, parmetros do pool de conexes do JBoss) de cada persistence