Welcome!

Related Topics: Java IoT

Java IoT: Press Release

OpenXava 5.0 Released

Rapid Development for Java

OpenXava is an Java Framework for Rapid Development of Enterprise Web Applications. In OpenXava you only have to write the domain classes in plain Java to get a web application ready for production.
This 5.0 release has a new look & feel, includes module navigation, user login/logout (so you do not need Liferay anymore), inline editable collections (just like a spreadsheet), a new editor to attach files to your entity, and many many more things.

We invite you to download it and upgrade your OpenXava applications. Look at the migration instructions.

New look & feel

Just have a look at the demo to see the new look & feel.

Module navigation

At last, your OpenXava applications will include menus to access the modules:


So, you do not need use Liferay for providing module navigation to your application, a simple Tomcat is enough. Anyways, you can still deploy your application on Liferay where these new menus are not shown.

User login

Now your application will ask your user to sign in:

So, you do not need to use Liferay to provide user login/logout. Anyways, If you deploy on Liferay this login/logout mechanism will not be used. Moreover, you can disable it if you wish, for testing or for public applications.

Editable collections

In OpenXava 5.0 you can have collections like this one:

Where the user can modify any property of any element in any moment, and where all collection elements are saved at once when the main entity is saved.
These collections are defined using @ElementCollection, a new annotation of JPA 2 specification. These are collections of embeddable object (not entities).
For defining an element collection just use @ElementCollection instead of @OneToMany: Download OpenXava 5.0

@ElementCollection
@ListProperties("product.number, product.description," +
    "product.unitPrice, quantity, " +
    "amount[invoice.sum, invoice.vat, invoice.total]")
private Collection<InvoiceDetail> details;

And define the class for the element collection as @Embeddable instead of @Entity:

@Embeddable
public class InvoiceDetail {

The generated user interface for this code will be:


You can see how these collections support calculated properties, references, totals, etc.

Editor to attach files

Until now to attach files to your entities you should create your own editor. That is no longer needed, now you can use the new FILE stereotype, thus:

@Stereotype("FILE")
@Column(length=32)
private String trailer;

To get this:

It can be configured to store the files in the database or the file system.

Others improvements

We have done a lot of improvements in other areas:

  • New renderer engine to layout the user interface.
  • Look and feel of date editor improved.
  • Several reports in one PDF with the new JasperConcatReportBaseAction.
  • @Collapsed annotation to initiate collections and references with the frame closed. Also allowed in XML components.
  • New NoCustomizeList controller for disabling list customization to a specific module.
  • The user can share a report of 'My reports' with all other users.
  • New Addons project added to distribution to contain extended features outside of the OpenXava core.
  • New InvoiceDemo project added to distribution.
  • Groovy upgraded to 2.2.2.
  • JasperReports upgraded to 5.5.1.
  • DWR upgraded to 2.0.10.
  • JSTL upgraded to 1.2 using Apache Standard Taglibs 1.2.1.
  • JavaMail upgraded to 1.5.1.
  • Upgrade of commons libraries to: 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.
  • Upgrade to Servlet 2.5 and JSP 2.1.
  • Added Commons Lang3 3.2.1 library.
  • Tomcat 7 included in distribution.
  • Dropped IE6, IE7 and IE8 support.
  • Using module.jsp to execute modules from browser is no longer supported.
  • Dropped Java 5 support, from now on Java 6 or better is required.
  • Dropped WebSphere 6.1 and WebSphere Portal 6.1 support.
  • Dropped Tomcat 5.5 support.
  • Removed jakarta-oro library, only used by older commons-validator.
  • ejb.jar and jpa.jar added to WEB-INF/lib to facilitate deploying in Tomcat.
  • MiEscuela project removed from distribution.
  • AccessTracking removed from OpenXava distribution.
  • Objects class from org.openxava.util removed, you can use XObjects instead.
  • New is/setCollapsed() methods in View to close a frame of a reference or collection programmatically.
  • Added validateMinimum() and validateMaximum() to CollectionElementViewBaseAction.
  • New getPopupPDFPageCount() method in ModuleTestBase.
  • New methods setValueInCollection(), assertEditableInCollection() and assertEditableInCollection() in ModuleTestBase.
  • New method noFirstTokenWithoutFirstDelim() in Strings.
  • When @Digits is specified default scale is ignored even if fraction is not specified.
  • Performance of delete action in detail mode action improved.
  • Improved behavior with READ COMMITED isolation level.
  • New commit() and rollback() methods in BaseAction.
  • Methods Is.emptyString() and Is.emptyStringAll() allow infinite number of arguments.
  • clearCondition() method removed from ModuleTestBase.

Bug fixes

Though this is not a maintenance version we have done some fixes:

