32
UPM - 1 - Herramientas java

Ant Log4j

Embed Size (px)

DESCRIPTION

Introducción a las herramientas java para el laboratorio de software de comunicaciones

Citation preview

Page 1: Ant Log4j

UPM - 1 -

Herramientas java

Page 2: Ant Log4j

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

Page 3: Ant Log4j

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)

Page 4: Ant Log4j

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

Page 5: Ant Log4j

UPM - 5 -

ANT

Page 6: Ant Log4j

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

Page 7: Ant Log4j

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.

Page 8: Ant Log4j

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).

Page 9: Ant Log4j

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.

Page 10: Ant Log4j

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

Page 11: Ant Log4j

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.

Page 12: Ant Log4j

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.

Page 13: Ant Log4j

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.

Page 14: Ant Log4j

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>

Page 15: Ant Log4j

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.

Page 16: Ant Log4j

UPM - 16 -

Tareas incorporadas   Ant

  AntCall

  AntStructure

  Apply

  Available

  Chmod

  Copy

  Cvs

  Delete

  Echo

  Exec

  ExecOn

  Fail

  Filter

  FixCRLF

  GenKey

  Get

  GUnzip

Page 17: Ant Log4j

UPM - 17 -

Tareas incorporadas (II)   Gzip

  Jar

  Java

  Javac

  Javadoc

  Mail

  Mkdir

  Move

  Patch

  Property

  Replace

  Rmic

  SignJar

  Sql

  Style

  Tar

  Taskdef

  Touch

Page 18: Ant Log4j

UPM - 18 -

Tareas incorporadas (III)   Tstamp

  Unjar

  Untar

  Unwar

  Unzip

  Uptodate

  War

  Zip

Page 19: Ant Log4j

UPM - 19 -

Tareas Opcionales   ANTLR

  Cab

  Depend

  FTP

  JavaCC

  Javah

  JJTree

  Jlink

  JUnit

  JUnitReport

  Native2Ascii

  PropertyFile

  RenameExtensions

  Script

  Sound

  Stylebook

  Telnet

  Test

Page 20: Ant Log4j

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

Page 21: Ant Log4j

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

Page 22: Ant Log4j

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.

Page 23: Ant Log4j

UPM - 23 -

LOG4J

Page 24: Ant Log4j

UPM - 24 -

Depurar / notificar con println

public class HelloWorld

{ public static void main(String[] args) { System.out.println(“Hello world!”); }

}

Page 25: Ant Log4j

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.

Page 26: Ant Log4j

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.”);

}

}

Page 27: Ant Log4j

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.

Page 28: Ant Log4j

UPM - 28 -

org.apache.log4j.Level

Otros niveles: 4 Level.ALL 4 Level.OFF

Orden:

DEBUG < INFO < WARN < ERROR < FATAL

Page 29: Ant Log4j

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.

Page 30: Ant Log4j

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.

Page 31: Ant Log4j

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.

Page 32: Ant Log4j

UPM - 32 -

Demostración eclipse