in camel-k-core/support/src/main/java/org/apache/camel/k/support/RuntimeSupport.java [285:334]
public static Map<String, String> loadUserProperties() {
final String conf = System.getProperty(Constants.PROPERTY_CAMEL_K_CONF_D, System.getenv(Constants.ENV_CAMEL_K_CONF_D));
final Map<String, String> properties = new HashMap<>();
if (ObjectHelper.isEmpty(conf)) {
return properties;
}
FileVisitor<Path> visitor = new SimpleFileVisitor<>() {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
Objects.requireNonNull(file);
Objects.requireNonNull(attrs);
if (Files.isDirectory(file) || Files.isSymbolicLink(file)) {
return FileVisitResult.CONTINUE;
}
if (file.toFile().getAbsolutePath().endsWith(".properties")) {
try (Reader reader = Files.newBufferedReader(file)) {
Properties p = new Properties();
p.load(reader);
p.forEach((key, value) -> properties.put(String.valueOf(key), String.valueOf(value)));
}
} else {
try {
properties.put(
file.getFileName().toString(),
Files.readString(file, StandardCharsets.UTF_8));
} catch (MalformedInputException mie){
// Just skip if it is not a UTF-8 encoded file (ie a binary)
LOGGER.info("Cannot transform {} into UTF-8 text, skipping.", file);
}
}
return FileVisitResult.CONTINUE;
}
};
Path root = Paths.get(conf);
if (Files.exists(root)) {
try {
Files.walkFileTree(root, visitor);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
return properties;
}