private void loadTasks()

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