Jmix 2.3 release candidate

Hi everyone,

We are happy to announce that the release candidate of Jmix v.2.3 is published in our artifact repositories! Restart the IDE and select the “Show unstable versions” when creating or updating a project to see the RC in the list of versions.

Studio v.2.3 is available through the nightly channel.

See what’s new for upgrade instructions and the list of new features and improvements. The documentation is incomplete at the moment, we are working on it.

We will greatly appreciate if you test the release candidate and let us know about any issues!

The final release 2.3 is expected by the end of June.

8 Likes

I tried to use this 2.3RC1 version in Intellij 2023.3 but didn’t find the nightly version, only 2.2 nightly version is available.

However, when I installed the latest version of IntelliJ 2024.1, and then migrated all of my add-on projects except one that gave the following exception

image

I ran vaadinClean but didn’t help.

Another issue,
When I tried building the war file of my composite project by “command” + “Enter” in my Mac, it showed the window differently and threw an exception as I have posted in the link here. Did you face the same or this is happening to me only?

Hi,
Thank you for report.

About migration:
Migration fails on a composite project? Is it possible to send logs (idea.log) after you trying to migrate a project?

Regards,
Mikhail

Hi Mikhail
Yes, a composite project.
I have sent you by email (info at jmix) as the log file is larger than 4 MB.

regards.

1 Like

I have a question about multitenant and superset and it is how to set the parameter of the active tenant?

Best regards,

Nelson F.

Hi,
Can you try migration with latest nightly Studio plugin?
The problem has probably been fixed.

Regards,
Mikhail

Hello!

If both application and Superset use the same database, you can set active tenant using DatasetConstraintsProvider.
As Superset uses datasets for filling dashboards, we can constrain loading data. The DatasetConstraint should contain information about native SQL “WHERE” clause, so there we should provide condition with current tenant. For instance:

@Component
public class TenantDatasetConstraintProvider implements DatasetConstraintsProvider {
    private final TenantProvider tenantProvider;

    public TenantDatasetConstraintProvider(TenantProvider tenantProvider) {
        this.tenantProvider = tenantProvider;
    }

    @Override
    public List<DatasetConstraint> getConstraints() {
        return List.of(new DatasetConstraint(24,
                "MY_TENANT_ID = '" + tenantProvider.getCurrentUserTenantId() + "'"));
    }
}

And then use it as “Install” handler for dashboard component:

@Autowired
private TenantDatasetConstraintProvider tenantDatasetConstraintProvider;

@Install(to = "dashboard", subject = "datasetConstraintsProvider")
private List<DatasetConstraint> dashboardDatasetConstraintsProvider() {
    return tenantDatasetConstraintProvider.getConstraints();
}

Note that this condition is applied to result of a dataset. If your dataset does not contain such column it won’t load the data.

1 Like

Yes, that error in migration is corrected and it has been migrated smoothly, thank you. However, I am still having that issue related to war file building in this new version as posted here