What’s New

Jmix 1.0 is the first stable release.

Below you can find the complete change log since the preview release 0.9, as well as the instructions on how to upgrade your project from 0.9 to 1.0.

Changelog

  • Resolved issues in Jmix Framework:

    • 1.0.3

      • After updating an existing project to Jmix 1.0.3, change the Gradle plugin version in build.gradle:

        plugins {
            id 'io.jmix' version '1.0.3'
            // ...
    • 1.0.2

    • 1.0.1

    • 1.0.0

  • Resolved issues in Jmix Studio:

Upgrading from Jmix 0.9

  1. Update Gradle used in your project to 7.0. Open terminal in the project directory and run:

    ./gradlew wrapper --gradle-version=7.0.2
  2. In build.gradle, change Jmix Gradle plugin and BOM versions:

    plugins {
        id 'io.jmix' version '1.0.2'
        id 'java'
    }
    // ...
    jmix {
        bomVersion = '1.0.1'
    }

    Click Load Gradle Changes in the small popup at the top right side of the editor window, or click Gradle → Re-import Gradle Project in the Jmix tool window.

  3. In application.properties, change jmix.core.availableLocales property value. It must be a comma-separated list of locale codes:

    jmix.core.availableLocales = en
  4. In LoginScreen.java, replace LoginScreenAuthenticationSupport with LoginScreenSupport, fix initLocalesField() and login() methods:

    import io.jmix.securityui.authentication.LoginScreenSupport;
    // ...
    public class LoginScreen extends Screen {
        // ...
        @Autowired
        private LoginScreenSupport loginScreenSupport;
    
        @Autowired
        private MessageTools messageTools;
    
        @Autowired
        private JmixApp app;
        // ...
    
        private void initLocalesField() {
            localesField.setOptionsMap(messageTools.getAvailableLocalesMap());
            localesField.setValue(app.getLocale());
        }
    
        private void login() {
            // ...
            loginScreenSupport.authenticate(/**/);
            // ...
  5. In login-screen.xml and main-screen.xml, change style name prefix from c- to jmix- for all components, for example:

    <layout stylename="jmix-login-main-layout">
  6. In main-screen.xml, fix the image component:

    <image id="logoImage"
           stylename="app-icon"
           scaleMode="SCALE_DOWN">
        <resource>
            <theme path="branding/app-icon-menu.svg"/>
        </resource>
    </image>
  7. If you are using a custom theme, change the property name from jmix.ui.theme to jmix.ui.theme.name, for example:

    jmix.ui.theme.name = hover
  8. If you are using injection of Logger into your screen controllers, rewrite it as follows:

    private static final Logger log = LoggerFactory.getLogger(MyScreenController.class);
  9. If you are using custom configuration of a DataLoadCoordinator, rewrite it as described in issue #463.

  10. If you are using formatters in UI components, rewrite them as described in issue #452.

If you have any trouble in the process, try to clean up IntelliJ caches: click File → Invalidate Caches…​, select all checkboxes and click Invalidate and Restart.