public ScriptResult runScript()

in src/main/java/com/epam/gmp/service/GroovyScriptEngineService.java [169:203]


    public <R> ScriptResult<R> runScript(ScriptContext scriptContext) throws ScriptExecutionException {
        try {
            // fix issue with jackson caching
            JsonMapper.getInstance().cleanCache();
            Script script = createScript(scriptContext);
            if (script != null) {
                if (logger.isInfoEnabled()) {
                    logger.info("Start script: <{}>", scriptContext.getScriptId());
                }
                Object scriptResult = script.run();
                ScriptResult<R> result;

                logger.info("Script finished: <{}>={}", scriptContext.getScriptId(), scriptResult == null ? NULL_RESULT : scriptResult.toString());

                if (scriptResult instanceof ScriptResult) {
                    result = (ScriptResult<R>) scriptResult;

                } else {
                    result = new ScriptResult(scriptResult);
                }
                putResult(result, scriptContext);
                return result;
            }
        } catch (Exception e) {
            if (logger.isErrorEnabled()) {
                StringWriter sw = new StringWriter();
                PrintWriter pw = new PrintWriter(sw);
                e.printStackTrace(pw);
                logger.error("Unable to run: '{}'  message: {}", scriptContext.getScriptName(), sw);
                putResult(1, scriptContext);
            }
            throw new ScriptExecutionException(e);
        }
        return null;
    }