Studio 15 BETA published

Hello everyone,
We have just published the 15.0.BETA1 version of the CUBA Studio.

Major changes of the release 15 include:

Support for environment variables as database connection parameters

An ability has been added to use environment variables for sensitive database connection parameters (supported for CUBA 7.2.7 or later)
to avoid storing these parameters in version control system.
The following database connection parameters can be specified as environment variables:

  • database host
  • database port
  • database name
  • user
  • password

The data store should have “Define JDBC Datasource In” setting set to “Application”.

For example.
Define environment variables:

PG_DB_HOST=127.0.0.1
PG_DB_NAME=salespg
PG_DB_USER=admin
PG_DB_PASSWORD=admin

Restart IDE to receive updated environment variables.

Then change database connection settings in the app.properties file:

cuba.dataSourceProvider=application
cuba.dataSource.username=${PG_DB_USER}
cuba.dataSource.password=${PG_DB_PASSWORD}
cuba.dataSource.dbName=${PG_DB_NAME}
cuba.dataSource.host=${PG_DB_HOST}
cuba.dataSource.port=

Studio support includes the following:

  • Data store settings dialog correctly detects and shows setting values.
  • “Create database”, “Update database”, “Generate database scripts” and “Generate Model” actions take values from environment.
  • Debug Tomcat server also takes values from environment.

Detected setting values are displayed read-only in the Data Store Settings dialog, you need to modify them manually in app.properties files when necessary.

Displaying all source files in the separate section in the CUBA project tree

The new “All sources” section has been added to the CUBA project tree.
It displays all source files in the modules of the project without filtering them by file type.
This section allows you to locate files or classes that aren’t grouped into one of specialized project tree sections.
That is, it displays classes that aren’t services, aren’t screen controllers, aren’t entities. For example, static helper classes, JAXB generated classes, constant holders etc.

Ability to put update scripts to per-month folders

For large project teams it may be inconvenient that database update scripts are grouped into per-year folders.
Now the new setting was introduced: CUBA -> Settings -> Group update scripts by.
After it is changed to “MONTH”, new update scripts are grouped to per-month folders.

Note that already existing update script files will not be (and can not be) re-organized.

Other improvements:

ZipProject task added to the main menu

The existing zipProject Gradle task has been added to the main menu (CUBA -> Advanced submenu).
It can be used for code sharing purposes.

Unified Subscribe to Event and Install Delegate dialogs

Two dialogs providing ability to add additional logic to the screen controllers have been unified into one dialog for convenience.

Platform version migration UI improvement

The ability to change Platform Version has been extracted as a separate dialog.
It also shows links to release notes for related platform versions.

Commercial add-ons installation improvements

UI to install trial and full version of commercial add-ons has been improved.
Additional cases are now processed automatically (such as commercial add-on arfifacts uploaded to a custom project-specified repository).

Inspection reminding that add-on hasn’t been registered in web.xml files

A new inspection has been added to detect popular problem:
when users manually add appComponent dependency to the build.gradle file but forget to register this add-on in the web.xml files of the project.

Ability to edit ~/.gradle/gradle.properties file in IDE

Global Gradle settings file can now be edited right in the IDE. Use CUBA -> Advanced -> Edit Gradle properties action in the main menu.

Beta Testing

We are now in the process of testing the new Studio version.
We will greatly appreciate if you try to use the beta version with your environment/project and let us know about any issues.

Please note that Studio 15 plugin requires IntelliJ IDEA 2020.2

The 15.0.BETA1 release has been published to the separate plugins channel in the JetBrains plugins repository.
In order to try the beta version, you need to do the following:

  • Open the IDEA Settings -> Plugins dialog.
  • Click to the :gear: icon and select Manage Plugin Repositories.
  • Click “+” (“Add”) and enter the following in the Repository URL field:
    https://plugins.jetbrains.com/plugins/beta/list
  • Switch to the Installed tab. You should immediately see that CUBA plugin requests for update to 15.0.BETA1 version.
  • Click Update.

If (when) you need to return back to stable plugin version, do the following:

  • Open the IDEA Settings -> Plugins dialog.
  • Uninstall CUBA plugin
  • Click to the :gear: icon and select Manage Plugin Repositories.
  • Remove “beta” repository from the list
  • Install CUBA plugin again, it will come from the stable plugins channel.

We are looking forward to your feedback!

8 Likes

Will the AWS EBS environment variable for RDS work?

https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/java-rds.html

The studio is not adding a column when I try to add a form from the screen designer.

Yes. For the deployed application in runtime - they are working since CUBA 7.2.
https://files.cuba-platform.com/cuba/release-notes/7.2/#deployment

  1. Now you can configure connections to databases using application properties, see Connecting to Databases. This method simplifies the overall configuration, because app.properties files define all settings including the data source parameters. Also, it makes your WAR file completely independent of the application server environment.
    Getting data sources from JNDI is supported as before, so no migration is required for existing projects.
  2. OS environment variables can be used as a source of application properties values.

This video may also be useful for you: https://www.youtube.com/watch?v=Cv6JnseknSA

Would be really cool if you enabled the full version for beta testers. Even those who don’t have the license. :grinning: