Kai Wähner (Twitter: @KaiWaehner, Blog: www.kai-waehner.de/blog) is an IT-Consultant in the Java EE, SOA, Cloud Computing and Big Data world. In his real life, he lives in Erlangen, Germany and works for TIBCO (www.tibco.com). Besides solving huge integration problems for large companies, Kai writes articles for magazines and speaks at international IT conferences such as JavaOne. Feel free to contact him via Twitter, LinkedIn or Email. Kai is a DZone MVB and is not an employee of DZone and has posted 51 posts at DZone. You can read more from them at their website. View Full User Profile

J2EE is NOT Completely Dead Yet - but You Can Save Time and Money using JRebel

12.27.2010
| 8673 views |
  • submit to reddit

I want to share my experiences with JRebel (http://www.zeroturnaround.com/jrebel/). If you need some neutral information about this product to ease development with J2EE / JEE applications and application servers, this information is for you! In the following I will tell you why JRebel exists, and why it is very impressive if you develope JEE (and especially J2EE 1.4) applications.

J2EE is NOT dead yet!

I really like JEE 5 and especially JEE 6. Some months ago, I enjoyed a live coding session of Adam Bien. Some days ago, he blogged "J2EE Is Dead - Completely Dead". Unfortunately, plenty of applications exist where J2EE 1.4 is still very alive! Probably, many of these applications will NOT be migrated to JEE 5 or even JEE 6. But developers still have to realize change requests and bugfixes.

Problems with JEE Application Servers

If you develop with WebSphere Application Server (WAS), no matter if it is version 5 / 6 / 6.1 / 7, deployment takes a very long time. Even changing a single line of code (e.g. to add a System.out.println) takes about 15 minutes in our project for publishing the changes, because you always have to do a build and redeployment. So, sometimes you have to wait 50 percent of your working time until WebSphere is ready again.

Other application servers have the same problem, although they are probably not as lame as WebSphere.

JEE 6 application servers are much faster, try out Glassfish 3. Re-Deployment just takes a few seconds. But most people will not work with JEE 6 yet, some like me even cannot use JEE 5. And I fear that WebSphere 8 (for JEE 6) will not be as performant as Glassfish 3. Thus, JRebel probably will have a right to exists also for JEE 6, but definitely is a must-have for J2EE 1.4!

What is JRebel?

JRebel is a product which promises to solve this problem of very long deployment times.  You do not need to build and redeploy. You save your class, the IDE compiles the class, and you can see the changes within one second! As if you develope a Java SE application.

If you want to understand how it works technically (you do not need this knowledge to use the product), you can read a detailed explanation here: http://www.zeroturnaround.com/jrebel/faq/#How_does_jrebel_work (you do not need this knowledge to use the product).

Features of JRebel

JRebel supports all important application servers such as WebSphere, Weblogic, Tomcat, Glassfish and so on. Besides allowing simple changes such as adding methods, fields, classes or annotations, you can also change EJB interfaces, JSPs, JSF and JPA code, XML config files and so on. Spring, Hibernate, JBoss Seam and some further Web-Frameworks are also supported. So, JRebel is very powerful.

IDE-Plugins are available for all major Java IDEs: Eclipse, NetBeans and IntelliJ IDEA.

All features of JRebel are described and compared to other solutions at http://www.zeroturnaround.com/jrebel/comparison/

Does JRebel really work?

I can confirm you: JRebel works as promised! You can save plenty of development time. I would never ever think about developing a J2EE / JEE project without JRebel (especially if WebSphere is the used application server).

I was very sceptical before trying out JRebel by myself. My colleagues also did not trust the promises at the product’s website, so I had to give them a live demo :-)

You even can debug using JRebel. So you can start the application server in debugging mode, make some changes, set a breakpoint, and see the changes immediately.

License Costs

The standard edition costs 189 USD for one year per developer. Support costs additional 50 USD. The support is fantastic! You get very quick responses with detailed explanations.

Open source and Scala projects do not have to pay any license costs.

It is excellent value for money! You can save a lot of time by investing this little amount of money.

