Introdução. Tutorial do Xdoclet. Resumo



Documentos relacionados
O nome ANT é uma sigla para another neat tool (mais uma ferramenta organizada), segundo seu autor James Duncan Davidson.

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl

Tutorial: Criando aplicações J2EE com Eclipse e jboss-ide

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

Universidade da Beira Interior

J2EE TM Java 2 Plataform, Enterprise Edition

Parte I. Demoiselle Mail

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS


DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

TUTORIAL SISTEMA DE CONTROLE DE ACESSO

HIBERNATE EM APLICAÇÃO JAVA WEB

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva

Instalando o J2SE 5.0 JDK no Windows 2000/XP

Google Web Toolkit* Clério Damasceno Soares, Daniel da Silva Filgueiras e Fábio Figueiredo da Silva

Desenvolvendo Websites com PHP

Noções de. Microsoft SQL Server. Microsoft SQL Server

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Manipulação de Banco de Dados com Java 1. Objetivos

WebApps em Java com uso de Frameworks

Configuração Do Firebird no Ide NetBeans


JDBC. Siga as instruções para instalar o banco de dados H2 e criar a tabela Alunos.

JDBC Java Database Connectivity

Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate

Etc & Tal. Volume 2 - Número 1 - Abril 2009 SBC HORIZONTES 44

INTRODUÇÃO 12. DOCUMENTAÇÃO INTRODUÇÃO INTRODUÇÃO

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

Persistência de dados com JPA. Hélder Antero Amaral Nunes

Acessando um Banco de Dados

UFG - Instituto de Informática

UNIVERSIDADE FEDERAL DA BAHIA INSTITUTO DE MATEMÁTICA CIÊNCIA DA COMPUTAÇÃO LINGUAGENS PARA APLICAÇÃO COMERCIAL. Java Peristence API 1.

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

Aula 03 - Projeto Java Web

Integração de sistemas utilizando Web Services do tipo REST

Nome N Série: Ferramentas

QUESTINAMENTOS AO EDITAL DE CONCORRÊNCIA 01/2013

INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF

Aprenda como instalar o plugin EclipseUML no Eclipse e como utilizá-lo para fazer engenharia reversa de seu código-fonte.

DWR DIRECTED WEB REMOTING

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse

UFG - Instituto de Informática

Fundamentos da Plataforma Java EE. Prof. Fellipe Aleixo

Introdução ao Android

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO

Manual de Instalação PIMSConnector em Windows

Lógica de Programação

RevISTa: Publicação técnico-científica do IST-Rio. nº 05 Data: Dezembro / 2012 ISSN

Projeto Demoiselle. Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge.

Instalando e configurando o Java Development Kit (JDK)

CONVENÇÃO DE CÓDIGO JAVA

Apache Ant. Leonardo Gresta Paulino Murta

Linguagem de Programação Visual

Documentação Usando o Javadoc

Scriptlets e Formulários

Demoiselle Report Guide. Demoiselle Report. Marlon Carvalho. Rodrigo Hjort. Robson Ximenes

Criar uma aplicação JPA2 com EclipseLink e H2

NETBEANS IDE UTILIZAÇAO DE RECURSOS PARA DESENVOLVIMENTO DE PROJETO JAVA WEB

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS

Ferramentas: jar e javadoc

Android e Bancos de Dados

VISUAL LIGHTBOX FERRAMENTA WEB DESIGN FABIANO KEIJI TAGUCHI

Manual de Instalação PIMSConnector em Linux

Programação Web. Professor: Diego Oliveira. Conteúdo 02: JSP e Servlets

Aula 1 Acesso a Banco de Dados

Melhoria no Desenvolvimento Ágil com Implantação de Processo de Integração Contínua Multiplataforma para Java e.net. Hudson

Java 2 Standard Edition. Configuraçã. ção o do ambiente. JEdit + Ant. argonavis.com.br. Helder da Rocha (helder@acm.org)

Persistindo dados com TopLink no NetBeans

PostgreSQL & PostGIS: Instalação do Banco de Dados Espacial no Windows 7

Persistência de Classes em Tabelas de Banco de Dados

Prevayler. Perola. André Luís Sales de Moraes Juliana Keiko Yamaguchi Tatiana Yuka Takaki

Classes de Entidades Persistentes JDB

Relatório referente a compreensão da programação JSP. Realizado do dia de 22 abril de 2010 a 03 de maio de 2010.

GERADOR DE CÓDIGO JSP BASEADO EM PROJETO DE SGBD. Acadêmico: Maicon Klug Orientadora: Joyce Martins

Java e Banco de Dados: JDBC, Hibernate e JPA

Programação para Internet Orientada a Objetos com PHP & MySQL Instalando e configurando um ambiente de ferramentas PHP e MySQL. Prof. MSc.

Introdução à Plataforma Eclipse. Leandro Daflon

Computação II Orientação a Objetos

Instalação do ByYou ESB. Guia de Instalação e Atualização do ByYou ESB

PHP Profissional. Alexandre Altair de Melo Mauricio G. F. Nascimento

Introdução ao PHP. Prof. Késsia Marchi

1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF)

Tutorial: Serviços web e suas composições

ANDROID APPLICATION PROJECT

CURSO DESENVOLVEDOR JAVA Edição 2010

Tutorial Eclipse (IDE)

CONFIGURAÇÃO MINIMA EXIGIDA:

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional

Java 2 Enterprise Edition Componentes Web J2EE

Integração entre o IBM HTTP SERVER, APACHE WEB Server e IBM Websphere Application Server

GEPLANES GESTÃO DE PLANEJAMENTO ESTRATÉGICO MANUAL DE INSTALAÇÃO DO GEPLANES EM UM AMBIENTE WINDOWS

Passos para a configuração do ambiente de desenvolvimento:

Sistema de Recursos Humanos

Transcrição:

Tutorial do Xdoclet Resumo Apresentar a ferramenta XDoclet uma ferramenta utilizada como tarefa (task) do Jakarta Ant que permite executar e criar templates para gerar arquivos, inclusive código Java, reduzindo o tempo de desenvolvimento pois todos os esforços são direcionados para a regra de negócios, facilitando o trabalho do desenvolvedor que com um mínimo de esforço adiciona ao código tags para representar coisas que a linguagem Java não consegue expressar, como relações entre as várias partes de um Enterprise JavaBeans: as interfaces, as classes de implementação e os deployment descriptor, arquivos de mapeamento dos frameworks de persistência objeto-relacional e a integração com os servidores de aplicações, JBoss, Bea WebLogic, etc. Introdução É comum um projeto de software ser composto de diferentes arquivos, como: arquivos de publicação da aplicação (deployment descriptor), arquivos de mapeamento objeto-relacional, de componentes (ejb-jar.xml, web.xml,.hbm.xml (hibernate)), além de códigos Java que como são baseados em padrões (design patterns) repetem freqüentemente, o que acaba tornando o desenvolvimento mais trabalhoso e repetitivo. Nestas circunstâncias o desenvolvedor recorre ao recurso de copiar (Ctrl+C) e colar (Ctrl + V), que não é nada muito produtivo, e que propícia uma grande margem de erros. A idéia é eliminar este trabalho repetitivo e descentralizado através de alguma ferramenta de geração automática de código, deixando que todo o esforço do desenvolvimento seja direcionado para a lógica de negócio. Hoje o XDoclet posiciona como uma ótima ferramenta para a realização deste trabalho repetitivo. O XDoclet é uma ferramenta puro Java que habilita a programação orientada a atributos, que com um mínimo de esforço permite a geração de código Java ou arquivo texto inclusive XML, com base em @tags semelhantes às utilizadas pela ferramenta javadoc da Sun. As tags adicionam metadados ao código, são esses metadados a fonte de informação para a geração de arquivos e códigos utilizando os templates disponíveis. No entanto 1

ela só pode ser utilizada como parte do processo de build da ferramenta Jakarta Ant. O Xdoclet é uma evolução da ferramenta de criação de EJBs (Entreprise JavaBeans), ejbdoclet, criada por Richard Öberg, 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 surgiu o Xdoclet. A principal vantagem do desenvolvimento utilizando o XDoclet é a centralização da informação. Tudo o que é preciso saber sobre um componente fica em um único local, a classe de implementação do componente, mudanças no componente acarreta mudanças automáticas em suas dependências. Arquitetura do XDoclet No centro do Xdoclet, está o template engine (mecanismo de templates). Os templates são escritos numa sintaxe particular ao Xdoclet convencionalmente possuem a extensão.j e se assemelham, as estruturas a de documentos JSP (Java Server Pages). Eles fazem uso do tag handlers (manipuladores de tags), classes que fornecem os dados necessários para o templates. Nas tags de templates é permitidos inserir variáveis de configuração, informações de classes, métodos, tipos, dados de arquivos, tags do javadoc, etc. Ligado ao tag handlers está o xjavadoc, um analisador de código Java, responsável por fornecer ao handlers informações sobre as tags utilizadas na marcação do código fonte A execução de um template do XDoclet segue o fluxo: o engine carrega um template, identifica os tags handlers utilizado e executa-os a medida que prossegue analisando o template. Os handlers fazem uso do xjavadoc para obter as informações necessárias as @tags e geram no resultado final. Esta arquitetura torna-o bastante flexível, se necessário for, pode-se modificar a forma como é gerado algum elemento, para isso basta modificar o template responsável por gera-lo, ou se algum template para a representação de algum elemento ainda não existir, basta escrever o template e opcionalmente alguns tag handlers. Download e Instalação 2

