If you work on Spring Boot or SAP Commerce (Hybris), you know the tax: change one line, wait for a context restart or, on Hybris, an ant clean all and a full platform boot. Minutes, many times a day, with your in-memory state gone each time.
I built Reclazz to remove that wait. Full disclosure: I am the author. It is free and open source (Apache 2.0), so every claim below can be checked against the source.
What Reclazz is
Reclazz is a hot-reload agent plus an IntelliJ plugin for the JVM, with first-class support for Spring Boot and SAP Commerce. You edit code and build; the running JVM picks up the change with no restart, and application state survives. On a stock JDK 17 or newer it does the structural changes most tools cannot do without a patched JVM: adding and removing methods and fields, changing annotations, and registering many Spring beans, listeners and scheduled or security-annotated methods that you add after startup.
How it compares
| Capability | Reclazz | JRebel | Spring Boot DevTools | HotswapAgent / DCEVM |
|---|---|---|---|---|
| Price | Free, open source | Commercial | Free | Free, open source |
| Reload type | In-place hot-swap | In-place hot-swap | Full context restart | In-place hot-swap |
| Application state kept | Yes | Yes | Lost on restart | Yes |
| Add/remove methods & fields on a stock JDK | Yes (JDK 17+) | Yes | Restart | Needs DCEVM |
| Patched/enhanced JVM required | No | No | No | Yes (DCEVM) for structural |
| SAP Commerce (items.xml, beans.xml, ImpEx) | Yes | Limited | No | No |
| Telemetry | None, 100% local | Contacts licence server | None | None |
Comparison compiled from each project's own documentation and Reclazz's measured behaviour. JRebel is a trademark of Perforce, Spring Boot of Broadcom; HotswapAgent and DCEVM are open-source projects. Reclazz is not affiliated with any of them.
On Spring Boot
Reclazz redefines the changed classes through the Instrumentation API and uses a companion-class engine for the structural changes redefineClasses refuses. Beans are refreshed, MVC mappings re-scanned, caches evicted, and callbacks you add after startup are picked up live: a @Bean factory method, an event listener, a @Scheduled method, or a method with @PreAuthorize.## On SAP Commerce (Hybris)
This is where a Java-only reloader stops and Reclazz keeps going. Saving an items.xml or beans.xml runs the platform's own code generation in the background and reloads the regenerated model and DTO classes; interceptors re-register, properties and log levels apply to the running server, and an ImpEx on save is supported. A brand new database column still needs HAC Update Running System, but the everyday model and code loop no longer costs a restart.
No telemetry, verifiable
There is no telemetry, no analytics and no outbound network request. The one socket the agent opens is bound to loopback and reachable only from your own machine. The source is public, so this is something you can verify rather than trust.
FAQ
Is it really free? Yes, Apache 2.0, on GitHub, no licence server and no account.
Do I need a patched JVM? No, for the common structural changes on a stock JDK 17+. JetBrains Runtime or DCEVM is used only for extras such as making new members visible to reflection or changing an interface.
Does it replace Spring Boot DevTools? For most inner-loop work, yes: DevTools restarts the context and loses state, Reclazz redefines in place and keeps it.
Links
- Site: https://reclazz.com
- Comparison: https://reclazz.com/compare/
- Source: https://github.com/onurkat/reclazz
- IntelliJ plugin: https://plugins.jetbrains.com/plugin/33498-reclazz
If you try it on a Spring or Hybris project, I would genuinely like to hear what breaks and what saves you time.
Top comments (0)