OSGi isn&#x27;t that complex, it&#x27;s more that modularisation is inherently complex and people try to wave that away. When thinking modularisation through you quickly end up wanting depencency managament, versioning, modules and dynamic updates (meaning no restart of the VM when updating a module), and combining all of this is inherently difficult to design, and some of the stuff the JVM wasn&#x27;t really designed for from the beginning. OSGi solves all that in a quite nice way, but for political reasons Oracle doesn&#x27;t want to use OSGi (&#x27;not invented here syndrome&#x27;).