JRebel is a commercial developer productivity tool for automatic, real-time update of Java code in the running application. Vaadin detects the JRebel Agent and automatically reloads the application in the browser after the Java changes have been hotpatched.
Set up and activate JRebel in your IDE by following the Quick Start guides available at https://www.jrebel.com/products/jrebel/learn. Use at least the
2020.2.1version, which contains built-in live reload integration.
Run or debug your Vaadin application using the JRebel Agent.
Navigate to your Vaadin application on the browser, make and save some changes, and the browser reloads automatically.
When using the Jetty Maven plugin together with JRebel, ensure that automatic restart is disabled (omit or set
<scanIntervalSeconds> to a value of
0 or less).
Since the server doesn’t restart, modifications to startup listeners and code that connects frontend and backend components, such as adding a new
LitTemplate class, aren’t reflected. However, modifications to routes are picked up.
@PreserveOnRefresh, view instances are reused when reloaded in the browser; hence, hotpatched changes to the view constructor aren’t reflected until the view is opened in another browser window or tab.