diff --git a/README.md b/README.md index 67c605e..c597e6c 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,8 @@ MBassador MBassador is a very light-weight message (event) bus implementation following the publish subscribe pattern. It is designed for ease of use and aims to be feature rich and extensible while preserving resource efficiency and performance. The core of MBassador's high performance is a specialized data structure that minimizes lock contention such that performance degradation of concurrent access is minimal. -The performance win of this design is illustrated in performance comparison. -The benchmarking code can be found here +The performance win of this design is illustrated in performance comparison +and more recently in the [eventbus-performance](https://github.com/bennidi/eventbus-performance) github repository. Read this documentation to get an overview of MBassadors features. There is also some documentation in the Wiki - although admittedly not enough to make a developer happy (work is in progress). @@ -147,6 +147,7 @@ Beginning with version 1.1.0 MBassador is available from the Maven Central Repos ``` +You can also download the latest binary release here: http://mvnrepository.com/artifact/net.engio/mbassador Of course you can always clone the repository and build from source. @@ -157,6 +158,11 @@ to avoid confusion and misunderstanding.

Release Notes

+

1.1.11

+ + Added support for conditional handlers using Java EL. Thanks to Bernd Rosstauscher + for the initial implementation. + +

1.1.10

+ Fixed broken sort order of prioritized handlers (see #58) + Addressed issue #63 by making the constructor of `MessageHandler` use a map of properties and by replacing dependencies to diff --git a/src/main/java/net/engio/mbassy/bus/MessagePublication.java b/src/main/java/net/engio/mbassy/bus/MessagePublication.java index 75299fc..9c15105 100644 --- a/src/main/java/net/engio/mbassy/bus/MessagePublication.java +++ b/src/main/java/net/engio/mbassy/bus/MessagePublication.java @@ -23,7 +23,7 @@ public class MessagePublication { private final Object message; // message publications can be referenced by multiple threads to query publication progress private volatile State state = State.Initial; - private volatile boolean delivered = false; // TODO: maybe replace with return value of subscription and dispatchers? + private volatile boolean delivered = false; private final BusRuntime runtime; protected MessagePublication(BusRuntime runtime, Collection subscriptions, Object message, State initialState) { @@ -37,6 +37,9 @@ public class MessagePublication { return subscriptions.add(subscription); } + /* + TODO: document state transitions + */ protected void execute() { state = State.Running; for (Subscription sub : subscriptions) { diff --git a/src/main/java/net/engio/mbassy/listener/Listener.java b/src/main/java/net/engio/mbassy/listener/Listener.java index 8e042ad..38b0b95 100644 --- a/src/main/java/net/engio/mbassy/listener/Listener.java +++ b/src/main/java/net/engio/mbassy/listener/Listener.java @@ -3,8 +3,14 @@ package net.engio.mbassy.listener; import java.lang.annotation.*; /** + * + * This annotation is meant to carry configuration that is shared among all instances of the annotated + * listener. Supported configurations are: + * + * Reference type: The bus will use either strong or weak references to its registered listeners, + * depending on which reference type (@see References) is set + * * @author bennidi - * Date: 3/29/13 */ @Retention(value = RetentionPolicy.RUNTIME) @Target(value = {ElementType.TYPE})