JDeveloper 11gR2 ps2 (11.1.2.2), PrettyURLs y Más

El día de ayer fué liberado JDeveloper 11gR2 ps2  el cual es la segunda patch del release de producción paralelo a 11gR1. Como lo mencioné en una entrada anterior, la línea de código de esta versión es únicamente para trabajar con ADF y ofrecer soporte a Java EE 6, Maven y el nuevo API de Extensiones para JDeveloper.

Pese a ser una versión de mantenimiento, lo cual quiere decir, que no contiene un gran espectro de nueva funcionalidad; si corrige un gran número de bugs. En esta entrada mencionaré un par de nuevas características que pueden comenzar a utilizar de inmediato:

Pretty URLs

Un concepto conocido en el mundo de JSF, en el cual se busca generar direcciones web amigables y alineadas con la sintaxis de las páginas que normalmente se acceden en el web. Existen varias soluciones como Urlrewrite y PrettyFaces que funcionan sobre JSF para maquillar las direcciones de las páginas en una aplicación JSF.

Una de las grandes ventajas que se tiene al utilizar ADF, es que este y muchos otros tipos tecnologías/mejoras,  se van adicionando a las nuevas versiones del framework y el desarrollador las tiene de forma inmediata y en la mayoría de los casos de forma transparente al actualizar a la nueva versión.

Hasta esta versión una aplicación ADF tenia la siguiente forma:

http://servidor:puerto/miapp/faces/pagina.jspx?_afrLoop=206714698081489&Adf-Window-Id=w0&_afrWindowMode=0&_adf.ctrl-state=169xq9qndn_3&_afrRedirect=206716586215058

A partir de esta versión varios de los parámetros de sesión van a quedar almacenados usando una funcionalidad que está presente en los browsers nuevos y se tiene la opción de mantenerlas en cookies para browsers anteriores. La URL queda:

http://servidor:puerto/miapp/faces/pagina.jspx?jsf?_adf.ctrl-state=1a2s9a55x7_3

CDN

Esta nueva característica permite distribuir o simular la distribución de elementos estáticos de la interfaz de usuario final, ¿Para qué? Para de esta forma cargar de forma más rápida los elementos tales como imágenes, contenido java script,  archivos CSS, etc. Tanto en esta versión como en el PS5 se puede de forma explicita en el archivo adf-config.xml elementos de esta forma:

   1: <!-- Application Images -->



   2:  



   3:   <base-resource-uri uri="http://ucm.wcps5vm.local/" output-context-path="preserve">



   4:    <match-pattern>^.*/(movies|images)/.*\.jpg$</match-pattern>



   5:   </base-resource-uri>



   6:  




donde el uri apunta un servidor que para el browser es externo, pero que dentro de nuestra aplicación apunta al mismo servidor en el que están alojados todos los recursos. Con este truco el browser carga elementos de la interfaz de forma paralela, en lugar de secuencial, lo cual impacta directamente el desempeño.



Para más información pueden leer este artículo de mi amigo Maiko Rocha del A-Team.