Upload
joaquin-salvachua
View
1.808
Download
4
Embed Size (px)
DESCRIPTION
Introducción a las herramientas java para el laboratorio de software de comunicaciones
Citation preview
UPM - 1 -
Herramientas java
UPM - 2 -
Classpath Variable de entorno necesaria para
encontrar bibliotecas de funciones (jar).
Distinguir entre las múltiples instalaciones.
Uso complementario: 4 Variable JAVA_HOME
UPM - 3 -
Desarrollo java Necesidad de herramientas de desarrollo. Utilidades
4 Construir programas. 4 Automatizar pruebas. 4 Facilidades de trazado.
Entornos integrados: 4 Pesados: matar moscas a cañonazos. 4 Caros:
• Excepto netbeans: http://www.netbeans.org • Gratis pero hace falta memoria (>= 128 Mb)
UPM - 4 -
Herramientas proporcionadas
Código de dominio publico de la mayor calidad: 4 Construcción de programas:
• ANT 4 Gestión de trazas y LOGS:
• LOG4J
4 Entorno : eclipse - netbeans
UPM - 5 -
ANT
UPM - 6 -
¿Que es ANT ? Plataforma para la construcción de
programas (equivalente a make y makefiles).
Portable, totalmente escrito en java: Independiente de la plataforma.
Mejora ciertas características de make: ficheros de configuración XML.
Código abierto (parte del proyecto jakarta de apache).
Posibilidad de realizar scripts sencillos
UPM - 7 -
Utilidad Independiente de la plataforma
4 Solo requiere una JVM 4 Independiente de maquina (windows, unix, mac). No
importan path o retornos de carro.
Fácil de utilizar 4 Incluye facilidades típicas de construcción de programas. 4 Disponibles tareas encontradas útiles por usuarios. 4 Elimina ciertos detalles crípticos de make.
Fácil de extender 4 Crear una nueva tarea es tan sencillo como heredar una
clase y añadir el comportamiento deseado.
Estándar de facto en programas Java.
UPM - 8 -
Estructura de un fichero ant Project
4 Una colección de objetivos de alto nivel.
Property 4 Una variable de ant: usado para configurar.
Target 4 Un conjunto de tareas a ejecutar para conseguir
un cierto objetivo.
Task 4 Una unidad de ejecución (cada paso).
UPM - 9 -
Funcionamiento Existe un fichero con el proyecto en la raíz
(build.xml). Cada fichero contiene uno o mas objetivos
(target) Cada objetivo se ejecuta:
4 Por que el proyecto depende de el 4 Se indica el nombre por línea de comandos.
Cada tarea se ejecuta (si es necesaria) una sola vez.
Algunas tareas pueden ser condicionales.
UPM - 10 -
Estructura típica de directorios
project 4 README files, build.xml, etc. 4 classes
• ficheros. .class 4 doc
• Documentación del proyecto • api
– Ficheros javadoc generados 4 docroot
• Ficheros necesarios para aplicaciones web (HTML, JSP, XML, etc):
4 lib • Ficheros JAR con librerías necesarias para el proyecto.
4 Src • Código fuente del proyecto
UPM - 11 -
Revisión rápida de XML Comenzamos con la línea:
<?xml version="1.0" encoding="UTF-8"?> Las etiquetas van entre < y > y finalizan con /
<tag>body</tag> or <tag/>
Las etiquetas distinguen mayúsculas y minúsculas (distinto de HTML).
Las etiquetas pueden ser autocontenidas <tag attribute="value"/>
Los valores y las strings tienen que ir entre comillas.
UPM - 12 -
Etiqueta Project
<project name="MyProject" default="dist" basedir=".">
... </project>
Objetivo principal. Indica que tareas son obligatorias.
Donde esta el código: 4 Uso de paths relativos para evitar problemas.
UPM - 13 -
Etiqueta Target <target name="dist" depends="init"
description="Makes a distribution" if="code-present" unless="time-is-short">
... </target>
Objetivo a alcanzar. Obligatorio el nombre (“name”) de la tarea.
Puede depender de otras que han de completarse antes.
El resto de campos son opcionales.
UPM - 14 -
Algunas referencias a ficheros
Pattern-sets <patternset id="my.pattern"> <include name="**/*.java"/> <exclude name="**/*Test*"/> </patternset>
File-sets <fileset dir="./source"> <patternset refid="my.pattern“/> </fileset>
UPM - 15 -
Un build.xml sencillo <?xml version="1.0" encoding="UTF-8"?> <project name="Test" default="dist"
basedir="."> <target name="dist"> <javac srcdir="."/> </target> </project>
Mínimo fichero que compila todos los .java de un directorio recursivamente.
UPM - 16 -
Tareas incorporadas Ant
AntCall
AntStructure
Apply
Available
Chmod
Copy
Cvs
Delete
Echo
Exec
ExecOn
Fail
Filter
FixCRLF
GenKey
Get
GUnzip
UPM - 17 -
Tareas incorporadas (II) Gzip
Jar
Java
Javac
Javadoc
Mkdir
Move
Patch
Property
Replace
Rmic
SignJar
Sql
Style
Tar
Taskdef
Touch
UPM - 18 -
Tareas incorporadas (III) Tstamp
Unjar
Untar
Unwar
Unzip
Uptodate
War
Zip
UPM - 19 -
Tareas Opcionales ANTLR
Cab
Depend
FTP
JavaCC
Javah
JJTree
Jlink
JUnit
JUnitReport
Native2Ascii
PropertyFile
RenameExtensions
Script
Sound
Stylebook
Telnet
Test
UPM - 20 -
Instalación en Windows Verificar instalación de java.
Poner variables: 4 JAVA_HOME a donde este instalado el JDK:
• Como C:\jdk1.4 4 Añadir al CLASSPATH
• Ant.jar y xerces.jar 4 Añadir al PATH
• %ANT_HOME%\bin
Verificar documentació:
http://ant.apache.org/manual/install.html
UPM - 21 -
Pantalla Indica las tareas que va ejecutando:
4 Ejemplo: Searching for build.xml ... Buildfile: C:\XMLProgLabs\Framework\build.xml prepare: [mkdir] Created dir: C:\XMLProgLabs\Framework\classes compile: [javac] Compiling 26 source files to C:\XMLProgLabs
\Framework\classes war: [war] Building war: C:\XMLProgLabs\Framework\shopping.war undeploy: [delete] Deleting directory C:\Tomcat\webapps\shopping [delete] Deleting: C:\Tomcat\webapps\shopping.war deploy: [copy] Copying 1 files to C:\Tomcat\webapps BUILD SUCCESSFUL Total time: 5 seconds
UPM - 22 -
Recursos http://jakarta.apache.org/ant/
4 Pagina principal de ant
http://jakarta.apache.org/ant/manual/index.html 4 Manual en línea de ANT (normalmente
suficiente editar uno existente).
http://jakarta.apache.org/ant/resources.html 4 Artículos, presentaciones y otros.
UPM - 23 -
LOG4J
UPM - 24 -
Depurar / notificar con println
public class HelloWorld
{ public static void main(String[] args) { System.out.println(“Hello world!”); }
}
UPM - 25 -
Complejidad de aplicaciones reales
Aplicaciones multihilo y multiusuario.
Puede ser un servidor sin “pantalla” y por lo tanto sin posibilidad de imprimir.
Distintas instancias de objetos y servicios: mensajes mezclados en pantalla.
Utilidad: 4 Depurar. 4 Saber lo que esta pasando 4 Control de seguridad: control de ataques/
hackers. 4 Redireccionable a fichero.
UPM - 26 -
Hello Log4j import org.apache.log4j.*; public class HelloLog4j
{ private static Logger logger = Logger.getLogger
(HelloLog4j.class); // estático para inicializar. // necesario añadir esta línea en cada clase.
public static void main(String[] args)
{ BasicConfigurator.configure(); // configurar 1 vez en el programa logger.debug(“In the main method"); logger.info("What a beautiful day."); logger.error(“This is an error message.”);
}
}
UPM - 27 -
Salida por pantalla
0 [main] DEBUG HelloLog4j - In the main method
0 [main] INFO HelloLog4j - What a beautiful day.
10 [main] ERROR HelloLog4j - This is an error message.
UPM - 28 -
org.apache.log4j.Level
Otros niveles: 4 Level.ALL 4 Level.OFF
Orden:
DEBUG < INFO < WARN < ERROR < FATAL
UPM - 29 -
Algunos objetos java.util.logging Handlers
StreamHandler ConsoleHandler FileHandler SocketHandler MemoryHandler
java.util.logging Formatters SimpleFormatter XMLFormatter
Posibilidad de configurar con fichero XML.
UPM - 30 -
Java logger Añadido en jdk 1.5
No hay necesidad de instalar nada.
java.util.logging.Logger
Uso opcional de uno u otro: Decisión de diseño.
UPM - 31 -
Recursos http://jakarta.apache.org/log4j/
4 Pagina principal de log4j
http://jakarta.apache.org/log4j/doc/index.html 4 Manual en línea de ANT (normalmente
suficiente editar uno existente).
http://jakarta.apache.org/log4j/resources.html 4 Artículos, presentaciones y otros.
UPM - 32 -
Demostración eclipse