Currently I'm working on a modular platform based on OSGI on Karaf.
We have implemented a pattern "Turducken" with a common EventBus for communication between clients modules.
Each module contains a definition that is sent from the server, and through these communication mechanisms, the necessary scripts and other things are loaded.
The idea of the platform is to support more client modules: "Angular and GWT", but, the core client written in GWT and expose API with JsInterop.
The project is very large, if you want we can discuss some ideas.
My general idea is to free the platform when the platform is stable.