  • Fix: Double border when using .ox-frame in the CSS with new renderer.
  • Fix: Totals in collections frames are not shown with the new renderer.
  • Fix: assertListRowCount() method from ModuleTestBase fails when the value of summationInList property is false.
  • Fix: Subcontrollers fails in split mode.
  • Fix: Incorrect encoding in emails sent by Emails class.
  • Fix: Members inside @NoFrame are not aligned with the outside members.
  • Fix: Incorrect default size for java.lang.Boolean.
  • Fix: View broken on reload if the module is inside a HTML table.
  • Fix: Simple property after group without ; does not layout correctly.
  • Fix: A reference with @NoFrame inside a group produces an ugly layout.
  • Fix: Error messages for @Size in collections show 'Element' in English always, even if English is not used.
  • Fix: Top field with little margin on top with the new renderer.
  • Fix: Html id for frames not correct for references with new renderer.
  • Fix: Properties aligned by column when it should not in the new renderer.
  • Fix: Property icons are not aligned correctly with the new renderer.
  • Fix: Scale defined in default-size.xml is ignored when formatting.
  • Fix: Scale definition from @Column and @Digits is ignored when formatting.
  • Fix: The @LabelStyle annotation is not supported with the new renderer.

Download OpenXava 5.0

More Stories By Javier Paniza

Javier Paniza is the project lead for OpenXava project. He works as software developer at Gestión 400, a software company for public administration in Spain. He has been developing with Java Enterprise since 1998. Also he has been J2EE mentor for development teams in banking projects.

Latest Stories
"DX encompasses the continuing technology revolution, and is addressing society's most important issues throughout the entire $78 trillion 21st-century global economy," said Roger Strukhoff, Conference Chair. "DX World Expo has organized these issues along 10 tracks with more than 150 of the world's top speakers coming to Istanbul to help change the world."
"We focus on SAP workloads because they are among the most powerful but somewhat challenging workloads out there to take into public cloud," explained Swen Conrad, CEO of Ocean9, Inc., in this SYS-CON.tv interview at 20th Cloud Expo, held June 6-8, 2017, at the Javits Center in New York City, NY.
"As we've gone out into the public cloud we've seen that over time we may have lost a few things - we've lost control, we've given up cost to a certain extent, and then security, flexibility," explained Steve Conner, VP of Sales at Cloudistics,in this SYS-CON.tv interview at 20th Cloud Expo, held June 6-8, 2017, at the Javits Center in New York City, NY.
"We provide IoT solutions. We provide the most compatible solutions for many applications. Our solutions are industry agnostic and also protocol agnostic," explained Richard Han, Head of Sales and Marketing and Engineering at Systena America, in this SYS-CON.tv interview at @ThingsExpo, held June 6-8, 2017, at the Javits Center in New York City, NY.
"We are focused on SAP running in the clouds, to make this super easy because we believe in the tremendous value of those powerful worlds - SAP and the cloud," explained Frank Stienhans, CTO of Ocean9, Inc., in this SYS-CON.tv interview at 20th Cloud Expo, held June 6-8, 2017, at the Javits Center in New York City, NY.
"Peak 10 is a hybrid infrastructure provider across the nation. We are in the thick of things when it comes to hybrid IT," explained , Chief Technology Officer at Peak 10, in this SYS-CON.tv interview at 20th Cloud Expo, held June 6-8, 2017, at the Javits Center in New York City, NY.
"I think DevOps is now a rambunctious teenager – it’s starting to get a mind of its own, wanting to get its own things but it still needs some adult supervision," explained Thomas Hooker, VP of marketing at CollabNet, in this SYS-CON.tv interview at DevOps Summit at 20th Cloud Expo, held June 6-8, 2017, at the Javits Center in New York City, NY.
"We are still a relatively small software house and we are focusing on certain industries like FinTech, med tech, energy and utilities. We help our customers with their digital transformation," noted Piotr Stawinski, Founder and CEO of EARP Integration, in this SYS-CON.tv interview at 20th Cloud Expo, held June 6-8, 2017, at the Javits Center in New York City, NY.
"We've been engaging with a lot of customers including Panasonic, we've been involved with Cisco and now we're working with the U.S. government - the Department of Homeland Security," explained Peter Jung, Chief Product Officer at Pulzze Systems, in this SYS-CON.tv interview at @ThingsExpo, held June 6-8, 2017, at the Javits Center in New York City, NY.
Everything run by electricity will eventually be connected to the Internet. Get ahead of the Internet of Things revolution and join Akvelon expert and IoT industry leader, Sergey Grebnov, in his session at @ThingsExpo, for an educational dive into the world of managing your home, workplace and all the devices they contain with the power of machine-based AI and intelligent Bot services for a completely streamlined experience.
Any startup has to have a clear go –to-market strategy from the beginning. Similarly, any data science project has to have a go to production strategy from its first days, so it could go beyond proof-of-concept. Machine learning and artificial intelligence in production would result in hundreds of training pipelines and machine learning models that are continuously revised by teams of data scientists and seamlessly connected with web applications for tenants and users.
"We're here to tell the world about our cloud-scale infrastructure that we have at Juniper combined with the world-class security that we put into the cloud," explained Lisa Guess, VP of Systems Engineering at Juniper Networks, in this SYS-CON.tv interview at 20th Cloud Expo, held June 6-8, 2017, at the Javits Center in New York City, NY.
"I will be talking about ChatOps and ChatOps as a way to solve some problems in the DevOps space," explained Himanshu Chhetri, CTO of Addteq, in this SYS-CON.tv interview at @DevOpsSummit at 20th Cloud Expo, held June 6-8, 2017, at the Javits Center in New York City, NY.
"We are an IT services solution provider and we sell software to support those solutions. Our focus and key areas are around security, enterprise monitoring, and continuous delivery optimization," noted John Balsavage, President of A&I Solutions, in this SYS-CON.tv interview at 20th Cloud Expo, held June 6-8, 2017, at the Javits Center in New York City, NY.
Your homes and cars can be automated and self-serviced. Why can't your storage? From simply asking questions to analyze and troubleshoot your infrastructure, to provisioning storage with snapshots, recovery and replication, your wildest sci-fi dream has come true. In his session at @DevOpsSummit at 20th Cloud Expo, Dan Florea, Director of Product Management at Tintri, provided a ChatOps demo where you can talk to your storage and manage it from anywhere, through Slack and similar services with...