hotswap-agent-intellij-plugin

by dmitry-zhuravlev

This plugin intends to simplify the usage of http://hotswapagent.org. Agent provides real hotswap fu...

221 Stars 17 Forks Last release: Not found Apache License 2.0 34 Commits 7 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

HotSwapAgent-IntelliJ-IDEA-plugin

hotswaplogo

Hot
Swapping

Our work is fun, but we don't want to waste our time waiting when our latest changes will be deployed on application server!

You can reload classes changed during debugging without need to restart the entire application using the HotSwap mechanism

Command+Shift+F9
in IntelliJ IDEA.

jvm_hotswap_ok

BUT!
At the moment due to original limitations of Java SDK the
Hot
Swapping is possible ONLY if the method body is altered.

In all other cases (like changing method or class signature), the class reload is

impossible
and the corresponding error message appears.

jvm_hotswap_fail

Solution

We need to use special java agent together with our JVM to enhance ability of reloading of changed classes. For example:

  1. ~~JRebel~~ (too expensive
    $550
    :fearful: per year per user)
  2. ~~Spring-Loaded~~ (cannot work properly with java 8 and
    crash JVM
    :dizzy_face:, the Spring team propagates the "Restart application on file-change"-approach of spring-boot-devtools for Spring Boot)
  3. ~~FakeReplace~~ (No JDK10+ support yet)
  4. ~~RelProxy~~ (Dead? No support for JDK8+)
  5. DCEVM (free-opensource-really
    hot
    :grinning:)

We will choose: DCEVM + Hotswap Agent :thumbsup:

DCEVM Installation

| steps: |
| ----- | |1. Download latest release of DCEVM Java patch and launch the installer with sudo(e.g.

sudo java -jar DCEVM-light-8u51-installer.jar
). Currently you need to select correct installer for Java 8.| |2. Select java installation directory on your disc and press "Install DCEVM as altjvm" button. JDK version
1.8.0_45
is recommended. download here DCEVM | |3. Download latest release of Hotswap agent jar, unpack
hotswap-agent.jar
and put it anywhere on your disc. For example: C:\java\hotswap-agent.jar| |4. Installation is done!| |5. More info here|

Start with
Hot
SwapAgent plugin for IntelliJ IDEA.

| steps: |
| ----- | |1. Install HotSwapAgent plugin for IntelliJ IDEA. plugin| |2. Enable HotSwapAgent plugin for all configurations (or one by one). enable| |3. Start the application in DEBUG mode. You will see HOTSWAP AGENT notification in your console in case if setup was correctly done. notnotification| |4. Be sure that you have

"Reload classes after compilation: Always"
ON in IntelliJ IDEA in HotSwap section in your IDEA preferences. image| |5. To re-deploying changed classes in IDEA press keys combination (:
Command+Shift+F9
/ ⊞:
Ctrl+Shift+F9
) to compile the current file|

:information_source: Instead of compiling the classes manually you can use the Save Action plug-in, which can trigger the compilation automatically and thus enabling "hotswap on save".

Happy:heart:
Hot
Swapping!

||
| ----- | |1.

change
method name & then press (:
Command+Shift+F9
/ ⊞:
Ctrl+Shift+F9
) change_01|
|2.
add new
method & then press (:
Command+Shift+F9
/ ⊞:
Ctrl+Shift+F9
) change_02|

More info: DCEVM & HotswapAgent

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.