Pré Requisitos Para executar o Xdoclet é necessário ter o ambiente de desenvolvimento Java configurado corretamente (variáveis JAVA_HOME e CLASSPATH) da versão 1.4 (J2SDK 1.4+) ou superior e utilizar a versão do Jakarta Ant 1.5 ou superior, versões anteriores não são suportadas. No entanto os fontes (sources) compilados poderão ser executadas no J2SDK 1.3 ou superior. Download Baixe a versão mais recente do arquivo xdoclet-bin<versão>.zip no endereço http://sourceforge.net/project/showfiles.php?group_id=31602. Neste pacote encontram-se vários arquivos.jar, que são as bibliotecas necessárias e as classes do XDoclet, documentação, exemplos e uma versão pré-compilada do XDoclet. Descompacte o arquivo zip em algum diretório de sua escolha e for preservada a estrutura de diretório, ela será como mostra a figura abaixo docs diretório com toda a documentação que acompanha a ferramenta. Para visualiza-la aponte o browser para o arquivo index.html. lib -bibliotecas necessárias para a execução do Xdoclet. samples exemplo que acompanha o Xdoclet para visualiza-lo é necessário executa-lo através do Ant. Como o XDoclet é utilizado como uma tarefa do Ant é preciso escrever um arquivo build.xml (buildfile) que chame as funcionalidades do Xdoclet. Como usar XDoclet através do Ant Primeiro escolha uma das tarefas do Xdoclet para o Ant; As quatro principais tarefas são o xdoclet.doclettask - tarefa genérica; serve de superclasse para as outras o xdoclet.doc.documentdoclettask o xdoclet.ejb.ejbdoclettask o xdoclet.web.webdoclettask Cada tag tem um conjunto de atributos aceitos e um conjunto de tags internos com seus atributos. Para obter mais informações consulte a documentação de referência; Depois crie uma tag usando a tarefa<taskdef> Exemplo: 3

