If JRebel and OSGi are different, why do people compare them? Well, both JRebel and OSGi are capable of fast or instant class reloading during development; however, with JRebel this is the pure goal, whereas with OSGi this is more of a side-effect. In the end, using OSGi means switching to a brand new framework, while JRebel quickly plugs in to your existing stack.
http://zeroturnaround.com/blog/jrebel-vs-osgi-use-the-right-tool-for-the-right-job/
To put it bluntly, implementing OSGi should be done when the end goal is to achieve modularity and dynamism, but this requires continuous effort on your part; using JRebel is about increasing productivity by making Java as fast and iterative as Python, PHP or Ruby. It just requires download and pressing a couple of buttons in your IDE.
Perhaps you shouldn’t go for OSGi in a new project if all you expect to gain is increased productivity through quick code reloads. OSGi is made for projects that require a highly modular architecture. Regardless of your needs, JRebel can help you in either case.
Edited by: Cameron McKenzie on Dec 9, 2011 7:50 AM