これからの当然の結果として、同じ名前の異なった Classオブジェクトを持つVM中に、複数のクラスローダを持つことができる、ということである。com.infoq.example.Appという名前のクラスを、同じVM上のバンドルcom.infoq.exampleのバージョン1とバージョン2の両方によってエクスポートできる。バージョン1にバインドされたクライアントバンドルは、バージョン1のクラスを得る。バージョン2にバインドされたクライアントバンドルは、バージョン2のクラスを得る。このことは、モジュールシステムにかなり普通に起きることである。同じVM上で、あるコードは、ライブラリの古いバージョンをロードする必要があり、一方(他のバンドルにある)新しいコードは、ライブラリの新しいバージョンが必要な場合である。幸いにも、OSGiは、そのような推移的な依存性を管理し、非互換なクラスに起因する問題がな
![InfoQ: Modular Java:動的なモジュール化](https://cdn-ak-scissors.b.st-hatena.com/image/square/1206d69ca0bbfe48db561aa70f8a184e22861e0d/height=288;version=1;width=512/https%3A%2F%2Fres.infoq.com%2Farticles%2Fmodular-java-dynamic-modularity%2Fja%2Fsmallimage%2Fimage_cylinder.jpg)