in src/main/java/com/epam/gmp/service/ScriptContextBuilder.java [200:221]
protected ConfigObject buildConfig(Deque<ConfigLayer> configStack, String environment, Map additionalBindings) throws ScriptInitializationException {
Set<String> processedConfigs = new HashSet<>();
Deque<ConfigObject> cfgObjStack = new LinkedList<>();
ConfigObject resultConfig = new ConfigObject();
while (!configStack.isEmpty()) {
ConfigLayer cfgLayer = configStack.removeFirst();
// Skip parsing if current config already parsed
String curConfigPath = cfgLayer.getRoot().toString() + cfgLayer.getScriptName();
if (processedConfigs.contains(curConfigPath)) continue;
processedConfigs.add(curConfigPath);
ConfigObject cfgObj = assembleConfigForLayer(configStack, cfgLayer, environment, additionalBindings);
if (cfgObj != null) cfgObjStack.addFirst(cfgObj);
}
do {
ConfigObject cfgItem = cfgObjStack.removeFirst();
resultConfig.merge(cfgItem);
} while (!cfgObjStack.isEmpty());
return resultConfig;
}