in collector/configadmin/src/main/java/org/apache/karaf/decanter/collector/configadmin/ConfigAdminCollector.java [65:106]
public void configurationEvent(ConfigurationEvent configurationEvent) {
Map<String, Object> data = new HashMap<>();
data.put("type", "configadmin");
data.put("factoryPid", configurationEvent.getFactoryPid());
data.put("pid", configurationEvent.getPid());
data.put("changeInt", configurationEvent.getType());
if (configurationEvent.getType() == ConfigurationEvent.CM_DELETED) {
data.put("change", "deleted");
}
if (configurationEvent.getType() == ConfigurationEvent.CM_UPDATED) {
data.put("change", "updated");
}
if (configurationEvent.getType() == ConfigurationEvent.CM_LOCATION_CHANGED) {
data.put("change", "locationChanged");
}
try {
Configuration configuration = configurationAdmin.getConfiguration(configurationEvent.getPid(), null);
Dictionary props = configuration.getProperties();
if (props != null) {
Enumeration<String> keys = props.keys();
while (keys.hasMoreElements()) {
String key = keys.nextElement();
Object value = props.get(key);
data.put(key, value);
}
}
} catch (Exception e) {
LOGGER.warn("Can't retrieve configuration", e);
}
try {
PropertiesPreparator.prepare(data, config);
} catch (Exception e) {
// nothing to do
}
String topic = (config.get(EventConstants.EVENT_TOPIC) != null) ? (String) config.get(EventConstants.EVENT_TOPIC) : "decanter/collect/configadmin";
dispatcher.postEvent(new Event(topic, data));
}