in jax-rs.whiteboard/src/main/java/org/apache/aries/jax/rs/whiteboard/internal/Whiteboard.java [575:631]
private ExtensionManagerBus createBus(
Map<String, ServiceTuple<Object>> extensions) {
BundleWiring wiring = _bundleContext.getBundle().adapt(
BundleWiring.class);
Map<String, Object> properties = new HashMap<>(_configurationMap);
properties.putIfAbsent(
"replace.loopback.address.with.localhost", "false");
HashMap<Class<?>, Object> cxfExtensions = new HashMap<>();
if (extensions.isEmpty()) {
cxfExtensions = null;
}
else {
for (Map.Entry<String, ServiceTuple<Object>> entry :
extensions.entrySet()) {
String className = entry.getKey();
ServiceTuple<Object> serviceTuple = entry.getValue();
ClassLoader classLoader = getClassLoader(serviceTuple);
try {
Class<?> clazz = classLoader.loadClass(className);
cxfExtensions.put(clazz, serviceTuple.getService());
}
catch (Exception e) {
if (_log.isErrorEnabled()) {
_log.error("Could not load extension for CXF bus", e);
}
}
}
}
if (_log.isDebugEnabled()) {
_log.debug(
"Creating CXF Bus with extensions {} and properties {}",
extensions, properties);
}
ExtensionManagerBus bus = new ExtensionManagerBus(
cxfExtensions, properties, wiring.getClassLoader());
bus.initialize();
if (_log.isDebugEnabled()) {
_log.debug(
"Created CXF Bus with extensions {} and properties {}",
extensions, properties);
}
return bus;
}