Studio 14 BETA published

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

Major changes of the release 14 include:

Support for generating database migration scripts for additional data stores

An ability to track database schema changes for additional data stores has been added (platform 7.2.0 or later). To enable generating database migration scripts for the data store - use the new added radio button group in the Data Store Properties dialog.

The following database schema management modes are available:

  1. Disabled - Studio doesn’t track database schema changes for this data store. This is the default mode, and this is how previous Studio versions used to behave.
  2. Update Only - Studio generates update database migration scripts and provides ability to update database schema to match updated data model. However, Studio does not provide a way to re-create the database from scratch. This mode should be used for databases that are not fully managed by the CUBA application, e.g. databases shared with other applications.
  3. Create and Update - Studio generates full set of init and update database migration scripts and provides ability to re-create the database from scratch or update it to match updated data model. Use this mode for a database meant to be fully managed by the CUBA application.

Visual designer for design-time roles

A visual designer for the roles defined at design time has been added (platform 7.2.0 or later, requires Studio subscription). It allows you to conveniently construct role definitions, specifying role settings, available screens and menu items, entity CRUD permissions, available attributes and specific permissions.

Design-time role definitions are now displayed in the CUBA project tree under Security section.
To create new role definition, use context menu → New → Role action in the Security section.

Logging: displaying local log files, configuration customization

Log files of the local debug Tomcat server are now displayed in the Logging section of the CUBA project tree.

Added ability to customize logging configuration file used by the application (platform 7.2.0 or later). To create custom logback.xml configuration file, use the CUBA project tree → Logging section → Generate Logback Configuration File action.

The generated file can be modified as necessary. It will be used by the local Tomcat debug server. It will be also used as a default logging configuration file in the WAR Settings and UberJAR Settings dialogs.

Improved UI for Integration Tests

Middleware and Web integration tests are now displayed in the CUBA project tree, grouped under Business Logic → Tests section.

Ability to create new integration test classes has been added. To create new test class, use context menu in the CUBA project tree → Tests section → New → Integration Test (Middleware) or Integration Test (Web) .
Choose JUnit version in the dialog. Use JUnit 4 for projects that were created on older versions of the CUBA platform.

Custom screen templates

Ability to customize screen templates has been added. Press Copy template button in the first step of the Create CUBA Screen wizard to create own screen template. Template files will be copied to the project and become available for modification. Custom screen templates are displayed in the Generic UI → Screens → Custom Templates section of the CUBA project tree.

You can modify template files for the screen controller and descriptor, or even add new parameters to the wizard by extending the settings.xml file. Customized screen templates are available for selection on the Project Templates tab of the first step of the New → Screen wizard.

Screen Wizard improvements

The Create CUBA Screen wizard has been extended with steps to configure entity browser and editor views. Developer is now able to select necessary properties right in the wizard without opening modal dialogs. Selected properties also determine which fields will be displayed in the browser table or edited in the editor form.

Simplified Form creation in the Screen Designer

Form creation wizard dialogs has been added to the Screen Designer. It activates when user places new form to the screen layout. This dialog provides ability to choose existing or configure new data container and set up other required form attributes.

Simplified switching to Single main menu mode

Switching main menu from Composite to Single mode for menu customization has been simplified. Menu designer now suggests developer to copy menus and items inherited from the platform and add-ons to the project’s configuration.

“Add new attributes to existing screens” action improvements

The Add new attributes to existing screens feature (previously available only as intention action) has been improved and became easier to access. Now it is available in the entity source code as the Add attributes to screens top actions panel’s button.

Performance optimization

Processing time of the Generate Database Scripts operation has been significantly optimized (reduced). The same done to the database schema check happening before the CUBA Application run configuration is started.

Infrastructure improvements for Chinese developers

The following infrastructure improvements have been implemented for developers located in China:

  • Added new built-in CUBA artifact repository https://nexus.cuba-platform.cn/repository/cuba/ , located in China.
  • Add-ons information in the marketplace has been translated into Chinese.
  • Optimized location of the external resources used by the Studio for better network accessibility.

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 14 plugin requires IntelliJ IDEA 2019.3 or later.

The 14.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 14.0.BETA 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!

10 Likes

