Archive

Archive for May, 2009

Apache Maven – Relatórios

Os relatórios gerados pelo Maven são recursos disponíveis para visualizar o estado atual de um projeto. Existem vários relatórios disponíveis.

Relatórios sobre o Projeto

O Maven não mantém um conjunto de relatórios padrões para geração. Todos os relatórios são “plugáveis”. Isso significa que a instituição pode definir quais relatórios podem ser gerados para o site de seu projeto.

Os relatórios comumente utilizados são:

A lista dos plugins disponíveis para o Maven pode ser encontrada em:

Changelog

Este relatório é utilizado para verificar os detalhes das recentes alterações em código (ação de “commit”) realizadas pelos membros sobre os arquivos do projeto em um intervalo de tempo definido.

Possui três finalidades:

  • Changelog: apresentar informações sobre os arquivos do projeto sincronizados por cada membro no CVS;
  • Dev Activity: apresentar informações consolidadas sobre a sincronização dos arquivos no CVS pelos membros do projeto;
  • File Activity: apresentar informações consolidadas sobre a sincronização dos arquivos no CVS.

Por padrão, são apresentados os resultados referentes aos últimos 30 dias.

Este relatório é integrado com o CVS e gerado automaticamente.

Para mais detalhes, clique aqui.

Changes

Este relatório é utilizado para verificar os detalhes das versões do projeto (ação “Tag as Version”).

As informações apresentadas neste relatório são definidas manualmente no arquivo “changes.xml”.

É possível definir endereços de e-mail para receber uma notificação das alterações realizadas (opcional).

Para mais detalhes, clique aqui.

Checkstyle

Este relatório é utilizado para verificar o estilo de codificação dos arquivos.

Por padrão, é utilizado o estilo de codificação sugerido pela SUN (tudo é capturado como “Errors”). No entanto, é possível personalizar os tipos de checagem.

As informações apresentadas nesse relatório devem ser corrigidas pelos programadores.

Para mais detalhes, clique aqui.

CPD

Este relatório é utilizado para verificar a existência de códigos duplicados.

As informações apresentadas nesse relatório devem ser corrigidas pelos programadores.

Para mais detalhes, clique aqui.

PMD

Este relatório é utilizado para verificar a existência de possíveis bugs, códigos não usados, códigos que podem ser substituídos por códigos mais otimizados, códigos desnecessários e códigos duplicados.

As informações apresentadas nesse relatório devem ser corrigidas pelos programadores.

Para mais detalhes, clique aqui.

Dashboard

Este relatório agrega as informações geradas pelos relatórios Checkstyle, Cobertura, Surefire, PMD e CPD.

Para que este relatório seja gerado, é necessário adicionar a linha de código abaixo:

mvn site -Djava.awt.headless=true

Para mais detalhes, clique aqui.

FindBugs

Este relatório é utilizado para apresentar os possíveis problemas (bugs) no código, separados em categorias como:

  • Código malicioso
  • Má Prática
  • Internacionalização
  • Performance, dentre outras.

As informações apresentadas nesse relatório devem ser corrigidas pelos programadores.

Para mais detalhes, clique aqui.

JavaDocs

Este relatório apresenta a documentação gerada para todas os pacotes, classes e interfaces existentes no projeto.

Para mais detalhes, clique aqui.

JDepend

Este relatório é utilizado para verificar as métricas de qualidade para cada pacote de código do projeto, a fim de medir a qualidade do design em termos de extensibilidade, reusabilidade e manutenibilidade para controlar as dependências entre os pacotes.

As principais informações relativas aos pacotes são:

  • Number of Classes: número total de classes;
  • Concrete Classes: número total de classes concretas;
  • Abstract Classes: número total de classes abstratas e interfaces;
  • Afferent Couplings: qual o impacto de alterações nas classes do atual pacote para as classes dos outros pacotes do projeto?
  • Efferent Couplings: qual o impacto de alterações nas classes dos outros pacotes do projeto nas classes do pacote atual?
  • Abstractness: porcentagem relativa ao número de classes abstratas do pacote;
  • Instability: quanto mais o pacote atual depende de outros pacotes do sistema, mais instável ele é;
  • Distance: a relação entre o pacote e “abstractness” e “instability”, ou seja, o pacote é mais abstrato (0) ou instável (1);
  • Cycles: pacotes ciclicamente dependentes.

A intenção desse relatório é mostrar o quanto os pacotes e classes são interdependentes. A principal causa dessa dependência é o fato de existir classes concretas utilizando outras classes concretas de pacotes distintos.

Para mais detalhes, clique aqui.

Tag List

Este relatório é utilizado para verificar as marcações “TODO” existentes no código. É possível personalizar as marcações a serem verificadas (marcações “FIXME” e “@deprecated”, por exemplo).

Para mais detalhes, clique aqui.

WSDL

==== ====
==== Web Services Description Language ====
==== ====
-> Serve para descrever em detalhe e pormenor todas as características de um Web Services
-> Parâmetros necessários para invocar o Web Service
-> Parâmetros de retorno esperados
-> XML format

->TAG: PORTTYPE
– The most important WSDL element.
– It describes a web service, the operations that can be performed, and the messages that are involved.
– Contem OPERATIONs dentro dele, pelomenos uma operation.
– Os PORTTYPE caracterizam o WS em abstracto

-> TAG: OPERATION
– Pode ser considerada como um metodo
– Metodo que vai ser quebrado em 2 (MESSAGES)
– Uma MESSAGE de ENTRADA ()
– Uma MESSAGE de SAIDA ()

-> TAG: MESSAGES
– Defines the data elements of an operation.
– Each message can consist of one or more parts
– The parts can be compared to the parameters of a function

->TAG: BINDING
– The communication protocols used by the web service
– Os bindings caracterizam o WS em concreto
– Atrelam o PORTTYPE ao SOAP em nosso caso

References

Wiki
http://en.wikipedia.org/wiki/Web_Services_Description_Language

Invoking Web services with Java clients
http://www.ibm.com/developerworks/webservices/library/ws-javaclient/index.html

Examples:
http://api.google.com/GoogleSearch.wsdl

Categories: WebService