Documentation

Documentation versions (currently viewingVaadin 23)
New Acceleration Kits: Observability Kit, SSO Kit, and Swing Kit. Read the blog post.

Feature Flags

Feature flags is a mechanism that allows you to enable and test experimental features. You can also temporarily switch back to legacy and deprecated behaviors, to have time to migrate away from them, until they’re removed.

The following listings contain all experimental and legacy features. They are also listed in the com.vaadin.experimental.FeatureFlags (Javadoc) class.

Experimental Features

enforceFieldValidation

Enforce client / constraint / binder validation. Learn more

spreadsheetComponent

Spreadsheet component (Pro).

collaborationEngineBackend

Collaboration Kit backend for clustering support. Learn more

mapComponent

Map component (Pro).

Since Vaadin 23.2, the Map component can be used without the feature flag.

Legacy Features

oldLicenseChecker

Old license checker.

webpackForFrontendBuild

Use webpack for front-end builds. Learn more

Managing Feature Flags

Feature flags can be managed in different ways:

  • Using Vaadin Developer Tools;

  • Editing the feature flags properties file; or

  • Setting Java system properties.

System properties always have the highest priority. Since they aren’t written into the feature flags properties file, they’re valid only for a single execution.

Using Vaadin Developer Tools

  1. Click the Vaadin Developer Tools icon button in your application in bottom right corner of the browser when running in development mode.

  2. Open the Experimental Features tab.

  3. Click the toggle buttons to enable or disable features.

  4. Restart the application.

Editing the Properties File

  1. Create or edit the src/main/resources/vaadin-featureflags.properties file in your application folder.

  2. Add a line for every feature in the format of com.vaadin.experimental.<FEATURE_NAME>=true. Below is an example:

    vaadin.experimental.enforceFieldValidation=true
  3. To disable a feature, remove the corresponding line or set the value to false.

  4. Restart the application.

Setting Java System Properties

On the command line, use the IDE launch configuration or tool configuration — such as, Spring Boot Maven plugin — to set a system property for every feature flags to be enabled or disabled. The property name should be in the format vaadin.<FEATURE_NAME>, like so:

-Dvaadin.enforceFieldValidation=true

To temporarily disable a feature, use false as property value, like this:

-Dvaadin.enforceFieldValidation=false