Property replacement in XML configuration files

Certain elements inside XML configuration files can use ${property-name} syntax. When this syntax is used, the referenced Java system property value will replace the property reference during configuration parsing.

Note: If the system property does not exist, this will make the configuration parsing fail.

A classical use case for this feature is for providing a disk file location inside the directory attribute of the persistence tag:

<persistence directory="${user.home}/cache-data"/>  <!-- 1 -->
  1. Here user.home will be replaced by the value of the system property, for example /home/user.

The following attributes in the core configuration support system property replacement:

  • Local persistence directory (supports substitution within a string).

  • Thread pool minimum and maximum size attributes.

  • Write-behind queue size, concurrency, batch size and maximum batch delay.

  • Cache TTI and TTL.

  • Core resource sizes (heap, offheap and disk).

  • Disk store writer concurrency and segment count.