public static void main()

in src/main/java/com/epam/gmp/ChainExecutor.java [38:83]


    public static void main(String[] args) throws InterruptedException {
        if (args.length > 0) {
            Integer initialExitCode = 0;
            ChainExecutor chainExecutor = new ChainExecutor();
            chainExecutor.initContext();

            QueuedProcessService processService = chainExecutor.context.getBean(QueuedProcessService.class);
            long start = System.currentTimeMillis();
            for (int i = 0; i < args.length; ) {
                String arg = args[i];
                Matcher pathMatcher = SCRIPT_PATTERN.matcher(arg);
                if (pathMatcher.matches()) {
                    List<String> cmdLineParams = new ArrayList<>();
                    int j = i + 1;
                    while (j < args.length) {
                        Matcher nextMatcher = SCRIPT_PATTERN.matcher(args[j]);
                        if (!nextMatcher.matches()) {
                            cmdLineParams.add(args[j++]);
                        } else {
                            break;
                        }
                    }
                    i += cmdLineParams.size() + 1;
                    try {
                        processService.execute(GroovyThread.class, arg, cmdLineParams);
                    } catch (BeansException e) {
                        logger.error("Unable to run script", e);
                        initialExitCode++;
                    }
                } else {
                    i++;
                }
            }
            processService.shutdown();
            if (logger.isInfoEnabled()) {
                logger.info("Took: {}", System.currentTimeMillis() - start);
            }
            ExitCodeCalculator exitCodeCalculator = chainExecutor.context.getBean(ExitCodeCalculator.class);
            int exitCode = exitCodeCalculator.calculate(initialExitCode);
            chainExecutor.context.close();
            System.exit(exitCode);
        } else {
            logger.error("Parameter script name is absent!");
            System.exit(1);
        }
    }