About six years ago I took a new job and started working with a large application that took advantage of an OSGi implementation and Karaf. OSGi offers some amazing benefits over baseline Java.
- Runtime upgradability
- Finer grained (package-level) dependencies
- Escape from classpath problem