Java Converter Pattern

En Java como en cualquier otro lenguaje de programaci贸n, es com煤n encontrarnos con la necesidad de realizar conversi贸n de tipos de datos, sobre todo, aquellos tipos de datos de Entidad que tiene una relaci贸n directa con un DTO que utilizamos para enviar los datos del servidor a un cliente o aplicaci贸n web, lo que hace que tengamos que convertir la Entidad a DTO para enviarla al cliente y de DTO a Entidad para persistirla en la base de datos, lo cual es una tarea cansada y repetitiva que podemos evitar mediante el uso del patr贸n Converter.

as

Valores por defecto con @DefaultValue

Default Values con @DefaultValues

Es habitual que algunos de los par谩metros de nuestros servicios sean opcionales para el cliente, lo que provocar铆a la llega de estos valores en null para nuestra API, lo que puede resultar un problema para algunos par谩metros que son requeridos para el correcto funcionamiento del API y que al menos debemos de tener un valor por defecto en caso de no enviarse.

as

Header params con @HeaderParam

Header params con @HeaderParam

Los header son utilizados en REST para enviar metadatos asociados a la petici贸n o la respuesta, los cuales van desde el formato y tama帽o del payload, nombre del servidor del servidor de aplicaciones, fecha de invocaci贸n, caducidad de un recurso, versi贸n y nombre del sistema operativo, tipo de navegador, dispositivo, lenguaje y hasta headers para la seguridad.

as

Ordenar Listas en Java

Ordenar Listas en JavaSi eres programador seguramente te has encontrado con el problema de Ordenar Listas, pero 驴Estamos utilizando la soluci贸n correcta o estamos reinventando la rueda? Pues en este art铆culo hablaremos de las formas est谩ndares que ofrece Java para ordenar listas sin tener que programar m谩s de lo requerido.

 

B谩sicamente Java ofrece dos interfaces que ser谩n claves para realizar un ordenamiento simple, las cuales son Comparator聽 y Comparable, estas dos interfaces atienden contextos diferentes en el ordenamiento de las listas, pues existen dos escenarios concretos (Si ya conoces la teor铆a puedes brincarte a la 煤ltima secci贸n):

as

Java 8 鈥 M茅todos referenciados

m茅todos referenciadosLos m茅todos referenciados son una de las nuevas caracter铆sticas de Java 8 que nos permite hacer referencia a los m茅todos y constructores por medio de una interface funcional, dicho de otra manera, podemos implementar la funcionalidad de un m茅todo abstracto por medio de la implementaci贸n de un m茅todo ya implementado, asignando el m茅todo implementado al m茅todo abstracto. Esto puede resultar un tanto extra帽o, sobre todo porque Java era, hasta la versi贸n 8 un lenguaje demasiado estricto. as

WebSocket con Java

WebSockets con JavaEn este art铆culo aprenderemos a implementar WebSocket con Java, ya que en el pasado ya hab铆a dado una completa Introducci贸n a los WebSocket y explicamos que estos fueron introducidos como una mejora en HTML5, pero tambi茅n dijimos que los WebSocket son ejecutados por el navegador, y estos requieren de dos partes, un WebSocket cliente (Navegador) y un WebSocket Server (Backend). Pues bien, ya hab铆amos platicado como es que los WebSocket funcionan del lado del navegador, es por eso que ahora hablaremos de la otra cara, los WebSocket Server.

 

Como el t铆tulo de este articulo lo dice, hablaremos de c贸mo implementar los WebSocket utilizado Java como BackEnd, pero cabe mencionar que todos los lenguajes de programaci贸n deber铆an de tener sus propias API鈥檚 para soportar conexiones del lado del servidor. 聽Los WebSocket fueron agregados a apartar de la versi贸n Java EE 7 bajo la especificaci贸n JSR 356, es por ello que todos los Application Server certificados para Java EE 7 deber谩n de tener una implementaci贸n est谩ndar de dicha especificaci贸n. Basta de charla y pasemos a c贸mo implementar un WebSocket con Java.

 

Implementando un WebSocket con Java

 

Para explicar c贸mo funcionan los WebSocket vamos a implementar un ejemplo muy simple, crearemos una barra de progreso la cual se cargar谩 del valor 0 al 100 simulando que un proceso se est谩 ejecutando en el BackEnd. En el formulario tendremos un bot贸n que iniciara el proceso, cuando el usuario presione el bot贸n, enviaremos un mensaje al BackEnd por medio del WebSocket, en ese momento, el BackEnd iniciara con un proceso de notificaciones el cual enviar谩 por medio del WebSocket un mensaje con las actualizaciones de la barra de progreso. Este ejemplo est谩 desarrollado con Java 8 y Wildfly 9.0.

WebSocket con Java as

Entity Manager & Persistence Context

Tutorial de JPA persistence.xmlHasta el momento solo hemos trabajado con el Entity Manager para realizar las operaciones b谩sicas, pero existen detalles m谩s finos que es necesario entender para convertirnos en expertos de JPA. Cuando trabajamos con JPA es com煤n interactuar con el Entity Manager, 驴pero que tanto sabemos acerca de los Persistence Context en realidad?

 

Primero que nada, tenemos que saber que el Persistence Context se crea mediante un Persistence Unit y el Entity Manager se crea a partir de un Persistence Context, veamos la siguiente imagen para entender mejor:

persistence context

 

Veamos que todo parte del archivo persistence.xml del cual ya hablamos anteriormente, en este archivo se definen los Persistence Unit, y mediante estos es creado el Persistence Context, el Persistence Context tiene la finalidad de delimitar el alcance de las transacciones, pero tambi茅n est谩 delimitado a administrar las Entidades definidas por el Persistence Unit con el que fue creado. 聽Adicionalmente, el Entity Manager hace referencia a un Persistence Context el cual ser谩 utilizado para administrar las entidades y las transacciones. as