Utilización de la propiedad "Application build level" para almacenar información de versionamiento en WAS 8.x

...

Sobre el versionamiento de aplicaciones

Los administradores necesitan conocer la versión de las aplicaciones que se encuentran desplegadas en los servidores que administran.

La información de versionamiento puede generarse manualmente, estar gestionada por un software (SCM), crearse durante la ejecución de procesos de integración continua, etc. Sin importar la complejidad del proceso de asignación de la información relativa al versionamiento, la misma es importante para facilitar la trazabilidad de los artefactos de administración relacionados con las aplicaciones.

Modificaciones a nivel de EAR (Enterprise Application Archive)

Para que el servidor WebSphere interprete la información de versionamiento será necesario modificar el archivo META-INF/MANIFEST.MF dentro del EAR correspondiente a la aplicación. De no existir el archivo será necesario crearlo.

Archivo de manifiesto

Una ves identificado el archivo -tal como muestra la imagen precedente- habrá que incorporar la información de versionamiento, por ejemplo:

Manifest-Version: 1.0
Implementation-Title: Build Version Sample Application
Implementation-Version: v1.0.0 - 2013.09.14 - build 4
Implementation-Vendor: MicroGestion Software

La información ingresada respeta la especificación para establecer información de versionamiento a nivel de paquetes de Java, sin embargo el servidor WebSphere solo utilizará la propiead Implementation-Version para definir el valor de la propiedad Application build level.

Identificación de la información durante el despliegue

Durante el despliegue el servidor leerá la información del archivo MANIFEST.MF correspondiente al EAR y establecerá el valor de la propiedad Application build ID.

Despliegue EAR

Información de versionamiento luego del despliegue

Una vez que la aplicación fue desplegada con éxito la información de versionamiento se podrá consultar en la configuración de cada aplicación dentro de la sección Configuration > Detail Properties > Application binaries.

Propiedades Generales

Application build level: Unknown

Cuando no existe archivo de manifiesto para la aplicación, o no existe la propiedad Implementation-Version definida en el mismo, el servidor desconocerá la versión y le asignará el valor Unknown a la propiedad Application build level.

Es importante mencionar que el servidor no accederá a los valores de los manifiestos que residen en los módulos incluidos en la aplicación. Por otro lado, el nombre del archivo de manifiesto debe estar complétamente en mayúsculas.

Acceso programático a la información de versionamiento

El mecanismo mas sencillo para acceder a la información de versionamiento es leer directamente el archivo de manifiesto. El siguiente código permitirá desde un servlet o jsp acceder a la propiedad Implementation-Version:

Properties prop = new Properties(); 
try {
InputStream rersourceSteam = Thread.currentThread().getContextClassLoader().getResourceAsStream("META-INF\\MANIFEST.MF");
prop.load(rersourceSteam);
System.out.println("Version: " + prop.getProperty("Implementation-Version"));
} catch (IOException ex) {	
ex.printStackTrace();
}

Referencias


Modificado por última vez en Domingo, 17 Noviembre 2013 05:28

Acerca del autor

Diego E. Mendoza

Diego se desempeña como arquitecto de software en MicroGestion participando en el proceso de análisis y diseño de soluciones que tengan requerimientos de alta disponibilidad, integración de ambientes heterogéneos, orientación a servicios, gestión de procesos de negocio, etc.