Databus library

DataBus is a Java library for building highly modular software. It allows software component to talk to each other without knowing the other comonents. This is done via sending events, containing data (hence the name DataBus).

Simple components

A DataBus is formed by an unlimited number of components (called 'DataBusComponents'). These components talk to each other via sending and receiving events. These events are simple DataObjects, which are passed between the components. Components receving events are called 'consumer', components sending events 'producers'.
For each type of event the DataBus can hold an unlimited number of producers or consumers. There should be at least one producer generating events from void (a so-called generic producer), but consumers are free to produce events also (working as filters).
Events are handled asynchronously. It is guaranteed that the order in which events are handled by the consumers is the same for all consumers, but it is not defined when a consumer handles an event. If the input queue for a consumer queue grows too large, its thread priority is risen to shorten the queue.

Simple configuration

The DataBus itself is described in a single XML file, which defined all components forming the bus. This file also contains the configuration for the components. The components forming a bus are defined in some XML files:
  • one file forming the databus, containing a list of components and their configuration (if required)
  • one file for each component (the component descriptor), describing the component (at least name and class need to be given)


Currently, the DataBus library is used by the APD and GCP programs. See there for examples how to use the library, or have a look at the documentation (which is work in progress). If you have more specific questions, ask me by mail (

Change History

version 0.7.0 ( bin / src )

  • initial release