openxava
Blog

21 de septiembre del 2022

OpenXava 7.0 liberado

Después de cuatro años disfrutando de OpenXava 6, vamos a entrar en una nueva era, la era 7. Si bien OpenXava 6 supuso un gran cambio desde la perspectiva de la experiencia de usuario y el diseño visual, un cambio, por cierto, demasiado disruptivo para algunos de tus usuarios, OpenXava 7 se centra en la parte del programador. OpenXava 7 representa muchas mejoras para los desarrolladores, especialmente para los programadores Java.

Año tras año nos habéis estado pidiendo soporte de vuestras tecnologías Java favoritas en OpenXava, nos habéis pedido Maven, Maven y Maven, también IntelliJ, alguno de vosotros NetBeans, Java 17 o Tomcat 10.

No te preocupes, vamos a mejorar la UX y el estilo visual también en esta serie siete, pero lo vamos a hacer de forma incremental. Algunas pocas mejoras visuales en cada nueva versión, para que tus usuarios no piensen que has cambiado su aplicación por otra, pero al mismo tiempo manteniendo tu aplicación moderna y más fácil de usar en cada nueva versión.

El OpenXava que has estado pidiendo está aquí. Esperamos que te diviertas con él.

Descarga OpenXava Studio 7.0 para crear un nuevo proyecto OpenXava 7.0, o sigue la guía de migración para migrar tu actual proyecto a 7.0.

Maven, IntelliJ, Java 17 y Tomcat 10

La característica más importante de OpenXava 7 es el soporte de Maven. Ahora los proyectos OpenXava tienen una estructura Maven, usamos comandos Maven para cada tarea y el repositorio de Maven para obtener librerías de terceros. Si no vienes del mundo Java, Maven es la forma estándar de trabajar en el mundo de Java. Por eso, el soporte de Maven significa que puedes usar cualquier librería o herramienta disponible para Java fácilmente. Como consecuencia, ahora puedes usar tu IDE favorito con OpenXava, puedes desarrollar aplicaciones OpenXava 7.0 usando IntelliJ, NetBeans, Eclipse o Visual Studio Code.

Otra ventaja importante de ser compatible con Maven es que si contratas a programadores Java para que te ayuden a desarrollar tu aplicación, ellos ya sabrán dónde están las cosas en el proyecto, cómo desplegarlo en Tomcat o cómo agregar una nueva dependencia. OpenXava será terreno conocido para ellos.

También OpenXava 7.0 ha sido adaptado para que funcione bien con Java 17 y Tomcat 10, aunque Tomcat 8 y 9, y Java 8 y 11, todavía están soportados.

Dile adiós a lo viejo

No hay otra manera de añadir nuevas cosas, que despedirnos de las viejas.

Hemos eliminado:

  • Soporte para componentes XML eliminado, incluyendo todo el código relacionado.
  • Eliminado soporte para Liferay, WebSphere Portal, JetSpeed, portales y portlets.
  • Eliminado soporte para Tomcat 7.
  • Quitado soporte de Servlet 3.0, ahora Servlet 3.1 es la versión mínima de especificación soportada.
  • Todo el código relacionado con EJB se ha quitado.
  • Los métodos usesAnnotatedPOJO() y isPortalEnabled() se han quitado de ModuleTestBase.
  • La interfaz IPropertyCodeGenerator quitada.
  • Los módulos de documentación ya no se soportan, ahora simplemente se ignoran.
  • IPadStyle eliminado, no estaba disponible por defecto desde v5.0.
  • El uso de styles.properties para registrar estilos ya no está disponible.
  • Las propiedades emailAsUserNameInPortal y portletLocales de xava.properties ahora se ignoran.
  • MapFacade y MapFacadeBean ya no son Session Beans de EJB .
  • La interfaz IRemoteAction y la clase de utilidad Server quitadas.
  • Eliminado el editor DocumentLibrary para añadir documentos usando la librería de documentos de Liferay.
  • Eliminados XHibernate y HibernatePersistenceProvider, aunque la API de Hibernate todavía está disponible.
  • Eliminado JDBCTabProvider, usado para obtener los datos de la lista vía JDBC, sólo utilizado por los componentes XML.

No te preocupes, lo más probable es que no uses las tecnologías anteriores en absoluto. Los componentes XML, por ejemplo, quedaron obsoletos en OpenXava 3.0, desde OpenXava 3.0 todas las aplicaciones nuevas se desarrollaron con POJOs y JPA. OpenXava 3.0 se lanzó en 2008 , es decir, hemos mantenido hasta hoy una característica obsoleta ya desde hace 14 años. Sobre Liferay y el soporte de portales, desde OpenXava 5.0 se incluye un sistema de navegación y seguridad en OpenXava, además desde OpenXava 5.0 solo se soporta Liferay 6.1. OpenXava 5.0 se liberó en el 2014, 8 años para migrar desde Liferay. Así sucesivamente, con todas las demás cosas que hemos descartado.

