HOT reloading means new version of a class is automatically reloaded on the fly. Due to HOT reloading, when you change the source code, you can see the changed result on your browser without restarting web application.
HOT reloading works by creating a new class loader per request.
See HotReloadingFilter.java and HotReloadingClassLoader.java
Classes that are under <slim3.rootPackage> except cool package are HOT reloadable. <slim3.rootPackage> is defined in web.xml. Classes that are not HOT reloadable are called "COOL classes".
For example, EeeService can reference Ddd, but cannot reference Bbb.
If a COOL class wants to reference a HOT reloadable class, use CoolBridge. To use CoolBridge, You need to create a COOL interface and a HOT reloadable implementation class. A COOL interface must not depends on HOT reloadable classes.
Naming convension from COOL interface to HOT reloadable implementation class:
If you use MemcacheService or JCache, use org.slim3.memcache.Memcache instead of it.
A HOT reloadable class does not support singleton pattern using static field. In this case you should use a COOL class.