Search code examples
javajava-11hotswapagent

TravaOpenJDK new JVM option -XX:HotswapAgent, difference between fatjar and core modes?


TravaOpenJDK introduced a new JVM option -XX:HotswapAgent in version 11.0.9.

There are three modes to enable HotswapAgent, fatjar, core and external.

What is the difference between fatjar and core?


Solution

  • Because this answer is hidden in a closed issue as @papaya said, i leave it here as reference

    HotswapAgent core has no plugin except core JVM plugins. Then it is faster since less scanning tasks are necessary to be done, less class copying to target classloaders, there is no need to disable plugins. You choose only what you want.

    Loaded plugins are visible in the log, "HOTSWAP AGENT: 15:43:42.059 INFO (org.hotswap.agent.config.PluginRegistry) - Discovered plugins:"

    For core: Hotswapper, WatchResources, AnonymousClassPatch, ClassInitPlugin, JdkPlugin

    For fatjar: dkPlugin, Hotswapper, WatchResources, ClassInitPlugin, AnonymousClassPatch, 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