Handling numbered configuration options

All configuration actions handling option files support auto-numbering of properties ending on '.' followed by an integer number (index) in a special manner.

They are internally treated like one and the same property key with multiple values and ordered according to their index even during patching.

For an example, consider the following situation:

cluster.properties coming with a new installer:

cluster.properties
failover.connection.0=10.1.1.1:8000
failover.connection.1=10.1.1.2:8000
failover.connection.2=10.1.1.3:8000

cluster.properties.configbak previously installed and automatically renamed by the installer before overwriting:

cluster.properties.configbak
failover.connection.0=192.168.1.1:8000
failover.connection.1=192.168.1.2:8000

Resource ConfigurationActionsSpec.xml

ConfigurationActionsSpec.xml
...
<configurable type="options" cleanup="true"
keepOldKeys="false" keepOldValues="true"
patchfile="${INSTALL_PATH}/config/cluster.properties.configbak"
tofile="${INSTALL_PATH}/config/cluster.properties"
condition="Update"/>
...

results in this cluster.properties:

Resulting cluster.properties
failover.connection.0=192.168.1.1:8000
failover.connection.1=192.168.1.2:8000

Note that the third property failover.connection.2 coming with the installer is not overtaken to not have an inconsistent result according to handling all these properties like one single property failover.connection. with multiple values to be merged in a meaningful manner.

In case keepOldKeys="false" the numbered keys from a previous installation should not be overtaken at all if there is not at least one property set in the option file coming with the new installer.