If you have plenty of money and time Spring Boot + Next.js for frontend is a good fit, otherwise have a look at OpenXava.
Write just the domain classes in plain Java. Get a business application ready for production.
"I think OpenXava is an extraordinary tool, it makes reality a fantasy, that is MDD and at the same time works like a RAD, all this using Java."
"I've been developing software for close to 40 years and I am very impressed with OpenXava, not only with the ease in which I have rapidly developed a functional app, but with the extensive customizations that can be applied to achieve more complex behavior and desired look."
"I have worked before on Low-Code platforms like Mendix, Pega, OutSystems, etc. It seems easier to work without code only drag and drop and set properties, but still it is easier to work with OpenXava."
"The real catch about our experience while developing with OpenXava was the speed of development without compromising the quality."
"I must say: my compliments! ... I have actually quite a lot of experience in UI automation. So it takes a lot to impress me. And I am impressed."
"I've been able to put together more functionality in my initial 6 days of starting to learn OpenXava (and I know nothing about Java itself - yet) than I was able to accomplish in several weeks of either RoR or Laravel, and I know a bit of Ruby and PHP."
"I have been looking for a logical, understandable, simple approach to web tools for years now and OpenXava is the first thing I have found that fits that bill. Most tools like VisualStudio Web App are so extremely confusing and so many moving part that the learning curve is insurmountable."
"Openxava is brilliant. I used Wavemaker as a UI before, and that was really hard work."
"OpenXava for me is an exceptional tool, saving us time, made it standard interfaces, imposed a criterion of unique development in the organization."
"I am using OpenXava and finding it wonderfully refreshing, as someone who needs to program in Java with no Java knowledge it is a wonderful tool so thanks!"
If you know basic Java and JPA you're already an OpenXava developer, you don't need any more to create complete applications. The OpenXava bundle is prepared for a rapid startup.
Modern web Single-Page Applications (SPA). List mode with paging, ordering, filtering, adding / removing / moving columns, PDF reports, export/import to Excel, cards format, charts, etc. Detail mode with tabs, frames, dialogs, editors for references and collections, responsive layout, maps, discussion threads, photo gallery, file upload, etc.
In addition to the classic web user interface for desktop you can get a mobile user interface for your application from the same code.
Browsers: Chrome, Firefox, Edge and Safari. Databases: Any supported by Hibernate, that is Oracle, DB2, AS/400, Informix, PostgreSQL, MySQL, MS SQL Server and practically all relational databases. Operating systems: Any with Java 8 (or better) support, that is Windows, Linux, Mac, Unix, AS/400, z/OS, etc. Application servers: Any with support for Servlets 3.0 (or better), including Tomcat, JBoss, WebSphere, Glassfish, WebLogic, etc. Enterprise portals: Any with JSR-168 or JSR-286 support including WebSphere Portal and Liferay.
The first production applications developed with OpenXava were for AS/400, using the AS/400 as the database with the application server in Linux or Windows, or even running the OpenXava applications inside the AS/400 (using WebSphere). In all cases the OpenXava applications used the tables designed by the RPG programmers as is, so the RPG programs still could work against the same data. Currently, many public administrations and banks around the world use OpenXava applications against AS/400 in production. It means that OpenXava is optimized to work nicely against the AS/400, moreover the team behind OpenXava has the know-how to face mapping AS/400 databases with Java technology, not so easy because RPG programmers do not use foreign keys, nulls, they use overlapped fields to chain different tables, fixed-length fields, and many other non-relational style practiques.
LGPL license that allows you to develop commercial applications without paying any fees.
The standard labels and messages included in OpenXava are in English, Spanish, German, French, Chinese, Russian, Japanese, Portuguese, Catalan, Indonesian, Italian, Polish, Serbian and Swedish. Moreover, it's pretty easy to add a new language.
250,000 downloads. 60 authors. Thousands of threads in the forums. Hundreds of applications developed. Hundreds of professionals in LinkedIn with OpenXava experience.
Complete Reference Guide in English, French, Russian, Chinese and Spanish. Free online course in English and Spanish where an invoicing application is developed from scratch. Book in English and Spanish available from Amazon. Hundreds of videos on YouTube.
Free support in community forums, though they have thousands of threads all questions are answered. Moreover, there is professional support available.
Thus you can migrate your current Java code easily to OpenXava, and vice versa. You can use any Java tool for OpenXava. Your Java developers are already OpenXava developers. OpenXava supports: JSR-338, JSR-317, JSR-303, JSR-330, JSR-220, JSR-153, JSR-311, JSR-339, JSR-370, JSR-168 and JSR-286.
Many developers have integrated their OpenXava applications with other enterprise technologies and tools such as Talend, Bonita Open Solution, Ehcache, Spring Framework, Spring Security, Spring Scheluding, Quartz, Groovy, IntelliJ, Maven, Grafana, Pentaho, Docker, etc.
6 releases/year, half of them maintenance releases (just with bug fixes). Since 2005.
May 16, 2022
Video for lesson 13 of OpenXava course
In our invoicing application we're using as example we want that when the user clicks to create a new invoice or order the default value for VAT will be 21, but also we want to change this default value in any moment without changing the source code. To achieve this we're going to use a @DefaultValueCalculator and write the logic to read the default value for VAT from a properties file. Watch the video.