private Config mergeTaskConfig()

in seatunnel-server/seatunnel-app/src/main/java/org/apache/seatunnel/app/service/impl/JobInstanceServiceImpl.java [434:485]


    private Config mergeTaskConfig(
            JobTask task,
            PluginType pluginType,
            String connectorType,
            BusinessMode businessMode,
            Config connectorConfig,
            OptionRule optionRule)
            throws JsonProcessingException {

        Long datasourceInstanceId = task.getDataSourceId();
        DatasourceDetailRes datasourceDetailRes =
                datasourceService.queryDatasourceDetailById(datasourceInstanceId.toString());
        String pluginName = datasourceDetailRes.getPluginName();
        Config datasourceConf =
                parseConfigWithOptionRule(
                        pluginType,
                        connectorType,
                        datasourceDetailRes.getDatasourceConfig(),
                        optionRule);

        DataSourceOption dataSourceOption =
                task.getDataSourceOption() == null
                        ? null
                        : JsonUtils.parseObject(task.getDataSourceOption(), DataSourceOption.class);
        SelectTableFields selectTableFields =
                task.getSelectTableFields() == null
                        ? null
                        : JsonUtils.parseObject(
                                task.getSelectTableFields(), SelectTableFields.class);
        SceneMode sceneMode =
                task.getSceneMode() == null ? null : SceneMode.valueOf(task.getSceneMode());
        VirtualTableDetailRes virtualTableDetailRes = null;

        if (!SceneMode.MULTIPLE_TABLE.equals(sceneMode)
                && dataSourceOption != null
                && CollectionUtils.isNotEmpty(dataSourceOption.getTables())) {
            String tableName = dataSourceOption.getTables().get(0);
            if (virtualTableService.containsVirtualTableByTableName(tableName)) {
                virtualTableDetailRes = virtualTableService.queryVirtualTableByTableName(tableName);
            }
        }

        return DataSourceConfigSwitcherUtils.mergeDatasourceConfig(
                pluginName,
                datasourceConf,
                virtualTableDetailRes,
                dataSourceOption,
                selectTableFields,
                businessMode,
                pluginType,
                connectorConfig);
    }