if (backendRoot == null) {
Message message = ERR_CONFIG_BACKEND_BASE_DOES_NOT_EXIST.get();
throw new ConfigException(message);
}
for (String name : root.listBackends()) {
BackendCfg backendCfg = root.getBackend(name);
String backendID = backendCfg.getBackendId();
if(backendCfg instanceof TrustStoreBackendCfg ||
backendCfg instanceof LDIFBackendCfg) {
if(backendCfg.isEnabled()) {
String className = backendCfg.getJavaClass();
Class backendClass;
Backend backend;
try {
backendClass = DirectoryServer.loadClass(className);
backend = (Backend) backendClass.newInstance();
} catch (Exception e) {
if (debugEnabled()) {
TRACER.debugCaught(DebugLogLevel.ERROR, e);
}
Message message =
ERR_CONFIG_BACKEND_CANNOT_INSTANTIATE.get(
String.valueOf(className),
String.valueOf(backendCfg.dn()),
stackTraceToSingleLineString(e));
logError(message);
continue;
}
backend.setBackendID(backendID);
backend.setWritabilityMode(WritabilityMode.INTERNAL_ONLY);
try {
backend.configureBackend(backendCfg);
backend.initializeBackend();
} catch (Exception e) {
if (debugEnabled())
{
TRACER.debugCaught(DebugLogLevel.ERROR, e);
}
Message message =
ERR_CONFIG_BACKEND_CANNOT_INITIALIZE.get(
String.valueOf(className),
String.valueOf(backendCfg.dn()),
stackTraceToSingleLineString(e));
logError(message);
}
try {
DirectoryServer.registerBackend(backend);
} catch (Exception e)
{
if (debugEnabled()) {
TRACER.debugCaught(DebugLogLevel.ERROR, e);
}
Message message =
WARN_CONFIG_BACKEND_CANNOT_REGISTER_BACKEND.get(
backendCfg.getBackendId(),
getExceptionMessage(e));
logError(message);
}
}
}