openxava
Blog

20 de noviembre del 2023

OpenXava 7.2 liberado

En nuestra última versión de OpenXava hemos mejorado el calendario para que soporte fechas con horas, añadiendo además una vista por semana y una por día. También tenemos un editor completamente nuevo para visualizar las colecciones en formato árbol, un editor con soporte para arrastrar y soltar. Además, ya soportamos Java 21 e incluimos muchas otras mejoras interesantes.

En el tema de las seguridad web hemos hecho importantes avances, si vuestras aplicaciones son accesibles en internet por el público en general y hackers diversos ahora van a ser más seguras todavía.

Para actualizar edita el archivo pom.xml en tu proyecto y cambia el valor de la propiedad openxava.version, de esta manera:

<properties>
    <openxava.version>7.2</openxava.version>
    ...
</properties>

Después compila tu proyecto:

  • Con OpenXava Studio:
    • Botón derecho del ratón en tu proyecto > Run As > Maven clean
    • Botón derecho del ratón en tu proyecto > Run As > Maven install
  • O con línea de órdenes: mvn clean package

Mira las instrucciones de migración.

Calendario con semana y día

Si vuestra entidad tiene alguna propiedad con fecha y hora, de tipo Timestamp o Date anotado con @DateTime, en la vista del calendario aparecerá la opción de ver la semana o el día. La vista de la semana tendría esta apariencia:



Y la del día esta:



En ambas vista podéis pulsar en cualquier hora para crear un registro con esa fecha y hora preestablecidas.

Además hemos hecho estas otras mejoras en el calendario:

  • Descripciones emergentes para los registros mostrados en el formato de lista del calendario.
  • Icono de suma explícito en cada día en el formato de lista del calendario para crear un nuevo registro para ese día.

Más mejoras de seguridad web

Hemos seguido mejorando la interfaz web que genera OpenXava para que sea más segura y difícil de hackear. Esta es una relación de las mejoras de seguridad:

  • Nueva propiedad turnOffWebSecurity en xava.property para desactivar el uso de CSP en las cabeceras web.
  • Eliminados los errores de Content Security Policy en la consola del navegador.
  • Todos los eventos de JavaScript en línea han sido eliminados del código de OpenXava.
  • Se eliminaron los enlaces con href="javascript:" del código de OpenXava.
  • Los eventos en línea en JavaScript ya no funcionan para vistas y editores personalizados.
  • Los enlaces con href="javascript:" ya no funcionan para vistas y editores personalizados.
  • Se minimizó el uso de eval() en el código de JavaScript.
  • Se eliminaron las antiguas bibliotecas de JavaScript de Yahoo por razones de seguridad.
  • Se eliminaron o actualizaron todas las bibliotecas de JavaScript de terceros vulnerables.
Si tu aplicación es pública o corre en un entorno donde la seguridad es importante te aconsejamos actualizar a 7.2.

Nuevo editor para colecciones @Tree

Hemos actualizado la librería JavaScript que usamos cuando anotas una colección con @Tree. Este es el aspecto que tiene:



Aparte de tener una apariencia más moderna que el anterior, no tiene vulnerabilidades de seguridad y es posible usar arrastrar y soltar para mover los elementos en el árbol.

Java 21

Como todos sabéis, el pasado septiembre se liberó la última versión LTS de Java, Java 21. Estamos seguros de que algunos de vosotros estáis deseosos de probarlo. Hemos hecho todas las adaptaciones necesarias, como actualizar la librería Lombok o hacer ajustes en el formateo de fechas, para que Java 21 funcione al 100% con tus aplicaciones OpenXava.

Para usarlo solo has de modificar el pom.xml de tu proyecto para que use Java 21:

<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>

Si usas OpenXava estudio tienes que dar de alta el JDK 21 en Window > Preferences > Java > Installed JREs. Un vez hecho eso configura tus tareas Maven y tu configuración de ejecución para que usen Java 21 para compilar y ejecutar tu aplicación.

Puedes ver una guía detallada de como usar Java 21 con OpenXava en nuestra documentación.

Librerías actualizadas

Hemos actualizado la siguientes librerías de terceros:

  • JasperReports y JasperReports Fonts actualizados a la versión 6.20.6
  • jQuery actualizado a la versión 3.7.1
  • jQuery UI actualizado a la versión 1.13.2
  • JUnit actualizado a la versión 4.13.2
  • Commons IO actualizado a la versión 2.15.0
  • POI y POI OOXML actualizados a la versión 5.2.4
  • Groovy actualizado a la versión 4.0.15
  • JSoup actualizado a la versión 1.16.2
  • HtmlUnit actualizado a la versión 3.7.0
  • PdfBox actualizado a la versión 2.0.30
  • JAXB actualizado a la versión 4.0.4
  • Lombok actualizado a la versión 1.18.30
  • Tomcat integrado utilizado en desarrollo actualizado a la versión 9.0.82
  • Jersey client, hk2, media actualizados a la versión 2.41
  • Log4j API y core actualizados a la versión 2.21.1
  • Versión del controlador en la documentación y en nuevos proyectos actualizados para MySQL, Oracle, AS/400 y Microsoft SQL Server.

Otras mejoras

Hemos hecho algunas mejoras en otras áreas:

  • Los iconos para eliminar y cambiar columnas cuando la personalización de listas están alineados a la derecha.
  • Nuevo método executed() en IAccessTrackerProvider, por lo que ahora las ejecuciones de acciones también se pueden rastrear.
  • Se eliminó el método getHrefAttribute() de HtmlUnitUtils.

Arreglos

Aunque esta no es una versión de mantenimiento hemos arreglado algo:

  • Arreglo: Al eliminar una columna con una propiedad calculada de una lista, se elimina correctamente sin dejar una columna en blanco a la derecha.
  • Arreglo: La acción predeterminada con takes-long=true ahora muestra la imagen "takes long" si el usuario presiona ENTER.
  • Arreglo: IForwardAction con inNewWindow() ahora se abre en una nueva ventana al presionar ENTER, incluso si es la acción predeterminada.

blog comments powered by Disqus

English - 中文