Live reload unavailable with DCEVM on Thornfly in Arch Linux

Hi!

I currently have an issue that Vaadin never allows me to enable Auto Reload with a pop up coming up saying that it’s unavailable. I have tried multiple ways but I can’t get Vaadin to detect that it’s running on DCEVM with HotSwapAgent.

Using Dcevm-11.0.9+2 and HotSwapAgent 1.4.2 SNAPSHOT on Arch Linux, starting Vaadin 14.4.4 with IntelliJ Ultimate 2020.3.1, Maven and Thorntail and using -XX:HotswapAgent=external -javaagent:/home/timewalker/Projekte/Inacta/hotswap-agent-1.4.2-SNAPSHOT.jar:

/usr/lib/jvm/java-11-openjdk-dcevm/bin/java -Dmaven.multiModuleProjectDirectory=/home/timewalker/Projekte/Inacta/git/sanaguide-webclient -XX:HotswapAgent=external -javaagent:/{secretPath}/hotswap-agent-1.4.2-SNAPSHOT.jar -Dmaven.home=/opt/intellij-idea-ultimate-edition/plugins/maven/lib/maven3 -Dclassworlds.conf=/opt/intellij-idea-ultimate-edition/plugins/maven/lib/maven3/bin/m2.conf -Dmaven.ext.class.path=/opt/intellij-idea-ultimate-edition/plugins/maven/lib/maven-event-listener.jar -javaagent:/opt/intellij-idea-ultimate-edition/lib/idea_rt.jar=42053:/opt/intellij-idea-ultimate-edition/bin -Dfile.encoding=UTF-8 -classpath /opt/intellij-idea-ultimate-edition/plugins/maven/lib/maven3/boot/plexus-classworlds-2.6.0.jar:/opt/intellij-idea-ultimate-edition/plugins/maven/lib/maven3/boot/plexus-classworlds.license org.codehaus.classworlds.Launcher -Didea.version=2020.3.1 thorntail:run -Dthorntail.http.port=8620 -Dthorntail.debug.port=5012
HOTSWAP AGENT: 09:58:16.534 INFO (org.hotswap.agent.HotswapAgent) - Loading Hotswap agent {1.4.2-SNAPSHOT} - unlimited runtime class redefinition.
HOTSWAP AGENT: 09:58:16.747 INFO (org.hotswap.agent.config.PluginRegistry) - Discovered plugins: [Hotswapper, WatchResources, AnonymousClassPatch, ClassInitPlugin, JdkPlugin, Hibernate, Hibernate3JPA, Hibernate3, Spring, Jersey1, Jersey2, Jetty, Tomcat, ZK, Logback, Log4j2, MyFaces, Mojarra, Omnifaces, ELResolver, WildFlyELResolver, OsgiEquinox, Owb, Proxy, WebObjects, Weld, JBossModules, ResteasyRegistry, Deltaspike, GlassFish, Vaadin, Wicket, CxfJAXRS, FreeMarker, Undertow, MyBatis]

From the logs it looks like it is using the correct JVM and it is loading up my external 1.4.2 correctly so technically it should work fine with Vaadin.

Maybe I’m missing some important piece so any help would be very appreciated.

Hi,

I guess you have some specific reason to use your own build of hotswap agent? Does it work with the version shipped with Dcevm? If it does, then there is probably some breaking change that needs to be investigated in the master branch.

cheers,
matti

Unfortunately, it does not work with 1.4.1 when running with the fatjar option (11.0.9 defaults to disabled now), which loads the Vaadin plugin. As far as I know, Thorntail is based of Wildfly and the Vaadin documentations specifically mention that the current 1.4.1 does not work with servers that use application classloaders like Wildfly. That’s why I’ve been trying to make it work with the SNAPSHOT version.