ensure configadmin service reference is available when loading configurations
diff --git a/winegrower-core/src/main/java/org/apache/winegrower/Ripener.java b/winegrower-core/src/main/java/org/apache/winegrower/Ripener.java
index 4a0c3ec..50c0918 100644
--- a/winegrower-core/src/main/java/org/apache/winegrower/Ripener.java
+++ b/winegrower-core/src/main/java/org/apache/winegrower/Ripener.java
@@ -310,6 +310,9 @@
registerBuiltInService(ConfigurationAdmin.class, this.configurationAdmin, new Hashtable<>());
registerBuiltInService(EventAdmin.class, this.eventAdmin, new Hashtable<>());
registerBuiltInService(org.osgi.service.log.LoggerFactory.class, loadLoggerFactory(), new Hashtable<>());
+ if (DefaultConfigurationAdmin.class.isInstance(configurationAdmin)) {
+ DefaultConfigurationAdmin.class.cast(configurationAdmin).preload(configuration.getDefaultConfigurationAdminPids());
+ }
}
public <T> void registerBuiltInService(final Class<T> type, final T impl, final Dictionary<String, Object> props) {
@@ -324,14 +327,12 @@
if (configurationAdminIterator.hasNext()) {
return configurationAdminIterator.next();
}
- final DefaultConfigurationAdmin impl = new DefaultConfigurationAdmin(new HashMap<>(), configurationListeners) {
+ return new DefaultConfigurationAdmin(new HashMap<>(), configurationListeners) {
@Override
protected ServiceReference<ConfigurationAdmin> getSelfReference() {
return (ServiceReference<ConfigurationAdmin>) services.getServices().iterator().next().getReference();
}
};
- impl.preload(configuration.getDefaultConfigurationAdminPids());
- return impl;
}
private org.osgi.service.log.LoggerFactory loadLoggerFactory() {