Sunday, November 15, 2009

Mycila Event

These days I was working hard on a new library: Mycila Event. This library is an in-memory event system. For those who know EventBus, this library brings many more features and advanced concept such as complex dispatching strategies.
  • Topics management and Topic matchers: you can subscribe to many topics using Ant expression, or using and(), or(), not(), anyOf(), to compose them
  • Veto system: you can register some vetoers to control wheter events should be published or not
  • Exception handling: you can define or use pre-existing strategies on how to to when a subscriber throw and exception: fail immediately, fail after the whole publishing, ignore them, ...
  • Event types: you can send in one topic several events. Your subscribers must specify to which event to listen to.
  • Annotation support: Mycila Event has a very good annotation support, to control your publishing, veto and subscribing methods. Also, the library has the ability to completely generate for you publishers based on an annotated interface.
  • Dispatching strategies: Mycila Event comes with a lot of dispatching strategies, and you can create your own ones. Dispatching strategies control how the publishing is done, how the listeners are called and how the events are sent using the current thread, a thread pool or else.
  • DI integration: The annotation support of Mycila Event is best suited to integrate with a DI library such as Google Guice. Mycila Event provides a Guice module you can use to directly detect annotated classed and inject / create publishers, subscribers and vetoers.
The library is deployed as a snapshot and is not yet released. It will be finalized within the next weeks and a 1.0 release should be deployed in the Maven Central Repository at the end of November.

If you have any questions / issues, you can see:
Mathieu.

0 comments:

Post a Comment