DEV Community

Onur Kat
Onur Kat

Posted on Originally published at reclazz.com

Reclazz: free, open-source hot reload for Spring Boot and SAP Commerce (no restart)

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

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)