Hmm,
I've now got a problem with ${server} not being resolved when the application descriptor file is read. My application description looks something like:
Code:
<icegrid>
<application name="somename">
<!-- Set of default configuration properties for all servers -->
<properties id="DefaultParams_AllServers">
<!-- Send std out and std err to a common 'logs' directory. -->
<!-- {node.datadir} is the absolute path name of the enclosing node's -->
<!-- data directory, e.g. "NodeX/node/" so ../logs is "NodeX/logs". -->
<property name="Ice.StdOut" value="${node.datadir}/../logs/${server}.out"/>
<property name="Ice.StdErr" value="${node.datadir}/../logs/${server}.err"/>
</properties>
<!-- ============================================================== -->
<!-- Template for servers. -->
<server-template id="ServerTemplate">
<parameter name="server-name"/>
<server
id="${server-name}"
pwd="${server-name}"
exe="python"
activation="always">
<option>${server-name}_start.py</option>
<adapter
name="${server-name}Adapter"
endpoints="tcp"/>
<properties>
<!-- import default configuration properties for publish subscribe servers -->
<properties refid="DefaultParams_AllServers"/>
</properties>
</server>
</server-template>
<!-- ============================================================== -->
<!-- Define all the servers that run on Node 1. -->
<node name="Node1">
<!-- create a server -->
<server-instance
template = "ServerTemplate"
server-name = "SomeServer">
<properties>
<!-- locally override one of the default publish/subscribe config settings -->
<property name="DebugLevel" value="2"/>
<!-- configuration settings local to this server -->
<property name="Topic.Subscribe" value="output-topic"/>
<property name="Topic.Publish" value="publish-topic"/>
</properties>
</server-instance>
</node>
</application>
</icegrid>
I'm guessing this is due to scoping. But as ${node.datadir} is being resolved I'm not clear why ${server} isn't.