Java Virtal Machine.net

[ News ] rss

February 01, 2011

Mark Wielaard: New GPG key. Finally created a new GPG key using gnupg. The old one was a DSA/1024 bits one and 8 years old. The new one is a RSA/2048 bits one. I will use the new one in the future to sign any release tarballs I might create. pub 2048R/57816A6A 2011-01-29 Key f...

More »

February 01, 2011

Andrew Hughes: [SECURITY] IcedTea6 1.7.8, 1.8.5, 1.9.5 Released!. We are pleased to announce a new set of security releases, IcedTea6 1.7.8, IcedTea6 1.8.5 and IcedTea6 1.9.5. This update contains the following security updates: The IcedTea project provides a harness to build the source code from OpenJDK6 u...

More »

March/2024
SunMonTueWedThuFriSat
     12
3456789
10111213141516
171819 20212223
24252627282930
31      

[ Archives News
for 'Java Technology' ]

home > news > java technology > decoupling event producers and event consumers in jee6 using cdi and jms

Decoupling event producers and event consumers in JEE6 using CDI and JMS

In this post I will share my recent findings about Container Dependency Injection in JEE 6, in particular how to decouple the processing threads of  event producers and event consumers. JEE 6 introduces a very nice dependency injection framework (CDI) that has superb support for the Observer pattern in the form of event broadcasting. An Event in CDI is just a regular POJO: public class MyEvent { String data; Date eventTime; .... } Events can be fired by any class through the use of the Event implementation injected automatically by the container via the @Inject annotation:   public class EventProducer { @Inject @Any Event event; public void doSomething() { MyEvent e=new MyEvent(); e.data="This is a test event"; e.eventTime=new Date(); event.fire(e); } } Observing events is even easier, one just needs to declare a method which takes a parameter with the @Observes annotation:   public class EventConsumer { public void afterMyEvent(@Observes MyEvent event) { // .. Insert event logic here } } CDI will automagically wire EventProducer and EventConsumer, so that when EventProducer fires the event, EventConsumer.afterMyEvent gets called. This is pretty cool, as now EventProducer and EventConsumer can work together without direct knowledge of each other. There is however another, more subtle, form of coupling taking place:  event ...


Date: April, 14 2010
Url: http://www.java.net/blog/jjviana/archive/2010/04/13/decoupling-event-producers-and-consumers-jee6-using-cdi-and-jms


Others News

©2002-2019Java-Virtual-Machine.net nl | website editor | Mobirise Templates | free icon fonts | formoid.com