Skip to content

Commit a2eb6a6

Browse files
mcollovatiskybber
authored andcommitted
fix: add support for Vaadin 25.1
In Vaadin 25.1, hotswap-related classes have been moved into a different module with a different package name. This change updates the Hotswap Agent plugin to support the updates in Vaadin 25.1 in a backward-compatible manner.
1 parent 32c07a2 commit a2eb6a6

File tree

1 file changed

+17
-3
lines changed
  • plugin/hotswap-agent-vaadin-plugin/src/main/java/org/hotswap/agent/plugin/vaadin

1 file changed

+17
-3
lines changed

plugin/hotswap-agent-vaadin-plugin/src/main/java/org/hotswap/agent/plugin/vaadin/VaadinPlugin.java

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ public void initPlugin() {
139139
@OnClassLoadEvent(classNameRegexp = VAADIN_SERVLET)
140140
public static void init(CtClass ctClass, ClassPool classPool)
141141
throws NotFoundException, CannotCompileException {
142-
boolean hasVaadinHotSwapper = classPool.getOrNull("com.vaadin.flow.hotswap.Hotswapper") != null;
142+
boolean hasVaadinHotSwapper = findHotswapperClass(classPool) != null;
143143

144144
String src = PluginManagerInvoker
145145
.buildInitializePlugin(VaadinPlugin.class);
@@ -156,15 +156,19 @@ public static void init(CtClass ctClass, ClassPool classPool)
156156
@OnClassLoadEvent(classNameRegexp = VAADIN_SERVICE)
157157
public static void transformVaadinService(CtClass ctClass, ClassPool classPool)
158158
throws NotFoundException, CannotCompileException {
159-
boolean hasVaadinHotSwapper = classPool.getOrNull("com.vaadin.flow.hotswap.Hotswapper") != null;
159+
160+
CtClass vaadinHotSwapper = findHotswapperClass(classPool);
161+
boolean hasVaadinHotSwapper = vaadinHotSwapper != null;
160162

161163
StringBuilder src = new StringBuilder();
162164
if (hasVaadinHotSwapper) {
163165
String initHotswapperPluginCall = PluginManagerInvoker.buildCallPluginMethod(
164166
VaadinPlugin.class, "initializeHotswapper", "hotswapper",
165167
"java.lang.Object");
166168
src.append("try { ")
167-
.append("java.util.Optional maybeHotswapper = com.vaadin.flow.hotswap.Hotswapper.register(this);")
169+
.append("java.util.Optional maybeHotswapper = ")
170+
.append(vaadinHotSwapper.getName())
171+
.append(".register(this);")
168172
.append("if (maybeHotswapper.isPresent()) { ")
169173
.append("Object hotswapper = maybeHotswapper.get();")
170174
.append(initHotswapperPluginCall)
@@ -184,6 +188,16 @@ public static void transformVaadinService(CtClass ctClass, ClassPool classPool)
184188

185189
}
186190

191+
private static CtClass findHotswapperClass(ClassPool classPool) {
192+
// Since Vaadin 25.1
193+
CtClass vaadinHotSwapper = classPool.getOrNull("com.vaadin.base.devserver.hotswap.Hotswapper");
194+
if (vaadinHotSwapper == null) {
195+
// Until Vaadin 25.0
196+
vaadinHotSwapper = classPool.getOrNull("com.vaadin.flow.hotswap.Hotswapper");
197+
}
198+
return vaadinHotSwapper;
199+
}
200+
187201
public void registerServlet(Object vaadinServlet) {
188202
try {
189203
Class<?> vaadinIntegrationClass = resolveClass("org.hotswap.agent.plugin.vaadin.VaadinIntegration");

0 commit comments

Comments
 (0)