I have a Gradle/Spring Boot/Flow app (version 24.7.1) using the Spring Boot Starter dependency where the Atmosphere initialization step takes 7-9 seconds. It’s currently a POC where I want to add Vaadin into an existing app, but if the startup slows down this way it will be hard to convince my fellow devs to put up with it. This is what I am seeing:
025-04-14 22:06:37,211 INFO o.a.c.AtmosphereFramework: Installed AtmosphereHandler com.vaadin.hilla.push.PushEndpoint mapped to context-path: /HILLA/push
2025-04-14 22:06:37,211 INFO o.a.c.AtmosphereFramework: Installed the following AtmosphereInterceptor mapped to AtmosphereHandler com.vaadin.hilla.push.PushEndpoint
2025-04-14 22:06:37,212 INFO o.a.c.AtmosphereFramework: org.atmosphere.interceptor.AtmosphereResourceLifecycleInterceptor : Atmosphere LifeCycle
2025-04-14 22:06:37,212 INFO o.a.c.AtmosphereFramework: org.atmosphere.client.TrackMessageSizeInterceptor : Track Message Size Interceptor using |
2025-04-14 22:06:37,212 INFO o.a.c.AtmosphereFramework: org.atmosphere.interceptor.SuspendTrackerInterceptor : UUID Tracking Interceptor
2025-04-14 22:06:37,363 INFO o.a.j.l.DirectJDKLog: Initializing AtmosphereFramework
2025-04-14 22:06:44,837 INFO c.v.f.s.VaadinServletContextInitializer$DevModeServletContextListener: Search for subclasses and classes with annotations took 7336 ms
I suspect that one reason for this is probably that there are a significant number of generated classes in this app which add a lot to the overall bulk. This isn’t proven, though; it’s just a hunch.
I have tried limiting the Vaadin component search to a single directory that includes Vaadin components, and adding annotations like this:
@Push(PushMode.DISABLED)
But no luck. I’m also not sure why it indicates “/HILLA/push” as the mapping but possibly that just comes with this functionality.
The Spring component search is pretty much at the root application level so that may be contributing but that’s more difficult to change without some application reorganization.
If anyone knows a way to target or remove this part of the initialization process, let me know. I am not doing any server-side push at this point (which is what I believe Atmosphere does?) so it would be safe to disable it altogether. Thank you!