Generación de Logs
Manejo de Threads
Ciclo de vida de las aplicaciones (Maven y ANT)

Logs
Sirve para
- Descubrir problemas
- Monitorizar acciones
- Registrar evidencia

Frameworks
- Log4j
- java.util.logging
- Logback
- Slf4j
- TRACE: Se usa para información más detallada que el nivel debug.
- DEBUG: Se utiliza para mensajes de información detallada que son útiles para debugear una aplicación.
- INFO: Se utiliza para mensajes de información que resaltan el progreso de la aplicación de una forma general.
- WARN: Se utiliza para situaciones que podrían ser potencialmente dañinas.
- ERROR: Se usa para eventos de error que podrían permitir que la aplicación continúe ejecutándose.
- FATAL: Se usa para errores muy graves, que podrían hacer que la aplicación dejara de funcionar.
Slf4j
Abstrae del framework de logs a utilizar y no requiere cambiar el codigo para cambiar de framework, simplemente a traves de configuración, es totalmente combinable con otros frameworks

- slf4j + log4j
- slf4j + java.util.logging
- slf4j + logback

Configuración Log4j
Threads
Sirve para
- Permitir ejecutar multi tareas a la vez
- Mejorar los tiempos de respuesta
Implementacion
- Se debe heredar la clase Thread que implementa la interfaz Runnable


Un thread es parecido a un proceso la diferencia es que un thread ocupa memoria
Cuando usar manejo de threads?
- Cuando un proceso este generando cuello de botella para ejecutar otros procesos
- Cuando se requiera dividir una tarea en múltiples tareas y procesar cada una de ellas de forma simultanea (solo si se puede)
Caso de Uso
Se requiere procesar la compra de multiples clientes de un supermercado en multiples cajas de forma simultanea


Sin usar threads
Caso de Uso
Se requiere procesar la compra de multiples clientes de un supermercado en multiples cajas de forma simultanea




Usando threads
Maven
- Es una herramienta que permite gestionar y construir un proyecto JAVA.
- Basado en la estructura de archivo POM (Project Object Model)
Que hace el archivo POM?
- Describe el proyecto
- Define los módulos con sus dependencias
- Define el orden de construcción
- Establece metas claras

Ciclo de Vida Maven
- Compila (.java => .class)
- Test (JUnit) (Solo si existe)
- Package (.class => .jar)
- Install (Copia .jar => Directorio Local)
- Deploy (Copia .jar => Remote Server)
Metas
- Clean => Elimina .class y .jar
- Site-deploy=> Genera pom.xml y .apt

Archivo POM

Que es ANT?

- ANT => "Another Neat Tool"
- Open source
- Automatiza procesos mecanicos y repetitivos.
- Permite la compilación y ejecucion de tareas de manera orquestada.
- Es multiplataforma
- Utiliza archivo de configuración XML llamado "build.xml"
Tareas en ANT


End to End Build
Build.xml - Ejemplo

Uso
- Descargar ANT: http://ant.apache.org/bindowload.cgi
- Disponer de una distribucion de ANT y tener instalado la version 1.5 o superior del JDK
- Usar el comando ANT a traves de la consola de comandos

Limitaciones
- Problemas de memoria en proyectos muy grandes
- Se hace dificil la mantencion
java-01
By Emilio Montes
java-01
- 283