Introdução ao Apache Ant
|
|
- Manoela de Almeida Ávila
- 8 Há anos
- Visualizações:
Transcrição
1 J530 - Enterprise JavaBeans Introdução ao Apache Ant Helder da Rocha (helder@acm.org) argonavis.com.br 1
2 Tópicos abordados Este módulo tem como finalidade introduzir a principal ferramenta utilizada no ambiente de desenvolvimento usado neste curso Ant é uma ferramenta de código aberto e é o padrão de fato do mercado para gerenciamento de projetos independentes de IDEs proprietárias Por que Ant? Os melhores projetos open-source usam Ant Várias aplicações J2EE dependem do Ant Ant pode ser integrada e usada como principal ferramenta de construção nos principais ambientes de desenvolvimento comerciais 2
3 O que é Ant? Uma ferramenta para construção de aplicações Implementada em Java Baseada em roteiros XML Extensível (via scripts ou classes) 'padrão' do mercado Open Source (Grupo Apache, Projeto Jakarta) Semelhante a make, porém Mais simples e estruturada (XML) Mais adequada a tarefas comuns em projetos Java Independente de plataforma Onde encontrar: 3
4 Para que serve? Para montar praticamente qualquer aplicação Java que consista de mais que meia dúzia de classes; Aplicações Distribuídas em pacotes Que requerem a definição de classpaths locais, e precisam vincular código a bibliotecas (JARs) Cuja criação/instalação depende de mais que uma simples chamada ao javac. Ex: RMI, CORBA, EJB, servlets, JSP,... Para automatizar processos frequentes Javadoc, XSLT, implantação de serviços Web e J2EE (deployment), CVS, criação de JARs, testes, FTP, 4
5 Como funciona? Ant executa roteiros escritos em XML: 'buildfiles' Cada projeto do Ant possui um buildfile Subprojetos podem ter, opcionalmente, buildfiles adicionais chamados durante a execução do primeiro Cada projeto possui uma coleção de alvos Cada alvo consiste de uma seqüência de tarefas Exemplos de execução ant Procura build.xml no diretório atual e roda alvo default ant -buildfile outro.xml Executa alvo default de arquivo outro.xml ant compilar Roda alvo 'compilar' e possíveis dependências em build.xml 5
6 Como funciona (2) Ant <xml> <xml> <xml> <xml> *.java <cvs> CVS subproj <ant> build.xml <xdoclet> <javac> <javadoc> <xml> <xml> build.xml *.java <javac> <xml> <xml> ejb-jar.xml <ejb-jar> *.class <junit> *.html *.class <jar update="true"> Testes ejb-jar.jar docs.zip <copy> <mim > <ftp> deploy 6
7 Buildfile O buildfile é um arquivo XML: build.xml (default) Principais elementos <project default="alvo_default"> Elemento raiz (obrigatório): define o projeto. <target name="nome_do_alvo"> Coleção de tarefas a serem executadas em seqüência Pode-se estabelecer dependências entre alvos Deve haver pelo menos um <target> <property name="nome" value="valor"> Pares nome/valor usados em atributos dos elementos do build.xml da forma ${nome} Propriedades também podem ser definidas em linha de comando (-Dnome=valor) ou lidas de arquivos externos (atributo file) Tarefas (mais de 130) - usadas dentro dos alvos. <javac>, <jar>, <java>, <copy>, <mkdir>,... 7
8 Buildfile (2) Tarefas <?xml version="1.0" encoding="iso "?> <!-- Compila diversos arquivos.java --> <project default="compile" basedir="."> <property name="src.dir" value="src" /> <property name="build.dir" value="classes" /> <target name="init"> <mkdir dir="${build.dir}" /> <target name="clean"> <delete dir="${build.dir}" /> <target name="compile" depends="init" description="compila os arquivos-fonte"> <javac srcdir="${src.dir}" destdir="${build.dir}"> <classpath> <pathelement location="${build.dir}" /> </classpath> Elementos embutidos nas tarefas </javac> </project> Propriedades Alvos 8
9 Executando buildfile da página anterior C:\usr\palestra\antdemo> ant Buildfile: build.xml init: [mkdir] Created dir: C:\usr\palestra\antdemo\classes compile: [javac] Compiling 2 source files to C:\usr\palestra\antdemo\classes BUILD SUCCESSFUL Total time: 4 seconds C:\usr\palestra\antdemo> ant clean Buildfile: build.xml clean: [delete] Deleting dir: C:\usr\palestra\antdemo\classes BUILD SUCCESSFUL Total time: 2 seconds C:\usr\palestra\antdemo> Exemplo ANTES de 'ant' DEPOIS de 'ant clean' build.xml src argonavis util Tiracentos.java TiracentosTest.java DEPOIS de 'ant' ou 'ant compile' build.xml src argonavis util Tiracentos.java TiracentosTest.java classes argonavis util Tiracentos.class TiracentosTest.class 9
10 Dependências Fazem com que a chamada de um alvo cause a chamada de outros alvos, em determinada ordem Promovem reuso de código init <target name="init" /> compile javadoc <target name="clean" /> <target name="compile" depends="init"/> <target name="javadoc" depends="compile"/> build test <target name="build" depends="compile"/> <target name="test" depends="build"/> <target name="deploy" depends="build"/> <target name=" " depends="archive"/> <target name="archive" depends="build, javadoc"/> <target name="re-deploy" deploy 2 re-deploy 1 1 archive 2 depends="clean, deploy"/> clean 10
11 Tarefas condicionadas Algumas tarefas só são executadas dentro de determinadas condições <mkdir> só cria o diretório se este não existir <delete> só apaga o que existe (não faz nada se arquivo ou diretório não existir) <javac> compila apenas os arquivos *.java que foram modificados desde a última compilação Comportamento condicional do <javac> depende da estrutura de pacotes É preciso que a estrutura de diretórios dos fontes (diretório src/) reflita a estrutura de pacotes Ex: se Conta.java declara pertencer a pacote banco, deve estar em diretório banco dentro de src/ 11
12 O que se pode fazer com Ant? Compilar. <javac>, <csc> Gerar documentação <javadoc>, <junitreport>, <style>, <stylebook> Gerar código (XDoclet) <ejbdoclet>, <webdoclet> Executar programas <java>, <apply>, <exec> <ant>, <sql> Empacotar e comprimir <jar>, <zip>, <tar>, <war>, <ear>, <cab> Expandir, copiar, instalar <copy>, <delete>, <mkdir>, <unjar>, <unwar>, <unzip> Acesso remoto <ftp>, <telnet>, <cvs>, <mail>, <mim > Montar componentes <ejbc>, <ejb-jar>, <rmic> Testar unidades de código <junit> Executar roteiros e sons <script>, <sound> Criar novas tarefas <taskdef> 12
13 <javac>: Chama o compilador Java Tarefas úteis (1) <javac srcdir="dirfontes" destdir="dirbuild" > <classpath> <pathelement path="arquivo.jar" /> <pathelement path="/arquivos" /> </classpath> <classpath idref="extra" /> </javac> <jar>: Monta um JAR <jar destfile="bin/executavel.jar"> <manifest> <attribute name="main-class" value="exemplo.main.exec"> </manifest> <fileset dir="${build.dir}"/> </jar> 13
14 Tarefas úteis (2) <mkdir>: cria diretórios <mkdir dir="diretorio" /> <copy>: copia arquivos <copy todir="dir" file="arquivo" /> <copy todir="dir"> <fileset dir="fonte" includes="*.txt" /> </copy> <delete>: apaga arquivos <delete file="arquivo" /> <delete dir="diretorio"/> 14
15 Tipos de dados (1) <fileset>: árvore de arquivos e diretórios Conteúdo do conjunto pode ser reduzido utilizando elementos <include> e <exclude> Usando dentro de tarefas que manipulam com arquivos e diretórios como <copy>, <zip>, etc. <copy todir="${build.dir}/meta-inf"> <fileset dir="${xml.dir}" includes="ejb-jar.xml"/> <fileset dir="${xml.dir}/jboss"> <include name="*.xml" /> <exclude name="*-orig.xml" /> </fileset> </copy> Árvore a ser copiada para ${build.dir}/meta-inf consiste de O arquivo ejb-jar.xml localizado em ${xml.dir} Todos os arquivos.xml de ${xml.dir}/jboss com exceção dos arquivos terminados em -orig.xml 15
16 Tarefas úteis (3) <javadoc>: Gera documentação do código-fonte. Exemplo: alvo generate-docs abaixo gera documentação excluindo classes que terminam em 'Test.java' <target name="generate-docs"> <mkdir dir="docs/api"/> <copy todir="tmp"> <fileset dir="${src.dir}"> <include name="**/*.java" /> <exclude name="**/**test.java" /> </fileset> </copy> <javadoc destdir="docs/api" packagenames="argonavis.*" sourcepath="tmp" /> Copiar de ${src.dir} Procurar em todos os subdiretórios <delete dir="tmp" /> Onde achar as fontes 16
17 Podem ser definidas com <property> Propriedades <property name="app.nome" value="jmovie" /> Podem ser carregadas de um arquivo <property file="c:/conf/arquivo.properties" /> app.ver=1.0 docs.dir=c:\docs\ codigo=15323 arquivo.properties Podem ser passadas na linha de comando c:\> ant -Dautor=Wilde Para recuperar o valor, usa-se ${nome} <jar destfile="${app.nome}-${app.ver}.jar"/> <echo message="o autor é ${autor}" /> <mkdir dir="build${codigo}" /> 17
18 Propriedades especiais <tstamp>: Grava um instante A hora e data podem ser recuperados como propriedades ${TSTAMP} hhmm 1345 ${DSTAMP} aaaammdd ${TODAY} dia mes ano 25 May 2002 Novas propriedades podem ser definidas, locale, etc. Uso típico: <tstamp/> <property environment="env">: Propriedade de onde se pode ler variáveis de ambiente do sistema Dependende de plataforma <target name="init"> <property environment="env"/> <property name="j2ee.home" value="env.j2ee_home" /> 18
19 Tipos de dados (2) <patternset>: coleção de padrões de busca <patternset id="project.jars" > <include name="**/*.jar"/> <exclude name="**/*-test.jar"/> </patternset> Padrões podem ser reusados e são identificados pelo ID <path>: coleção de caminhos Associa um ID a grupo de arquivos ou caminhos <path id="server.path"> <pathelement path="${j2ee.home}/lib/locale" /> <fileset dir="${j2ee.home}/lib"> <patternset refid="project.jars" /> </fileset> </path> <target name="compile" depends="init"> <javac destdir="${build.dir}" srcdir="${src.dir}"> <classpath refid="server.path" /> </javac> 19
20 Tipos de dados (3) <mapper>: altera nomes de arquivos durante cópias ou transformações (use dentro de <copy>, por exemplo) Seis tipos: identity, flatten, merge, regexp, glob, package build.xml src argonavis util Tiracentos.java TiracentosTest.java <mapper type="flatten" /> build.xml src Tiracentos.java TiracentosTest.java <mapper type="package" from="*.java" to="*.txt"/> build.xml src argonavis.util.tiracentos.txt argonavis.util.tiracentostest.txt <mapper type="glob" from="*.java" to="*.java.bak"/> build.xml src argonavis util Tiracentos.java.bak TiracentosTest.java.bak 20
21 Tipos de dados (4): filtros <filter> e <filterset>: Permite a substituição de padrões em arquivos durante a execução de uma tarefa Caractere Exemplo: a cópia abaixo irá substituir todas as ocorrências por c:\j2sdk1.4 nos arquivos copiados <copy todir="${dest.dir}"> <fileset dir="${src.dir}"/> <filterset> <filter token="javahome" value="c:\j2sdk1.4"/> </filterset> </copy> Pares token=valor podem ser carregados de arquivo: <filterset> <filtersfile file="build.properties" /> </filterset> 21
22 Tarefas úteis (4): J2EE <ear destfile="app.ear" appxml="application.xml"> <fileset dir="${build}" includes="*.jar,*.war"/> </ear> <ejbjar srcdir="${build}" descriptordir="${xml.dir}"... > <jboss destdir="${deployjars.dir}" /> </ejbjar> Há suporte aos principais servidores de aplicação <war destfile="bookstore.war" webxml="meta/metainf.xml"> <fileset dir="${build}/${bookstore2}" > <include name="*.jsp" /> <exclude name="*.txt" /> </fileset> <classes dir="${build}" > <include name="database/*.class" /> </classes> <lib dir="bibliotecas" /> <webinf dir="etc" /> </war> WEB-INF/web.xml Fileset para raiz do WAR Fileset para WEB-INF/classes Fileset para WEB-INF/lib Fileset para WEB-INF/ 22
23 Tarefas úteis (5): extensão <ejbdoclet> e <webdoclet>*: Geram código Requer JAR de xdoclet.sourceforge.net Ideal para geração automática de arquivos de configuração (web.xml, ejb-jar.xml, application.xml, taglibs, struts-config, etc.) e código-fonte (beans, value-objects) <ejbdoclet sourcepath="src" destdir="${build.dir}" classpathref="xdoclet.path" ejbspec="2.0"> <fileset dir="src"> <include name="**/*bean.java" /> </fileset> <remoteinterface/> <homeinterface/> <utilobject/> <entitypk/> <entitycmp/> <deploymentdescriptor destdir="${dd.dir}"/> <jboss datasource="java:/oracleds" /> </ejbdoclet> * Nomes convencionais criados a partir de tarefa externa Detalhes da configuração do componente estão nos comentários de JavaDocs do código-fonte dos arquivos envolvidos e arquivos de template 23
24 Tarefas úteis (6): execução <java>: executa o interpretador Java <target name="runrmiclient"> <java classname="hello.rmi.helloclient" fork="true"> <jvmarg value="-djava.security.policy=rmi.policy"/> <arg name="host" value="${remote.host}" /> <classpath refid="app.path" /> </java> <exec>: executa um comando do sistema <target name="orbd"> <exec executable="${java.home}\bin\orbd"> <arg line="-orbinitialhost ${nameserver.host}"/> </exec> <apply>: semelhante a <exec> mas usado em executáveis que operam sobre outros arquivos 24
25 Tarefas úteis (7): rede <ftp>: Realiza a comunicação com um servidor FTP remoto para upload ou download de arquivos Tarefa opcional que requer NetComponents.jar ( <target name="remote.jboss.deploy" depends="dist"> <ftp server="${ftp.host}" port="${ftp.port}" remotedir="/jboss/server/default/deploy" userid="admin" password="jboss" depends="yes" binary="yes"> <fileset dir="${basedir}"> <include name="*.war"/> <include name="*.ear"/> <include name="*.jar"/> </fileset> </ftp> 25
26 Tarefas úteis (8): XSLT <style>: Transforma documentos XML em outros formatos usando folha de estilos XSLT (nativa) Usa TrAX (default), Xalan ou outro transformador XSL <style basedir="xmldocs" destdir="htmldocs" style="xmltohtml.xsl" /> Elemento <param> passa valores para elementos <xsl:param> da folha de estilos <style in="cartao.xml" out="cartao.html" style="cartao2html.xsl"> <param name="docsdir" expression="/cartoes"/> </style> (...) <xsl:param name="docsdir"/> (...) <xsl:valueof select="$docsdir"/> (...) build.xml cartao2html.xsl 26
27 Tarefas úteis (9): JDBC <sql>: Comunica-se com banco de dados através de um driver JDBC <property name="jdbc.url" value="jdbc:cloudscape:rmi://server:1099/cloud" /> <target name="populate.table"> <sql driver="com.cloudscape.core.rmijdbcdriver" url="${jdbc.url}" userid="helder" password="helder" onerror="continue"> </sql> <transaction src="droptable.sql" /> <transaction src="create.sql" /> <transaction src="populate.sql" /> <classpath refid="jdbc.driver.path" /> 27
28 Tarefas úteis (10): chamadas <ant>: chama alvo de subprojeto (buildfile <target externo) name="run-sub"> <ant dir="subproj" /> Chama alvo default de build.xml localizado no subdiretório subproj/ <target name="fazer-isto"> <antcall>: target="fazer"> chama alvo local <param name="oque" value="isto" /> </antcall> <target name="run-sub"> <ant dir="subproj" > <property name="versao" value="1.0" /> </ant> Define propriedade que será lida no outro build.xml <target name="fazer-aquilo"> <antcall target="fazer"> <param name="oque" value="aquilo" /> </antcall> <target name="fazer" if="oque"> <tarefa atributo="${oque}" /> Template! 28
29 Efeitos sonoros <sound>: define um par de arquivos de som para soar no sucesso ou falha de um projeto Tarefa opcional que requer Java Media Framework Exemplo: No exemplo abaixo, o som festa.wav será tocado quando o build terminar sem erros fatais. vaia.wav tocará se houver algum erro que interrompa o processo: <target name="init"> <sound> <success source="c:/media/festa.wav"/> <fail source="c:/media/vaia.wav"/> </sound> 29
30 Extensão usando XML Como o buildfile é um arquivo XML, pode-se incluir trechos de XML externos através do uso de entidades externas <property <property file="sound.properties" /> /> <sound> <sound> sound.xml <success <success source="${success.sound}"/> <fail <fail source="${fail.sound}"/> </sound> </sound> <?xml <?xml version="1.0" version="1.0" encoding="iso "?>?> <!DOCTYPE <!DOCTYPE project project [ <!ENTITY <!ENTITY sound sound SYSTEM SYSTEM "sound.xml"> "sound.xml"> ]> ]> <project <project default="dtd"> default="dtd"> <description>gera um um DTD DTD para para o Ant</description> <target <target name="init"> name="init"> &sound; <target <target name="dtd" name="dtd" depends="init"> depends="init"> <antstructure <antstructure output="ant.dtd" output="ant.dtd" /> /> </project> </project> 30
31 Como gerenciar projetos com o Ant Crie um diretório para armazenar seu projeto. Guarde na sua raiz o seu build.xml Use um arquivo build.properties para definir propriedades exclusivas do seu projeto (assim você consegue reutilizar o mesmo build.xml em outros projetos). Importe-o com <property file="build.properties" /> Dentro desse diretório, crie alguns subdiretórios src/ lib/ doc/ etc/ web/ Para armazenar o código-fonte Opcional. Para guardar os JARs de APIs usadas Opcional. Para guardar a documentação gerada Opcional. Para arquivos de configuração se houver Em projetos Web, para raiz de documentos do site O seu Ant script deve ainda criar durante a execução build/ dist/ Ou classes/. Onde estará o código compilado Ou jars/ ou release/. Onde estarão JARs criados 31
32 Alvos básicos do build.xml Você também deve padronizar os nomes dos alvos dos seus build.xml. Alguns alvos típicos são init clean compile build run test deploy Para criar dietórios, inicializar o ambiente, etc. Para fazer a faxina, remover diretórios gerados, etc. Para compilar Para construir a aplicação, integrar, criar JARs Para executar um cliente da aplicação Para executar os testes da aplicação Para implantar componentes Web e EJB Você pode usar outros nomes, mas mantenha um padrão Também pode criar uma nomenclatura que destaque alvos principais, usando maiúsculas. Ex: CLEAN, chamando clean-isto, clean-aquilo, undeploy, etc. BUILD, que chama build-depend, build-client, build-server 32
33 Exemplo de projeto <project default="compile" name="minied"> <property file="build.properties"/> <target name="init"> <mkdir dir="${build.dir}"/> <mkdir dir="${dist.dir}"/> <target name="clean">... <target name="compile" depends="init">... <target name="build" depends="compile">... <target name="javadoc" depends="build">... <target name="run" depends="build">... </project> build.xml Estrutura dos arquivos (antes de executar o Ant) # Nome da aplicação app.name=minied # Nomes dos diretórios src.dir=src docs.dir=docs build.dir=classes dist.dir=jars # Nome da classe executável app.main.class=com.javamagazine.minied.minieditor root.package=com build.properties 33
34 Buildfile: aplicação gráfica executável <project default="compile" name="minied"> <property file="build.properties"/> <target name="compile" depends="init"> <javac destdir="classes" srcdir="src"> <classpath> <pathelement location="classes"/> </classpath> </javac> <target name="build" depends="compile"> <jar destfile="release/${app.name}.jar"> <manifest> <attribute name="main-class" value="${app.main.class}" /> </manifest> <fileset dir="classes"/> </jar> <target name="run" depends="build"> <java jar="release/${app.name}.jar" fork="true" /> Definindo o JAR com atributo Main-class para torná-lo executável </project> # Nome da aplicação este nome será usado para criar o JAR app.name=minied # Nome da classe executável app.main.class=com.javamagazine.minied.minieditor 34
35 Buildfile: aplicação RMI-IIOP <project name="aplicação RMI" default="compile"> <target name="compile" depends="init"> <!-- Vários <target> omitidos --> <javac destdir="classes" srcdir="src" > <classpath refid="app.path" /> </javac> <target name="buildrmi" depends="compile"> <rmic idl="true" iiop="true" base="classes"> <include name="**/rmiop/**impl.class" /> <include name="**/portable/**impl.class" /> </rmic> <target name="runserver" depends="buildrmi"> <java classname="hello.rmiop.helloserver" fork="true"> <jvmarg value="-djava.rmi.server.codebase=${codebase}"/> <jvmarg value="-djava.security.policy=${lib.dir}/rmi.policy"/> <jvmarg value="-djava.naming.factory.initial=..."/> <jvmarg value="-djava.naming.provider.url=iiop://${host}:1900"/> <classpath refid="app.path" /> </java> <target name="orbd"> <exec executable="${java.home}\bin\orbd"> <arg line="-orbinitialport ORBInitialHost ${host}"/> </exec> </project> 35
36 Buildfile: aplicação Web <project default="deploy" name="aplicação Web"> build.xml <property file="build.properties" /> <!-- init e clean omitidos --> <target name="compile" depends="init"> <javac srcdir="src" destdir="classes"> <classpath path="${servlet.jar}" /> </javac> <target name="war" depends="compile"> <war warfile="release/${context}.war" webxml="etc/web.xml"> <fileset dir="web" /> <classes dir="classes" /> </war> <target name="deploy" depends="war"> <copy todir="${deploy.dir}"> <fileset dir="release"> <include name="*.war" /> </fileset> </copy> </project> # Localizacao do Servidor tomcat.home=/tomcat-4.0 # Altere para informar dir de instalacao deploy.dir=${tomcat.home}/webapps build.properties # Coloque aqui nome do contexto context=forum # JAR com Servlet API servlet.jar=${tomcat.home}/common/lib/servlet.jar 36
37 Buildfile: aplicação EJB <project name="aplicação EJB" default="deploy"> build.xml <property file="build.properties" /> <!-- elementos <path> e <target> init, compile, clean omitidos --> <target name="build" depends="compile"> <copy todir="classes/meta-inf"> <fileset dir="etc" includes="ejb-jar.xml"/> </copy> <jar jarfile="release/${app.name}.jar"> <fileset dir="classes" /> </jar> <target name="deploy" depends="build"> <copy todir="${deploy.dir}" file="release/${app.name}.jar" /> <target name="undeploy" depends="build"> <delete file="${deploy.dir}/${app.name}.jar" /> </project> # Localizacao do Servidor jboss.home=/jboss build.properties # Altere para informar dir de instalacao deploy.dir=${jboss.home}/server/default/deploy # Coloque aqui nome da aplicação app.name=forumejb 37
38 Buildfile: transformação XSL <project name="foptask-example" default="pdf"> <target name="setup" depends="check"> <taskdef name="fop" classname="argonavis.pdf.foptask"> <classpath>... </classpath> </taskdef> <target name="many2fo" depends="init"> <style in="template.xml" out="all.xml" style="many2one.xsl"> <param name="docsdir" expression="dados"/> </style> <style in="all.xml" out="all.fo" extension=".fo" style="many2fo.xsl"/> <target name="many2pdf" depends="many2fo"> <fop in="all.fo" out="all.pdf" /> <target name="html" depends="init"> <style basedir="dados" destdir="html" extension=".html" style="tohtml.xsl" /> Mescla vários XML em um único XML maior e converte em XSL-FO Converte XSL-FO em PDF Converte vários XML em HTML </project> 38
39 Integração com outras aplicações Ant provoca vários eventos que podem ser capturados por outras aplicações Útil para implementar integração, enviar notificações por , gravar logs, etc. Eventos Build iniciou/terminou Alvo iniciou/terminou Tarefa iniciou/terminou Mensagens logadas Vários listeners e loggers pré-definidos Pode-se usar ou estender classe existente. Para gravar processo (build) em XML: > ant -listener org.apache.tools.ant.xmllogger 39
40 Integração com editores e IDEs Produtos que integram com Ant e oferecem interface gráfica e eventos para buildfiles: Antidote: GUI para Ant (do projeto Jakarta) JBuilder (AntRunner plug-in) NetBeans e Forté for Java Eclipse JEdit (AntFarm plug-in) Jext (AntWork plug-in) ftp://jext.sourceforge.net/pub/jext/plugins/antwork.zip 40
41 Integração com o JEdit Tela do AntFarm mostra alvos do Ant. Pode-se clicar sobre o alvo para executá-lo Resultados são mostrados no Console do JEdit 41
42 Ant programável Há duas formas de estender o Ant com novas funções Implementar roteiros usando JavaScript Criar novas tarefas reutilizáveis A tarefa <script> permite embutir JavaScript em um buildfile. Pode-se Realizar operações aritméticas e booleanas Utilizar estruturas como if/else, for, foreach e while Manipular com os elementos do buildfile usando DOM A tarefa <taskdef> permite definir novas tarefas Tarefa deve ser implementada em Java e estender Task Método execute() contém código de ação da tarefa Cada atributo corresponde a um método setxxx() 42
43 Exemplo de script Cria 10 diretórios pasta1, pasta2, etc. em pastas/ <project name="scriptdemo" default="makedirs" > <property name="result.dir" value="pastas" /> <target name="setup-makedirs"> Obtém referência para objeto <mkdir dir="${result.dir}" /> que implementa tarefa mkdir <script language="javascript"><![cdata[ for (i = 0; i < 10; i++) { criadir = scriptdemo.createtask("mkdir"); // Obter propriedade ${result.dir} deste projeto root = scriptdemo.getproperty("result.dir"); // Definir diretorio a criar criadir.setdir(new Packages.java.io.File(root+"/pasta"+(i+1))); // Executa tarefa mkdir (todo Task tem um metodo execute) criadir.execute(); } ]]></script> <target name="makedirs" depends="setup-makedirs" /> </project> 43
44 import org.apache.tools.ant.*; public class ChangeCaseTask extends Task { } public static final int UPPERCASE = 1; private String message; private int strcase = 0; Exemplo de definição de tarefas (1) public void execute() { log( getmessage() ); } public void setmessage(string message) { this.message = message; } public void setcase(string strcase) { if (strcase.tolowercase().equals("uppercase")) this.strcase = UPPERCASE; else if (strcase.tolowercase().equals("lowercase")) this.strcase = -UPPERCASE; } public String getmessage() { switch(strcase) { case UPPERCASE: return message.touppercase(); case -UPPERCASE: return message.tolowercase(); default: return message; } } <target name="define-task" depends="init"> <taskdef name="changecase" classname="changecasetask"> <classpath> <pathelement location="tasks.jar" /> </classpath> </taskdef> <target name="run-task" depends="define-task"> <changecase message="mensagem simples" /> <changecase message="mensagem em caixa-alta" case="uppercase" /> <changecase message="mensagem em caixa-baixa" case="lowercase" /> Trecho do build.xml usando tarefa <changecase> Cada atributo é definido em um método setatributo(string) Método execute() chama log(), que imprime resultado na saída do Ant (Exceções foram ignoradas por falta de espaço) 44
45 Conclusões Ant é uma ferramenta indispensável em qualquer projeto de desenvolvimento Java Permite automatizar todo o desenvolvimento Facilita a montagem da aplicação por outras pessoas Ajuda em diversas tarefas essenciais do desenvolvimento como compilar, rodar, testar, gerar JavaDocs, etc. Independe de um IDE comercial (mas pode ser facilmente integrado a um) Use o Ant em todos os seus projetos Crie sempre um projeto e um buildfile, por mais simples que seja a sua aplicação Escreva buildfiles que possam ser reutilizados Desenvolva o hábito de sempre usar o Ant 45
46 Exercício 1. Monte um buildfile simples para a aplicação MiniEd.jar. Use o build.xml e build.properties fornecidos (com comentários). Implemente alvos para Compilar a aplicação Montar a aplicação como um JAR executável (opc.) Gerar JavaDocs da aplicação e colocá-los em um ZIP (opc.) Executar a aplicação Observações: (a) use <exclude> patternsets para não compilar as classes que terminarem em *Test.java. (b) Inclua a pasta icons/ no CLASSPATH (raiz do JAR) 2. (opcional) Monte um build.xml para construir um WAR para a aplicação Web fornecida Veja desenho na próxima página (observe os excludes) 46
47 Exercicio 2 (diagrama) src <javac> *.java *Test.java AllTests.java *.properties classes *.class *.properties <copy> lib/jars commons-*.jar struts.jar jaxb-rt-*.jar web webinf *.tld struts-*.xml web.xml hellojsp-struts.jar WEB-INF classes lib 47
48 Fontes [1] Richard Hightower e Nicholas Lesiecki. Java Tools for extreme Programming. Wiley, Explora Ant e outras ferramentas em ambiente XP. [3] Apache Ant User's Manual. Ótima documentação repleta de exemplos. [3] Steve Lougran. Ant In Anger - Using Ant in a Production Development System. (Ant docs) Ótimo artigo com boas dicas para organizar um projeto mantido com Ant. [4] Martin Fowler, Matthew Foemmel. Continuous Integration. Ótimo artigo sobre integração contínua e o CruiseControl. [5] Erik Hatcher. Java Development with Ant. Manning Publications. August Explora os recursos básicos e avançados do Ant, sua integração com JUnit e uso com ferramentas de integração contínua como AntHill e CruiseControl. [6] Jesse Tilly e Erik Burke. Ant: The Definitive Guide. O'Reilly and Associates. May Contém referência completa e ótimo tutorial sobre recursos avançados como controle dos eventos do Ant e criação de novas tarefas. 48
49 Curso J530: Enterprise JavaBeans Revisão Junho de , Helder da Rocha (helder@acm.org) argonavis.com.br 49
J820. Ambiente de Desenvolvimento Java usando. Ant. Ant. argonavis.com.br. Helder da Rocha (helder@acm.org)
J820 Ambiente de Desenvolvimento Java usando Ant Ant Helder da Rocha (helder@acm.org) Como gerenciar projetos com o Ant Crie um diretório para armazenar seu projeto. Guarde na sua raiz o seu build.xml
Leia maisJava 2 Enterprise Edition. Introdução ao. Apache Ant. Helder da Rocha www.argonavis.com.br
Java 2 Enterprise Edition Introdução ao Apache Ant Helder da Rocha www.argonavis.com.br 1 Tópicos abordados Este módulo tem como finalidade introduzir a principal ferramenta utilizada no ambiente de desenvolvimento
Leia maisJava 2 Standard Edition. Gerenciamento de projetos com o. Apache Ant. argonavis.com.br. Helder da Rocha (helder@acm.org)
Java 2 Standard Edition Gerenciamento de projetos com o Apache Ant Helder da Rocha (helder@acm.org) argonavis.com.br 1 Sobre este módulo Este módulo apresenta o Jakarta Ant - ferramenta importante para
Leia maisSão Paulo Maio de 2003. argonavis.com.br. Construção de aplicações. Java com o. Java. Apache Ant. Helder da Rocha (helder@acm.org)
São Paulo Maio de 2003 argonavis.com.br Construção de aplicações Java com o Java Apache Ant Helder da Rocha (helder@acm.org) Tópicos abordados Introdução ao Ant Overview das principais tarefas Ant como
Leia maisJ820. Introdução ao. Apache Ant. argonavis.com.br. Helder da Rocha (helder@acm.org)
J820 Introdução ao Apache Ant Helder da Rocha (helder@acm.org) O que é Ant? Uma ferramenta para construção de aplicações Implementada em Java Baseada em roteiros XML Extensível (via scripts ou classes)
Leia maisApache Ant. Leonardo Gresta Paulino Murta leomurta@ic.uff.br
Apache Ant Leonardo Gresta Paulino Murta leomurta@ic.uff.br Índice n Introdução n Instalação n Descritor n Projeto n Alvos n Tarefas n Propriedades n Exemplo 2 Introdução n Sistema de apoio à construção
Leia maisJava 2 Enterprise Edition Componentes Web J2EE
Java 2 Enterprise Edition Componentes Web J2EE Helder da Rocha (helder@acm.org) www.argonavis.com.br 1 Sobre este módulo Neste módulo conheceremos uma nova maneira de fazer deployment: arquivos WAR Com
Leia maisJ820. Integração Contínua. com CVS, CruiseControl, Cruise Control. argonavis.com.br. AntHill Gump e Helder da Rocha (helder@acm.
J820 Integração Contínua com CVS, CruiseControl, Cruise Control AntHill Gump e Helder da Rocha (helder@acm.org) Integração contínua Um dos requisitos para implementar a integração contínua é ter um sistema
Leia maisIntrodução. Tutorial do Xdoclet. Resumo
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,
Leia maisJ820. Testes de interface Web com. HttpUnit. argonavis.com.br. Helder da Rocha (helder@acm.org)
J820 Testes de interface Web com HttpUnit Helder da Rocha (helder@acm.org) O que é HttpUnit API Java para comunicação com servidores HTTP Permite que programas construam e enviem requisições, e depois
Leia maisJ550 Tag Libraries e JSTL
J550 Tag Libraries e JSTL Helder da Rocha (helder@acm.org) www.argonavis.com.br 1 Custom tags JSP com JavaBeans fornecem um meio de diminuir código Java da página, mas não totalmente Designers de página
Leia maisO nome ANT é uma sigla para another neat tool (mais uma ferramenta organizada), segundo seu autor James Duncan Davidson.
1- Introdução 1.1- Visão Geral O ANT é uma ferramenta destinada a construção (build) de programas JAVA. É semelhante a ferramentas como make, nmake, jam mas com o diferencial de ser multi-plataforma, pois
Leia maisJava 2 Standard Edition. Configuraçã. ção o do ambiente. JEdit + Ant. argonavis.com.br. Helder da Rocha (helder@acm.org)
Java 2 Standard Edition Configuraçã ção o do ambiente JEdit + Ant Helder da Rocha (helder@acm.org) argonavis.com.br 1 Java "IDE" configurável Este módulo mostra como montar um ótimo ambiente de desenolvimento
Leia maisUniversidade da Beira Interior
Universidade da Beira Interior Relatório Apresentação Java Server Pages Adolfo Peixinho nº4067 Nuno Reis nº 3955 Índice O que é uma aplicação Web?... 3 Tecnologia Java EE... 4 Ciclo de Vida de uma Aplicação
Leia maisSistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Sumário. Java 2 Enterprise Edition. J2EE (Java 2 Enterprise Edition)
Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) J2EE () Sumário Introdução J2EE () APIs J2EE Web Container: Servlets e JSP Padrão XML 2 J2EE é Uma especificação para servidores
Leia maisDesenvolvimento Flex com Maven
Desenvolvimento Flex com Maven Marvin H Froeder Julho 2009 Eu Desenvolvedor 5 anos Java 4 anos Flex 3 anos Maven -0 anos Flash O que é Maven? É uma ferramenta de gestão de projetos de Software. Automatiza
Leia maisLaboratório EJB e J2EE Uma aplicação completa
J530 - Enterprise JavaBeans Laboratório EJB e J2EE Uma aplicação completa Helder da Rocha (helder@acm.org) argonavis.com.br 1 Objetivos O objetivo deste módulo é construir e implantar uma aplicação J2EE
Leia maisTutorial: Criando aplicações J2EE com Eclipse e jboss-ide
Tutorial: Criando aplicações J2EE com Eclipse e jboss-ide Para criar uma aplicação J2EE, utilizando Eclipse e jboss-ide, é necessário ter instalado em seu computador o JDK 1.5 (versão atual). Abaixo seguem
Leia maisAula 1 Acesso a Banco de Dados
Laboratório de Banco de Dados Aula 1 Acesso a Banco de Dados Prof. Josenildo Silva jcsilva@ifma.edu.br Introdução O JDBC (Java Database Connectivity) foi criado com o intuito de fornecer aos programadores
Leia maisComo criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse
Como criar um EJB Criando um projeto EJB com um cliente WEB no Eclipse Gabriel Novais Amorim Abril/2014 Este tutorial apresenta o passo a passo para se criar um projeto EJB no Eclipse com um cliente web
Leia maisJ550. Apache Struts. Helder da Rocha (helder@acm.org) www.argonavis.com.br
J550 Apache Struts Helder da Rocha (helder@acm.org) www.argonavis.com.br 1 Sobre este módulo Este é um módulo opcional. Apresenta uma visão geral do framework Struts, usado para desenvolver aplicações
Leia maisJ2EE TM Java 2 Plataform, Enterprise Edition
CURSO DE GRADUAÇÃO J2EE TM Java 2 Plataform, Enterprise Edition Antonio Benedito Coimbra Sampaio Junior abc@unama.br OBJETIVOS DO CURSO Capacitar os alunos no desenvolvimento de aplicações para a WEB com
Leia maisSCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br
SCE-557 Técnicas de Programação para WEB Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br 1 Cronograma Fundamentos sobre servidores e clientes Linguagens Server e Client side
Leia maisFundamentos da Plataforma Java EE. Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br)
Fundamentos da Plataforma Java EE Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br) Como a plataforma Java EE trata o SERVIÇO DE NOMES Serviço de Nomes Num sistema distribuído os componentes necessitam
Leia maisINTRODUÇÃO À TECNOLOGIA SERVLETS
PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB INTRODUÇÃO À TECNOLOGIA SERVLETS Prof. Dr. Daniel Caetano 2012-1 Objetivos Apresentar o conceito aplicações orientada a serviços via web Apresentar o papel dos contentores
Leia maisIntrodução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional
Introdução à Linguagem JAVA Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação Laboratório de Visão Computacional Vantagens do Java Independência de plataforma; Sintaxe semelhante às linguagens
Leia maisInstalação do Plugin LeJOS
Instalação do Plugin LeJOS http://legolab.daimi.au.dk/digitalcontrol.dir/lejos_nxj.dir/lejos_nxj_install_guide.html Guia de Instalação do lejos NXJ através do Eclipse para Windows XP Setup Básico 1. Instale
Leia maisLaboratório de Banco de Dados Aula 1 Acesso a Banco de Dados. Prof. Josenildo Silva jcsilva@ifma.edu.br
Laboratório de Banco de Dados Aula 1 Acesso a Banco de Dados Prof. Josenildo Silva jcsilva@ifma.edu.br Introdução O JDBC (Java Database Connectivity) foi criado com o intuito de fornecer aos programadores
Leia maisResumo: Perguntas a fazer ao elaborar um projeto arquitetural
Resumo: Perguntas a fazer ao elaborar um projeto arquitetural Sobre entidades externas ao sistema Quais sistemas externos devem ser acessados? Como serão acessados? Há integração com o legado a ser feita?
Leia maisJava 2 Enterprise Edition Uma aplicação J2EE completa
Java 2 Enterprise Edition Uma aplicação J2EE completa Helder da Rocha www.argonavis.com.br 1 Objetivos O objetivo deste módulo é construir e implantar uma aplicação J2EE completa Inicialmente, será mostrada
Leia maisPrática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva
1. O que são Serviços Web (Web Services)? Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva A ideia central dos Web Services parte da antiga necessidade
Leia maisJava II. Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com
Java II Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Por quê JSP? Com Servlets é fácil Ler dados de um formulário Recuperar dados de uma requisição Gerar informação de resposta Fazer gerenciamento
Leia maismarcio@dsc.ufcg.edu.br priscillakmv@gmail.com
DSC/CEEI/UFCG marcio@dsc.ufcg.edu.br priscillakmv@gmail.com 1 Realiza atividades com ênfase em Ensino, Pesquisa e Extensão (Ensino) 2 Configurando o projeto Adicionando código ao arquivo com o código-fonte
Leia maisProgramação Web. Professor: Diego Oliveira. Conteúdo 02: JSP e Servlets
Programação Web Professor: Diego Oliveira Conteúdo 02: JSP e Servlets JSP JSP é um template de uma página Web que usa Java para gerar HTML dinamicamente JSP é considerado server-side e roda em um objeto
Leia maisAlgoritmos e Estrutura de Dados. Introdução a Linguagem Python (Parte I) Prof. Tiago A. E. Ferreira
Algoritmos e Estrutura de Dados Aula 1 Introdução a Linguagem Python (Parte I) Prof. Tiago A. E. Ferreira Linguagem a ser Utilizada? Nossa disciplina é de Algoritmos e Estrutura de Dados, e não de linguagem
Leia maisSISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl
SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE Aluno: Roberto Reinert Orientador: Everaldo A. Grahl Roteiro de apresentação Introdução Objetivos Fundamentação Teórica Workflow Processo
Leia maisManual de Instalação PIMSConnector em Windows
Manual de Instalação PIMSConnector em Windows Julho/2015 Sumário 1. Contexto de negócio (Introdução)... 3 2. Pré-requisitos instalação/implantação/utilização... 4 3. JBOSS... 6 3.1. Instalação... 6 3.2.
Leia maisO nome ANT é uma sigla para another neat tool (mais uma ferramenta organizada), segundo seu autor James Duncan Davidson.
1- Introdução 1.1- Visão Geral O ANT é uma ferramenta destinada a construção (build) de programas JAVA. É semelhante a ferramentas como make, nmake, jam mas com o diferencial de ser multi-plataforma, pois
Leia maisJ550 Testes em Aplicações Web com Cactus
J550 Testes em Aplicações Web com Cactus Helder da Rocha (helder@acm.org) www.argonavis.com.br 1 Sobre este módulo Este módulo descreve um framework - o Jakarta Cactus - que pode ser utilizado para testar
Leia maisCriação de um novo projeto no Eclipse utilizando Maven
1. Faça o download da versão mais atual do Eclipse IDE for Java EE Developers em https://www.eclipse.org/downloads/. 2. No Eclipse, crie um novo projeto Maven, em File >> New >> Maven Project 3. Marque
Leia maisDWR DIRECTED WEB REMOTING
DWR DIRECTED WEB REMOTING Vamos ver nesse artigo um pouco sobre o Frameworks Ajax para Java, o DWR. Vamos ver seus conceitos, utilidades, vantagens, algumas práticas e fazer o passo a passo para baixar,
Leia maisIntrodução à Plataforma Eclipse. Leandro Daflon daflon@les.inf.puc-rio.br
Introdução à Plataforma Eclipse Leandro Daflon daflon@les.inf.puc-rio.br Agenda Introdução Arquitetura da Plataforma Componentes da Plataforma JDT PDE Visão Geral do Projeto Eclipse.org 2 Introdução O
Leia maisIntrodução ao PHP. Prof. Késsia Marchi
Introdução ao PHP Prof. Késsia Marchi PHP Originalmente PHP era um assíncrono para Personal Home Page. De acordo com convenções para atribuições de nomes recursivas do GNU foi alterado para PHP Hypertext
Leia maisSCC-0263. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br
SCC-0263 Técnicas de Programação para WEB Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br 1 Cronograma Fundamentos sobre servidores e clientes Linguagens Server e Client side
Leia maisOrganizando Classes em Pacotes. Profa. Thienne Johnson EACH/USP
Organizando Classes em Pacotes Profa. Thienne Johnson EACH/USP Criando e usando pacotes Nomeando um pacote Usando membros de pacotes Gerenciando arquivos Exercícios Usando pacotes no Eclipse Tutorial da
Leia maisTutorial TC-23. Implementando. Programming. extreme. em Java. Integraçã testes de unidade CRUISE CONTROL. Helder da Rocha www.argonavis.com.
Tutorial TC-23 Implementando extreme Programming em Java Integraçã ção o contínua nua e testes de unidade CRUISE CONTROL Helder da Rocha Objetivos Apresentar e demonstrar ferramentas open source que ajudam
Leia maisJava 2 Enterprise Edition Session Beans
Java 2 Enterprise Edition Session Beans Helder da Rocha www.argonavis.com.br 1 Session Beans São objetos de processo de negócio Implementam lógica de negócio, algoritmos, workflow Representam ações Uma
Leia maisManual de Instalação PIMSConnector em Linux
Manual de Instalação PIMSConnector em Linux Julho/2015 Sumário 1. Contexto de negócio (Introdução)... 3 2. Pré-requisitos instalação/implantação/utilização... 4 3. JBOSS... 6 3.1. Instalação... 6 3.2.
Leia mais2 Orientação a objetos na prática
2 Orientação a objetos na prática Aula 04 Sumário Capítulo 1 Introdução e conceitos básicos 1.4 Orientação a Objetos 1.4.1 Classe 1.4.2 Objetos 1.4.3 Métodos e atributos 1.4.4 Encapsulamento 1.4.5 Métodos
Leia maisJava 2 Standard Edition. Fundamentos de. Objetos Remotos. Helder da Rocha www.argonavis.com.br
Java 2 Standard Edition Fundamentos de Objetos Remotos Helder da Rocha www.argonavis.com.br 1 Sobre este módulo Este módulo tem como objetivo dar uma visão geral, porém prática, da criação e uso de objetos
Leia maisLinguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas
Linguagem de Programação JAVA Professora Michelle Nery Nomeclaturas Conteúdo Programático Nomeclaturas JDK JRE JEE JSE JME JVM Toolkits Swing AWT/SWT JDBC EJB JNI JSP Conteúdo Programático Nomenclatures
Leia maisAula 03 - Projeto Java Web
Aula 03 - Projeto Java Web Para criação de um projeto java web, vá em File/New. Escolha o projeto: Em seguida, na caixa Categorias selecione Java Web. Feito isso, na caixa à direita selecione Aplicação
Leia maisARQUITETURA DO SISTEMA ERP PEGASUS
ARQUITETURA DO SISTEMA ERP PEGASUS Elaborado por: Bruno Duarte Nogueira Arquiteto de Software Data: 05/03/2012 1 Sumário 1. Introdução... 3 2. Tecnologias... 3 2.1. Web Tier... 3 2.1.1. Facelets 1.1.14...
Leia maisProgramação para a Internet. Prof. M.Sc. Sílvio Bacalá Jr sbacala@gmail.com www.facom.ufu.br/~bacala
Programação para a Internet Prof. M.Sc. Sílvio Bacalá Jr sbacala@gmail.com www.facom.ufu.br/~bacala A plataforma WEB Baseada em HTTP (RFC 2068) Protocolo simples de transferência de arquivos Sem estado
Leia maisJava II. Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com
Java II Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Java Web Arquitetura Aplicações web são basicamente constituídas de: Requisições Respostas Model View Controller (MVC) O que é MVC? Padrão
Leia maisManipulação de Banco de Dados com Java. Ms. Bruno Crestani Calegaro (bruno.calegaro@ifsc.edu.br) Maio/ 2015
Manipulação de Banco de Dados com Java Ms. Bruno Crestani Calegaro (bruno.calegaro@ifsc.edu.br) Maio/ 2015 Acesso a um SGBD Em sistemas mais simples o uso de arquivos pode ser usado mas para aplicações
Leia maisEMML Enterprise Mashup Markup Language. Jesús Martín Talavera Portocarrero jesus140@gmail.com
EMML Enterprise Mashup Markup Language Jesús Martín Talavera Portocarrero jesus140@gmail.com Agenda Mashup EMML Instalação do motor EMML Implantação de um script mashup EMML Testes Elementos EMML Mashup
Leia maisEspecificação do 3º Trabalho
Especificação do 3º Trabalho I. Introdução O objetivo deste trabalho é abordar a prática da programação orientada a objetos usando a linguagem Java envolvendo os conceitos de classe, objeto, associação,
Leia maisIntegração do Java + Adobe Flex através do Projeto BlazeDs
Integração do Java + Adobe Flex através do Projeto BlazeDs por, Thiago Luiz Ribeiro Rodrigues (R.A: 060147-2), 14 de Abril 2009 Este artigo tem por objetivo ensinar como se faz a integração entre o Java
Leia maisPadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. Servlets A,L,F,M
JAVA Marcio de Carvalho Victorino 1 Servlets 2 1 Plataforma WEB Baseada em HTTP (RFC 2068): Protocolo simples de transferência de arquivos Sem estado (não mantém sessão aberta) Funcionamento (simplificado):
Leia maisTutorial RMI (Remote Method Invocation) por Alabê Duarte
Tutorial RMI (Remote Method Invocation) por Alabê Duarte Este tutorial explica basicamente como se implementa a API chamada RMI (Remote Method Invocation). O RMI nada mais é que a Invocação de Métodos
Leia maisFundamentos de Java. Prof. Marcelo Cohen. 1. Histórico
Fundamentos de Java Prof. Marcelo Cohen 1. Histórico 1990 linguagem Oak; desenvolvimento de software embutido para eletrodomésticos S.O. para o controle de uma rede de eletrodomésticos o surgimento da
Leia maisJSTL: Uma forma padrão de desenvolver página WEB dinâmica Plácido Antonio de Souza Neto placidoneto@cefetrn.br
JSTL: Uma forma padrão de desenvolver página WEB dinâmica Plácido Antonio de Souza Neto placidoneto@cefetrn.br 26/11/2005 JSTL 1 Agenda Histórico e motivação; Servlets e JSP; Introdução e conceituação
Leia maisDocumentação Usando o Javadoc
Documentação Usando o Javadoc Prof. MSc. João Carlos Pinheiro jcpinheiro@cefet-ma.br Versão 2.1 Última Atualização: 04/2005 1 Comentários e Documentação Comentários em Java Existem três tipos de comentários
Leia maisNetBeans. Conhecendo um pouco da IDE
NetBeans Conhecendo um pouco da IDE Professor: Edwar Saliba Júnior Sumário Apresentação:...1 Criando Um Novo Projeto de Software:...1 Depurando Um Código-fonte:...4 Entendendo o Código-fonte:...7 Dica
Leia maisCONVENÇÃO DE CÓDIGO JAVA
CONVENÇÃO DE CÓDIGO JAVA Eligiane Ceron - Abril de 2012 Versão 1.0 Conteúdo Considerações iniciais... 2 Introdução... 2 Extensão de arquivos... 2 Arquivos de código Java... 2 Comentários iniciais... 2
Leia maisCURSO DE PROGRAMAÇÃO EM JAVA
CURSO DE PROGRAMAÇÃO EM JAVA Introdução para Iniciantes Prof. M.Sc. Daniel Calife Índice 1 - A programação e a Linguagem Java. 1.1 1.2 1.3 1.4 Linguagens de Programação Java JDK IDE 2 - Criando o primeiro
Leia maisIntrodução ao Android
Introdução ao Android André Gustavo Duarte de Almeida docente.ifrn.edu.br/andrealmeida Parte 1 Conhecendo o Sistema e Primeiro Programa Roteiro Pré-requisitos Conceitos Básicos Configurando o Ambiente
Leia maisIntegração contínua com Hudson - Configuração, Extensão e Diversão! Fabiane Bizinella Nardon fabiane.nardon@zilics.com.br Zilics
Integração contínua com Hudson - Configuração, Extensão e Diversão! Fabiane Bizinella Nardon fabiane.nardon@zilics.com.br Zilics Objetivo Mostrar como você pode implantar integração contínua usando o Hudson
Leia maisPrática Sobre Servlets e JSP
Prática Sobre Servlets e JSP 1. Localize a pasta do Tomcat (TOMCAT_HOME); 2. Acesse a pasta bin e execute tomcat5w.exe; 3. Abra o Navegador e acesse http://localhost:8080 (A apresentação de uma página
Leia maisProcedimentos para Configuração do Ambiente J2EE e J2SE em Ambiente Windows
Procedimentos para Configuração do Ambiente J2EE e J2SE em Ambiente Windows 1 - Configuração do J2SDKSE (Java 2 SDK Standard Edition) Deve-se obter o arquivo j2sdk-1_4_2_03-windows-i586-p.exe ou mais recente
Leia maisJ550 Segurança e Controle de erros
J550 Segurança e Controle de erros Helder da Rocha (helder@acm.org) www.argonavis.com.br 1 Assuntos abordados Este módulo trata de dois assuntos Como mapear erros HTTP e exceções Java a servlets ou páginas
Leia maisInternet e Programação Web
COLÉGIO ESTADUAL PEDRO MACEDO Ensino Profissionalizante Internet e Programação Web 3 Técnico Prof. Cesar 2014 1 SUMÁRIO Criar sites dinâmicos em PHP --------------------------------------------------------
Leia maisCurso de Linguagem Java
Curso de Linguagem Java 1 Referência Bibliográfica: Enterprise JavaBeans 3.0 Bill Burke & Richard Monson Editora. Prentice Hall Tutorial do J2EE Bodoff Green Haase Jendrock - Pawlan Stearns Editora Campus
Leia maisGuião de Introdução ao Eclipse IDE Índice
Índice 1. Introdução... 2 1.1. O que é um ambiente de desenvolvimento (IDE)?... 2 1.2. Visão geral sobre o Eclipse IDE... 2 2. Iniciar o Eclipse... 3 2.1. Instalação... 3 2.2. Utilizar o Eclipse... 3 3.
Leia maisAprenda como instalar o plugin EclipseUML no Eclipse e como utilizá-lo para fazer engenharia reversa de seu código-fonte.
Omondo EclipseUML Ricardo Rodrigues Lecheta Aprenda como instalar o plugin EclipseUML no Eclipse e como utilizá-lo para fazer engenharia reversa de seu código-fonte. Introdução Neste tutorial será apresentado
Leia maisManual introdutório do Apache ANT
Manual introdutório do Apache ANT Escrito por Alexandro Strack (alexandrostrack@hotmail.com) Manual introdutório do Apache ANT 1 Conteúdo 1- Introdução...3 1.1- Visão Geral... 3 1.2- História...3 2- Instalação...
Leia maisMaker Planet www.makerplanet.com Manual do Usuário
Maker Planet www.makerplanet.com Manual do Usuário Atenção: Este é o rascunho inicial deste documento, visite o Maker Planet.COM (HTTP://www.makerplanet.com/) para obter as atualizações deste documento.
Leia maisData Transformation Services (DTS) por Anderson Ferreira Souza
Data Transformation Services (DTS) por Anderson Ferreira Souza O Sql Server possui um recurso extremamente poderoso que é muito pouco utilizado pelos administradores e programadores. Com certeza, sendo
Leia maisJ2EE. J2EE - Surgimento
J2EE Java 2 Enterprise Edition Objetivo: Definir uma plataforma padrão para aplicações distribuídas Simplificar o desenvolvimento de um modelo de aplicações baseadas em componentes J2EE - Surgimento Início:
Leia maisInstalando o J2SE 5.0 JDK no Windows 2000/XP
Instalando o J2SE 5.0 JDK no Windows 2000/XP Fabricio Leonard Leopoldino Descreve o processo de download, instalação e configuração do J2SE 5.0 JDK, no Windows 2000 e no Windows XP. 1 - Introdução Para
Leia maisConteúdo Programático de PHP
Conteúdo Programático de PHP 1 Por que PHP? No mercado atual existem diversas tecnologias especializadas na integração de banco de dados com a WEB, sendo o PHP a linguagem que mais se desenvolve, tendo
Leia maisPHP Profissional. Alexandre Altair de Melo Mauricio G. F. Nascimento
PHP Profissional APRENDA A DESENVOLVER SISTEMAS PROFISSIONAIS ORIENTADOS A OBJETOS COM PADRÕES DE PROJETO Alexandre Altair de Melo Mauricio G. F. Nascimento Novatec Sumário Agradecimentos...13 Sobre os
Leia maisDesenvolvimento Web com Framework Demoiselle versão 1.0
Desenvolvimento Web com Framework Demoiselle versão 1.0 Módulo 07: Outros Componentes Autor: Rodrigo Hjort Serpro / Coordenação Estratégica de Tecnologia / Curitiba www.frameworkdemoiselle.org.br Modificado
Leia maisAdriano Reine Bueno Rafael Barros Silva
Adriano Reine Bueno Rafael Barros Silva Introdução RMI Tecnologias Semelhantes Arquitetura RMI Funcionamento Serialização dos dados Criando Aplicações Distribuídas com RMI Segurança Exemplo prático Referências
Leia maisIntrodução ao IDE Netbeans (Programação Java)
Universidade Federal do ABC (UFABC) Disciplina: Processamento da Informação (BC-0505) Assunto: Java e Netbeans Introdução ao IDE Netbeans (Programação Java) Conteúdo 1. Introdução... 1 1.1. Programas necessários...
Leia maisProgramação Web Aula 12 - Java Web Software
Programação Web Aula 12 - Java Web Software Bruno Müller Junior Departamento de Informática UFPR 25 de Maio de 2015 1 Java 2 Java Web Software 3 Servlets Modelo de Trabalho Funcionamento API Java Código
Leia maisExercícios de Revisão Java Básico
Exercícios de Revisão Java Básico (i) Programação básica (estruturada) 1) Faça um programa para calcular o valor das seguintes expressões: S 1 = 1 1 3 2 5 3 7 99... 4 50 S 2 = 21 50 22 49 23 48...250 1
Leia maisLOGGING DE EVENTOS COM LOG4J
LOGGING DE EVENTOS COM LOG4J por Luiz Gustavo Stábile de Souza O que é logging? Fazer o logging de uma aplicação é uma das possíveis maneiras de debugá-la, registrando em algum meio (arquivo, enviando
Leia maisFerramentas: jar e javadoc
Ferramentas: jar e javadoc Material baseado na apostila FJ-11: Java e Orientação a Objetos do curso Caelum, Ensino e Inovação, disponível para download em http://www.caelum.com.br/apostilas/ 1 Objetivos
Leia maisRestauração do Exchange Server.
Restauração do Exchange Server. Considerações Iniciais Como visto anteriormente, não há maiores dificuldades na configuração de backups de um banco Exchange. Reservam-se à restauração as operações mais
Leia maisGerenciamento de configuração. Gerenciamento de Configuração. Gerenciamento de configuração. Gerenciamento de configuração. Famílias de sistemas
Gerenciamento de Gerenciamento de Configuração Novas versões de sistemas de software são criadas quando eles: Mudam para máquinas/os diferentes; Oferecem funcionalidade diferente; São configurados para
Leia maisJSP trata-se de uma tecnologia que possibilita o desenvolvimento de páginas web dinâmicas utilizando todas as potencialidades do Java como linguagem
1 JSP trata-se de uma tecnologia que possibilita o desenvolvimento de páginas web dinâmicas utilizando todas as potencialidades do Java como linguagem orientada a objectos. Tal como em ASP e PHP, os ficheiros
Leia maisUNIDADE IV ENTERPRISE JAVABEANS
UNIDADE IV ENTERPRISE JAVABEANS MODELO J2EE COMPONENTES DE Camada de Negócios NEGÓCIOS JAVA SERVLET, JSP E EJB Nos capítulos anteriores, foi mostrado como desenvolver e distribuir aplicações servlet e
Leia maisJ550. Model View Controller
J550 Model View Controller 1 Design de aplicações JSP Design centrado em páginas Aplicação JSP consiste de seqüência de páginas (com ou sem beans de dados) que contém código ou links para chamar outras
Leia maisTutorial Eclipse (IDE)
www.dejavuxteam.wordpress.com Tutorial Eclipse (IDE) (Start) Sumário Introdução O que é o Eclipse? Característica e Ferramentas Download Preparando Ambiente de Trabalho Iniciando o Eclipse Criando um Projeto
Leia maisComo usar a documentaçã
Java 2 Standard Edition Como usar a documentaçã ção da API Java 2 Helder da Rocha www.argonavis.com.br 1 Documentação Aprender a usar a documentação é essencial para quem deseja desenvolver aplicações
Leia mais