De acuerdo con Wikipedia, OpenXava es un marco de trabajo de código abierto para desarrollar aplicaciones de gestión de una forma efectiva. Permite el desarrollo rápido y fácil de mantenimientos y listados pero, a su vez, es lo suficientemente flexible para desarrollar complejas aplicaciones de gestión de la vida real como contabilidad, facturación, gestión de personal, nóminas, gestión de almacenes, etc.
Actualmente OpenXava genera aplicaciones web Java (J2EE/JavaEE), que pueden ser desplegadas en cualquier portal Java (JSR-168) como una aplicación de portlets.OpenXava es una herramienta libre.
Para poder trabajar con la aplicación de demostración es necesario descargar el programa desde el sitio web http://www.openxava.org/web/guest/home y, preferiblemente el ambiente de desarrollo de Eclipse para J2EE desde el sitio http://www.eclipse.org/downloads/
Siguiendo las instrucciones del mismo sitio web, es fácil poner en producción la aplicación web de ejemplo, así como es sorprendente ver que toda la aplicación de ejemplo queda reducida a estas dos clases en JAVA, ya que OpenXava provee automáticamente el resto:
package org.openxava.escuela.modelo; import javax.persistence.*; import org.openxava.annotations.*; @Entity public class Alumno { @Id @Column(length=2) @Required private int numero; @Column(length=40) @Required private String nombre; @ManyToOne @DescriptionsList private Profesor profesor; public int getNumero() { return numero; } public void setNumero(int numero) { this.numero = numero; } public String getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre = nombre; } public Profesor getProfesor() { return profesor; } public void setProfesor(Profesor profesor){ this.profesor = profesor; } }
package org.openxava.escuela.modelo; import java.util.*; import javax.persistence.*; import org.openxava.annotations.*; @Entity public class Profesor { @Id @Column(length=5) @Required private String codigo; @Column(length=40) @Required private String nombre; @OneToMany(mappedBy="profesor") private Collection<Alumno> alumnos; public String getCodigo() { return codigo; } public void setCodigo(String codigo) { this.codigo = codigo;} public void setAlumnos(Collection<Alumno> alumnos) { this.alumnos = alumnos; } public void setNombre(String nombre) { this.nombre = nombre; } public String getNombre() { return nombre; } public Collection<Alumno> getAlumnos() { return alumnos; } }
En el siguiente video se puede encontrar una breve introducción a OpenXava provista por el grupo de AltainetGroup: