public Map getObject()

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;
    }