OpenXava es un marco de trabajo AJAX para desarrollo rápido de aplicaciones web empresariales.
Con OpenXava sólo has de escribir las clases del dominio con Java para obtener una aplicación web lista para producción.
Esta versión 5.0 tiene un
nuevo estilo visual, incluye
navegación entre módulos,
identificación de usuario (por tanto ya no necesitas Liferay),
colecciones editables en línea (
como en una hoja de cálculo), un nuevo
editor para adjuntar archivos a tu entidad y muchísimas cosas más.
Te invitamos a que lo
descargues y actualices tus aplicaciones OpenXava. Mira las
instrucciones de migración.
Nuevo estilo visual
La mejor manera de ver el nuevo estilo es
echarle un vistazo a la demo.
Navegación entre módulos
Por fin, tus aplicaciones OpenXava incluirán menús para acceder a los módulos:
Por tanto, no necesitas usar Liferay para proveer navegación a tu aplicación, un simple Tomcat es suficiente. De todas formas, todavía puedes desplegar tus aplicaciones en Liferay donde estos nuevos menús no se muestran.
Identificación de usuario
Ahora tu aplicación le pedirá al usuario que se identifique:
Por tanto, no necesitas usar Liferay para proveer identificación de usuario. De todas formas, si despliegas en Liferay este mecanismo de identificicación de usuario no se usará. Además, lo puedes desactivar si lo deseas, para desarrollo o aplicaciones públicas.
Colecciones editables
En OpenXava 5.0 puedes tener colecciones como esta:
Donde el usuario puede modificar cualquier propiedad en cualquier elemento en cualquier momento y donde todos los elementos de la colección se graban a la vez, al mismo tiempo que la entidad principal.
Estas colecciones se definen usando
@ElementCollection, una anotación nueva en JPA 2 y son de objeto incrustables (no de entidades).
Para definir un colección de elementos usa
@ElementCollection en vez de
@OneToMany:
@ElementCollection
@ListProperties("producto.codigo, producto.descripcion," +
"producto.precioUnitario, cantidad, " +
"importe[factura.sumaImportes, factura.iva, factura.total]")
private Collection<LineaFactura> lineas;
Y define la clase para la colección de elementos como
@Embeddable en lugar de
@Entity:
@Embeddable
public class LineaFactura {
La interfaz de usuario generada a partir de este código será:
Puedes ver como estas colecciones soportan propiedades calculadas, referencias, totales, etc.
Editor para adjuntar archivos
Hasta ahora para adjuntar archivos a tus entidades tenias que crearte tu propio editor. Esto ya no es necesario, ahora puedes usar el nuevo estereotipo ARCHIVO, así:
@Stereotype("ARCHIVO")
@Column(length=32)
private String trailer;
Para obtener esto:
Se puede configurar para almacenar los archivos en la base de datos o en el sistema de archivos.
Otras mejoras
Hemos hecho muchas mejoras en otras áreas:
- Nuevo motor de generación de interfaz gráfica.
- Apariencia del editor de fecha mejorada.
- Varios informes en un único PDF con la nueva JasperConcatReportBaseAction.
- Anotación @Collapsed para iniciar las colecciones o referencias cerrada en la interfaz de usuario. También disponible para los componentes XML.
- Nuevo controlador NoCustomizeList para desactivar la personalización de la lista para un módulo específico.
- El usuario puede compartir un informe de 'Mis informes' con todos los demás usuarios.
- Nuevo proyecto Addons añadido a la distribución que contiene caracteristicas extendidas fuera del nucleo de OpenXava.
- Nuevo proyecto InvoiceDemo añadido a la distribución.
- Groovy actualizado a 2.2.2.
- JasperReports actualizado a 5.5.1.
- DWR actualizado a 2.0.10.
- JSTL actualizado a 1.2 usando Apache Standard Taglibs 1.2.1.
- JavaMail actualizado a 1.5.1.
- Actualización de la librerías commons a: beanutils 1.8.0, logging 1.1.1, digester 2.1, codec 1.9, fileupload 1.3.1, io 2.4, lang 2.6, validator 1.4.0.
- Actualización a Servlet 2.5 y JSP 2.1.
- Añadida librería Commons Lang3 3.2.1.
- Tomcat 7 incluido en la distribución.
- Eliminado soporte para IE6, IE7 y IE8.
- Usar module.jsp para ejecutar módulos desde el navegador ya no está soportado.
- Eliminado soporte de Java 5, a partir de ahora Java 6 o superior es obligatorio.
- Eliminado soporte de WebSphere 6.1 y WebSphere Portal 6.1.
- Eliminado soporte de Tomcat 5.5.
- Eliminado libreria jakarta-oro, sólo se usaba en el viejo commons-validator.
- Añadidos ejb.jar y jpa.jar a WEB-INF/lib para facilitar el despliegue en Tomcat.
- Eliminado el proyecto MiEscuela de la distribución distribution.
- Eliminado el proyecto AccessTracking de la distribución OpenXava.
- Clase Objects de org.openxava.util eliminada, puedes usar XObjects en su lugar.
- Nuevos métodos is/setCollapsed() en View para cerrar los marcos de una referencia o colección programáticamente.
- Añadidos validateMinimum() y validateMaximum() a CollectionElementViewBaseAction.
- Nuevo método getPopupPDFPageCount() en ModuleTestBase.
- Nuevos métodos setValueInCollection(), assertEditableInCollection() y assertEditableInCollection() en ModuleTestBase.
- Nuevo método noFirstTokenWithoutFirstDelim() en Strings.
- Cuando se especifica @Digits la escala por defecto se ignora incluso si no especifica la fracción.
- Rendimiento de la acción de borrar en modo detalle mejorado.
- Comportamiento con nivel de aislamiento READ COMMITED mejorado.
- Nuevo métodos commit() y rollback() en BaseAction.
- Métodos Is.emptyString() y Is.emptyStringAll() permiten un número infinito de argumentos.
- Método clearCondition() quitado de ModuleTestBase.
Arreglos
Aunque esta no es una versión de mantenimiento hemos arreglado algunas cosas:
- Arreglado: Doble borde usando .ox-frame en el CSS con el nuevo renderer.
- Arreglado: Totales en los marcos de colecciones no se muestra en el nuevo renderer.
- Arreglado: Método assertListRowCount() de ModuleTestBase falla cuando el valor de la propiedad summationInList es false.
- Arreglado: Los subcontroladores fallan en modo ambos.
- Arreglado: Codificación incorrecta en correos enviado con la clase Emails.
- Arreglado: Miembro dentro de @NoFrame no se alinean con los miembro de fuera.
- Arreglado: Tamaño por defecto incorrecto para java.lang.Boolean.
- Arreglado: Vista rota al recargar si el módulo está dentro de una tabla HTML.
- Arreglado: Propiedad simple después de un grupo sin ; no se coloca correctamente.
- Arreglado: Una referencia con @NoFrame dentro de un grupo produce una disposición fea.
- Arreglado: Mensajes de error para @Size en colecciones muestra 'Element' siempre en inglés, incluso si no se está usando inglés.
- Arreglado: Primer campo con poco margen arriba con el nuevo renderer.
- Arreglado: Id html de los marcos no es correcto para las referencias con el nuevo renderer.
- Arreglado: Propiedades alineadas por columna cuando no deberían, con el nuevo renderer.
- Arreglado: Iconos de propiedades no se alinean correctamente con el nuevo renderer.
- Arreglado: La escala definida en longitud-defecto.xml se ignora al formatear.
- Arreglado: La escala definida en @Column y @Digits se ignora al formatear.
- Arreglado: La anotación @LabelStyle no se soporta en el nuevo renderer.
Descarga OpenXava 5.0