All articles

Jmix 2.5 Is Released

The Jmix team is pleased to announce the release of Jmix 2.5, which brings a variety of new features, improvements, and updates aimed at making development more efficient. This release focuses on enhancing productivity, expanding integration options, and introducing new application application features. For a detailed overview of all changes and upgrade instructions, visit the What's New page in the documentation.

Here’s a brief look at the key features and improvements in Jmix 2.5.

Message Templates Add-on

The Message Templates add-on provides a flexible and efficient way to manage and utilize reusable message templates within your Jmix application. It allows developers to define templates with placeholders, which can be dynamically populated with data at runtime. This add-on simplifies the creation of personalized messages such as emails or in-app notifications.

The message generation process leverages the widely-adopted Apache FreeMarker template engine. The system supports the creation of both HTML and Plain Text templates for maximum flexibility. The powerful GrapesJS web component has been integrated to provide a visual editor for crafting HTML templates. This editor enables you to construct templates using a library of pre-designed HTML blocks. You can easily design your templates by simply dragging and dropping these blocks from the palette onto the canvas.

The Message Templates add-on supports integration with other Jmix add-ons: Multitenancy, Email Sending and Notifications.

Tabbed Application Mode

The Tabbed App Mode add-on, currently in an experimental state, lets you open application views in separate tabs within the main view. This provides a more integrated navigation experience and intended for building the desktop-like enterprise applications.

Editing Objects on Map

The Maps add-on now supports selecting, moving, and modifying features added to vector sources. This makes it easier to interact with and edit map-based data directly within your application.

Studio Improvements

Hot Deploy Indication

Studio now shows an icon in the top right corner of files that support hot deployment, such as view controllers, descriptors, message bundles, and roles. This icon indicates the status of hot deployment, helping developers track whether their latest changes have been applied to the running application.

Application Log Analysis

Studio can now identify common exceptions in the application console and suggest ways to resolve them. This feature, combined with the hot deploy indicator, makes it easier to troubleshoot issues during development.

Jmix Run/Debug Configuration

A new Jmix-specific run/debug configuration has been added, replacing the standard Gradle configuration. This configuration ensures that the application shuts down smoothly without generating errors in the console, improving the development process.

classNames Editor and Autocompletion

Studio now offers better support for entering values in the classNames property of UI components. Autocompletion suggests available class names, and a visual editor in the Jmix UI component inspector makes it easier to select and apply class names.

OpenAPI Client Generation by Tags

When generating client code from an OpenAPI schema, you can now choose specific tags defined in the schema. Studio can also filter out schemas that are not used in the paths associated with the selected tags. This reduces the amount of generated code, making it easier to integrate only the necessary parts of the API.

Advanced BPM Task List View

You can now generate an advanced BPM task list view using the BPM: Advanced task list view template in the view creation wizard. This view offers more features than the built-in My tasks view and can be customized to fit your project's needs.

DataGrid Empty State

The DataGrid component now supports emptyStateComponent and emptyStateText properties, allowing you to display custom content when no data is available. This improves the user experience by providing meaningful feedback in empty states.

REST API and REST DataStore Improvements

Generic REST endpoints can now accept arbitrary fetch plans as JSON objects, in addition to named fetch plans. This makes it easier to integrate REST APIs and reduces the need for predefined fetch plans. Also, this feature greatly simplifies the usage of REST DataStore: you are no longer required to define all fetch plans in the shared repositories on both the client and service sides. Instead, you can employ inline fetch plans within your client views and Java code as you would normally do.

The REST DataStore add-on now includes a specific FileStorage implementation that works with files located in the remote application's file storage. This allows seamless integration with remote file storage systems.

Using UUIDv7 for Entity Identifiers

Jmix 2.5 now by default uses UUIDv7 for generating values for UUID attributes annotated with @JmixGeneratedValue. UUIDv7 is time-based, making it better suited for database keys due to its natural ordering. It is particularly beneficial for database indexing and query performance.

Updated Dependencies

The Jmix 2.5 release includes updates to major dependencies:

  • Spring Boot has been updated to version 3.4.
  • Vaadin has been updated to version 24.6.

These updates ensure that Jmix continues to be built on a modern, secure, and performant foundation.

Future Plans

The next feature release is expected in June 2025. We will focus on the following functionality:

  • Integration of AI Assistant in Studio
  • Production-ready Tabbed App Mode add-on
  • SAML authentication add-on
  • Switch (Toggle) UI component
  • End-to-end UI testing library, similar to Classic UI Masquerade library

Conclusion

Jmix 2.5 introduces a range of new features and improvements that enhance developer productivity, integration capabilities, and application features. We’re starting work on the next release, planned for June 2025, where we will continue to build on these improvements.

We invite you to join our forum and Slack channel to discuss these new features, share your experiences, and connect with the community. We also want to thank our community members for their valuable bug reports, pull requests, ideas, and suggestions—your contributions are what make Jmix better.

Stay tuned for more updates, and we hope you find Jmix 2.5 useful for your projects!

Jmix is an open-source platform for building enterprise applications in Java