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.BusEventBuilderas used by theEventBus.BusMatcher A convenience definition of anEventMatcherfor the ready to use out of the boxEventBusImplimplementation of the genericGenericEventBusdefinition.BusObserver A convenience definition of anObserverfor the ready to use out of the boxEventBusImplimplementation of the genericGenericEventBusdefinition.DispatchStrategyAccessor Provides an accessor for aDispatchStrategyproperty.DispatchStrategyAccessor.DispatchStrategyMutator Provides a mutator for aDispatchStrategyproperty.DispatchStrategyAccessor.DispatchStrategyProperty Provides aDispatchStrategyproperty.EventBus TheEventBusdefines a predefinedGenericEventBustailored to use theActionMetaDataEventas event type to use.GenericBusEvent<A,META extends org.refcodes.observer.EventMetaData,SRC extends GenericEventBus<?,?,?,?,?>> Intuitive Meta-Interface for theGenericActionMetaDataEventas 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.GenericBusEventBuilderas 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> TheGenericEventBusis the (virtual) machine wide manager forGenericActionEventhandling. -
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 theActionMetaDataEventBuilderImplas used by theEventBus.BusEventImpl Intuitive Meta-Class for theActionMetaDataEventImplas used by theEventBus.BusMatcherSugar Declarative syntactic sugar which may be statically imported in order to allow declarative definitions for theBusMatcherelements.EventBusImpl TheEventBusImplis a ready to use implementation of aEventBususing a defaultDispatchStrategybeingDispatchStrategy.CASCADEand extending theAbstractEventBus. -
Enum Summary Enum Description DispatchStrategy TheDispatchStrategydefines how child events are published within a parent event publish cycle.