Changes in our JCA Adapter
clebert.suconic Apr 24, 2009 5:42 AMThere are two ways of configuring our JCA Adapter:
On MDBs (Inbound), there are Activation properties on the MDBs:
@MessageDriven(name = "MessageMDBExample", activationConfig = { @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"), @ActivationConfigProperty(propertyName = "destination", propertyValue = "queue/testQueue"), @ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge"), }) public class MDBExample implements MessageListener
All of this is just passed straight to the Resource-adapter. EJB3 doesn't know anything about this. So, if we have any complains about how this is configured it's going to be our fault.
As a way of allowing the user to connect the MDB to a remote server, I'm adding two activation properties there:
Example:
... @ActivationConfigProperty(propertyName = "TransportType", propertyValue = "org.jboss.messaging.integration.transports.netty.NettyConnector"), @ActivationConfigProperty(propertyName = "TransportConfiguration", propertyValue = "jbm.remoting.netty.port=9945") ...
Simarly, the outbound connection definition, has a similar way of configuring it:
This is how our current jms-ds.xml looks like ATM:
<tx-connection-factory> <jndi-name>JmsXA</jndi-name> <xa-transaction/> <rar-name>jms-ra.rar</rar-name> <connection-definition>org.jboss.messaging.ra.JBMConnectionFactory</connection-definition> <config-property name="SessionDefaultType" type="java.lang.String">javax.jms.Topic</config-property> <config-property name="JmsProviderAdapterJNDI" type="java.lang.String">java:/DefaultJMSProvider</config-property> <max-pool-size>20</max-pool-size> <security-domain-and-application>JmsXARealm</security-domain-and-application> </tx-connection-factory>
all the config-property you see here, are just passed straight to the resource adapter. All of these is under our domain.
Again, as a way of allowing the user to connect the Outbound connection to a remote server I'm similarly adding two config-properties here:
<tx-connection-factory> ... <config-property name="TransportType" type="java.lang.String">org.jboss.messaging.integration.transports.netty.NettyConnector</config-property> <config-property name="TransportConfiguration" type="java.lang.String">jbm.remoting.netty.port=9945</config-property> ...
The user will also have the option of changing the ra.xml or deploying multiple rars. There is a @ResourceAdapter tag it could be used on the MDB also, so if we have multiple adapters.. the user will have the option of choosing the adapter file name.