in components-starter/camel-xml-jaxb-starter/src/main/java/org/apache/camel/xml/jaxb/springboot/JAXBRuntimeHints.java [210:243]
private static List<String> getClassesFromIndexes(ClassLoader classLoader) {
List<String> classNames = new ArrayList<>();
PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(classLoader);
try {
for (Resource resource : resolver.getResources("classpath*:**/jaxb.index")) {
String filename = resource.getFilename();
if (filename == null || filename.isBlank()) {
continue;
}
String packageName = getPackageName(resource, "jaxb.index");
if (packageName == null) {
LOG.debug("The package name could not be found for the resource {}", resource);
continue;
}
try (BufferedReader reader = new BufferedReader(
new StringReader(resource.getContentAsString(StandardCharsets.UTF_8)))) {
String line = reader.readLine();
while (line != null) {
if (line.startsWith("#") || line.isBlank()) {
line = reader.readLine();
continue;
}
String className = "%s%s".formatted(packageName, line.trim());
LOG.debug("Found the class {} to register", className);
classNames.add(className);
line = reader.readLine();
}
}
}
} catch (IOException e) {
LOG.debug("Could not load the JAXB indexes: {}", e.getMessage());
}
return classNames;
}