[wildfly-dev] Activation config annotation property replacement

Kabir Khan kabir.khan at jboss.com
Thu Nov 14 11:56:13 EST 2013


Hi,

I just merged something similar a day or so ago: https://github.com/wildfly/wildfly/commit/28b03e6ea5b8cea94646e1222608fc7e72613cbd. 
On 14 Nov 2013, at 16:10, Jeff Mesnil <jmesnil at redhat.com> wrote:

> Hi,
> 
> It looks like your patch is correct. Would you be interesting to contribute it to WildFly[1]?
> 
> [1] https://community.jboss.org/wiki/HackingOnWildFly
> 
> On 7 Nov 2013, at 13:35, luca boncompagni <lbonco at gmail.com> wrote:
> 
>> Hi to all,
>> 
>> I need to be able to do property replacement inside an MDB, for instance:
>> 
>> @MessageDriven(activationConfig = { 
>> @ActivationConfigProperty(
>> propertyName = "destinationLookup",
>> propertyValue = "java:global/jms/myAsyncQueue${short-postfix}"
>> ),
>> @ActivationConfigProperty(
>> propertyName="connectionFactoryLookup",
>> propertyValue="java:jboss/exported/jms/RemoteConnectionFactory"
>> )
>> })
>> public class TestMDB implements MessageListener {
>> 
>> I do this small patch:
>> 
>> 
>> 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
>> index 5d01865..7494d0f 100644
>> --- 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
>> @@ -52,6 +52,9 @@
>> import org.jboss.metadata.ejb.spec.ActivationConfigPropertyMetaData;
>> import org.jboss.metadata.ejb.spec.EnterpriseBeanMetaData;
>> import org.jboss.metadata.ejb.spec.MessageDrivenBeanMetaData;
>> +import org.jboss.metadata.property.PropertyReplacer;
>> +import org.jboss.metadata.property.PropertyReplacers;
>> +import org.jboss.metadata.property.PropertyResolver;
>> import org.jboss.msc.service.ServiceController;
>> import org.jboss.msc.service.ServiceName;
>> import org.jboss.msc.service.ServiceRegistry;
>> @@ -108,7 +111,9 @@
>>             final MessageDrivenBeanMetaData beanMetaData = getEnterpriseBeanMetaData(deploymentUnit, beanName, MessageDrivenBeanMetaData.class);
>>             final String beanClassName;
>>             final String messageListenerInterfaceName;
>> -            final Properties activationConfigProperties = getActivationConfigProperties(messageBeanAnnotation);
>> +            final PropertyResolver propertyResolver = deploymentUnit.getAttachment(org.jboss.as.ee.metadata.property.Attachments.FINAL_PROPERTY_RESOLVER);
>> +            final PropertyReplacer propertyReplacer = PropertyReplacers.resolvingReplacer(propertyResolver);
>> +            final Properties activationConfigProperties = getActivationConfigProperties(messageBeanAnnotation, propertyReplacer);
>>             final String messagingType;
>>             if (beanMetaData != null) {
>>                 beanClassName = override(beanClassInfo.name().toString(), beanMetaData.getEjbClass());
>> @@ -244,13 +249,13 @@
>>         addComponent(deploymentUnit, mdbComponentDescription);
>>     }
>> 
>> -    private Properties getActivationConfigProperties(final AnnotationInstance messageBeanAnnotation) {
>> +    private Properties getActivationConfigProperties(final AnnotationInstance messageBeanAnnotation, PropertyReplacer propertyReplacer) {
>>         final Properties props = new Properties();
>>         final AnnotationValue activationConfig = messageBeanAnnotation.value("activationConfig");
>>         if (activationConfig == null)
>>             return props;
>>         for (final AnnotationInstance propAnnotation : activationConfig.asNestedArray()) {
>> -            props.put(propAnnotation.value("propertyName").asString(), propAnnotation.value("propertyValue").asString());
>> +            props.put(propAnnotation.value("propertyName").asString(), propertyReplacer.replaceProperties(propAnnotation.value("propertyValue").asString()));
>>         }
>>         return props;
>>     }
>> 
>> Do  you have any suggestions?
>> 
>> Luca
>> _______________________________________________
>> wildfly-dev mailing list
>> wildfly-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/wildfly-dev
> 
> -- 
> Jeff Mesnil
> JBoss, a division of Red Hat
> http://jmesnil.net/
> 
> 
> _______________________________________________
> wildfly-dev mailing list
> wildfly-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/wildfly-dev




More information about the wildfly-dev mailing list