In this chapter, we looked at how OSGi's use of
ClassLoaders permits bundle separation, and what effect that has on libraries that mistakenly assume there is only one
ClassLoader per JVM. We also looked at how to upgrade such libraries so that they can run in an OSGi environment, and how to avoid such problems in the first place.
In the next chapter, we'll look at how to design applications in a modular way, building upon the material covered up to this point.