15.3.4. Mapping Standard Activation Properties

A number of ESB properties are automatically mapped to the activation configuration using an ActivationMapper. The properties, their location and their purpose are described in the following table

Table 15.2. Mapping Standard Activation Properties

Attribute Location Description
maxThreads jms-listener The maximum number of messages which can be processed concurrently.
dest-name jms-message-filter The JMS destination name.
dest-type jms-message-filter The JMS destination type, QUEUE or TOPIC.
selector jms-message-filter The JMS message selector.
providerAdapterJNDI jms-jca-provider The JNDI location of a Provider Adapter which can be used by the JCA inflow to access a remote JMS provider. This is a JBoss-specific interface, supported by the default JCA inflow adapter and may be used, if necessary, by other in-flow adapters.

You can over-ride this behaviour by specifying a class which implements the ActivationMapper. interface. You can declare this class globally or within each individual deployment configuration.
Specifying it globally via the jbossesb-properties.xml file as it defines the default mapper used for the specified JCA adapter The name of the property to be configured is org.jboss.soa.esb.jca.activation.mapper.<adapter name> and the value is the class name of the ActivationMapper.
The following example shows the configuration of the default ActivationMapper used to map the properties on the activation specification for the JBoss JCA adapter, jms-ra.rar:
<properties name="jca"> 
       <property name="org.jboss.soa.esb.jca.activation.mapper.jms-ra.rar"
            value="org.jboss.soa.esb.listeners.jca.JBossActivationMapper"/> 
   </properties>
Specifying the ActivationMapper within the deployment will override any global setting. The mapper can be specified within the listener, the bus or the provider with the precedence being the same order.
The following shows an example specifying the mapper configuration within the listener configuration:
<jms-listener name="listener" busidref="bus" maxThreads="100">
        <property name="jcaActivationMapper" value="TestActivationMapper"/>
    </jms-listener>
Here is how you specify the mapper configuration within the bus configuration:
<jms-bus busid="bus">
        <property name="jcaActivationMapper" value="TestActivationMapper"/>
        <jms-message-filter dest-type="TOPIC" dest-name="DestName"/>
    </jms-bus>
Here is how you specify the mapper configuration within the provider configuration.
<jms-jca-provider name="provider" connection-factory="ConnectionFactory">
        <property name="jcaActivationMapper" value="TestActivationMapper"/>
        <jms-bus busid="bus">
            <jms-message-filter dest-type="TOPIC" dest-name="DestName"/>
        </jms-bus>
    </jms-jca-provider>