JBoss Community

The replacement of system properties in *-ds.xml is done only for elements of string value type

created by Radim Hanus in IronJacamar - View the full discussion

synopsis

  • enterprise application deployed in jboss-5.1
  • would like to use <max-pool-size>${myapp.db.maxPoolSize}</max-pool-size> in myapp.ear/my-ds.xml
  • ends up with maxPoolSize == 0

story behind

I encountered this problem while staging my ear from devel to loadtests and then production usage
I had an idea I would use a parameter for max-pool-size attribute and set it in accompanying property-service.xml so that I would have one deployment and several property-service.xml files based on target environment but it ends up with zero value of maxPoolSize

 

I have searched the forum as well as issue tracker and found this problem as unresolved:

suggested solution

having some spare time during christmas I dived into connector source codes and hopefully found a non-invasive way how to solve it

 

all magic is done in ManagedConnectionFactoryParserDeployer.parse() and it's matter of JAXB definitelly

I suggest to define specific @XmlJavaTypeAdapter adapters for non-string "primitive" fileds (int, long, boolean, Boolean) of ManagedConnectionFactoryDeploymentMetaData

These adapters in their unmarsal methods would call StringPropertyReplacer.replaceProperties() in accordance with PropertyEditorManager.findEditor()

I tried to implement such a fix and it works for me but didn't run against testsuite yet

 

BTW quick look at source codes for 6.0 final and prety sure there is the same problem

Reply to this message by going to Community

Start a new discussion in IronJacamar at Community