Hi
To install the beta version i did as per your instruction i.e.

image

  1. went to Marketplace but didn’t get niether message to install beta or nor any update.

Hi,
Thank you for your interest in Beta. What IDE do you use? At the moment the plugin can be only installed to IntelliJ IDEA 2019.3 and 2020.1.

I’m using studio 13. Do I need to download the IDEA 2020.1 from IntelliJ and install the plugin? Ok trying.

I downloaded the new version of IntelliJ and activated the plugin.

This version 14 (BETA) is is a great speed! I used to hesitate generating database script after any change as it used to take long time but no more in this v14 Studio, it’s fast. Awesome, thanks CUBA team.

2 Likes

Hi team
I am using the BETA version but noticing that some code level latest changes are not compiled when running the application.

for example, I am still getting the following exception even after I have corrected the code, clean & assembled followed by run.

my previous code (erp$MaterialSubGroup)

    materialSubGroup = dataManager.load(MaterialSubGroup.class)
            .query("select e from erp$MaterialSubGroup e where e = :materialSubGroup")
            .view("materialSubGroup-view")
            .parameter("materialSubGroup", getEditedEntity().getMaterialSubGroup())
            .optional().orElse(null);

My current code (erp_MaterialSubGroup)

materialSubGroup = dataManager.load(MaterialSubGroup.class)
            .query("select e from erp_MaterialSubGroup e where e = :materialSubGroup")
            .view("materialSubGroup-view")
            .parameter("materialSubGroup", getEditedEntity().getMaterialSubGroup())
            .optional().orElse(null);

But I still get the following message when I run the application:

IllegalArgumentException: MetaClass not found for erp$MaterialSubGroup

In order to validate it more, I have created new Entities and screen, added to the menu but when I run the application, i don’t see it in the menu.

Menu xml (notice the last menu item):

          <item screen="erp$ProductionOperationResourceGantt"/>
        <item screen="erp$Productionplandetail"/>
        <item screen="erp_MaterialBatch.browse"/>
        <item screen="erp_ContractMfgOrder.browse"/>
        <item screen="erp_ProcessOrdOper" caption="mainMsg://menu_config.erp_ProcessOrdOper"/>
    </menu>

Menu when application is running. “Contract Mfg Orders” is the last menu item in the group that means, the one after that “Process Ord Oper” is not part of the build and not showing.

Screen Shot 2020-07-05 at 1.28.59 AM

I reverted back to older version of the studio but it is still the same, not working. build.gradle file is exactly the same, wondering what can help!

Hi,

Are you using CUBA 7.2?
You can check that “menu_config.erp_ProcessOrdOper” message exists in the main message pack of the web module.

Regarding hot deploy problems, please check that your build.gradle doesn’t contain custom tomcat dir:
https://youtrack.cuba-platform.com/issue/STUDIO-8372
This problem is likely to affect many projects that were created long ago and then migrated to new platform versions.

Hi Alex
Yes I am using 7.2.6. It’s not related to message as it has the same problem without that.

With regards to hot deploy, i see the youtrack.
My project was originally created platform version 6.x and migrated to v7.x later.

I didn;t do any customization on directory for tomcat but here is what i see:

    tomcat {
        dir = "$project.rootDir/build/tomcat"
    }

Moreover, it seems to me that it’s not only hot deploy but the system is behaving this even i redeploy my application within the IDE (clean/assemble/run).

What do you suggest here to solve this issue?

I’m not sure I have understood what is exactly is your problem. Can you create separate topic?

You should delete this custom tomcatDir definition, like it is said in the YouTrack ticket. Otherwise hot deploy may not work correctly (in all Studio versions).

Hi Alex
I have removed those lines that you mentioned as custom director for tomcat (it was done by old version CUBA studio I believe). It shows the hot deploy updated but actually i dont see any change.

Even I forgo the benefit of hot-deploy, sometimes even i restart the project it still works like old version. This is strange. Is there any way I can completely compile and deploy? I did try clean, assemble and deploy though. I don’t know if this only happening as because my project is very large!!

I found the reason of such behaviour. IntelliJ was using old and invalid cache. After I have invalidated the cache it works with the current codes instead of old and invalid code.

Mortoza

1 Like