What's New in the First Open Source CUBA Platform Release?
The CUBA Platform just went open source. Here are the new features it's introduced.
Join the DZone community and get the full member experience.Join For Free
We are proud to announce the general availability of new versions of the CUBA Platform and Studio.
The major update is the new licensing policy: the main part of the platform is now open source under the Apache 2.0 license, the optional components such as BPM, Charts and Maps, Reporting and Full-Text Search are available by per-developer subscription. The CUBA Studio is free for small projects with up to 10 entities and requires the subscription for bigger projects.
The main reason for changing the license is to remove runtime restrictions: now the applications built on the platform are royalty-free, regardless of whether they use free or paid components of the platform.
As usual, the new version of the CUBA platform brings in several major new features, along with improvements and bug fixes. Some of these are listed below.
We have greatly improved the row-level security constraints. Now you can define constraints for create/update/delete actions and check constraints in memory for collection attributes. The constraints editor includes a visual tool for easy creation of JPQL and Groovy code fragments by selected entity attributes.
The platform now supports MySQL databases out-of-the-box. However, there is an issue with unique constraints for soft-deleted entities: MySQL does not support partial indexes and handles NULLs in indexes in such way that prevents using standard mechanism. See the workaround in the documentation.
Setting values to application properties was always an obscure task, especially for newbies. Where to write a value, how to change it in production? So we moved as many properties as possible to the database and created a special screen to manage them: Administration > Application Properties.
Another improvement of application properties mechanism is that you can define or override their values with Java system properties, hence through the command line arguments. It can simplify deployment settings in the cloud.
The universal REST API is now an independent module and can be used both in web and portal modules. So there is no need to create a separate portal module in your project if you don't want to - just select the Project properties > Advanced > REST API in web module checkbox and the REST API will work in your standard web UI module. If you do not use Studio, check out the documentation for how to do it manually.
We have integrated stock charts from the newest version of AmCharts library.
CUBA Studio 2.1
Generate Model from Existing Database
We have eventually implemented the long-awaited feature - support for legacy databases. Studio allows you to generate the data model and standard UI screens from your existing database. It also creates a set of reconciliation scripts that should be run on the database to make it compatible with CUBA entities. This feature greatly facilitates migration from legacy systems: you can create the foundation for the new application in minutes, run it on your real data, and then start implementing your business logic and specific UI using CUBA.
Extend the CUBA Platform With Your Own Components
When you evaluate a new UI framework, probably one of the first questions that comes to your mind is "What if I need a visual component, that is not currently in the standard list?".
One-click Cloud Deployment
Studio now enables one-click deployment to the Jelastic cloud. You just create an account on one of the Jelastic hosting providers, then set up the deployment of your project on the Cloud deployment settings page in the Studio, and after that, the Run > Deploy to cloud menu item allows you to build the WAR file and deploy it to the selected environment.
Develop CUBA Applications on Groovy
The Studio now simplifies using Groovy in your project. If you select the Groovy support checkbox on the Project properties > Advanced tab, Studio will add Groovy plugin to your build.gradle and create Groovy source files instead of Java, when screen controllers and service stubs are generated.
The full list of changes in this Studio release can be found here.
The detailed release notes of CUBA Platform 6.1 are available here.
Published at DZone with permission of Aleksey Stukalov, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.