<taskdef name="xdoclet" classname="xdoclet.doclettask"> <classpathref ="xdoclet.path" /> </taskdef> No exemplo acima foi definido uma tarefa com o nome de xdoclet utilizando a DocletTask, que requer um sub-elemento <template> que descreva a geração do texto conforme determina em sua construção e a localização do template. Os templates disponíveis estão localizados no diretório lib do xdoclet, são os arquivos JAR (Java Archive). Exemplo: xdoclet-bea-module-1.2b4.jar, xdoclet-orion-module-1.2b4.jar. Exemplo de implementação O exemplo que será utilizado para demonstrar a utilização do Xdoclet, será para a partir do código fonte Java gerar os arquivos de mapeamento do Hibernate. Para os que não conhecem o Hibernate é um frameworks de mapeamento objeto-relacional. Ao utiliza-lo você consegue abstrair a camada de persistência, além de acabar com a dependência da linguagem SQL (Structured Query Language) dos bancos de dados relacional. Este tutorial não tem a intenção de estudar o Hibernate. Deixo para uma outra oportunidade, ou obtenha maiores informações no site do projeto. Vide referência. O exemplo apresentado é bastante simples, basicamente ele é composto de uma tabela chamada contatos, que terá a sua estrutura criada pelo XDoclet na base de sua preferência. Depois de criado ela terá a seguinte estrutura: Id Nome Telefone Estrutura da tabela contatos Vamos primeiro escrever a classe acrescentando a elas as @tags (templates) disponíveis para o Hibernate. Foram omitidos do código os métodos setters, mas poderá s visualizar o código completo no arquivo fonte disponível para download. package hotwork; / Description of the Class @author alessandro.leite @created 29 de Março de 2004 @since 1.0 @hibernate.class table="contatos" / public class Contatos { private long id; private String nome; 4

private String fone; / Gets the id attribute of the Contatos object @return The id value @hibernate.id generator-class="native" / public long getid() { return this.id; / Gets the nome attribute of the Contatos object @return The nome value @hibernate.property / public String getnome() { return this.nome; / Gets the fone attribute of the Contatos object @return The fone value @hibernate.property / public String getfone() { return this.fone; Com a classe pronta, partimos para escrever o arquivo de build (build file) do Ant, será através dele que conseguiremos interagir com o Xdoclet através da @tags inseridas no código. Abaixo segue trecho do arquivo de build, responsável por gerar os arquivos de mapeamento do Hibernate (.hbm.xml). <target name="generate-map" description= "Gerando os arquivos de mapeamento do Hibernate"> <taskdef name="hibernatedoclet" classname="xdoclet.modules.hibernate.hibernatedoclettask"> <classpath> <fileset dir= "${xdoclet.lib.dir"> <include name= ".jar"/> </fileset> </classpath> </taskdef> 5

<mkdir dir= "${build.hbm.dir"/> <hibernatedoclet destdir= "${build.hbm.dir" excludedtags= "@version,@author,@todo" force= "true" verbose= "true"> <fileset dir= "${src.java.dir"> <include name= "/.java"/> <exclude name= "/Hibernate.java"/> </fileset> <hibernate/> </hibernatedoclet> <replace dir= "${build.hbm.dir"> <include name= "/hibernate/.hbm.xml"/> <replacefilter token = "readonly=" value= "inverse"/> <replacefilter token = "role=" value= "name="/> <replacefilter token = "hibernate-mapping.dtd" value= "hibernate-mapping-2.0.dtd"/> </replace> </target> Trecho do arquivo build.xml Ferramentas Para ajudar o desenvolvedor a utilizar as muitas @tags disponíveis no XDoclet para os mais diferentes propósitos é crucial a integração com as ferramentas de desenvolvimento disponíveis (Eclipse, Jbuilder, Jedit, etc). As principais opções são: JBossIde um plugin para o Eclipse que facilita o deployment de aplicações no JBoss, e o desenvolvimento, oferecendo o recurso de completar o código automaticamente com as tags disponíveis. O download e maiores informações pode ser obtido no endereço: http://www.jboss.org/developers/projects/jboss/jbosside.jsp Xdocletgui uma ferramenta gráfica para o desenvolvimento de @tags. Ela tem disponível plugins para Eclipse, NetBeans, Intellig IDEA, JBuilder. O download está disponível através do CVS do Xdoclet. Middlegen é uma ferramenta que possibilita através de uma conexão JDBC gerar o script baseado na base de dados informado pelo driver JDBC. Com ele é possível gerar: 6

EJB (CMP 2.0) JDO JSP/Struts Download e mais informação no http://middlegen.codehaus.org Se você deseja obter mais informação sobre as ferramentas disponíveis, acesse o endereço: http://xdoclet.sourceforge.net/tools.html Referência Bibliográfica [1] Documentação no Xdoclet disponível em: http://xdoclet.sourceforge.net [2] Walls Craig, Richards Norman, Xdoclet in Action Editora Manning [3] Tutorial: Use XDoclet to generate Web service support files http://www-106.ibm.com/developerworks/webservices/edu/ws-dw-ws-xdoc-i.html Último acesso em 31 de março de 2004 [4] Tutorial: Enhance J2EE component reuse with XDoclet http://www-106.ibm.com/developerworks/webservices/edu/ws-dw-ws-j2x-i.html [5] Tutorial: Object to Relational Mapping and Relationships with Hibernate http://www.meagle.com:8080/hibernate.jsp - último acesso em 31 de março de 2004 [7] Artigo: Automação com Xdoclet, Marcus Brito publicado na revista Java Magazine Edição n.º 6, Ano I - http://www.javamagazine.com.br [8] Página de especificação de Enterprise JavaBeans http://java.sun.com/products/ejb [9] Hibernate, framework persistência http://www.hibernate.org [10] Jakarta Ant, ferramenta de automação http://ant.apache.org Este documento ainda não encontra-se na sua versão final, assim sendo, o autor está aberto a receber qualquer comentário a respeito, através do e-mail: alessandro@dev.java.net Obrigado, Alessandro Ferreira Leite 7