package betsy.bpmn.engines.jbpm; import java.nio.file.Path; import java.util.List; import java.util.Objects; import betsy.bpmn.engines.BPMNProcessInstanceOutcomeChecker; public class JbpmLogBasedProcessInstanceOutcomeChecker implements BPMNProcessInstanceOutcomeChecker { private final Path logFile; public JbpmLogBasedProcessInstanceOutcomeChecker(Path logFile) { this.logFile = Objects.requireNonNull(logFile); } @Override public ProcessInstanceOutcome checkProcessOutcome(String name) { List<String> lines = BPMNProcessInstanceOutcomeChecker.getLines(logFile); for (String line : lines) { if (line.contains("failed to deploy")) { return ProcessInstanceOutcome.UNDEPLOYED_PROCESS; } else if (line.contains("Unable to deploy")) { return ProcessInstanceOutcome.UNDEPLOYED_PROCESS; } else if (line.contains("ProcessLoadError")) { return ProcessInstanceOutcome.UNDEPLOYED_PROCESS; } } return ProcessInstanceOutcome.UNKNOWN; } }