I’ve already described JavaRebel before. This time I’ve decided to have a deep look at this tool and may be adopt it for the daily usage.
JavaRebel is a nice tool which in nutshell is an very smart classloader. It allows you to change classes running in the container on the fly. It covers fields not allowed by HotSwap like changing object signatures. It will save you a great amount of time spent for redeploying application and restarting your app server.
So I’ve tried out the latest version of JavaRebel(3.0.1).
Now it’s shipped with an installer which allows you to configure your instance easily.
It will assist you in configuring your favourite IDE
Then you’ll be able to configure the required application server.
So I’ve completed all configurations and started developing my Maven project. I use NetBeans 6.8 and GlassFish 2 for the development. Everything worked fine from scratch.
So once I build my project in NetBeans – I do not need to do anything to redeploy application. The up-to-date classes are already used in the app server. It’s incredible. No need to build full EAR file, copy files, restart app server, pass through all of the steps to access the page you need… You have all of the changes on the fly.
While playing with JavaRebel today – I’ve noticed some problems with EJBs redeployment. However they are easily resolved by restarting server, and again, nothing to copy..
Also the memory requirements may increase a bit but it gave me an exception only after several hours of active development.
The even more cool stuff: JavaRebel can be used to reload various framework configs on the fly: Hibernate, Struts, Spring, Log4j, Tapestry, Groovy.
JavaRebel saved me about half an hour today. It’s at least 10 hours a month. And the price for personal license is only 59$ per year! Going to buy the license in the nearest future. Or may be after reading this post, our company will buy licences for all of the Java developers 🙂