Package org.refcodes.eventbus
GenericEventBus
is the (virtual) machine wide manager for event
handling. It implements a publish/subscribe mechanism.
"... lately some colleagues and me were reasoning on how to do client-side (Browser, JavaScript) communication between web-page components ... decoupled ... in general I recommend taking a look at an event-bus (aka page-bus), with Java why not take a look at the refcodes-eventbus? ... the following “equation” came to mind … simply speaking, the equation Observer pattern + Publish–subscribe pattern = Message broker solves to refcodes-eventbus ..."
Lightweight message broker = event-bus?
A lightweight Message broker can be a good solution for requirements doing in-JVM (Java Virtual Machine) communication as of:Signaling events to some event-listener … Subscribing your event-listener for some specific events … Publishing events merely to interested event-listeners … Strongly decoupling the publisher and the subscriber … Considering privacy issues (no simple broadcast) …
In the article refcodes-eventbus: Observer + Publish–subscribe = Message broker I describe the refcodes-eventbus accompanied with a plain simple example on how to use it.
The refcodes-eventbus artifact makes use of the refcodes-matcher framework for defining the criteria on when to deliver an event to an event-listener. It also sets on top of the refcodes-observer framework regarding issues around the Observer pattern ... See also "http://www.refcodes.org/blog/publish_subscribe_observe_event-bus"
-
Interface Summary Interface Description BusEvent BusEvent.BusEventBuilder Intuitive Meta-Interface for theBusEvent.BusEventBuilder
as used by theEventBus
.BusMatcher A convenience definition of anEventMatcher
for the ready to use out of the boxEventBusImpl
implementation of the genericGenericEventBus
definition.BusObserver A convenience definition of anObserver
for the ready to use out of the boxEventBusImpl
implementation of the genericGenericEventBus
definition.DispatchStrategyAccessor Provides an accessor for aDispatchStrategy
property.DispatchStrategyAccessor.DispatchStrategyMutator Provides a mutator for aDispatchStrategy
property.DispatchStrategyAccessor.DispatchStrategyProperty Provides aDispatchStrategy
property.EventBus TheEventBus
defines a predefinedGenericEventBus
tailored to use theActionMetaDataEvent
as event type to use.GenericBusEvent<A,META extends org.refcodes.observer.EventMetaData,SRC extends GenericEventBus<?,?,?,?,?>> Intuitive Meta-Interface for theGenericActionMetaDataEvent
as used by theEventBus
.GenericBusEvent.GenericBusEventBuilder<A,META extends org.refcodes.observer.EventMetaData,SRC extends GenericEventBus<?,?,?,?,?>,B extends GenericBusEvent.GenericBusEventBuilder<A,META,SRC,B>> Intuitive Meta-Interface for theGenericBusEvent.GenericBusEventBuilder
as used by theGenericEventBus
.GenericBusObservable<E extends org.refcodes.observer.GenericEvent<?>,O extends org.refcodes.observer.Observer<E>,MATCH extends org.refcodes.observer.EventMatcher<E>,H> GenericBusPublisher<E extends org.refcodes.observer.GenericEvent<?>> The Interface BusPublisher.GenericEventBus<E extends org.refcodes.observer.GenericEvent<?>,O extends org.refcodes.observer.Observer<E>,MATCH extends org.refcodes.observer.EventMatcher<E>,META extends org.refcodes.observer.EventMetaData,H> TheGenericEventBus
is the (virtual) machine wide manager forGenericActionEvent
handling. -
Class Summary Class Description AbstractEventBus<E extends org.refcodes.observer.GenericEvent<?>,O extends org.refcodes.observer.Observer<E>,MATCH extends org.refcodes.observer.EventMatcher<E>,META extends org.refcodes.observer.EventMetaData,H> The Class AbstractEventBus.BusEventBuilderImpl Intuitive Meta-Class for theActionMetaDataEventBuilderImpl
as used by theEventBus
.BusEventImpl Intuitive Meta-Class for theActionMetaDataEventImpl
as used by theEventBus
.BusMatcherSugar Declarative syntactic sugar which may be statically imported in order to allow declarative definitions for theBusMatcher
elements.EventBusImpl TheEventBusImpl
is a ready to use implementation of aEventBus
using a defaultDispatchStrategy
beingDispatchStrategy.CASCADE
and extending theAbstractEventBus
. -
Enum Summary Enum Description DispatchStrategy TheDispatchStrategy
defines how child events are published within a parent event publish cycle.