15. Ejecución Ideal Aplicación standalone Agregar “–javaagent:<aspectJ>/aspectjweaver.jar”a los parámetros de la JVM al iniciar la aplicación
16. Ejecución Ideal Aplicación Web / “Empresarial” Tomcat Modificar context.xml declarando el reemplazo del classloader principal JBoss 6.0 Modificar jboss-scanning.xml indicando que se carguen primero las clases del ApplicationContext WAS ಠ_ಠ
17. Classloader? Agent? ¿No que AspectJ hace todo automágicamente? AspectJ se recompila en conjunto con el código Java para incluir los advices Existe la posiblidad de hacer el weaving de aspectos en tiempo de carga de clases, sin recompilar nada “-javaagent” permite realizar acciones antes del main (a través de premain)
18. Classloader? Agent? Load-Time Weaving AspectJ se encarga de agregar un ClassTransformer al classloader de la aplicación que realiza el weaving En Tomcat, el WebAppClassLoader no admite la posibilidad de incluir transformadores de clases Es por eso que se extiende el classloader para incluirlos Los demás servidores de aplicaciones ya lo permiten (por ejemplo, para JPA)
19. Pendientes Las clases de los JSP se generan en un classloader distinto al de la aplicación Los EJB a su vez pueden correr en una aplicación diferente (distinto ClassLoader) Habilitar el FW en WAS <= 6 (JDK 1.4) Realizar más acciones thread-safe