Java

  • ¡El stacktrace sale recortado! (y cómo resolverlo)

    Una situación anormal en Java que puede resultar muy molesta: al ejecutar los tests de nuestro proyecto, el stacktrace de las excepciones que puedan surgir aparece "abreviado" (o mejor dicho, cortado: sólo aparecen las primeras 2 líneas!). Por suerte, es algo muy simple de solucionar.

  • ¿Cómo obtengo las URLs de un portlet?

    Las URLs de un portlet tienen sus particularidades, ¿Sabés cómo acceder a ellas desde tus vistas?

  • ¿Puedo usar Spring en mi portlet?

    Anteriormente repasamos cuales eran las fases de un portlet, sumemos ahora una nueva herramienta que nos permitirá desarrollar portlets con uno de los frameworks mas utilizados en el ecosistema de Java.

  • ¿Qué es un PORTLET? ¿Cómo crear un "hola mundo" desde cero con SPRING?

     En este artículo vamos a hacer una breve introducción a los portlets. Así como también, como crear uno con spring.

  • ¿Qué tan bien conocés el ciclo de vida de un portlet?

    Al desarrollar con portlets y/o consumir sus servicios es importante entender los estados por los que pasa durante su ciclo de vida, ya que algunos de ellos son los que usaremos para determinar qué ocurrirá cuando se interactúe con nuestro portlet.

  • ¿Sabés cómo agregar funcionalidades a Liferay a través de OSGi?

    ¿Sabés cómo agregar funcionalidades a Liferay a través de OSGi?

    A partir de la version 7 de Liferay el CMS empezó a utilizar el framework OSGi para toda su infraestructura, lo que cambió algunos aspectos del desarrollo de portlets y nos dio nuevas herramientas para modificar o extender su comportamiento de base. Enfoquémonos un poco en entender que es OSGi y como podemos utilizarlo como desarrolladores para Liferay.

  • @ResourceMapping por sobre @ActionMapping

    En esta ocasión vamos a ver que ventajas tenemos con la utilización de @ResourceMapping por sobre @ActionMapping y que trae esto como consecuencia. Vamos!

  • Apache NetBeans 11: cómo configurar el IDE para aprovecharlo al máximo

    Hace ya varias semanas está disponible el release estable de Apache NetBeans 11. Para el proyecto es un enorme avance y esfuerzo. Y con algunos detalles podemos aprovechar al máximo este IDE. Veamos como instalarlo, configurarlo y dejarlo listo para usar!

  • Arquitectura de capas

    En el post anterior vimos qué era la arquitectura de software y para qué nos sera. En este nuevo post vamos a ver más en detalle la arquitectura de capas. 

    Se destaca por ser fácil de implementar en el comienzo del proyecto y fácil de entender para principiantes en el desarrollo de software.  

  • Builders: la solución definitiva a los datos de prueba en los test

    Imaginemos el siguiente escenario: estamos codificando el test para guardar un cliente, y necesitamos que ya exista en la base de datos la empresa a la cual pertenence. ¿Qué hacemos? Una primera solución rápida es contar con datos de tests ya existentes en la base de datos, y confiar en que dichos datos sirvan para nuestro test (o, si no alcanzan, agregar los datos de tests necesarios a la base). Y sin embargo... hacer esto es el comienzo de graves problemas.

  • Cómo evitar demoras en la JVM ocasionadas por el generador de números aleatorios

    En las plataformas Linux, la JVM utiliza /dev/random para la generación de números aleatorios. Este servicio del sistema operativo necesita de cierta cantidad de "ruido" (entrada por teclado, movimiento de mouse, transferencia de red, etc) antes de retornar un resultado. Y mientras espera este "ruido aleatorio"... se bloquea. Esto puede ocasionar bloqueos en procesos que requieren de números aleatorios, como WebLogic o Apache Tomcat. Por suerte, hay una solución simple.

  • Cómo usar JUnit 5 con Spring Boot 2.1.x

    JUnit 5 es la nueva versión del framework de testing para Java, que trae muchísimos cambios y mejoras... y es muy tentandor para empezar a usar. Sin embargo, si usamos Spring Boot sabemos que todavía no hay soporte directo para JUnit 5. Por suerte, vamos a ver que con unos pequeños cambios podemos aprovechar esta nueva versión del framework.

  • Configuración centralizada de aplicaciones con Spring Cloud Config


    Cuando desarrollamos microservicios, o cualquier aplicación que durante su ciclo de vida pasa por varios entornos diferentes. El mantenimiento de estas configuraciones deja de ser una tarea trivial. En este post veremos cómo utilizar Spring Cloud Config para facilitarnos esta labor!

  • Conversión de tipos con Spring

    En Spring 3 se introduce el paquete core.convert que proporciona una manera de conversión de tipo genérica. Define un SPI (Service Provider Interface) para implementar la lógica de conversión de tipos, así como una API para ejecutar conversiones de tipo en tiempo de ejecución. Esta manera es una alternativa a PropertyEditors que se encarga de convertir las propiedades a los tipos requeridos.

  • Firma Digital en documentos PDF

    Quizá te toca desarrollar un sistema que envía facturas, comprobantes de pago, turnos o contratos, todos documentos digitales que te interesa validar que no te los alteren o falsifiquen. Si los generás en PDF y estás trabajando en JAVA, este post es para vos.

  • Hablemos de Spring Batch

    Spring Batch

    En un mundo donde los datos fluyen a velocidades vertiginosas, enfrentar el procesamiento de grandes volúmenes de información puede ser un gran desafío. ¿Alguna vez tuviste que procesar numerosos registros, solo para encontrarte con un proceso lento, propenso a errores y con dificultades de recuperación en caso de fallo? La realidad es que, aunque los datos son vitales para nuestras operaciones, su manipulación no siempre es sencilla. Sin embargo, hay una solución que puede simplificar este proceso: Spring Batch

  • Introducción a Streams en Java

    Hoy vamos a ver una manera muy interesante de operar con colecciones de datos.
    ¿Querés saber que son los Streams de Java? Descubrámoslo juntos.

  • Machine Learning: Consulta a tu algoritmo inteligente por medio de un servicio REST en una aplicacion WEB en JAVA

    ¡Bienvenidos al tercer post de Machine Learning del blog! En el vamos utilizar el algoritmo inteligente creado en el anteriorpost y vamos a importarlo en un aplicación Web en JAVA. Para terminar vamos a exponer un servicio REST al cual vamos a consultarlo para realizar predicciones. Así que ¡Manos a la obra!

  • Pruebas de carga con JMeter

    Las pruebas de carga se realizan para conocer la capacidad máxima de un sistema bajo una carga determinada y poder dar con las causas que puedan condicionar su rendimiento. Algo fundamental cuando queremos mejorar la experiencia del usuario en nuestra aplicación.
    Para esto una herramienta muy recomendada es Apache JMeter. Por eso hoy vamos a ver de qué trata y cómo usarla, ¡adelante!

  • Refactor: ¿por dónde empezar?

    Recuerdo una vez que me encontré desarrollando una historia de usuario que requería cambiar un método que había hecho hace mucho tiempo atrás. Inmediatamente antes de arrancar noté que algo me hacía ruido, no me gustaba, no me convencía. Me di cuenta que tardé más de lo que me hubiese gustado en entender qué hacia realmente ese método. Inmediatamente pensé "mmm... ¡creo que esto amerita un refactor!".

    Es probable que te haya pasado algo similar en algún momento y que, como yo, te parezca que el código parece ser muy complejo para cambiar y no sabés por dónde empezar. En este post te voy a dar cinco consejos para que puedas hacerlo.