Explain Codes LogoExplain Codes Logo

Redeploy alternatives to JRebel

java
devops
hotswap
jvm
Nikita BarsukovbyNikita Barsukov·Mar 4, 2025
TLDR

In order to streamline your Java development experience, you can use DCEVM along with HotSwap Agent for real-time class redefinitions. If you are utilizing Spring, you might want to use Spring Loaded. For improving general build times, Takari lifecycle plugin for Maven is your go-to. IntelliJ IDEA Ultimate users have its built-in HotSwap feature, and for real-time coding, Quarkus fits the bill.

  • Getting DCEVM and HotSwap to work:
1. Install DCEVM (your alternative JVM). 2. Fire up your app using DCEVM. 3. Changing code -> Hot off the compiler -> HotSwap to the rescue!
  • Quick set up for Spring Loaded:
-javaagent:/path/to/springloaded.jar -noverify

Remember, these tools are primarily for development purposes.

DCEVM at its best

The Dynamic Code Evolution VM (DCEVM) is a customization of the JVM designed to improve class redefinition capabilities. It surpasses the standard HotSwap mechanism with its ability to:

  • Add, remove, or alter fields
  • Add, remove, or alter methods
  • Modify class hierarchy

This makes it a perfect fit for large scale stateful Java applications where frequent redeployment can be a pain.

Hotswap Agent: Your Framework's Best Friend

The Hotswap Agent extends the capabilities of DCEVM, particularly in framework-based development. It provides plugins capable of reloading configuration and framework components as you change them. Extremely useful when working with Spring, Hibernate, or Java EE.

Comparative Analysis of Redeployment Strategies

  • DCEVM: The power tool for extensive class redefinitions
  • HotswapAgent: Adds an additional layer for framework specific reloading
  • Spring Loaded: Custom made for Spring applications; feels right at home with Grails
  • Takari Plugin: The accelerator for your Maven lifecycles
  • IntelliJ IDEA HotSwap: A boon for those developing with the IDE
  • Quarkus: The new kid on the block with live coding feature

Evaluating JRebel Alternatives

Select the appropriate tool according to your project's needs:

  • If you are running an open-source project with complex requirements, DCEVM is your best bet.
  • Hotswap Agent offers something extra for those preferring popular frameworks.
  • Spring Loaded works well for Spring enthusiasts who work without licensed tools.
  • Quarkus is the latest, and ideal for microservices.

Up Your Game with Modern Tools

Modern tools can help you get more out of every code change:

  • Quarkus' dev mode: Write code and test it in real-time.
  • IntelliJ IDEA's built-in HotSwap: Skip the wait between coding and running.
  • Extension to the JBoss Wildfly Plugin: Helps you run Maven for deployments without having to do a complete restart.

DevOps and the Art of Rapid Deployment

A good DevOps pipeline should allow for rapid iteration cycles:

  • Automate build and deployment with CI/CD tools.
  • Envelop your runtime environments with containerization (e.g., Docker).
  • Use applications like Prometheus or Instana for monitoring live applications.

With these methods, you align development speed with operational stability.