Installation

The installation is very easy (if you have done it once). JRebel is installed (and also removed) within 10 minutes. You just have to add a JAR file and add one line of code to the configuration of the application server.

Bad Documentation

My main criticism: The documentation is bad. Someone of the JRebel guys should extend and improve the documentation!

There are some pitfalls which I had to resolve using JRebel with WAS 6.1:

- The application server runtimes do not use the same JVM version of the IBM compiler as RAD, although it is one installation! You get very strange error messages, so it is tough to deduce this problem.

- Some important information about JRebel is logged to the file “native_stderr.log” at /RAD/SDP70/runtimes/base_v61/profiles/Application/logs/server1/
e.g. this file informs you if JRebel is activated succesfully or what problems occur. I did not find this information anywhere within the FAQ. The JRebel support gave me this hint.

- I had some problems while debugging with JRebel and WebSpehre / RAD. Sometimes, the IDE did not show the line where the debugger is at the moment. This problem happened sometimes, but not too frequently. I restarted the application server, then the debugger worked correctly again.

Conclusion

Besides the bad documentation, JRebel is a very good product. You can save a lot of money using it. The licences costs are very low. So, if you develop a J2EE / JEE application, you should always use this great product. Thus, I recommend: Try it out by yourself, a 30 day trial is available to test JRebel. It will only take some minutes to see the potential…

If you have made other experiences with JRebel, let me know...

 

Best regards,
Kai Wähner (Twitter: @KaiWaehner)

[Content from my Blog: J2EE is NOT Completely Dead Yet - but you can save time and money using JRebel - Kai Wähner's IT-Blog]

Published at DZone with permission of Kai Wähner, author and DZone MVB.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Comments

Thomas Wuerthinger replied on Mon, 2010/12/27 - 8:55am

A free and open source alternative for those who are interested in enhanced hotswapping (add/remove fields, methods, and super types) is available from http://ssw.jku.at/dcevm/. The product comparison table on the JRebel homepage mentions the old limited JVM Hot Swap features only and does not mention the DCE VM as the new full-featured version.

Cloves Almeida replied on Mon, 2010/12/27 - 1:50pm

Been using for a few days and I'm amazed.

For most purposes, "Ctrl+S", "Alt-Tab", "F5", voilá! It saves not only redeployment time, but also "context switching" time. Great tool for a very decent price.

Anton Arhipov replied on Mon, 2010/12/27 - 5:45pm

@Thomas the matrix is just old enough, created before DCEVM, and not updated yet. Surely, the new VM has more features in terms of hotswapping, but nowadays - it is not enough.

Cosmin Mutu replied on Tue, 2010/12/28 - 2:38am

I think what Adam Bien wanted to say with J2EE Is Dead - Completely Dead is in fact that no new projects will be started on this technology version.

Ofcourse there are lots of applications built on j2ee, but no new ones will arise (or at least it SHOULDN`T). QED.

Kai Wähner replied on Tue, 2010/12/28 - 2:49am in response to: Cosmin Mutu

Sure. This is no criticism to Adam's article! I just thought it is a good introduction to my article :-)

Ronald Miura replied on Wed, 2010/12/29 - 5:59pm

If you use Spring and Hibernate, J2EE 1.4 is perfectly fine (with JDK 5+, of course). As is any newer Java EE version. Swiching from org.springframework and org.hibernate to javax.enterprise.inject and javax.persistence doesn't buy you anything.

Ronald Miura replied on Wed, 2010/12/29 - 6:03pm

Oh, yes, JRebel is great!

Jay Spring replied on Thu, 2010/12/30 - 12:06am in response to: Thomas Wuerthinger

DCEVM sounds interesting. Is there a comparison to the features of JRebel? Can anyone who has used this comment on their opinion of dcevm?

Kai Wähner replied on Mon, 2011/01/24 - 1:50am

I just tried out the newest release 2.5 (stable).

Now, an installer and very good configuration support is available. You do no more have to install JRebel manually. Great work of ZeroTurnaround!

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.