In my previous blog I wrote about what the role of the Java Connector Architecture (JCA) container is inside the JBoss Application Server - and especially the IronJacamar container inside JBoss Application Server 7.
JBoss Application Server 7.0.1 was released yesterday with EJB3/MDB support - try it out and report back.
In order for this to work we need a couple of pieces, namely the JBoss EJB3 MessageDrivenBean (MDB) container and HornetQ which is our messaging system.
However, if the JBoss EJB3 project had to integrate with every messaging system out there it would be a mess. Hence the EJB3 specification was made generic such that all types of systems could be plugged in.
This is where JCA inflow comes into the picture.
The IronJacamar container features a completely new inflow system - as compared to previous JBoss Application Server releases - which was designed to decouple the interaction of the requesting container (f.ex. JBoss EJB3/MDB) and the target system (f.ex. HornetQ) even more.
IronJacamar keeps track of all resource adapter deployments which has support for inflow functionality - like the HornetQ resource adapter. This information can be queried to give a list of say all resource adapters that support the
javax.jms.MessageListener interface. The returned list can then be filtered based on the user input and default settings such that correct instance is found. IronJacamar will even provide a list of all supported configuration properties and their type of the target system.
The requesting container can then activate a configuration using generic data types, so no explicit dependencies are needed on the target system's classes.
magic the two systems are now connected, and ready to serve you messages to your message-driven beans :)
If you combine the power of JCA inflow with the ease of IronJacamar you end up with a very flexible solution for getting your data into JBoss Application Server 7.
For Those About to Rock, We Salute You !