in src/main/java/org/apache/sling/feature/launcher/impl/launchers/AbstractRunner.java [273:299]
private void configure(final Object configAdmin) {
try {
final Method createConfig = configAdmin.getClass().getDeclaredMethod("getConfiguration", String.class, String.class);
final Method createFactoryConfig = configAdmin.getClass().getDeclaredMethod("getFactoryConfiguration", String.class, String.class, String.class);
Method updateMethod = null;
for(final Object[] obj : this.configurations) {
final Object cfg;
if ( obj[1] != null ) {
cfg = createFactoryConfig.invoke(configAdmin, obj[1], obj[0], null);
} else {
cfg = createConfig.invoke(configAdmin, obj[0], null);
}
if ( updateMethod == null ) {
updateMethod = cfg.getClass().getDeclaredMethod("update", Dictionary.class);
}
updateMethod.invoke(cfg, obj[2]);
}
} catch ( final Exception e) {
logger.error("Unable to create configurations", e);
throw new RuntimeException(e);
}
final Thread t = new Thread(() -> { configAdminTracker.close(); configAdminTracker = null; });
t.setDaemon(false);
t.start();
this.configurations.clear();
}