PATROCINADO
Raiola Networks

LIFERAY. PROPIEDADES DE PORTAL.PROPERTIES MODIFICADAS QUE AFECTAN A FREEMARKER Y VELOCITY

Índice de contenidos

Velocity y Freemarker: portal.properties

Hay propiedades en el fichero portal.properties que afectan al procesamiento de plantillas realizadas en Freemarker o Velocity y aquí, aparece uno de los problemas comúnmente asociados al software libre: una nueva versión de la herramienta, puede implicar cambios que afectan a código desarrollado para versiones anteriores.Es precisamente lo que ha ocurrido con las clases y variables restringidas en Freemarker y Velocity a partir de la versión 6.2 de Liferay. En versiones anteriores nos encontrábamos con:
// Entre otras propiedades...
journal.template.freemarker.restricted.variables=serviceLocator
journal.template.velocity.restricted.variables=serviceLocator
Sin embargo, si nos bajamos el código fuente de LiferaySelección de Bundle LiferayAtención: Datos actualizados a 09/01/2017.En la actualidad, la zona de descarga de Liferay ha cambiado bastante y se ha orientado totalmente hacia la última versión de Liferay en este momento: Liferay 7. Para cualquier descarga de versiones anteriores o de recursos relacionados a esas versiones: Descargas de Liferay.…, abrimos el fichero /portal-impl/src/portal.properties con un buen editor y buscamos la palabra Velocity o Freemarker, nos daremos cuenta que ya no existen. Lo que ahora tenemos a nuestra disposición es (se indican las propiedades con los valores que vienen por defecto):Atención: Datos actualizados a 21/12/2015.
freemarker.engine.restricted.classes=\
java.lang.Class,\
java.lang.ClassLoader,\
java.lang.Thread

freemarker.engine.restricted.packages=
freemarker.engine.restricted.variables=serviceLocator

velocity.engine.restricted.classes=\
java.lang.Class,\
java.lang.ClassLoader,\
java.lang.Thread

velocity.engine.restricted.packages=
velocity.engine.restricted.variables=serviceLocator
Por tanto, si queremos acceder a esas variables y clases desde nuestras plantillas Freemarker o Velocity, el clásico fichero portal-ext.properties que sobrescribe a portal.properties contendrá algo como:
freemarker.engine.restricted.classes=
freemarker.engine.restricted.variables=
velocity.engine.restricted.classes=
velocity.engine.restricted.variables=

// Y para guardar compatibilidad hacia versiones anteriores:
journal.template.freemarker.restricted.variables=
journal.template.velocity.restricted.variables=
Parece ser que la razón del cambio es hacer más genéricas estas clases y variables que pueden ser usadas en diferentes contextos.En cualquier caso, acceder a esas variables y clases en plantillas, implica generalmente que vamos a usar lógica en ellas, lo cual no es recomendable, como tampoco es recomendable el uso de serviceLocator en plantillas, recomendándose mejor usar el método getClass().forName(‘…’). Sobre esto tengo pensado realizar un artículo, así que lo veremos con más profundidad más adelante.Nada más, un cordial saludo y hasta otra.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Foto Perfil
JOSÉ MANUEL DOMÍNGUEZ ROMERO
Más de 20 años formando y desarrollando, siempre aprendiz, ahora emprendedor que intenta compartir toda esa experiencia y conocimientos.
X

⭐️Pulsa para obtener un kit de cupones de 💰100€. ¡Otra sorpresa para ti!

¡Haz clic en https://temu.to/k/eiwp8hepesy para ganar dinero conmigo juntos🤝!

¡Llévate un descuentazo de Adamo de mi parte!Pásate a La Mega Fibra de 1.000 Mb con esta oferta exclusiva y 60 € de regalo.¡Entra en el link y no la dejes escapar!

¡¡¡ ÚLTIMAS DONACIONES !!!

🏆 Catalina Gasco Leonarte 🏆

¿Necesitas clases particulares de programación?

Reserva conmigo y recíbelas a través de Google Meet o similar.

Clases particulares

PATROCINADORES

(Los patrocinadores incluyen enlaces de afiliados, con cuyos servicios llevamos años, sin queja alguna y por tanto contrastados y recomendados por nosotros)

GANA DINERO CON FIVERR

Raiola Networks