24 de marzo del 2025
OpenXava 7.5 liberado Hemos modificado OpenXava para que soporte la recarga del código en caliente en desarrollo, sin alterar ni un ápice el rendimiento en producción. Esta versión también incluye una actualización del estilo visual y muchas otras cosas útiles, como nuevos tipos de gráficos para @Chart, nuevas opciones para @Tree, etc. En total más de 30 cosas nuevas que os van a gustar. |
|
|
| OpenXava 7.5 liberado |
|
| 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.5</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
No necesitas descargar OpenXava Studio de nuevo; tu OpenXava Studio actual funcionará automáticamente con la nueva versión de OpenXava. No necesitas descargar nada; solo actualiza el pom.xml de tu proyecto.
Mira las instrucciones de migración. |
|
Recarga del código en caliente Esto quiere decir que puedes tocar cualquier parte del código, grabar, ir al navegador y ver la aplicación actualizada. Todo instantáneo, sin necesidad de hacer un build, Maven install, reiniciar la aplicación, ni siquiera recargar la página en el navegador. Estos son los cambios que puedes hacer en tu aplicación sin reiniciarla. La mayoría son efectivos sin ni siquiera recargar la página del navegador:
- Código Java: Agregar, eliminar o modificar campos, métodos, anotaciones, clases (incluidas anónimas), miembros estáticos y valores de enumeraciones. Se gestionan correctamente la redefinición de clases anónimas y la inicialización de miembros estáticos.
- Propiedades calculadas: Puedes añadir, eliminar o modificar una propiedad calculada en una entidad y aparecerá inmediatamente en la aplicación, tanto en modo lista como en modo detalle.
- Anotaciones de OpenXava: Si cambias, añades o quitas anotaciones de OpenXava como @View, @DescriptionsList o @Tab también verás el efecto inmediatamente.
- Propiedades persistentes: Al añadir, modificar o quitar una propiedad persistente a una entidad, se verá inmediatamente en la interfaz de usuario, en modo detalle y modo lista. Además, si tenemos la evolución de esquema activada, se creará la columna correspondiente en la tabla de la base de datos.
- Entidades nuevas: Si creas una nueva clase y la anotas con @Entity, no solo se reconocerá sino que habrá automáticamente un nuevo módulo disponible (en el menú de la izquierda y mediante URL). Si tenemos la evolución de esquema activada se creará la tabla en la base de datos. En este caso hay que pulsar el botón de recargar en el navegador para ver el nuevo módulo.
- Controladores: Si añadimos o quitamos controladores en controladores.xml, añadimos, modificamos o cambiamos acciones en un controlador, etc. Todo se reconoce inmediatamente, apareciendo (o desapareciendo las acciones) nada más pulsemos una acción en la interfaz de usuario.
- Aplicación: Podemos añadir, modificar y quitar módulos en aplicacion.xml. Los nuevos módulos se ven después de pulsar recargar en el navegador.
- Etiquetas y mensajes: Si cambiamos las etiquetas y mensajes en los archivos i18n, también tiene efecto sin reiniciar la aplicación. Aunque en este caso hay que pulsar recargar en el navegador, para ver las nuevas etiquetas.
No es necesario arrancar en modo debug para que se reconozcan los cambios, pero sí que hay que arrancar con el Java de OpenXava Studio 7 R4. La recarga del código en caliente también funciona con IntelliJ y Visual Studio Code. Más información en la documentación. |
|
Estilo visual moderno Un estilo visual más redondeado y plano, en línea con las tendencias de diseño actuales:
- Esquinas redondeadas para marcos, diálogos, listas, tarjetas, botones, mensajes, inicio de sesión, tooltips, gráficos, etc.
- Diseño plano aplicado a la mayoría de los elementos de la interfaz de usuario, eliminando sombras.
- Las pestañas y los botones ya no usan mayúsculas en su totalidad.
- Los marcos ya no usan degradados en los fondos.
- Los marcos anidados utilizan un color de fondo diferente.
- En el tema oscuro, el borde de las listas se elimina y se reemplaza por un cambio de color en el fondo.
La estructura CSS se mantiene sin cambios y conservamos los temas actuales con su paleta de colores existente, por lo que no tienes que preocuparte por ninguna incompatibilidad en tu código actual. |
|
Otras mejoras Hemos hecho algunas mejoras en otras áreas:
- Gráficos de tarta y de líneas disponibles para colecciones mediante el nuevo atributo 'type' en @Chart.
- El número de acciones de fila para mostrar un popup es configurable a través de rowActionsPopupThreshold en xava.properties.
- Nuevo atributo allowMoveNodes en la anotación @Tree para deshabilitar el drag & drop y mover nodos en el árbol.
- La anotación @Tree es suficiente para visualizar colecciones como un árbol, sin necesidad de usar @Editor("TreeView").
- El redimensionamiento de columnas por parte del usuario en listas y colecciones está habilitado por defecto.
- Creación personalizada de EntityManagerFactory de JPA con entityManagerFactoryProviderClass en xava.properties.
- Archivos default-controllers-ext.xml / controladores-defecto-ext.xml para definir controladores en bibliotecas o frameworks.
- El título HTML del módulo ahora es "Nombre del módulo - Nombre de la aplicación".
- Las taglibs JSP xava:action, xava:link, xava:image y xava:button tienen un nuevo atributo alwaysAvailable.
- Todo el código Java del core de OpenXava convertido a codificación UTF-8.
- La clase lanzadora AppServer tiene un nuevo método run(application, extraClassPaths) para indicar classpaths adicionales.
- Java 11 como nivel de compilación predeterminado para nuevos proyectos (desde archetypes), aunque Java 1.8 sigue siendo soportado.
- Algunas nuevas etiquetas de uso común para ser utilizadas en aplicaciones.
|
|
Librerías actualizadas Hemos actualizado la siguientes librerías de terceros:
- Commons Logging actualizado a la versión 1.3.5.
- Groovy actualizado a la versión 4.0.26.
- HtmlUnit actualizado a la versión 4.10.0.
- PDFBox actualizado a la versión 3.0.4.
- JSoup actualizado a la versión 1.19.1.
- Json actualizado a la versión 20250107.
- Tomcat embebido utilizado en desarrollo actualizado a la versión 9.0.102.
- Versión del controlador en la documentación y nuevos proyectos actualizada para MySQL, PostgreSQL, Oracle, AS/400 e Informix.
|
|
Documentación Hemos estado trabajando para mejorar la documentación:
- Documentación en la guía de referencia para crear acciones de fila opcionales según el contenido de la fila.
- Mejorada la documentación sobre acciones en modo lista en la sección de controladores de la guía de referencia.
- Video sobre la creación de un CRM incluido en el artículo de documentación sobre plantillas de proyecto.
- Lección 10 del curso de informes con JasperReports disponible en la documentación con video.
Publicamos nueva documentación y videos constantemente, sin esperar a que la versión oficial del código se publique. Por lo que ya has estado usando mucho del material de arriba durante algún tiempo, aunque toda la documentación citada está en GitHub bajo el tag de versión 7.5. |
|
Arreglos Aunque esta no es una versión de mantenimiento hemos arreglado algo:
- Arreglo: Llamadas redundantes a isAvailable() de IAvailableAction en acciones de fila (introducido en la versión 7.4).
- Arreglo: Espacio extra entre acciones de fila cuando se omite una usando IAvailableAction.
- Arreglo: IAvailableAction en una acción de fila no se muestra en ninguna fila si no está disponible en la primera fila (error de la versión 7.4).
|
|
|
|