in src/main/java/com/epam/gmp/service/yaml/YamlLoader.java [57:92]
public Map<String, Object> getObject(Map<String, Object> params, Resource baseFolder, String yamlFileName) {
Map<String, Object> result = Collections.emptyMap();
YamlFreemarkerEngine yamlFreemarkerEngine = yamlEngineCache.computeIfAbsent(baseFolder.toString(),
(key -> {
try {
return new YamlFreemarkerEngine(groovyScriptEngineService.getEngine(baseFolder).getParentClassLoader(), "", baseFolder);
} catch (ScriptInitializationException | IOException e) {
logger.error("Unable to create YamlFreemarkerEngine for {} ", baseFolder);
}
return null;
})
);
if (yamlFreemarkerEngine != null) {
try {
YamlLoaderContext context = GMPContext.getApplicationContext().getBean(YamlLoaderContext.class, params);
for (IYamlPreLoader preLoader : yamlPreLoaders) {
preLoader.preload(context);
}
String yamlStr = yamlFreemarkerEngine.loadYaml(yamlFileName, context);
for (IYamlPreProcessor preProcessor : yamlPreProcessors) {
yamlStr = preProcessor.process(yamlStr, context);
}
YamlMapFactoryBean factory = new YamlMapFactoryBean();
factory.setResources(new ByteArrayResource(yamlStr.getBytes()));
result = factory.getObject();
} catch (TemplateException | IOException e) {
logger.error("Unable to load " + yamlFileName, e);
}
}
return result;
}