17

I've been checking out JRebel. According to their site:

"JRebel is an anything-Java plugin that speeds up JVM-based development (Java, Scala, Groovy) by reloading changes made in your workspace into a running JVM, without restarts or redeploys, maintaining the state of the application while you’re coding."

This seems to be the same as what we're already achieving with Eclipse, Netbeans and IntelliJ: we save and our changes are deployed instantly. What additional benefit(s) would JRebel give us?

Could someone explain it to me?

brasofilo
  • 25,496
  • 15
  • 91
  • 179
Pirzada
  • 4,685
  • 18
  • 60
  • 113
  • JRebel uses awful class reloading method. Since I guessed how does JRebel works I won't never use it. – michael Sep 12 '12 at 19:12

3 Answers3

17

The IDE (Eclipse, NetBeans or IntelliJ) automatically redeploy the application if configured so, which is not instant. Basically, it is just the automation that still results in real redeployment of the application, including creating of a new classloader and all the complementary stuff that is involved into initialization process.

In some cases, IDE in combination with some containers can preserve the session state - if that works for you that's awesome. If not - here you go - JRebel is the answer.

In case of packaged deployment the build phase adds up, but by using JRebel you just eliminate that all at once.

Anton Arhipov
  • 6,479
  • 1
  • 35
  • 43
  • Can you please provide your thoughts on http://stackoverflow.com/questions/35249234/how-hot-deployment-works-internally. I don't think this answer is still valid i.e `Basically, it is just the automation that still results in real redeployment ..` as I find eclipse redeployment is really quick now a days – emilly Feb 07 '16 at 03:56
  • @emilly vanilla redeployment is still just a redeployment regardless if it is triggered by Eclipse or any other IDE. Unless, the specific technology at runtime provides special hooks for the IDE (or any other tooling) to trigger and is optimized for update/redeploy speed. – Anton Arhipov Feb 07 '16 at 17:11
6

Some changes are not possible to reload especially when changing jar files classes without having to reload or restart the server (whatever server you are using). It automatically changes the compiled classes in the server and are automatically reloaded in your classpath.

When you are saving and refreshing changes in your IDE, you are basically rebuilding the war file and redeploying it on the server. This process can still slow down especially when redeploying large applications with multiple jar files and war files and all the classpath has to be refreshed.

aseychell
  • 1,794
  • 17
  • 35
1

JRebel isn’t An IDE plugin. JRebel comes pre-bundled with the plugins for Eclipse, IntelliJ IDEA, NetBeans and JDeveloper, however, JRebel agent is designed to be IDE-agnostic and can be used outside the IDE.

If you have questions What JRebel is and what it is not? here is a link that can provide all the answers that you are looking for:

What JRebel is and what it is not?

Here is a video about JRebel:

JRebel video

S. Mayol
  • 2,565
  • 2
  • 27
  • 34