XWiki uses a component architecture based on its own interfaces to enable code reuse and changing behaviors at runtime. Initially it used Plexus but later developed its own implementation using JSR330 annotations. This allows components to be installed and uninstalled dynamically at runtime. While OSGi and other solutions were considered, they were too complex or not standard enough. The custom solution has served XWiki well but it hopes to adopt a standard like CDI 1.1 in the future if dynamic registration is possible.