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