Free & Open Source

Commerce
Runtime Reload

Stop wasting 3-5 minutes per restart, 10+ times a day. CRR hot-swaps Java classes the moment ant build finishes. Spring beans refresh automatically. Zero downtime development.

Not yet on the Marketplace? Download from GitHub Releases in the meantime.

hybris — hybrisserver.sh
[CRR] [14:32:01] Hybris home: /opt/hybris [CRR] [14:32:01] JetBrains Runtime detected: structural changes SUPPORTED [CRR] [14:32:01] Watching 12 extension directories [CRR] [14:32:01] Commerce Runtime Reload is active.   [CRR] [14:35:17] Class file changed: DefaultCartService.class [mycore] [CRR] [14:35:17] Hot-swapped: com.mycompany.core.DefaultCartService (23ms) [CRR] [14:35:17] Spring bean refreshed: defaultCartService

Everything You Need.
Nothing You Don't.

Built specifically for SAP Commerce developers. Not a generic tool with Hybris support bolted on.

Instant Hot-Swap

Redefines classes in the running JVM via the Instrumentation API. Method body changes apply in milliseconds.

🌱

Spring Bean Refresh

Automatically destroys and recreates singleton beans after class reload. Your changes take effect immediately.

🔌

IntelliJ Plugin

Auto-injects the agent into run configurations. Detects JDK version and JBR capabilities. Zero manual setup.

🔬

JDK Auto-Detection

Detects JDK 17/21/25, identifies JetBrains Runtime and DCEVM, and auto-configures optimal JVM flags for your setup.

🛠

Structural Changes

Add or remove methods and fields on the fly with JetBrains Runtime or DCEVM. Go beyond method body changes.

📚

Interceptor Reload

Re-registers Hybris interceptors (Validate, Prepare, Load, Remove) after hot-swap. ImpEx auto-import included.

🔒

100% Local & Private

No telemetry, no analytics, no outbound network requests. Everything runs on your machine. Your code never leaves your environment.

CRR vs JRebel

JRebel costs $550+/dev/year — that's $2,750+ for a team of 5. CRR delivers the same capabilities for free, purpose-built for SAP Commerce.

Feature CRR JRebel
PriceFree$550+/dev/year
Method body changes
Add/remove methods & fields (with JBR/DCEVM)
Spring bean refresh
Hybris interceptor reload
ImpEx auto-import
Works with ant build
Built-in compilation (opt-in)
SAP Commerce nativePurpose-built for HybrisGeneral-purpose
License server requiredNoYes
Open source Apache 2.0

Works With Your JDK

CRR auto-detects your JDK and configures the right flags. JetBrains Runtime unlocks the full experience.

Standard OpenJDK

JDK 17 / 21 / 25
  • Method body changes
  • Spring bean refresh
  • Interceptor reload
  • ImpEx auto-import
  • Auto-configured --add-opens flags

JetBrains Runtime / DCEVM recommended

JBR / DCEVM 17 / 21 / 25
  • Everything from Standard, plus:
  • Add new methods
  • Add new fields
  • Remove methods & fields
  • Change annotations
  • Auto-configured -XX:+AllowEnhancedClassRedefinition

How CRR Works

A lightweight Java agent runs inside your Hybris JVM. The IntelliJ plugin handles everything else.

Your IDE (IntelliJ IDEA) SAP Commerce JVM ======================== ================ [CRR Plugin] [CRR Agent] | | Auto-injects FileWatcher -javaagent flag (NIO WatchService) into Run Config watches | classes/*.class Detects JDK | & JBR version ClassReloader | (Instrumentation API) Connects via | TCP socket +---------+--------+---------+ | | | | | [Tool Window] Spring Intercept ImpEx Status Shows reload Refresh Reload Import Server events live (TCP → IDE)

What Can't Be Hot-Reloaded

These are fundamental JVM and Hybris platform limitations that no tool can overcome.

items.xml Changes

Type system is loaded at startup. Requires ant all + Update Running System + restart.

Generated Model Classes

Bound to the platform classloader. Fixed at startup, cannot be redefined.

Class Hierarchy Changes

Changing superclass or interfaces is a JVM limitation. No tool can work around this.

Structural Changes (without JBR/DCEVM)

Adding/removing methods or fields requires JetBrains Runtime or DCEVM. Standard OpenJDK only supports method body changes.

Up and Running in 3 Steps

1

Install

Search for "Commerce Runtime Reload" in the JetBrains Marketplace.

Settings → Plugins → Marketplace
2

Enable

Open your SAP Commerce project. CRR auto-detects it and prompts to enable.

Settings → Tools → CRR → Enable
3

Run

Start your Hybris server. The agent is injected automatically. You're done.

Run → hybrisserver → Hot-reload active

Frequently Asked Questions

No. CRR uses the standard JVM Instrumentation API — the same mechanism used by debuggers and profilers. If a hot-swap fails (e.g., a structural change on standard OpenJDK), the original class remains loaded and your server continues running normally. CRR never leaves your JVM in a broken state.
CRR supports SAP Commerce 2211 on JDK 17, 21, and 25. Older versions (2105, 2205) with JDK 11 should work but are untested. CRR auto-detects your JDK version and configures the right flags.
Yes. As long as the JVM inside the container has the agent attached and the IntelliJ plugin can reach the agent's status port, CRR works in Docker, Kubernetes, or any containerized setup.
CRR reports the error in the tool window and via a balloon notification. The original class stays loaded. Common causes: structural changes on standard OpenJDK (switch to JetBrains Runtime or DCEVM), or items.xml / generated model changes (which always require a full restart).
No. CRR is 100% local. There is no telemetry, no analytics, no license server, and no outbound network requests. Everything runs entirely on your machine. Your code never leaves your environment.
Not required, but recommended. Standard OpenJDK supports method body changes. JetBrains Runtime or DCEVM adds support for structural changes (adding/removing methods and fields). CRR auto-detects which runtime you're using and configures itself accordingly.

Stop Wasting Time on
Server Restarts

A typical SAP Commerce restart takes 3-5 minutes. At 10+ restarts per day, that's 30-50 minutes wasted daily. CRR gives you that time back. Free and open source.