[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