in core/container/src/main/java/org/wildfly/swarm/container/runtime/ConfigurableManager.java [116:161]
protected <T> boolean configure(ConfigurableHandle configurable) throws Exception {
if (this.rescanning) {
return true;
}
try (AutoCloseable handle = Performance.accumulate("ConfigurableManager#configure")) {
Resolver<?> resolver = this.configView.resolve(configurable.key());
Class<?> resolvedType = configurable.type();
boolean isList = false;
boolean isMap = false;
boolean isProperties = false;
if (resolvedType.isEnum()) {
resolver = resolver.as((Class<Enum>) resolvedType, converter((Class<Enum>) resolvedType));
} else if (List.class.isAssignableFrom(resolvedType)) {
isList = true;
resolver = listResolver((Resolver<String>) resolver, configurable.key());
} else if (Properties.class.isAssignableFrom(resolvedType)) {
isProperties = true;
resolver = propertiesResolver((Resolver<String>) resolver, configurable.key());
} else if (Map.class.isAssignableFrom(resolvedType)) {
isMap = true;
resolver = mapResolver((Resolver<String>) resolver, configurable.key());
} else {
resolver = resolver.as(resolvedType);
}
if (isList || isMap || isProperties || resolver.hasValue()) {
Object resolvedValue = resolver.getValue();
if (isList && ((List) resolvedValue).isEmpty()) {
// ignore
} else if (isMap && ((Map) resolvedValue).isEmpty()) {
// ignore
} else if (isProperties && ((Properties) resolvedValue).isEmpty()) {
// also ignore
} else {
configurable.set(resolvedType.cast(resolvedValue));
return true;
}
}
}
return false;
}