|This article needs additional citations for verification. (June 2016) (Learn how and when to remove this template message)|
|Stable release||5.5  / April 27, 2016|
|License||GNU Lesser General Public License|
OpenXava is a web framework for developing business applications in an effective way. It not only allows rapid and easy development of CRUD modules and report generation, but also provides flexibility to develop complex real life business applications like accounting packages, customer relationship, invoicing, warehouse management, etc.
The essence of OpenXava is that the developer defines instead of programming, and the framework automatically provides the user interface, the data access, the default behavior, etc. In this way, all common issues are solved easily, but the developer always has the possibility of manually programming any part of the application, in this way it is flexible enough to solve any particular cases. OpenXava is based on the concept of the business component.
Business component versus MVC
A business component includes all software artifacts needed to define a business concept. OpenXava is a business component framework because it allows defining all information about a business concept in a single place. For example, for defining the concept of Invoice, in OpenXava a single file (Invoice.java) is used, and all information about invoice concept (including data structure, user interface layout, mapping with database, validations, calculations, etc.) is defined there.
In an MVC framework the business logic (the Model), the user interface (the View) and the behavior (the Controller) are defined separately. These types of frameworks are useful if the rate of change of logic and data structures is low and the possibility of changing user interface technology or data access technology is high.
In OpenXava, the addition of a new field to an Invoice only requires changing a single file: Invoice.java. But MVC frameworks are cumbersome when changes to structure and data are very frequent (as in the business application case). Imagine the simplest change, adding a new field to an Invoice. In the MVC framework the developer must change three sections: the user interface, the model class and the database table. Moreover, if the developer uses Java EE design patterns he has to change the DTO class, the Facade Session Bean, the Entity Bean mapping, etc.
Using OpenXava makes it possible to allocate the development work using a business logic oriented task distribution. For example, Invoice to one developer, Delivery to another, as opposed to technology layer business logic to one developer, user interface to another.
These are some of the main features of OpenXava:
- High productivity for developing business applications.
- Short learning curve and easy to use.
- Flexible enough to create sophisticated applications.
- It's possible to insert custom functionality in any place.
- Based on the concept of business component.
- Generate a full Java EE application, including AJAX user interface.
- Supports any application server (Tomcat, JBoss, WebSphere, etc.).
- Supports JSR168: All OpenXava modules are standard portlets too.
- EJB3 JPA complete support
- It's tested with the portals: Jetspeed-2, WebSphere Portal, Liferay, eXo Platform and Stringbeans.
- Easy integration of reports made with JasperReports (that use Jakarta Velocity and VTL - Velocity Template Language)
- Licensed under GNU Lesser General Public License.
- All labels and messages are in English, Spanish, German, Polish, Indonesian, French, Chinese, Italian and Catalan, with more coming.