in client/migrationx/migrationx-transformer/src/main/java/com/aliyun/dataworks/migrationx/transformer/dataworks/converter/dolphinscheduler/v3/nodes/DolphinSchedulerV3Converter.java [120:193]
private void setResources(DwWorkflow workflow) {
if (workflow == null) {
return;
}
String engineType = properties.getProperty(Constants.CONVERTER_TARGET_ENGINE_TYPE, "");
CalcEngineType calcEngineType = CalcEngineType.valueOf(engineType);
List<String> paths = new ArrayList<>();
DataWorksTransformerConfig config = DataWorksTransformerConfig.getConfig();
if (config != null) {
paths.add(calcEngineType.getDisplayName(config.getLocale()));
paths.add(LabelType.RESOURCE.getDisplayName(config.getLocale()));
} else {
paths.add(calcEngineType.getDisplayName(Locale.SIMPLIFIED_CHINESE));
paths.add(LabelType.RESOURCE.getDisplayName(Locale.SIMPLIFIED_CHINESE));
}
String folder = Joiner.on(File.separator).join(paths);
List<Resource> resources = new ArrayList<>();
List<ResourceComponent> resourceComponents = dolphinSchedulerPackage.getResources();
File dir = TransformerContext.getContext().getSourceDir();
for (ResourceComponent component : resourceComponents) {
File file = new File(dir.getAbsolutePath()
+ File.separator + "resource" + File.separator + "resources"
+ File.separator + component.getFileName());
if (!file.exists()) {
continue;
}
DwResource resource = new DwResource();
resource.setName(component.getFileName());
resource.setFolder(folder);
if (component.getFileName().endsWith(".jar")) {
if (CalcEngineType.EMR.equals(calcEngineType)) {
resource.setType(CodeProgramType.EMR_JAR.name());
} else if (CalcEngineType.ODPS.equals(calcEngineType)) {
resource.setType(CodeProgramType.ODPS_JAR.name());
} else {
continue;
}
resource.setExtend(SpecFileResourceType.JAR.name());
} else if (component.getFileName().endsWith(".py")) {
if (CalcEngineType.ODPS.equals(calcEngineType)) {
resource.setType(CodeProgramType.ODPS_PYTHON.name());
} else {
continue;
}
resource.setExtend(SpecFileResourceType.PYTHON.name());
} else if (component.getFileName().endsWith(".txt")) {
if (CalcEngineType.EMR.equals(calcEngineType)) {
resource.setType(CodeProgramType.EMR_FILE.name());
} else {
continue;
}
resource.setExtend(SpecFileResourceType.FILE.name());
} else if (component.getFileName().endsWith(".sh")) {
if (CalcEngineType.EMR.equals(calcEngineType)) {
resource.setType(CodeProgramType.EMR_FILE.name());
} else if (CalcEngineType.ODPS.equals(calcEngineType)) {
resource.setType(CodeProgramType.ODPS_FILE.name());
} else {
continue;
}
resource.setExtend(SpecFileResourceType.FILE.name());
} else {
continue;
}
resource.setLocalPath(file.getAbsolutePath());
resources.add(resource);
}
workflow.getResources().addAll(resources);
}