in hertzbeat-manager/src/main/java/org/apache/hertzbeat/manager/service/impl/AppServiceImpl.java [608:649]
public boolean loadAppDefines() {
var rootUrl = this.getClass().getClassLoader().getResource("");
if (rootUrl == null) {
return false;
}
var classpath = rootUrl.getPath();
var defineAppPath = classpath + "define";
var directory = new File(defineAppPath);
if (!directory.exists() || directory.listFiles() == null) {
rootUrl = this.getClass().getResource(File.separator);
if (rootUrl == null) {
return false;
}
classpath = rootUrl.getPath();
defineAppPath = classpath + "define";
directory = new File(defineAppPath);
if (!directory.exists() || directory.listFiles() == null) {
return false;
}
}
log.info("load define path {}", defineAppPath);
Yaml yaml = new Yaml();
for (var appFile : Objects.requireNonNull(directory.listFiles())) {
if (appFile.exists() && appFile.isFile()) {
if (appFile.isHidden()
|| (!appFile.getName().endsWith("yml") && !appFile.getName().endsWith("yaml"))) {
log.error("Ignore this template file: {}.", appFile.getName());
continue;
}
try (var fileInputStream = new FileInputStream(appFile)) {
var app = yaml.loadAs(fileInputStream, Job.class);
if (app != null) {
appDefines.put(app.getApp().toLowerCase(), app);
}
} catch (IOException e) {
log.error(e.getMessage(), e);
log.error("Ignore this template file: {}.", appFile.getName());
}
}
}
return true;
}