From 82724c8921606c2e1c1ecb489e58e8a8c96a0f58 Mon Sep 17 00:00:00 2001 From: "totally-not-ai[bot]" <290682512+totally-not-ai[bot]@users.noreply.github.com> Date: Thu, 20 Aug 2026 06:14:17 +0000 Subject: [PATCH 1/4] docs: update Eclipse run instructions for the Vaadin Eclipse plugin The page claimed that Vaadin has no official plugin for Eclipse IDE and only described the manual JetBrains Runtime + HotswapAgent setup. The Vaadin plugin for Eclipse now bundles HotswapAgent and adds a "Debug using Hotswap Agent" launch shortcut, so document that as the recommended way and keep the manual setup as the alternative. Also drop the outdated "Eclipse development workflow is not supported yet" Copilot screenshot and describe the expected result instead. Fixes #5833 --- .../dev-environment/run/eclipse.adoc | 39 +++++++++++------- .../copilot-development-workflow-eclipse2.png | Bin 54400 -> 0 bytes 2 files changed, 25 insertions(+), 14 deletions(-) delete mode 100644 articles/getting-started/dev-environment/run/images/copilot-development-workflow-eclipse2.png diff --git a/articles/getting-started/dev-environment/run/eclipse.adoc b/articles/getting-started/dev-environment/run/eclipse.adoc index 1ad8f840f4..a8e2949cfd 100644 --- a/articles/getting-started/dev-environment/run/eclipse.adoc +++ b/articles/getting-started/dev-environment/run/eclipse.adoc @@ -1,7 +1,7 @@ --- title: Eclipse IDE page-title: How to run a Vaadin application in Eclipse IDE. -meta-description: Run and debug your Vaadin application in Eclipse IDE, with step-by-step instructions for enabling Java hotswap using JetBrains Runtime and HotswapAgent. +meta-description: Run and debug your Vaadin application in Eclipse IDE, and enable Java hotswap with the Vaadin plugin for Eclipse or a manual JetBrains Runtime setup. order: 100 --- @@ -15,17 +15,29 @@ image::images/eclipse-debug-menu.png[Eclipse IDE debug menu] Now click menu:Debug As[Java Application]. The application starts up and you can access it at http://localhost:8080. Hot deploy of the frontend files is enabled automatically. However, to enable Java hotswap, you have to take some additional actions. -== Enabling Hotswap +== JetBrains Runtime -Enabling hotswap manually consists of three steps: +Whichever way you enable hotswap, the application has to run on JetBrains Runtime, because hotswap of Java classes needs the enhanced class redefinition that it provides. You can download the latest version from the https://github.com/JetBrains/JetBrainsRuntime/releases[JetBrains GitHub release page]. Be sure to select the correct architecture. Use JetBrains Runtime to execute your application, not necessarily your IDE. -1. Download and install JetBrains Runtime; -2. Download HotswapAgent and install it into JetBrains Runtime; and -3. Create a debug configuration for Eclipse IDE that runs the application with JetBrain Runtime and additional JVM parameters. -=== JetBrains Runtime +== Enabling Hotswap Using the Vaadin Plugin + +The easiest way of running a Vaadin application with hotswap in Eclipse IDE is by installing the link:https://marketplace.eclipse.org/content/vaadin-tools[Vaadin plugin] from the Eclipse Marketplace. If you haven't done so already, do it now. Use the Eclipse IDE for Enterprise Java and Web Developers package. The same plugin also integrates Eclipse IDE with Vaadin Copilot, so that changes you make in the browser are written through the IDE and can be undone there. + +The plugin bundles HotswapAgent and installs it for you, so the only thing you have to install yourself is JetBrains Runtime. The plugin picks up any JetBrains Runtime that Eclipse IDE knows about. If it can't find one, add it in menu:Preferences[Java > Installed JREs]. + +To start the application, right-click the main `Application` class in the project navigator and click menu:Debug As[Debug using Hotswap Agent]. If you can't see this option, the Vaadin plugin has not been installed correctly. -You can download the latest version from the https://github.com/JetBrains/JetBrainsRuntime/releases[JetBrains GitHub release page]. Be sure to select the correct architecture. Use JetBrains Runtime to execute your application, not necessarily your IDE. +The plugin creates a debug configuration named `Application [Hotswap]` that runs the application on JetBrains Runtime with the bundled HotswapAgent and the required JVM parameters. You can reuse that configuration later from the *Debug* button in the toolbar. + + +== Enabling Hotswap Manually + +If you prefer not to install the Vaadin plugin, you can set up hotswap by hand. This consists of three steps: + +1. Download and install JetBrains Runtime, as described above; +2. Download HotswapAgent and install it into JetBrains Runtime; and +3. Create a debug configuration for Eclipse IDE that runs the application with JetBrains Runtime and additional JVM parameters. === HotswapAgent @@ -37,7 +49,7 @@ Download the JAR file and place it inside the JetBrains Runtime installation dir If you want to know more about the features of HotswapAgent, the documentation in the https://hotswapagent.org/[HotswapAgent webpage] is a good resource. -== Debug Configuration +=== Debug Configuration Select menu:Debug[Debug Configurations], indicated by a red rectangle on this screenshot: @@ -58,6 +70,9 @@ image::images/eclipse-debug-config-jre.png[Eclipse IDE debug configurations wind Click [guibutton]*Apply*, then start the application by clicking [guibutton]*Debug*. The application starts up. + +== Verifying the Setup + Open the application in a browser and verify that everything is working through Vaadin Copilot. Move your mouse pointer over the *Copilot* button at the bottom-right corner: image::images/copilot-development-workflow-eclipse.png[Vaadin Copilot menu visible in a browser] @@ -65,8 +80,4 @@ image::images/copilot-development-workflow-eclipse.png[Vaadin Copilot menu visib [IMPORTANT] The Copilot button is only available when the application is running in development mode. It is not available in production mode. -Now click *Development workflow*. Your browser should look something like this: - -image::images/copilot-development-workflow-eclipse2.png[Vaadin Copilot development workflow dialog] - -The first item is orange because Vaadin does not have an official plugin for Eclipse IDE. However, Java hotswap is enabled. \ No newline at end of file +Now click *Development workflow*. Copilot reports the state of the Eclipse IDE integration and of Java hotswap. Both should be green when the Vaadin plugin is installed and the application was started with hotswap enabled. If the Eclipse IDE item is orange, the plugin is either not installed or not running; if the hotswap item is orange, the application isn't running on JetBrains Runtime with HotswapAgent. diff --git a/articles/getting-started/dev-environment/run/images/copilot-development-workflow-eclipse2.png b/articles/getting-started/dev-environment/run/images/copilot-development-workflow-eclipse2.png deleted file mode 100644 index 32adfaf093f6858ed50d64323c20d7cfcbe8d71f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54400 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 a&i@C3F&%Nj+ Date: Thu, 20 Aug 2026 06:17:43 +0000 Subject: [PATCH 2/4] docs: correct Eclipse preferences path and link the plugin hotswap route - Use the real Eclipse settings path for adding JetBrains Runtime. - Drop the undo claim, which the Copilot reference limits to IntelliJ. - Point plugin users to the verification section so they don't fall into the manual instructions. - Mention hotswap alongside Copilot on the Install an IDE page. --- articles/getting-started/dev-environment/install-ide.adoc | 2 +- articles/getting-started/dev-environment/run/eclipse.adoc | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/articles/getting-started/dev-environment/install-ide.adoc b/articles/getting-started/dev-environment/install-ide.adoc index 1cdf759ec2..726fe7a9b3 100644 --- a/articles/getting-started/dev-environment/install-ide.adoc +++ b/articles/getting-started/dev-environment/install-ide.adoc @@ -38,4 +38,4 @@ If you are using IntelliJ IDEA, install the link:https://plugins.jetbrains.com/p If you are using Visual Studio Code, install the link:https://marketplace.visualstudio.com/items?itemName=vaadin.vaadin-vscode[Vaadin extension], the link:https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-pack[Extension Pack for Java], and the link:https://marketplace.visualstudio.com/items?itemName=vmware.vscode-boot-dev-pack[Spring Boot Extension Pack]. -If you are using Eclipse IDE, you should use the Eclipse IDE for Enterprise Java and Web Developers. Install the link:https://marketplace.eclipse.org/content/vaadin-tools[Vaadin plugin] for Copilot integration. +If you are using Eclipse IDE, you should use the Eclipse IDE for Enterprise Java and Web Developers. Install the link:https://marketplace.eclipse.org/content/vaadin-tools[Vaadin plugin] for Copilot integration and for <>. diff --git a/articles/getting-started/dev-environment/run/eclipse.adoc b/articles/getting-started/dev-environment/run/eclipse.adoc index a8e2949cfd..aef2eb93ff 100644 --- a/articles/getting-started/dev-environment/run/eclipse.adoc +++ b/articles/getting-started/dev-environment/run/eclipse.adoc @@ -22,14 +22,16 @@ Whichever way you enable hotswap, the application has to run on JetBrains Runtim == Enabling Hotswap Using the Vaadin Plugin -The easiest way of running a Vaadin application with hotswap in Eclipse IDE is by installing the link:https://marketplace.eclipse.org/content/vaadin-tools[Vaadin plugin] from the Eclipse Marketplace. If you haven't done so already, do it now. Use the Eclipse IDE for Enterprise Java and Web Developers package. The same plugin also integrates Eclipse IDE with Vaadin Copilot, so that changes you make in the browser are written through the IDE and can be undone there. +The easiest way of running a Vaadin application with hotswap in Eclipse IDE is by installing the link:https://marketplace.eclipse.org/content/vaadin-tools[Vaadin plugin] from the Eclipse Marketplace. If you haven't done so already, do it now. Use the Eclipse IDE for Enterprise Java and Web Developers package. The same plugin also integrates Eclipse IDE with Vaadin Copilot, so that changes you make in the browser are written to your sources through the IDE. -The plugin bundles HotswapAgent and installs it for you, so the only thing you have to install yourself is JetBrains Runtime. The plugin picks up any JetBrains Runtime that Eclipse IDE knows about. If it can't find one, add it in menu:Preferences[Java > Installed JREs]. +The plugin bundles HotswapAgent and installs it for you, so the only thing you have to install yourself is JetBrains Runtime. The plugin picks up any JetBrains Runtime that Eclipse IDE knows about. If it can't find one, add it on the menu:Java[Installed JREs] page in menu:Window[Preferences] (Windows) or menu:Eclipse[Preferences] (Mac). To start the application, right-click the main `Application` class in the project navigator and click menu:Debug As[Debug using Hotswap Agent]. If you can't see this option, the Vaadin plugin has not been installed correctly. The plugin creates a debug configuration named `Application [Hotswap]` that runs the application on JetBrains Runtime with the bundled HotswapAgent and the required JVM parameters. You can reuse that configuration later from the *Debug* button in the toolbar. +Once the application is running, continue with <>. You don't need the manual steps described next. + == Enabling Hotswap Manually From 73ab388e95dcc04ca6b43b9870e34ddb18ac5d77 Mon Sep 17 00:00:00 2001 From: "totally-not-ai[bot]" <290682512+totally-not-ai[bot]@users.noreply.github.com> Date: Thu, 20 Aug 2026 08:08:15 +0000 Subject: [PATCH 3/4] docs: list the JVM parameters needed for manual Eclipse hotswap Name the required JVM parameters in the manual hotswap step list, explain what each of them does in the debug configuration section, and note that the Vaadin plugin passes its own equivalents so nothing has to be added by hand. --- .../styles/config/vocabularies/Docs/accept.txt | 1 + .../dev-environment/run/eclipse.adoc | 18 ++++++++++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/.github/styles/config/vocabularies/Docs/accept.txt b/.github/styles/config/vocabularies/Docs/accept.txt index c64d4a88be..3fde330122 100644 --- a/.github/styles/config/vocabularies/Docs/accept.txt +++ b/.github/styles/config/vocabularies/Docs/accept.txt @@ -269,6 +269,7 @@ Cmd DOM IDE JDK +JREs MVC LLMs PWA diff --git a/articles/getting-started/dev-environment/run/eclipse.adoc b/articles/getting-started/dev-environment/run/eclipse.adoc index aef2eb93ff..b613d28564 100644 --- a/articles/getting-started/dev-environment/run/eclipse.adoc +++ b/articles/getting-started/dev-environment/run/eclipse.adoc @@ -28,7 +28,7 @@ The plugin bundles HotswapAgent and installs it for you, so the only thing you h To start the application, right-click the main `Application` class in the project navigator and click menu:Debug As[Debug using Hotswap Agent]. If you can't see this option, the Vaadin plugin has not been installed correctly. -The plugin creates a debug configuration named `Application [Hotswap]` that runs the application on JetBrains Runtime with the bundled HotswapAgent and the required JVM parameters. You can reuse that configuration later from the *Debug* button in the toolbar. +The plugin creates a debug configuration named `Application [Hotswap]` that runs the application on JetBrains Runtime with the bundled HotswapAgent and the required JVM parameters. It loads its own copy of HotswapAgent with `-javaagent`, so those parameters aren't quite the same as the manual ones in <>, and you don't have to add any of them yourself. You can reuse that configuration later from the *Debug* button in the toolbar. Once the application is running, continue with <>. You don't need the manual steps described next. @@ -39,7 +39,7 @@ If you prefer not to install the Vaadin plugin, you can set up hotswap by hand. 1. Download and install JetBrains Runtime, as described above; 2. Download HotswapAgent and install it into JetBrains Runtime; and -3. Create a debug configuration for Eclipse IDE that runs the application with JetBrains Runtime and additional JVM parameters. +3. Create a debug configuration for Eclipse IDE that runs the application with JetBrains Runtime and the `-XX:+AllowEnhancedClassRedefinition`, `-XX:+ClassUnloading`, and `-XX:HotswapAgent=fatjar` JVM parameters, as described in <>. === HotswapAgent @@ -51,6 +51,7 @@ Download the JAR file and place it inside the JetBrains Runtime installation dir If you want to know more about the features of HotswapAgent, the documentation in the https://hotswapagent.org/[HotswapAgent webpage] is a good resource. +[[debug-configuration]] === Debug Configuration Select menu:Debug[Debug Configurations], indicated by a red rectangle on this screenshot: @@ -64,6 +65,19 @@ In the *Debug Configurations* window, select the *Application* configuration. Go -XX:+AllowEnhancedClassRedefinition -XX:+ClassUnloading -XX:HotswapAgent=fatjar ---- +These parameters do the following: + +`-XX:+AllowEnhancedClassRedefinition`:: +Enables the enhanced class redefinition of JetBrains Runtime. This is what allows changes such as added or removed methods and fields to be hotswapped; a standard JVM can only redefine method bodies. + +`-XX:+ClassUnloading`:: +Lets the JVM unload the classes that hotswap replaces, so that repeated reloads don't leak memory. + +`-XX:HotswapAgent=fatjar`:: +Starts the HotswapAgent that you installed as [filename]`lib/hotswap/hotswap-agent.jar`, including the plugins bundled with it. + +These are JVM parameters, so they belong in the *VM arguments* field -- not in the *Program arguments* field. + image::images/eclipse-debug-config-arguments.png[Eclipse IDE debug configurations window with the Arguments tab selected] Next, go to the *JRE* tab. From the *Alternate JRE* select box, select *JetBrains Runtime*. If you can't find it in the list, click [guibutton]*Installed JREs* and add it manually. From 7d1c4a1e660ec8f0423a6e395afd5152579e7324 Mon Sep 17 00:00:00 2001 From: "totally-not-ai[bot]" <290682512+totally-not-ai[bot]@users.noreply.github.com> Date: Thu, 20 Aug 2026 08:13:55 +0000 Subject: [PATCH 4/4] docs: clarify how the Eclipse plugin provides HotswapAgent Describe where the plugin installs its bundled agent and how it launches it, correct the description of -XX:+ClassUnloading, add explicit anchors for the headings that are linked to, and mention the Eclipse route on the HotswapAgent live reload page. --- .../flow/configuration/live-reload/hotswap-agent.adoc | 2 ++ articles/getting-started/dev-environment/run/eclipse.adoc | 8 +++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/articles/flow/configuration/live-reload/hotswap-agent.adoc b/articles/flow/configuration/live-reload/hotswap-agent.adoc index d3872d82e2..ec681a5df7 100644 --- a/articles/flow/configuration/live-reload/hotswap-agent.adoc +++ b/articles/flow/configuration/live-reload/hotswap-agent.adoc @@ -21,6 +21,8 @@ If you are using IntelliJ and the Vaadin plugin, you can launch your application When running your application using *Debug using HotswapAgent*, the Vaadin plugin checks if you're using the proper JDK, if HotswapAgent is available, and applies additional required JVM arguments. +If you're using Eclipse IDE and the Vaadin plugin, right-click your application class and choose *Debug using Hotswap Agent*. The plugin brings its own copy of HotswapAgent and creates a debug configuration with the required JVM arguments, so the only thing you need to install is JetBrains Runtime. See <<{articles}/getting-started/dev-environment/run/eclipse#enabling-hotswap-using-the-vaadin-plugin,Run in Eclipse IDE>> for details. + If you're using VS Code and Vaadin Copilot, you can configure everything automatically from the Copilot Development Workflow guide. Follow the instruction to install the proper JDK, install the HotswapAgent library, and prepare the run configuration. == Manual Installation diff --git a/articles/getting-started/dev-environment/run/eclipse.adoc b/articles/getting-started/dev-environment/run/eclipse.adoc index b613d28564..a7c7a1fa2f 100644 --- a/articles/getting-started/dev-environment/run/eclipse.adoc +++ b/articles/getting-started/dev-environment/run/eclipse.adoc @@ -20,15 +20,16 @@ Now click menu:Debug As[Java Application]. The application starts up and you can Whichever way you enable hotswap, the application has to run on JetBrains Runtime, because hotswap of Java classes needs the enhanced class redefinition that it provides. You can download the latest version from the https://github.com/JetBrains/JetBrainsRuntime/releases[JetBrains GitHub release page]. Be sure to select the correct architecture. Use JetBrains Runtime to execute your application, not necessarily your IDE. +[[enabling-hotswap-using-the-vaadin-plugin]] == Enabling Hotswap Using the Vaadin Plugin The easiest way of running a Vaadin application with hotswap in Eclipse IDE is by installing the link:https://marketplace.eclipse.org/content/vaadin-tools[Vaadin plugin] from the Eclipse Marketplace. If you haven't done so already, do it now. Use the Eclipse IDE for Enterprise Java and Web Developers package. The same plugin also integrates Eclipse IDE with Vaadin Copilot, so that changes you make in the browser are written to your sources through the IDE. -The plugin bundles HotswapAgent and installs it for you, so the only thing you have to install yourself is JetBrains Runtime. The plugin picks up any JetBrains Runtime that Eclipse IDE knows about. If it can't find one, add it on the menu:Java[Installed JREs] page in menu:Window[Preferences] (Windows) or menu:Eclipse[Preferences] (Mac). +The plugin bundles HotswapAgent and installs it for you as [filename]`.vaadin/eclipse-plugin/hotswap-agent.jar` in your home directory, so the only thing you have to install yourself is JetBrains Runtime. The plugin picks up any JetBrains Runtime that Eclipse IDE knows about. If it can't find one, add it on the menu:Java[Installed JREs] page in menu:Window[Preferences] (Windows) or menu:Eclipse[Preferences] (Mac). To start the application, right-click the main `Application` class in the project navigator and click menu:Debug As[Debug using Hotswap Agent]. If you can't see this option, the Vaadin plugin has not been installed correctly. -The plugin creates a debug configuration named `Application [Hotswap]` that runs the application on JetBrains Runtime with the bundled HotswapAgent and the required JVM parameters. It loads its own copy of HotswapAgent with `-javaagent`, so those parameters aren't quite the same as the manual ones in <>, and you don't have to add any of them yourself. You can reuse that configuration later from the *Debug* button in the toolbar. +The plugin creates a debug configuration named `Application [Hotswap]` that runs the application on JetBrains Runtime, starts the bundled HotswapAgent with a `-javaagent` parameter, and adds the other JVM parameters that hotswap needs. Because the agent comes from the plugin, you don't have to install it into JetBrains Runtime, and the parameters listed in <> are needed only for the manual setup. You can reuse the configuration later from the *Debug* button in the toolbar. Once the application is running, continue with <>. You don't need the manual steps described next. @@ -71,7 +72,7 @@ These parameters do the following: Enables the enhanced class redefinition of JetBrains Runtime. This is what allows changes such as added or removed methods and fields to be hotswapped; a standard JVM can only redefine method bodies. `-XX:+ClassUnloading`:: -Lets the JVM unload the classes that hotswap replaces, so that repeated reloads don't leak memory. +Keeps class unloading enabled, so that classes the JVM no longer needs after a redefinition can be garbage collected. This is the default setting of the JVM; it's passed explicitly to be sure that it isn't turned off elsewhere. `-XX:HotswapAgent=fatjar`:: Starts the HotswapAgent that you installed as [filename]`lib/hotswap/hotswap-agent.jar`, including the plugins bundled with it. @@ -87,6 +88,7 @@ image::images/eclipse-debug-config-jre.png[Eclipse IDE debug configurations wind Click [guibutton]*Apply*, then start the application by clicking [guibutton]*Debug*. The application starts up. +[[verifying-the-setup]] == Verifying the Setup Open the application in a browser and verify that everything is working through Vaadin Copilot. Move your mouse pointer over the *Copilot* button at the bottom-right corner: