Java Application Container Image with Hot-Reloading
This project creates a Docker image that has uses both the Trava DCEVM and Hotswap Agent and the Java JDWP debugger. The combination of these utilities allows for the hot-reloading of Java resources and classes to enable rapid application development and debugging capabilties. As a Docker image, containers can be started to facilitate development without requiring complicated installations on developer workstations.
It is expected that containers are configured in Maven using the Fabric8 or Spotify Docker plugins. These configurations should expose the 8000 (debugger) port and any other port that the application may open. Most importantly, it should mount/bind the source code to the following possible paths.
Directory | Type | Hot-Reloaded |
---|---|---|
/var/lib/jvm/dev/classes |
Classpath | Yes |
/var/lib/jvm/dev/classes-extra1 |
Classpath | Yes |
/var/lib/jvm/dev/classes-extra2 |
Classpath | Yes |
/var/lib/jvm/dev/classes-extra3 |
Classpath | Yes |
/var/lib/jvm/dev/classes-extra4 |
Classpath | Yes |
/var/lib/jvm/dev/classes-extra5 |
Classpath | Yes |
/var/lib/jvm/dev/classes-extra6 |
Classpath | Yes |
/var/lib/jvm/dev/classes-extra7 |
Classpath | Yes |
/var/lib/jvm/dev/lib |
JARs | No |
/var/lib/jvm/dev/lib-extra1 |
JARs | No |
/var/lib/jvm/dev/lib-extra2 |
JARs | No |
/var/lib/jvm/dev/lib-extra3 |
JARs | No |
/var/lib/jvm/dev/lib-extra4 |
JARs | No |
/var/lib/jvm/dev/lib-extra5 |
JARs | No |
/var/lib/jvm/dev/lib-extra6 |
JARs | No |
/var/lib/jvm/dev/lib-extra7 |
JARs | No |
You may include your own hotswap-agent.properties
in any of the classes
folders. The one loaded by default is usually sufficient.