Skip to content

Commit 2ba67d9

Browse files
authored
fix: collect frontend dependencies of dev tools message handlers (CP: 24.10) (#25097)
FrontendDependencies resolves DevToolsMessageHandler subtypes to add them as internal entry points, but the class was missing from the `@HandlesTypes` of DevModeStartupListener. DevModeClassFinder only knows the classes listed there and throws for anything else, and that exception was swallowed by the surrounding catch block intended for a missing dev tools classpath entry. As a result, frontend dependencies declared by dev tools plugins were silently skipped in development mode when the byte-code scanner is enabled.
1 parent 677f145 commit 2ba67d9

2 files changed

Lines changed: 5 additions & 2 deletions

File tree

vaadin-dev-server/src/main/java/com/vaadin/base/devserver/startup/DevModeStartupListener.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
import org.slf4j.LoggerFactory;
2020

21+
import com.vaadin.base.devserver.DevToolsMessageHandler;
2122
import com.vaadin.flow.component.Component;
2223
import com.vaadin.flow.component.ComponentUtil;
2324
import com.vaadin.flow.component.Tag;
@@ -62,7 +63,8 @@
6263
JavaScript.Container.class, Theme.class, NoTheme.class,
6364
HasErrorParameter.class, PWA.class, AppShellConfigurator.class,
6465
Template.class, LoadDependenciesOnStartup.class,
65-
TypeScriptBootstrapModifier.class, Component.class, Layout.class })
66+
TypeScriptBootstrapModifier.class, DevToolsMessageHandler.class,
67+
Component.class, Layout.class })
6668
@WebListener
6769
public class DevModeStartupListener
6870
implements VaadinServletContextStartupInitializer, Serializable,

vaadin-dev-server/src/test/java/com/vaadin/base/devserver/startup/DevModeClassFinderTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
import jakarta.servlet.annotation.HandlesTypes;
2121

22+
import com.vaadin.base.devserver.DevToolsMessageHandler;
2223
import com.vaadin.base.devserver.startup.DevModeInitializer.DevModeClassFinder;
2324
import com.vaadin.flow.component.Component;
2425
import com.vaadin.flow.component.WebComponentExporter;
@@ -64,7 +65,7 @@ public void applicableClasses_knownClasses() {
6465
HasErrorParameter.class, PWA.class, AppShellConfigurator.class,
6566
Template.class, LoadDependenciesOnStartup.class,
6667
Component.class, TypeScriptBootstrapModifier.class,
67-
Layout.class);
68+
DevToolsMessageHandler.class, Layout.class);
6869

6970
for (Class<?> clz : classes) {
7071
assertTrue("should be a known class " + clz.getName(),

0 commit comments

Comments
 (0)