Java Pet Store 2.0 Reference Application Guilherme Oliveira (gkmo)

Slides:



Advertisements
Apresentações semelhantes
JAVA Orientação a Objetos
Advertisements

I/O Carlos Bazilio Depto de Ciência e Tecnologia
Gerenciamento de Dados e Informação Estudo de caso – PL/SQL
Sistemas distribuídos
Marco A. S. Reis JPQL Marco A. S. Reis
Reflexão Marco Antonio Arquiteto de Software Novembro/2007.
Sockets Marco Antonio – marcoreis.net Arquiteto de Software Dezembro/2007.
Prof. Alessandro J. de Souza
Tratamento de Exceções
Java Conexão com Banco de Dados
Excepções Algoritmos e Tipos Abstractos de Informação (ATAI)
Linguagens de Programação Orientadas a Objetos
Classes Concretas e Abstratas
ZK RIA com ZK Framework.
9 Controle de fluxo Seqüenciadores. Jumps. Escapes. Exceções.
7 Abstração Genérica Unidades genéricas e instanciação.
Exemplos de Refactoring Alguns exemplos e considerações sobre Refactoring.
Documentando con Javadoc
Excepções e Streams em Java
Estrutura de Dados em Java
Prof.: Bruno Rafael de Oliveira Rodrigues
Hibernate com JPA Prática
Acesso a Base de Dados JDBC Trabalho Realizado por:
AdverServer Servidor de Ranking para AdverGames Parte 1 Felipe Maia.
Bruno Rafael de Oliveira Rodrigues. Tratadores de Excessões A exceção é uma indicação de que um erro ou problema aconteceu durante a execução de uma aplicação.
André Roeck Chaiene Oliveira Henrique dos Santos Lucas Wolff
JAVA Linguagem Ambiente de Desenvolvimento
Streams –input e output
Chamada Remota de Procedimentos
Hibernate Java avançado – PCC Jobson Ronan
Desenvolvimento de Aplicações CORBA
Hibernate Java avançado – PCC Jobson Ronan
Aula 2 – Primeiros Passos com a arquitetura Web Servidor
Capítulo 6 Exceções.
1 JavaCC Prof. Alexandre Monteiro Baseado em material cedido pelo Prof. Euclides Arcoverde Recife.
Banco de Dados não Convencionais Fausto Maranhão Ayres 14 BDOO – db4o
Tipos Especiais de Listas
T. D. S. I. PARA WEB Prof. Emmanuel Nolêto. Java RMI.
The Factory Esclarecendo a arquitetura utilizada no projeto Piloto Autor: Wabber Filho.
Pilhas Profa. Nádia Félix.
Prof. Roberto Rosa Aula 8.  A partir de agora vamos aprender como ver qual é o erro que está acontecendo em nosso projeto. Para.
Programação Orientada a objetos II Rafael Perazzo B Mota Semana II.
Linguagem II Exceções.
Paradigmas da Programação – Semestre 1 – Aula 10 Professor: Eduardo Mantovani )
Programação Orientada à Objetos
Aula 2 – Primeiros Passos com a arquitetura Web Servidor Instituto Metodista Izabela Hendrix Curso de Tecnologia em Análise e Desenvolvimento de Sistemas.
Tratamento de Exceções
CLASSE ARQUIVO Comandos Básicos. Criação da variável Arquivo nomeDoArquivo = new Arquivo ( “nomeDoArquivo.in”, “nomeDoArquivo.out” ); nomeDoArquivo.in.
Capítulo 6 Exceções.
Programação orientada a aspectos Marcação de Concerns Paulo Fagner Thiago Brayner Tiago Vinícius.
Programação para Web Unidade 06 – Java Beans e BDs Prof.: Henrique Santos.
Estrutura de Controle em JAVA
Exceções Suzana Fragoso (smpf) Adaptado do material de Guilherme Carvalho (gvc)
Exceções Profa. Patrícia A. Jaques Alterada por Leandro Tonietto abr-15.
Seam Framework Básico Cleverson Sacramento \\ZYCNOTE\Seam\
Java Conexão com Baco de dados Saulo Bazzi Oberderfer Fonte:
JavaServer Faces Rapid Web Application Development em Java Ricardo Cavalcanti Jobson Ronan
SISTEMA PROCESSUAL DIGITAL
Lucas Figueiredo Marcelo Pereira Ranieri Valença Rosana Matos Valmir Sena.
Fábrica de Software Ferramentas para Auditoria de Código Eduardo Aranha.
Título do Projeto Equipe.
Globalcode – Open4Education 1 EJB3 Interceptors Ricardo Limonta.
Leo Silva Leonardo Murta Luiz Viana Persistência em Java.
Aprendendo como funciona o NHibernate Elvis Medeiros Programador .NET
JSTL.
 Um servlet é uma classe Java usada para estender as capacidades de servidores que hospedam aplicativos acessados por meio do paradigma request-response.
Capítulo 15 – Tratamento de Exceções
1 Arquitetura e JSF Gustavo Wagner
Reference Application
Transcrição da apresentação:

Java Pet Store 2.0 Reference Application Guilherme Oliveira (gkmo)

O projeto Desenvolvida pelo programa Java BluePrints da Sun Microsystems. Desenvolvida para ilustrar como J2EE 5 pode ser usado para desenvover aplicações Web 2.0

O projeto

Pontos importantes: –Componentes JSF “AJAX-enabled” –Java Persistence APIs –Aplica o MVC e outros padrões de projeto –Mashups como Google Maps e PayPal –Usa um feed RSS –E um bocado de outras coisas…

Métricas Total de Linhas de Código –3807 Total de Classes –40 Total de Pacotes –8 * Páginas HTML/JSF/JSP não foram incluídas

Concerns Concerns identificados –Maintain pet (858 LOC) –Search for pets (1245 LOC) –Rate a pet (30 LOC) –Map pets (940 LOC) –Buy a pet (16 LOC) –Catalog (662 LOC) –Persistency (349 LOC) –Logging (799 LOC) –Transactions (102 LOC)

Tempo de marcação Cerca de 6~7 horas para escolher os concerns e realizar a marcação

Hierarquia de Concerns

Exemplo Concerns public String addItem(Item item){ EntityManager em = emf.createEntityManager(); try{ utx.begin(); em.joinTransaction(); for(Tag tag : item.getTags()) { tag.incrementRefCount(); tag.getItems().add(item); em.merge(tag); } em.persist(item); utx.commit(); // index item if(bDebug) System.out.println("\n***Item id of new item is : " + item.getItemID()); indexItem(new IndexDocument(item)); } catch(Exception exe){ try { utx.rollback(); } catch (Exception e) {} throw new RuntimeException("Error persisting item", exe); } finally { em.close(); } return item.getItemID(); } Persistency Transaction Logging Search Maintain pet

Exemplo Concerns public void updateItem(Item item){ EntityManager em = emf.createEntityManager(); try{ utx.begin(); em.merge(item); utx.commit(); // update index using delete/insert method (only one available) UpdateIndex.deleteIndex(PetstoreConstants.PETSTORE_INDEX_DIRECTORY, item.getItemID()); indexItem(new IndexDocument(item)); } catch(Exception exe){ try { utx.rollback(); } catch (Exception e) {} throw new RuntimeException("Error updating rating", exe); } finally { em.close(); } Persistency Transaction Search Maintain pet

Dificuldades Compilar e rodar a aplicação Escolher casos de uso como concerns Como realizar as marcações quando se usa Annotations (JPA) e JSF/JSP

Métricas ConcernDOSCDOSMCDCCDOSLOC Rate a pet0,0000, Maintain pet0,8840, Catalog0,7790, Search for pets0,9200, Buy a pet0,0000, Map pets0,8350, Persistecny0,4060, Logging0,8890, Transaction0,0000,

Conclusão Transation crosscuts Persistency Logging crosscuts “everything” Search for pets crosscuts Maintain pet As métricas foram úteis para os concerns relacionados aos casos de uso, para o restante não seria necessário.