domingo, 7 de octubre de 2012

Class Loader de JBoss AS 7

Entre una de las enormes mejoras y grandes cambios que tuvo la nueva versión del JBoss Application Server (JBoss AS 7), podemos encontrar un nuevo núcleo modular, basado en un proyecto llamado JBoss Modules, que ofrece verdadero aislamiento de las aplicaciones.

Los que hemos usado versiones anteriores de JBoss AS, sabemos que el sistema de classloading siempre ha sido un dolor de cabeza. Es que compartir librerías en runtime entre aplicaciones (uno de los sueños dorados de la modularización) nunca fue fácil ni bien implementado.

JBoss Modules es el proyecto base para el nuevo sistema de classloading de JBoss AS 7. Con él, toda aplicación o librería desplegada en el servidor de aplicaciones es tratada como un módulo.

JBoss Modules resuelve los clásicos problemas de classloading de versiones anteriores de JBoss AS, ya que por defecto todo módulo vive en forma aislada. Este nuevo Class Loader es más performante y más sencillo de usar gracias a su diseño minimalista. Además, se dice por ahí que es más rápido que OSGi. Los módulos JBoss Modules y OSGi pueden verse entre sí sin problemas; OSGi viene soportado por JBoss AS 7 out-of-the-box.

Les dejo un link muy interesante del maravilloso sitio Java Code Geeks (que es un extracto del capítulo 6 del libro JBoss AS 7 Configuration, Deployment and Administrator de Francesco Marchioni), donde se explica en detalle el funcionamiento del nuevo Class Loader de JBoss AS 7 y sobre cómo configurarlo: