in src/main/java/org/apache/sling/installer/factories/configuration/impl/MetatypeHandler.java [43:75]
public void updateConfiguration(
final String factoryPid,
final String pid,
final Dictionary<String, Object> props,
final Dictionary<String, Object> defaultProps) {
// search metatype
final ObjectClassDefinition ocd;
if (factoryPid != null) {
ocd = this.getObjectClassDefinition(factoryPid);
} else {
ocd = this.getObjectClassDefinition(pid);
}
if (ocd != null) {
for (final AttributeDefinition ad : ocd.getAttributeDefinitions(ObjectClassDefinition.ALL)) {
final String propName = ad.getID();
final Object newValue = props.get(propName);
if (newValue != null && (defaultProps == null || defaultProps.get(propName) == null)) {
if (ad.getCardinality() == 0) {
if (!shouldSet(ad, newValue.toString())) {
props.remove(propName);
}
} else {
final String[] array =
Converters.standardConverter().convert(newValue).to(String[].class);
if (!shouldSet(ad, array)) {
props.remove(propName);
}
}
}
}
}
}