Skip to content

Vaadin 24.4.0

Compare
Choose a tag to compare
@vaadin-bot vaadin-bot released this 12 Jun 06:39
· 97 commits to 24.4 since this release
dfd43a1

Changelogs · Upgrading guides · Docs · Get Started

NOTE:

Due to a mistake in this the release process, hilla version used in this release is 24.4.0.rc2. If you want to try with Vaadin 24.4.0, you need to add the vaadin-prerelease repository in your pom.

<repositories>
    <repository>
        <id>vaadin-prereleases</id>
        <url>
            https://maven.vaadin.com/vaadin-prereleases/
        </url>
    </repository>
</repositories>

<pluginRepositories>
    <pluginRepository>
        <id>vaadin-prereleases</id>
        <url>
            https://maven.vaadin.com/vaadin-prereleases/
        </url>
    </pluginRepository>
</pluginRepositories>

New and Noteworthy Since Vaadin 24.3

Vaadin Copilot

We are glad to introduce you a handy development tool that’s ready to assist you whenever you run an application in development mode, Vaadin Copilot. Copilot is a visual development tool and an AI-empowered assistant. You can inspect and edit the UI, and use generative AI to help with a variety of tasks.

Vaadin Copilot is present by default while working with your project in development mode.

Unified Vaadin Platform

The Hilla framework has been more closely integrated with the Vaadin platform. Vaadin BOM and Vaadin Spring Boot Starter now include the Hilla framework stating from version 24.4. This enables Vaadin users to choose between Flow and Hilla, or mix both frameworks when necessary.

Flow

  • Mixing Flow and Hilla views in one single application
    Docs · Example Project

    • Vaadin project can now have both server-side and client-side routes, written in Java or React, aka Flow views and Hilla views respectively. This doesn't need any special configuration, Vaadin Flow uses the React Router by default, adds all needed React dependencies and React components, provided by Vaadin.
  • Using React components from Flow
    Docs

    • You can wrap any React component as a Flow component and use it in your Flow view, change the component's state and send events from server to client and vice-versa.
  • Using Flow components from React
    Docs

    • Flow components can be embedded in a Hilla/React view by using a known WebComponentExporter API and using the exported Web component on the React view
  • Use React Router by default
    Docs

    • Vaadin Flow uses React Router by default, which gives an opportunity to start adding React components/views immediately into Vaadin application and develop in React.
  • Move /frontend directory under /src/main by default

    • Vaadin uses src/main/frontend/ directory as a default location of frontend resources, which is more natural for Maven projects. It fallbacks to frontend directory if the src/main/frontend/ does not exist.

Hilla

  • Hilla File Router

    The file-system based router, @vaadin/hilla-file-router, was added to Hilla. It simplifies adding React views to applications by automaticaly mapping files in the src/main/frontend/views/ directory as routes, eliminating the step of editing the URL mapping for each added view. The Hilla file router is based on the React Router library.

  • Automatic Main Menu

    The file router includes the createMenuItems() utility function, which enables populating the menu items in the React main layout. Hilla file router views and Java classes with the @Menu annotation are added as the menu items automatically.

  • Hilla React Signals

    The new library for managing state in React applications, @vaadin/hilla-react-signals, was added to Hilla. Signals provide robust and convenient way of subscribing to state updates in UI, and allow to easily share the state updates between multiple components. The API of Hilla React signals follows the Preact Signals library.

Design System

  • Checkbox
    • Support for read-only state in Checkbox and Checkbox Group.
    • Support for helper-text in Checkbox (including individual checkboxes in a Checkbox Group), and support for required state (incl. indicator) and error message in individual Checkboxes.
  • Grid
    • API for removing Grid header rows
  • Grid-Pro
    • An API in Grid for dynamically setting whether a cell is editable. (Similar e.g. to PartNameGenerator and TooltipGenerator)
  • MenuBar
    • support for reverse collapsing order
      • An option to have Menu Bar buttons collapse into the overflow menu starting from the left (start) end of the bar instead of the right (end) end of the bar.
  • SideNav
    • API for configuring a link in SideNav to open in a new browser window/tab.
    • SideNav query parameter support
  • TextArea
    • API for programmatically setting the scroll position of Text Area to top or bottom.
  • Upload
    • File name property added to Upload progress and rejected events
      • The Upload component's FileRejectedEvent and ProgressUpdateEvent were missing a way to get the name of the file that that the event was about. This has now been addressed by the addition of a getFileName() API in both.

Changelogs

Official add-ons and plugins:

  • Spring add-on (24.4.0)
  • CDI add-on (15.0.1)
  • Maven plugin (24.4.0)
  • Gradle plugin (24.4.0)
  • Quarkus plugin (2.0.1)

Upgrading guides

Support

Vaadin 24 is the latest stable version, with extended support options available (release model).

Vaadin also provides commercial support and warranty.

Supported technologies

Desktop browser
  • Chrome (evergreen)
  • Firefox (evergreen)
    • Firefox Extended Support Release (ESR)
  • Safari 15 or newer
  • Edge (Chromium, evergreen)
Mobile browser
  • Chrome (evergreen) for Android (4.4 or newer)
  • Safari for iOS (15 or newer)
Development OS
  • Windows
  • macOS
  • Linux
IDE

Any IDE or editor that works with the language of your choice should work well. Our teams often use Eclipse, IntelliJ, VS Code, Atom, Emacs, and Vim, among others.

Vaadin Designer supports the following IDEs:

  • Eclipse from Photon and upwards
  • JetBrains IntelliJ IDEA from 2017 upwards
Java Version 17 of any JDK or JRE
Maven Version 3.5 or newer
Gradle Version 8.5 or newer
Application server

Vaadin Flow requires Java Servlet API 6 and Java 17 or newer. It is tested on:

  • Apache Tomcat 10.1
  • Open Liberty 23.0.0.1-beta
  • RedHat JBoss EAP 8.0 beta
  • WildFly 27
  • Jetty 12 beta
  • Payara Server 6
  • Payara Micro 6
Node.js Version 18 or newer
Spring Boot Version 3.2 or newer

Known issues and limitations

Flow