Librerías actualizadas

Hemos actualizado la siguientes librerías de terceros:

  • JasperReports actualizado a 6.20.
  • Apache POI actualizado a 5.1.
  • Apache Commons IO actualizado a 2.11.
  • HtmlUnit actualizado a 2.63.
  • Hibernate actualizado a 5.6.10.
  • Hibernate Envers actualizado a 5.6.10.
  • La base de datos embebida HSQLDB actualizada a 2.6.1.
  • El Tomcat embebido usado en desarrollo actualizado a 9.0.65.        
  • Hibernate Validator actualizado a 6.0.23.        
  • Groovy actualizado a 4.0.4.        
  • jsoup actualizado a 1.15.3.
  • Apache PDFBox actualizado a 2.0.26.        
  • Apache Commons Validator actualizado a 1.7.        
  • JavaMail actualizado a 1.6.7.                
  • JAXB actualizado a 2.3.1.                
  • DWR actualizado a 2.0.11.
  • Lombok actualizado a 1.18.24.
  • Jersey (la implementación de JAX-RS) actualizado a 2.36.

Además, hemos cambiado la política de actualización de librerías. A partir de ahora, vamos a actualizar las librerías de terceros en cada nueva versión, por motivos de seguridad. 

Mejoras en la documentación

En los últimos meses hemos estado trabajando para mejorar la documentación y otros materiales didácticos como videos:

  • El código fuente para el curso en inglés y español está disponible en GitHub para cada lección.
  • La guía de primeros pasos se ha traducido a chino.
  • Las lecciones de la 1 a la 25 del curso están disponibles en chino.
  • Las lecciones 9 y 10 del curso se han dividido en varias lecciones más pequeñas.
  • Se han incluido videos para las lecciones de la 9 a la  23.
  • Documentación para desplegar en producción con Tomcat usando Maven.
  • Documentación para configurar MySQL, PostgreSQL, Oracle, MS SQL Server, AS/400, Informix, Db2 y Firebird con Maven.
  • Eliminada documentación desactualizada en ruso, chino y francés.

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.0.

Otras mejoras

Hemos hecho muchas mejoras en otras áreas:

  • Los proyectos Addons y OpenXava se han unificado en un solo proyecto, openxava.
  • El código para la seguridad y la navegación se ha refactorizado para ser más enchufable.
  • El estereotipo GALERIA_IMAGENES usa JPA para la persistencia en vez de Hibernate.
  • Añadidas configuraciones nuevas de bases de datos comentadas en nuevos proyectos: MS SQL Server, Informix, Db2 y Firebird.
  • Los proyectos nuevos no incluyen el esquema por defecto en persistence.xml por defecto.
  • La clase del controlador JDBC no se incluye en las definiciones de fuente de datos ni en la definiciones de unidades de persistencia en los proyectos nuevos.
  • Nuevo atributo de sesión de servlet xava.coreViaAJAX para desactivar la carga vía AJAX al entrar en un módulo la primera vez.
  • Nuevo método getField() en la clase de utilidad Classes.
  • Nuevo método getAsStreamInPrefixes() en la clase de utilidad Resources.

Arreglos

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

  • Arregladas 43 vulnerabilidades potenciales en las dependencias, ahora tenemos 0 vulnerabilidades.
  • Arreglo: Editores para anotaciones no funcionan en las clases hijas usando herencia.
  • Arreglo: Buscar en un @DescriptionsList no ignora los acentos en algunos casos.
  • Arreglo: Codificación china MS950 no funciona bien con caracteres en chino simplificado.
  • Arreglo: Descripción emergente (tooltip) para número de página siempre muestra "Primera página".
  • Arreglo: Entradas duplicadas quitadas de los archivos i18n.
  • Arreglo: Espacio en blanco extra en el vínculo "ocultarlos" en modo lista.
  • Arreglo: Módulo no arranca mostrando un error en el navegador si se usa un Java headless, como el que se instala por defecto en Ubuntu.
  • Arreglo: Codificación incorrecta en página de bienvenida, por lo que en algunos idiomas muestra ? en lugar del carácter correcto.
  • Arreglo: Hay código en las lecciones 2 y 6 del curso que no compila.
  • Arreglo: Algunas frases de explicación incorrectas en el texto del curso.
  • Arreglo: Algunos vínculos incorrectos en la barra de navegación superior del curso.
  • Arreglo: Mensaje para "Plantilla no encontrada" al generar un PDF personalizado no traducido.

Descarga OpenXava Studio 7.0 o sigue la guía de migración.

blog comments powered by Disqus

English - 中文