Unfortunately, the ExpressionResolver interface in central is using syntax ${variableName:defaultVal}  whereas this code is using syntax ${variableName:context}.  

The code here in astools actually delegates to the eclipse variables framework.  In fact, the class ConfigNameResolver (in this patch) implements org.eclipse.core.variables.IDynamicVariableResolver (and has the associated extension point)  and delegates the resolving of the ${varName:context} to the eclipse variables framework. 

So what ConfigNameResolver is actually doing is replacing  ${config_dir} with  ${config_dir:MyRuntime}  so that when the eclipse variables framework attempts to resolve it, it has the context from which to act. 

I'll play with the code a bit to see what I can do though to clean it up.