JSON Schema: el XSD de nuestros JSONs

JSON Schema es a JSON lo que XSD a XML, es decir un formato JSON para describir datos en JSON.

Actualmente es un draft que define un tipo JSON media type (application/schema+json).

Veamos un ejemplo.

Para este JSON:

Nuestro JSON Schema

En el que estamos definiendo que id es de tipo integer, Price es un number positivo, tags es un array con al menos un ítem e ítems únicos.

Existen implementaciones JSON Schema en Java, C, Javascript, Python,.NET, PHP,…

En Java podéis descargar el proyecto aquí , que se usa así:

Camel Essentials Refcard

Un nuevo Refcard:

Camel es una librería opensource para integración que permite integración de aplicaciones con enrutamiento, transformación de mensajes y protocolo de mediación usando los Parones de Integración.

Ofrece adaptadores out-of-the-box con un DSL (Java,XML o Scala).

Camel es apropiado como parte de una solución ESB o para implementar integración en un contenedor como Tomcat, incluso en un proceso Java stand-alone.

Uno de los conceptos más interesantes es el de sus DSLs:

Camel integra con Spring permitiendo definir su Camel Registry en Spring:

Camel también integra a la perfección con Apache CXF para el trabajo con Web Services (JAX-WS) y REST (JAX-RS).

Usando JPA para insertar y recuperar BLOBs

Vamos a escribir una serie de post sobre cómo trabajar con imágenes con tecnologías como JPA y Spring MVC.

Ahí va el primero, que muestra lo sencillo que es trabajar con JPA y BLOBs:

1. En mi entidad JPA añadiré un atributo de tipo byte[]

2. Añadimos la anotación JPA @Lob (y el nombre de columna, si es obligatoria,…):

3. En mi Test unitario escribo el código para cargar Imagen en BD y para leerla y escribirla en disco (omitimos asserts):

Alguien me va a tener que agradecer este post 😀

SymmetricDS: Software de replicación de base de datos

SymmetricDS es un software de replicación/sincronización de bases de datos escrito en Java.

· Soporta Oracle, MySQL, PostgreSQL, H2, HSQLDB, Derby, MS SQL Server, Firebird, DB2 de IBM, Informix, Interbase, y bases de datos Greenplum.

· Replica en tiempo casi real

· Soporta sincronización 2-way

· Soporta periodos de interrupción de red (funcionamiento offline)

Tiene una documentación muy completa que podéis ver aquí.

Podéis descargarlo desde aquí.