jleinawe [https://community.jboss.org/people/jleinawe] created the discussion

"trying to understand JBoss ra.xml required-config-property for inbound"

To view the discussion, visit: https://community.jboss.org/message/725194#725194

--------------------------------------------------------------
My resource-adapter has 3 required-config-property elements

from ra.xml:
|    | <inbound-resourceadapter> |
|      | <messageadapter> |
|         | <messagelistener> |
|            | <messagelistener-type> |
|               | javax.jms.MessageListener |
|            | </messagelistener-type> |
|            | <activationspec> |
|               | <activationspec-class> |
|                  | weblogic.jms.ra.ActivationSpecImpl |
|               | </activationspec-class> |
|               | <required-config-property> |
|                  | 
<config-property-name>*ConnectionFactory*</config-property-name> |
|               | </required-config-property> |
|               | <required-config-property> |
|                  | <config-property-name>*Destination*</config-property-name> 
|
|               | </required-config-property> |
|               | <required-config-property> |
|                  | 
<config-property-name>*DestinationType*</config-property-name> |
|               | </required-config-property> |


My ra implemetation supports optional config-properties, such as 
MessageSelector that I specify in the MDB source

@MessageDriven(
    name="MyMdb",
    activationConfig = {
       @ActivationConfigProperty(propertyName = "*ConnectionFactory*",
                                 propertyValue = "java:jboss/wljmsra/cf"),
       @ActivationConfigProperty(propertyName = "*DestinationType*",
                                 propertyValue = "javax.jms.Queue"),
       @ActivationConfigProperty(propertyName = "*Destination*",
                                 propertyValue = "java:jboss/wljmsra/queue2"),
       @ActivationConfigProperty(propertyName = "*MessageSelector*",
                                 propertyValue = "Recipient = 'MDB'"),
        })


When I deploy, I get this warning and my MDB's MessageSelector is ignored.

WARN  [org.jboss.ejb3] (MSC service thread 1-1) JBAS014105: 
ActivationConfigProperty MessageSelector will be ignored since it is not 
allowed by resource adapter: wljmsra

The only way I can work around this is to add MessageSelector to my ra.xml as a 
required-config-property.   

I can also add other required-config-property elements and not assign values to 
them in my MDB's @ActivationConfigProperty.  This seems to defeat the purpose 
of having to identify "required"-config-property elements for inbound in ra.xml.

while the app-server is not required to enforce "required-config-property", the 
app-server and deployment tools are allowed to do so.

JCA Section 12.4.2.2: "The resource adapter may also provide in its deployment 
descriptor, using the required-config-property element, an optional list of 
configuration property names required for each activation specification. This 
information may be used during deployment to ensure that the required 
configuration properties are specified."

So while adding all of the RA's optional activation spec properties as 
"required-config-property"s in ra.xml might be a work-around for vanilla JBoss, 
it would make the RA non-JCA-compliant and may cause failures on other 
app-servers or when using various deployment tools.  Even on JBoss it may cause 
problems if the user is using a deployment tool that enforces 
"required-config-property".
--------------------------------------------------------------

Reply to this message by going to Community
[https://community.jboss.org/message/725194#725194]

Start a new discussion in IronJacamar at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2098]

_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to