From bf85aea6668a38b731d0ed9bcbd35cffd32bc993 Mon Sep 17 00:00:00 2001
From: Gaetan Boismal <gaetan.boismal@forgerock.com>
Date: Thu, 02 Apr 2015 15:07:50 +0000
Subject: [PATCH] OPENDJ-1714 Code cleanup
---
opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/tools/BackendToolUtils.java | 308 ++++++++++++++++++++++++++------------------------
1 files changed, 161 insertions(+), 147 deletions(-)
diff --git a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/tools/BackendToolUtils.java b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/tools/BackendToolUtils.java
index 19b43d2..792f4ec 100644
--- a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/tools/BackendToolUtils.java
+++ b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/tools/BackendToolUtils.java
@@ -56,6 +56,9 @@
private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
+ private static final int ERROR = 1;
+ private static final int SUCCESS = 0;
+
/**
* Retrieves information about the backends defined in the Directory Server
* configuration.
@@ -71,171 +74,182 @@
* placed.
* @return 0 if everything went fine. 1 if an error occurred.
*/
- @SuppressWarnings("unchecked")
- public static int getBackends(ArrayList<Backend> backendList,
- ArrayList<BackendCfg> entryList, ArrayList<List<DN>> dnList)
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ public static int getBackends(final ArrayList<Backend> backendList, final ArrayList<BackendCfg> entryList,
+ final ArrayList<List<DN>> dnList)
{
- // Get the base entry for all backend configuration.
- DN backendBaseDN;
try
{
- backendBaseDN = DN.valueOf(DN_BACKEND_BASE);
- }
- catch (DirectoryException de)
- {
- logger.error(ERR_CANNOT_DECODE_BACKEND_BASE_DN, DN_BACKEND_BASE, de
- .getMessageObject());
- return 1;
- }
- catch (Exception e)
- {
- logger.error(ERR_CANNOT_DECODE_BACKEND_BASE_DN, DN_BACKEND_BASE,
- getExceptionMessage(e));
- return 1;
- }
+ final DN backendBaseDN = getBackendBaseDN();
+ final ConfigEntry baseEntry = getBaseEntry(backendBaseDN);
- ConfigEntry baseEntry;
- try
- {
- baseEntry = DirectoryServer.getConfigEntry(backendBaseDN);
- }
- catch (ConfigException ce)
- {
- logger.error(ERR_CANNOT_RETRIEVE_BACKEND_BASE_ENTRY, DN_BACKEND_BASE, ce
- .getMessage());
- return 1;
- }
- catch (Exception e)
- {
- logger.error(ERR_CANNOT_RETRIEVE_BACKEND_BASE_ENTRY, DN_BACKEND_BASE,
- getExceptionMessage(e));
- return 1;
- }
-
- // Iterate through the immediate children, attempting to parse them as
- // backends.
- RootCfg root = ServerManagementContext.getInstance().getRootConfiguration();
- for (ConfigEntry configEntry : baseEntry.getChildren().values())
- {
- // Get the backend ID attribute from the entry. If there isn't one, then
- // skip the entry.
- String backendID;
- try
+ // Iterate through the immediate children, attempting to parse them as backends.
+ final RootCfg root = ServerManagementContext.getInstance().getRootConfiguration();
+ for (final ConfigEntry configEntry : baseEntry.getChildren().values())
{
- StringConfigAttribute idStub =
- new StringConfigAttribute(ATTR_BACKEND_ID,
- INFO_CONFIG_BACKEND_ATTR_DESCRIPTION_BACKEND_ID.get(), true,
- false, true);
- StringConfigAttribute idAttr =
- (StringConfigAttribute) configEntry.getConfigAttribute(idStub);
- if (idAttr == null)
+ final String backendID = getBackendID(configEntry);
+ if (backendID == null)
{
continue;
}
- else
- {
- backendID = idAttr.activeValue();
- }
- }
- catch (org.opends.server.config.ConfigException ce)
- {
- logger.error(ERR_CANNOT_DETERMINE_BACKEND_ID, configEntry.getDN(), ce.getMessage());
- return 1;
- }
- catch (Exception e)
- {
- logger.error(ERR_CANNOT_DETERMINE_BACKEND_ID, configEntry.getDN(), getExceptionMessage(e));
- return 1;
- }
- // Get the backend class name attribute from the entry. If there isn't
- // one, then just skip the entry.
- String backendClassName;
- try
- {
- StringConfigAttribute classStub =
- new StringConfigAttribute(ATTR_BACKEND_CLASS,
- INFO_CONFIG_BACKEND_ATTR_DESCRIPTION_CLASS.get(), true, false,
- false);
- StringConfigAttribute classAttr =
- (StringConfigAttribute) configEntry.getConfigAttribute(classStub);
- if (classAttr == null)
+ final String backendClassName = getBackendClassName(configEntry);
+ if (backendClassName == null)
{
continue;
}
- else
+
+ final Class<?> backendClass = getBackendClass(backendClassName, configEntry);
+ final Backend backend;
+ final BackendCfg cfg;
+ try
{
- backendClassName = classAttr.activeValue();
+ backend = (Backend) backendClass.newInstance();
+ backend.setBackendID(backendID);
+ cfg = root.getBackend(backendID);
+ backend.configureBackend(cfg, DirectoryServer.getInstance().getServerContext());
}
- }
- catch (org.opends.server.config.ConfigException ce)
- {
- logger.error(ERR_CANNOT_DETERMINE_BACKEND_CLASS, configEntry.getDN(), ce.getMessage());
- return 1;
- }
- catch (Exception e)
- {
- logger.error(ERR_CANNOT_DETERMINE_BACKEND_CLASS, configEntry.getDN(), getExceptionMessage(e));
- return 1;
- }
-
- Class backendClass;
- try
- {
- backendClass = Class.forName(backendClassName);
- }
- catch (Exception e)
- {
- logger.error(ERR_CANNOT_LOAD_BACKEND_CLASS, backendClassName, configEntry.getDN(), getExceptionMessage(e));
- return 1;
- }
-
- Backend backend;
- BackendCfg cfg;
- try
- {
- backend = (Backend) backendClass.newInstance();
- backend.setBackendID(backendID);
- cfg = root.getBackend(backendID);
- backend.configureBackend(cfg, DirectoryServer.getInstance().getServerContext());
- }
- catch (Exception e)
- {
- logger.error(ERR_CANNOT_INSTANTIATE_BACKEND_CLASS,
- backendClassName, configEntry.getDN(), getExceptionMessage(e));
- return 1;
- }
-
- // Get the base DN attribute from the entry. If there isn't one, then
- // just skip this entry.
- List<DN> baseDNs = null;
- try
- {
- DNConfigAttribute baseDNStub =
- new DNConfigAttribute(ATTR_BACKEND_BASE_DN,
- INFO_CONFIG_BACKEND_ATTR_DESCRIPTION_BASE_DNS.get(), true,
- true, true);
- DNConfigAttribute baseDNAttr =
- (DNConfigAttribute) configEntry.getConfigAttribute(baseDNStub);
- if (baseDNAttr == null)
+ catch (final Exception e)
{
- logger.error(ERR_NO_BASES_FOR_BACKEND, configEntry.getDN());
+ logger.error(
+ ERR_CANNOT_INSTANTIATE_BACKEND_CLASS, backendClassName, configEntry.getDN(), getExceptionMessage(e));
+ return ERROR;
}
- else
- {
- baseDNs = baseDNAttr.activeValues();
- }
- }
- catch (Exception e)
- {
- logger.error(ERR_CANNOT_DETERMINE_BASES_FOR_BACKEND, configEntry.getDN(), getExceptionMessage(e));
- return 1;
+
+ backendList.add(backend);
+ entryList.add(cfg);
+ dnList.add(getBaseDNsForEntry(configEntry));
}
- backendList.add(backend);
- entryList.add(cfg);
- dnList.add(baseDNs);
+ return SUCCESS;
}
- return 0;
+ catch (final Exception e)
+ {
+ // Error message has already been logged.
+ return ERROR;
+ }
}
+
+ private static List<DN> getBaseDNsForEntry(final ConfigEntry configEntry) throws Exception
+ {
+ try
+ {
+ final DNConfigAttribute baseDNStub = new DNConfigAttribute(
+ ATTR_BACKEND_BASE_DN, INFO_CONFIG_BACKEND_ATTR_DESCRIPTION_BASE_DNS.get(), true, true, true);
+ final DNConfigAttribute baseDNAttr = (DNConfigAttribute) configEntry.getConfigAttribute(baseDNStub);
+ if (baseDNAttr == null)
+ {
+ logger.error(ERR_NO_BASES_FOR_BACKEND, configEntry.getDN());
+ }
+ else
+ {
+ return baseDNAttr.activeValues();
+ }
+ }
+ catch (final Exception e)
+ {
+ logger.error(ERR_CANNOT_DETERMINE_BASES_FOR_BACKEND, configEntry.getDN(), getExceptionMessage(e));
+ throw e;
+ }
+
+ return null;
+ }
+
+ private static Class<?> getBackendClass(String backendClassName, ConfigEntry configEntry) throws Exception
+ {
+ try
+ {
+ return Class.forName(backendClassName);
+ }
+ catch (final Exception e)
+ {
+ logger.error(ERR_CANNOT_LOAD_BACKEND_CLASS, backendClassName, configEntry.getDN(), getExceptionMessage(e));
+ throw e;
+ }
+ }
+
+ private static String getBackendClassName(final ConfigEntry configEntry) throws Exception
+ {
+ try
+ {
+ final StringConfigAttribute classStub = new StringConfigAttribute(
+ ATTR_BACKEND_CLASS, INFO_CONFIG_BACKEND_ATTR_DESCRIPTION_CLASS.get(), true, false, false);
+ final StringConfigAttribute classAttr = (StringConfigAttribute) configEntry.getConfigAttribute(classStub);
+ if (classAttr == null)
+ {
+ return null;
+ }
+
+ return classAttr != null ? classAttr.activeValue() : null;
+ }
+ catch (final org.opends.server.config.ConfigException ce)
+ {
+ logger.error(ERR_CANNOT_DETERMINE_BACKEND_CLASS, configEntry.getDN(), ce.getMessage());
+ throw ce;
+ }
+ catch (final Exception e)
+ {
+ logger.error(ERR_CANNOT_DETERMINE_BACKEND_CLASS, configEntry.getDN(), getExceptionMessage(e));
+ throw e;
+ }
+ }
+
+ private static String getBackendID(final ConfigEntry configEntry) throws Exception
+ {
+ try
+ {
+ final StringConfigAttribute idStub = new StringConfigAttribute(
+ ATTR_BACKEND_ID, INFO_CONFIG_BACKEND_ATTR_DESCRIPTION_BACKEND_ID.get(), true, false, true);
+ final StringConfigAttribute idAttr = (StringConfigAttribute) configEntry.getConfigAttribute(idStub);
+
+ return idAttr != null ? idAttr.activeValue() : null;
+ }
+ catch (final org.opends.server.config.ConfigException ce)
+ {
+ logger.error(ERR_CANNOT_DETERMINE_BACKEND_ID, configEntry.getDN(), ce.getMessage());
+ throw ce;
+ }
+ catch (final Exception e)
+ {
+ logger.error(ERR_CANNOT_DETERMINE_BACKEND_ID, configEntry.getDN(), getExceptionMessage(e));
+ throw e;
+ }
+ }
+
+ private static ConfigEntry getBaseEntry(final DN backendBaseDN) throws Exception
+ {
+ try
+ {
+ return DirectoryServer.getConfigEntry(backendBaseDN);
+ }
+ catch (final ConfigException ce)
+ {
+ logger.error(ERR_CANNOT_RETRIEVE_BACKEND_BASE_ENTRY, DN_BACKEND_BASE, ce.getMessage());
+ throw ce;
+ }
+ catch (final Exception e)
+ {
+ logger.error(ERR_CANNOT_RETRIEVE_BACKEND_BASE_ENTRY, DN_BACKEND_BASE, getExceptionMessage(e));
+ throw e;
+ }
+ }
+
+ private static DN getBackendBaseDN() throws Exception
+ {
+ try
+ {
+ return DN.valueOf(DN_BACKEND_BASE);
+ }
+ catch (final DirectoryException de)
+ {
+ logger.error(ERR_CANNOT_DECODE_BACKEND_BASE_DN, DN_BACKEND_BASE, de.getMessageObject());
+ throw de;
+ }
+ catch (final Exception e)
+ {
+ logger.error(ERR_CANNOT_DECODE_BACKEND_BASE_DN, DN_BACKEND_BASE, getExceptionMessage(e));
+ throw e;
+ }
+ }
+
}
--
Gitblit v1.10.0