in data-orchestrator/workflow-engine/workflow-engine-worker/src/main/java/org/apache/airavata/datalake/workflow/engine/worker/Participant.java [130:183]
private void loadTasks() throws Exception {
try {
Yaml yaml = new Yaml();
File listFile = new File(taskListFile);
InputStream stream;
if (listFile.exists()) {
logger.info("Loading task list file {} from absolute path", taskListFile);
stream = new FileInputStream(taskListFile);
} else {
logger.info("Loading task list file {} from class path", taskListFile);
stream = Participant.class.getClassLoader().getResourceAsStream(taskListFile);
}
Object load = yaml.load(stream);
if (load == null) {
throw new Exception("Did not load the configuration from file " + taskListFile);
}
if (load instanceof Map) {
Map rootMap = (Map) load;
if (rootMap.containsKey("tasks")) {
Object tasksObj = rootMap.get("tasks");
if (tasksObj instanceof Map) {
Map tasksMap = (Map) tasksObj;
if (tasksMap.containsKey("blocking")) {
Object blockingTaskObj = tasksMap.get("blocking");
if (blockingTaskObj instanceof List) {
blockingTaskClasses = (List<String>) blockingTaskObj;
blockingTaskClasses.forEach(taskClz -> {
logger.info("Loading blocking task " + taskClz);
});
}
}
if (tasksMap.containsKey("nonBlocking")) {
Object nonBlockingTaskObj = tasksMap.get("nonBlocking");
if (nonBlockingTaskObj instanceof List) {
nonBlockingTaskClasses = (List<String>) nonBlockingTaskObj;
nonBlockingTaskClasses.forEach(taskClz -> {
logger.info("Loading non blocking task " + taskClz);
});
}
}
}
}
}
} catch (FileNotFoundException e) {
logger.error("Failed to load task list from file {}", taskListFile, e);
throw e;
}
}