Una de las funciones más utilizadas en Java (y otros lenguajes de programación) es la de poder guardar parámetros de configuración (o propiedades, como deseen llamarlo) en archivos de texto plano. En Java, estos archivos reciben el nombre de "Property File" o "Archivo de propiedades", y se encargan de almacenar información como pares "clave - valor". Por ejemplo:
//clave=valor Default.IPServidor=127.0.0.1 Default.PuertoServidor=8081 Default.UsuarioBaseDeDatos=hr //…etc.
En Internet se pueden encontrar muchos tutoriales para poder aprender y comenzar a utilizarlos, la verdad, no es nada del otro mundo. Sin embargo, algo que es también conocido y resulta muy repetitivo es el hecho de que el desarrollador debe encargarse de toda la lógica para poder: ubicar el archivo de propiedades, validar su existencia, cargar el archivo en memoria, validar la existencia de los parámetros en el archivo, y todo el manejo y propagación de excepciones que esto conlleva.
Es ahí donde entra el pequeño API que encontré en una de esas tardes en que la necesidad golpea tu mente y piensas “alguien más también tuvo este problema y de seguro lo resolvió” (uno de los principios de un buen desarrollador es aprender a copiar y pegar, siempre tratar de no reinventar la rueda).
El API se llama “OWNER” y lo que permite básicamente es abstraer toda esa lógica nombrada anteriormente, y orientarse a desarrollar una interfaz simple de Java, que con ayuda de unas cuantas anotaciones queda lista para poder ser un objeto configurado al que le podemos solicitar las propiedades que deseemos las veces que queramos. Únicamente lo que debemos hacer es:
- Crear una interfaz Java que me represente los métodos de obtención de valores. Un método por cada propiedad.
- Configurar la o las rutas de los archivos de propiedades desde los cuales se encargará de tomar los datos.
- Configurar para cada método la “clave” o propiedad cuyo valor se encargará de ofrecer. Y de ser necesario, un valor por defecto, en caso de que no encuentre el valor en ninguno de los archivos cuyas rutas han sido configuradas.
A continuación les dejo la dirección de la página oficial del API en mención que ya he comenzado a probar y me ha dado buenos resultados. Espero en una futura entrada poder hacer un pequeño tutorial acerca de la utilización de este API. (Pese a que en su página se muestra de una manera bastante clara y sencilla su utilización).
Vale recalcar que la descarga del sitio oficial, son archivos fuentes. Tomé la libertad de tomar estos fuentes y crear un JAR para poder facilitar la transportación de estas clases y la librería de OWNER como tal. Esto simplificará la tarea de utilizar este API en cualquier proyecto (únicamente agregando el JAR en el destino necesario).
El link al JAR es el siguiente.
Si les ha parecido interesante la entrada, tienen comentarios, u opiniones acerca de este API o alguno relacionado, siéntanse en la libertad de comentar. La meta es aprender.