Category Archives: Java

Instalar Maven en Ubuntu

Para ‘instalar’ Maven en Ubuntu es necesario solamente descargarlo, descomprimirlo y que configures algunas variables de entorno y el path. Descargar Maven desde https://maven.apache.org/download.cgi Descomprime la carpeta en alguna ubicación de tu preferencia. En mi caso la he descomprimido y luego copiado en /opt/maven3/ de esta forma cp -r /home/gustavo/Downloads/apache-maven-3.3.3/ /opt/maven3/ Agrega el directorio de… Read More »

Java Islands of isolation (islas de aislamiento)

Uno de los factores por los cuales el GC (garbage collector) elige los objetos que serán limpiados de memoria es cuando estos no tienen una referencia válida. Pero existe un caso particular en el que a pesar de tener referencias válidas los objetos pueden ser elegidos por el GC. Un ejemplo claro de esto es por ejemplo… Read More »

Introducción usando Pattern y Matcher

Esta es una introducción, bastante simple, a fin de comprender acerca de patrones. Los patrones son expresiones que podemos utilizar para buscar dentro de un texto. Dicho de otra forma cuando creamos una “expresión regular” estamos definiendo un patrón de búsqueda para localizar cadenas de caracteres. En java contamos con dos clases importantes para esto: Pattern es una representación… Read More »

Java Sincronizacion Conceptos Básicos

La sincronización de nuestro código evitará que diferentes hilos accedan a la misma vez a determinada porción de código. Este es un problema tipico de concurrencia. Suponemos este caso, donde dos personas con una cuenta en común que tiene balance de 80, realizan a la misma vez una extración por 50. La cuenta no debería… Read More »

Java Threads Basico

Un thread es un “hilo” de ejecución de un programa. La JVM permite la ejecución de multiples hilos concurrentemente. Tenemos dos formas de crear Threads en Java. La primera de ellas extendiendo de java.lang.Thread y la segunda implementando la interfaz java.lang.Runnable Para el primer caso tenemos este ejemplo, extendiendo de Thread, donde sobreescribimos el metodo… Read More »

Orden de ejecución de los Bloques en Java

Este suele ser un tema que se olvida fácilmente o no se tiene en cuenta en la construcción de las clases. En la revisión de código suelo encontrarme con problemas originados por este motivo. Repasando: -Los “Init blocks” se ejecutan en el orden que aparecen -Los “static init blocks” se ejecutan una sola vez cuando… Read More »

Java JMX con Spring y Tomcat – Hello Word Example

Java Management eXtensions nos permite monitorear y manejar servicios sobre aplicaciones basadas en Java. Configurando Spring   <!– Usamos MetadataMBeanInfoAssembler y lo configuramos con una instancia de la clase AnnotationJmxAttributeSource que se le pasa a MBeanExporter a través de la propiedad ‘assembler’. Con esto podemos utilizar y exponer nuestros bean con Anotaciones. –>   <!–… Read More »

Spring MVC Validation

Ejemplo de Spring Validation en pocos pasos. Spring 3 incorpora el soporte para el api de validacion JSR-303 (JSR-303 Bean Validation API). 1-Configurar el Contexto de Spring agregando 2-Agregar las anotaciones con los constraints que necesitemos en el bean. 3-Crear el .properties con los mensajes para cada constraints 4-Creamos nuestro jsp con el form y… Read More »

Spring MVC Ejemplo Hola Mundo

Este es un simple Hola Mundo para mostrar Spring MVC Librerías necesarias Las encuentras en http://www.springsource.org/download/ Configuración de Spring MVC en tu web.xml Prestar atención a org.springframework.web.servlet.DispatcherServlet que es la clase de Spring que se encarga de ‘despachar’ las url que están bajo url-pattern, en este ejemplo todas las url con *.html. Spring MVC buscará… Read More »

Leer una DBF con Java

Me encontré con la necesidad de leer un archivo de tipo “dbf” (dBase) y buscando un poco encontre esta librería que me resolvio el problema. http://dans-dbf-lib.sourceforge.net/ El jar lo puedes descargar desde http://sourceforge.net/projects/dans-dp-lib/files/ A modo de ejemplo alcanza con observar esta clase… import nl.knaw.dans.common.dbflib.Field; import nl.knaw.dans.common.dbflib.IfNonExistent; import nl.knaw.dans.common.dbflib.Record; import nl.knaw.dans.common.dbflib.Table; import nl.knaw.dans.common.dbflib.Type;   /** *… Read More »

JUnit: test Parametrizados

Me encuentro seguido con la necesidad de realizar pruebas pasando a mis test case ciertos parametros. Este simple ejemplo  permite ver como JUnit lo resuelve. Para esto debes anotar la clase con @RunWith(Parameterized.class) import java.util.ArrayList; import java.util.List;   import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters;   /** * Ejemplo de test Parametrizado… Read More »

Formula PAGOPRIN de Excel en Java

Cálculo de la formula PAGOPRIN de Excel implementada en Java. La formula básica es esta (saldoCapital * tasa) * (1 / (Math.pow(1 + tasa, plazo – cuotaActual + 1) – 1)); Va un ejemplo:   public class TestCalcularAmortizacion {   public static void main(String[] args) {   double deuda = 1000d; int plazo = 12;… Read More »

Java Singleton APP – Crear un Socket para controlar una sola instancia de tu APP con opción de Shutdown

Este es un breve ejemplo sobre como crear un socket para controlar que corra una única instancia de tu app y que se quede escuchando hasta recibir un stop / shutdown para cerrar la aplicación. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Inet4Address; import java.net.ServerSocket; import java.net.Socket;   import javax.net.ServerSocketFactory;   import org.apache.log4j.BasicConfigurator;… Read More »

Integrar JUnit con Spring

Integrar JUnit con Spring es bastante simple. Solo debes crear tu test y anotarlo con @RunWith(SpringJUnit4ClassRunner.class). JUnit invocará la clase de referencia, en este caso ‘SpringJUnit4ClassRunner’. SpringJUnit4ClassRunner se encargará de levantar el contexto de Spring, en este ejemplo tengo dos contextos, donde el segundo ‘sobreescribe’ al primero. La configuración del contexto puedes pasarla con otra… Read More »