Here is my problem: I have to read a property (activemq.connector.port
) and add 2 to that and use that to set an attribute (connectorPort
) on the bean ManagementContext
. Here the property comes from a file or it could be system property. Spring does not really care I suppose.
<amq:broker id="broker" useJmx="true" persistent="true">
<amq:managementContext createConnector="true" connectorPort="#{${activemq.connector.port}+2}"/>
<amq:transportConnectors>
<amq:transportConnector uri="vm://localhost:${activemq.connector.port:1099}"/>
</amq:transportConnectors>
</amq:broker>
When I tried to do this I got this exception.
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named '{1099 + 2 }' is defined
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:568)
at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1108)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:278)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323)
How do I make this work? Are there any alternative approaches to achieve this?