in src/main/java/org/apache/sling/installer/factories/configuration/impl/ConfigUpdateHandler.java [155:187]
private void updateFactoryConfig(final UpdatableResourceGroup group) {
final String alias = group.getAlias();
final String oldId = group.getId();
// change group id
final String[] result = getFactoryPidAndPid(alias, oldId);
final String factoryPid = result[0];
final String pid = result[1];
final String newId = ConfigUtil.getPIDOfFactoryPID(factoryPid, pid);
group.setId(newId);
// clear alias
group.setAlias(null);
this.logger.debug("Updating factory configuration from {} to {}", oldId, newId);
try {
final Configuration cfg = ConfigUtil.getLegacyFactoryConfig(this.configAdmin, factoryPid, alias, pid);
if (cfg != null) {
// keep existing values / location
final String location = cfg.getBundleLocation();
final Dictionary<String, Object> dict = ConfigUtil.cleanConfiguration(cfg.getProperties());
// delete old factory configuration
cfg.delete();
// create new named factory configuration with same properties and bundle location
final Configuration upCfg = this.configAdmin.getFactoryConfiguration(factoryPid, pid, location);
upCfg.update(dict);
}
} catch (final IOException | InvalidSyntaxException io) {
// ignore for now
}
group.update();
}