.
On 14 Nov 2013, at 16:10, Jeff Mesnil <jmesnil(a)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(a)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(a)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(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/wildfly-dev