Clique aqui para ler esse artigo em PDF.
Automação com XDoclet
Livre-se da codificação repetitiva
Retirar do programador a tarefa entediante de criar código repetitivo, adicionando mais significado e poder ao código escrito é o objetivo do XDoclet
Diversas áreas de programação em Java têm uma característica bem distinta: o uso de código baseado em modelos ou templates – aquelas classes que você sempre acaba copiando de um exemplo, ou cria baseando-se em padrões de projeto bem conhecidos. À medida que um projeto cresce, a criação dessas classes se torna apenas trabalho repetitivo. Esse é o cenário ideal para a aplicação do uma ferramenta de geração de código como o XDoclet.
Origens
Visando livrar o programador do trabalho repetitivo no desenvolvimento de EJB’s, Rickard Öberg criou uma ferramenta chamada ejbdoclet, que gerava interfaces de componentes e seus deployment descriptors. O ejbdoclet ganhou força e, com a idéia de levar a geração automática de código a outras áreas da programação, nasceu o XDoclet.
Hoje, Öberg não participa mais do desenvolvimento da ferramenta, mas o projeto atraiu um grupo de programadores ao redor do mundo, tornando a equipe do projeto verdadeiramente internacional. O XDoclet conta atualmente com desenvolvedores na Alemanha, França, Noruega, Rússia, Brasil e Estados Unidos, entre vários outros países.
@tags: metadados para seu código
Informações são fornecidas ao XDoclet através da marcação do código fonte com tags semelhantes às usadas para gerar documentação usando a ferramenta javadoc. As tags adicionam metadados ao código existente – são esses metadados a fonte de informação para a geração de arquivos pelo XDoclet.
Com o XDoclet, você passa a ver os comentários de seu código com outros olhos. Eles passam a complementar o significado dos programas, expressando coisas que a linguagem Java não consegue expressar, como as relações entre as várias partes de um EJB: as interfaces, a classe de implementação e os deployment descriptors. A principal vantagem de um modelo como esse é a centralização da informação. Tudo o que você precisa saber sobre um componente fica em um único local: a classe de implementação do componente.
Algumas das principais tags do XDoclet usada na programação de EJBs são:
·@ejb.bean – fornece informações gerais sobre um componente EJB, como o tipo de componente, seu nome, localização no JNDI, tipos de interface (local ou remota) e chave primária;
·@ejb.finder – define métodos de pesquisa (finders) para um entity bean;
·@ejb.persistence – define parâmetros de persistência para um entity bean, como o nome da tabela em que o bean é persistido, ou o nome da coluna em que cada propriedade é persistida.
Arquitetura
No coração do XDoclet, está o template engine (mecanismo de templates), responsável pela interpretação dos templates (modelos de código), usados como base para a geração dos arquivos. Os templates são escritos numa sintaxe particular ao XDoclet e fazem uso dos tag handlers (manipuladores de tags), classes que fornecem os dados necessários para os templates. Ligado aos tag handlers está o xjavadoc, um analisador de código Java responsável por fornecer aos tag handlers informações sobre as tags utilizadas na marcação do código fonte. "