<div dir="ltr">Hi to all,<br><br>I need to be able to do property replacement inside an MDB, for instance:<br><br>@MessageDriven(activationConfig = { <br>@ActivationConfigProperty(<br>propertyName = "destinationLookup",<br>
propertyValue = "java:global/jms/myAsyncQueue${short-postfix}"<br>),<br>@ActivationConfigProperty(<br>propertyName="connectionFactoryLookup",<br>propertyValue="java:jboss/exported/jms/RemoteConnectionFactory"<br>
)<br>})<br>public class TestMDB implements MessageListener {<br><div><br></div><div>I do this small patch:</div><div><br></div><div><br></div><div><div>diff --git a/ejb3/src/main/java/org/jboss/as/ejb3/deployment/processors/MessageDrivenComponentDescriptionFactory.java b/ejb3/src/main/java/org/jboss/as/ejb3/deployment/processors/MessageDrivenComponentDescriptionFactory.java</div>
<div>index 5d01865..7494d0f 100644</div><div>--- a/ejb3/src/main/java/org/jboss/as/ejb3/deployment/processors/MessageDrivenComponentDescriptionFactory.java</div><div>+++ b/ejb3/src/main/java/org/jboss/as/ejb3/deployment/processors/MessageDrivenComponentDescriptionFactory.java</div>
<div>@@ -52,6 +52,9 @@</div><div> import org.jboss.metadata.ejb.spec.ActivationConfigPropertyMetaData;</div><div> import org.jboss.metadata.ejb.spec.EnterpriseBeanMetaData;</div><div> import org.jboss.metadata.ejb.spec.MessageDrivenBeanMetaData;</div>
<div>+import org.jboss.metadata.property.PropertyReplacer;</div><div>+import org.jboss.metadata.property.PropertyReplacers;</div><div>+import org.jboss.metadata.property.PropertyResolver;</div><div> import org.jboss.msc.service.ServiceController;</div>
<div> import org.jboss.msc.service.ServiceName;</div><div> import org.jboss.msc.service.ServiceRegistry;</div><div>@@ -108,7 +111,9 @@</div><div> final MessageDrivenBeanMetaData beanMetaData = getEnterpriseBeanMetaData(deploymentUnit, beanName, MessageDrivenBeanMetaData.class);</div>
<div> final String beanClassName;</div><div> final String messageListenerInterfaceName;</div><div>- final Properties activationConfigProperties = getActivationConfigProperties(messageBeanAnnotation);</div>
<div>+ final PropertyResolver propertyResolver = deploymentUnit.getAttachment(org.jboss.as.ee.metadata.property.Attachments.FINAL_PROPERTY_RESOLVER);</div><div>+ final PropertyReplacer propertyReplacer = PropertyReplacers.resolvingReplacer(propertyResolver);</div>
<div>+ final Properties activationConfigProperties = getActivationConfigProperties(messageBeanAnnotation, propertyReplacer);</div><div> final String messagingType;</div><div> if (beanMetaData != null) {</div>
<div> beanClassName = override(beanClassInfo.name().toString(), beanMetaData.getEjbClass());</div><div>@@ -244,13 +249,13 @@</div><div> addComponent(deploymentUnit, mdbComponentDescription);</div><div>
}</div><div> </div><div>- private Properties getActivationConfigProperties(final AnnotationInstance messageBeanAnnotation) {</div><div>+ private Properties getActivationConfigProperties(final AnnotationInstance messageBeanAnnotation, PropertyReplacer propertyReplacer) {</div>
<div> final Properties props = new Properties();</div><div> final AnnotationValue activationConfig = messageBeanAnnotation.value("activationConfig");</div><div> if (activationConfig == null)</div>
<div> return props;</div><div> for (final AnnotationInstance propAnnotation : activationConfig.asNestedArray()) {</div><div>- props.put(propAnnotation.value("propertyName").asString(), propAnnotation.value("propertyValue").asString());</div>
<div>+ props.put(propAnnotation.value("propertyName").asString(), propertyReplacer.replaceProperties(propAnnotation.value("propertyValue").asString()));</div><div> }</div><div> return props;</div>
<div> }</div></div><div><br></div><div>Do you have any suggestions?</div><div><br></div><div>Luca</div></div>