The Message Driven Controller module is a low-level component dedicated to be integrated as a central controller of your application. It is especially adapted for multi OSGi-bundles designs with a loose coupling between bundles.The Message Driven Controller allows to propagate actions from one module to another or many other ones in a simple manner and introduces an abstraction layer facilitating the software interoperability.Each action command is associated with an event. Each controller registers itself into a central dispatcher. For each action, each event is sent to a central dispatcher. The dispatcher redirects the events to the appropriate bundle controllers. The controller executes the corresponding command in is own thread pool.
Key Features
- Dynamic loading: event/command associations are registered dynamically. Bundles can be replaced on the fly
- Loose coupling: the "client" bundle does not necessarily depend on the "provider".
- Out-of-the-box "command" design pattern: the implementation of the action to perform is encapsulated in the command. Provides straightforward ways to undo the action and monitor its progress
- Message driven control
- Multi-threaded
- Synchronous/Asynchronous calls
- Progress monitoring