From 0b0742f452203513cd222c02f4ad82c096e00940 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Wed, 14 Jan 2015 20:46:12 +0000
Subject: [PATCH] Code cleanup
---
opendj3-server-dev/src/server/org/opends/server/tools/RebuildIndex.java | 285 ++++++++++++++++++++++++---------------------------------
1 files changed, 120 insertions(+), 165 deletions(-)
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/RebuildIndex.java b/opendj3-server-dev/src/server/org/opends/server/tools/RebuildIndex.java
index 79df295..c6edd8c 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/RebuildIndex.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/RebuildIndex.java
@@ -26,46 +26,11 @@
*/
package org.opends.server.tools;
-import org.forgerock.i18n.LocalizableMessage;
-import org.forgerock.i18n.slf4j.LocalizedLogger;
+import static com.forgerock.opendj.cli.Utils.*;
import static org.opends.messages.ToolMessages.*;
import static org.opends.server.config.ConfigConstants.*;
-import static org.opends.server.util.ServerConstants.*;
import static org.opends.server.util.StaticUtils.*;
-import static com.forgerock.opendj.cli.Utils.wrapText;
-import static com.forgerock.opendj.cli.Utils.filterExitCode;
-
-import org.opends.server.util.BuildVersion;
-import org.opends.server.util.StaticUtils;
-
-import com.forgerock.opendj.cli.ArgumentException;
-import com.forgerock.opendj.cli.BooleanArgument;
-import com.forgerock.opendj.cli.CommonArguments;
-import com.forgerock.opendj.cli.StringArgument;
-
-import org.opends.server.util.args.LDAPConnectionArgumentParser;
-import org.opends.server.extensions.ConfigFileHandler;
-import org.forgerock.opendj.config.server.ConfigException;
-import org.opends.server.loggers.DebugLogger;
-import org.opends.server.loggers.ErrorLogPublisher;
-import org.opends.server.loggers.JDKLogging;
-import org.opends.server.loggers.TextWriter;
-import org.opends.server.loggers.ErrorLogger;
-import org.opends.server.loggers.TextErrorLogPublisher;
-import org.opends.server.protocols.ldap.LDAPAttribute;
-import org.opends.server.core.DirectoryServer;
-import org.opends.server.core.CoreConfigManager;
-import org.opends.server.core.LockFileManager;
-import org.opends.server.tasks.RebuildTask;
-import org.opends.server.tools.tasks.TaskTool;
-import org.opends.server.types.*;
-import org.forgerock.opendj.ldap.ByteString;
-import org.opends.server.api.Backend;
-import org.opends.server.backends.RebuildConfig;
-import org.opends.server.backends.RebuildConfig.RebuildMode;
-import org.opends.server.backends.jeb.BackendImpl;
-import org.opends.server.admin.std.server.BackendCfg;
import java.io.OutputStream;
import java.io.PrintStream;
@@ -73,6 +38,42 @@
import java.util.List;
import java.util.logging.Level;
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.LocalizableMessageDescriptor.Arg1;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.opendj.config.server.ConfigException;
+import org.forgerock.opendj.ldap.ByteString;
+import org.opends.server.admin.std.server.BackendCfg;
+import org.opends.server.api.Backend;
+import org.opends.server.backends.RebuildConfig;
+import org.opends.server.backends.RebuildConfig.RebuildMode;
+import org.opends.server.backends.jeb.BackendImpl;
+import org.opends.server.core.CoreConfigManager;
+import org.opends.server.core.DirectoryServer;
+import org.opends.server.core.LockFileManager;
+import org.opends.server.extensions.ConfigFileHandler;
+import org.opends.server.loggers.DebugLogger;
+import org.opends.server.loggers.ErrorLogPublisher;
+import org.opends.server.loggers.ErrorLogger;
+import org.opends.server.loggers.JDKLogging;
+import org.opends.server.loggers.TextErrorLogPublisher;
+import org.opends.server.loggers.TextWriter;
+import org.opends.server.protocols.ldap.LDAPAttribute;
+import org.opends.server.tasks.RebuildTask;
+import org.opends.server.tools.tasks.TaskTool;
+import org.opends.server.types.DN;
+import org.opends.server.types.InitializationException;
+import org.opends.server.types.NullOutputStream;
+import org.opends.server.types.RawAttribute;
+import org.opends.server.util.BuildVersion;
+import org.opends.server.util.StaticUtils;
+import org.opends.server.util.args.LDAPConnectionArgumentParser;
+
+import com.forgerock.opendj.cli.ArgumentException;
+import com.forgerock.opendj.cli.BooleanArgument;
+import com.forgerock.opendj.cli.CommonArguments;
+import com.forgerock.opendj.cli.StringArgument;
+
/**
* This program provides a utility to rebuild the contents of the indexes of a
* Directory Server backend. This will be a process that is intended to run
@@ -84,23 +85,21 @@
private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
- private StringArgument configClass = null;
- private StringArgument configFile = null;
- private StringArgument baseDNString = null;
- private StringArgument indexList = null;
- private StringArgument tmpDirectory = null;
- private BooleanArgument rebuildAll = null;
- private BooleanArgument rebuildDegraded = null;
- private BooleanArgument clearDegradedState = null;
+ private StringArgument configClass;
+ private StringArgument configFile;
+ private StringArgument baseDNString;
+ private StringArgument indexList;
+ private StringArgument tmpDirectory;
+ private BooleanArgument rebuildAll;
+ private BooleanArgument rebuildDegraded;
+ private BooleanArgument clearDegradedState;
private final LDAPConnectionArgumentParser argParser = createArgParser(
"org.opends.server.tools.RebuildIndex",
INFO_REBUILDINDEX_TOOL_DESCRIPTION.get());
private RebuildConfig rebuildConfig = new RebuildConfig();
- private Backend currentBackend = null;
-
-
+ private Backend<?> currentBackend;
/**
* Processes the command-line arguments and invokes the rebuild process.
@@ -112,7 +111,6 @@
{
final int retCode =
mainRebuildIndex(args, true, System.out, System.err);
-
if (retCode != 0)
{
System.exit(filterExitCode(retCode));
@@ -324,9 +322,7 @@
argParser.setUsageArgument(displayUsage);
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
@Override
protected int processLocal(final boolean initializeServer,
final PrintStream out, final PrintStream err)
@@ -461,16 +457,7 @@
}
catch (Exception ex)
{
- LocalizableMessage message = null;
- if (ex instanceof InitializationException)
- {
- message = ERR_CANNOT_LOAD_CONFIG.get(ex.getMessage());
- }
- else
- {
- message = ERR_CANNOT_LOAD_CONFIG.get(getExceptionMessage(ex));
- }
- err.println(wrapText(message, MAX_LINE_WIDTH));
+ err.println(toErrorMsg(ERR_CANNOT_LOAD_CONFIG, ex));
return 1;
}
@@ -481,16 +468,7 @@
}
catch (Exception e)
{
- LocalizableMessage message = null;
- if (e instanceof ConfigException || e instanceof InitializationException)
- {
- message = ERR_CANNOT_LOAD_SCHEMA.get(e.getMessage());
- }
- else
- {
- message = ERR_CANNOT_LOAD_SCHEMA.get(getExceptionMessage(e));
- }
- err.println(wrapText(message, MAX_LINE_WIDTH));
+ err.println(toErrorMsg(ERR_CANNOT_LOAD_SCHEMA, e));
return 1;
}
@@ -502,18 +480,7 @@
}
catch (Exception ex)
{
- LocalizableMessage message = null;
- if (ex instanceof ConfigException
- || ex instanceof InitializationException)
- {
- message = ERR_CANNOT_INITIALIZE_CORE_CONFIG.get(ex.getMessage());
- }
- else
- {
- message =
- ERR_CANNOT_INITIALIZE_CORE_CONFIG.get(getExceptionMessage(ex));
- }
- err.println(wrapText(message, MAX_LINE_WIDTH));
+ err.println(toErrorMsg(ERR_CANNOT_INITIALIZE_CORE_CONFIG, ex));
return 1;
}
@@ -524,24 +491,28 @@
}
catch (Exception ex)
{
- LocalizableMessage message = null;
- if (ex instanceof ConfigException
- || ex instanceof InitializationException)
- {
- message = ERR_CANNOT_INITIALIZE_CRYPTO_MANAGER.get(ex.getMessage());
- }
- else
- {
- message =
- ERR_CANNOT_INITIALIZE_CRYPTO_MANAGER.get(getExceptionMessage(ex));
- }
- err.println(wrapText(message, MAX_LINE_WIDTH));
+ err.println(toErrorMsg(ERR_CANNOT_INITIALIZE_CRYPTO_MANAGER, ex));
return 1;
}
return 0;
}
+ private String toErrorMsg(Arg1<Object> errorMsg, Exception ex)
+ {
+ final LocalizableMessage message = getErrorMsg(ex, errorMsg);
+ return wrapText(message, MAX_LINE_WIDTH);
+ }
+
+ private LocalizableMessage getErrorMsg(Exception ex, Arg1<Object> errorMsg)
+ {
+ if (ex instanceof ConfigException || ex instanceof InitializationException)
+ {
+ return errorMsg.get(ex.getMessage());
+ }
+ return errorMsg.get(getExceptionMessage(ex));
+ }
+
/**
* Initializes and sets the rebuild index configuration.
*
@@ -590,11 +561,8 @@
* process.
* @return An integer representing the result of the process.
*/
- private int rebuildIndex(final Backend backend,
- final RebuildConfig rebuildConfig)
+ private int rebuildIndex(final Backend<?> backend, final RebuildConfig rebuildConfig)
{
- int returnCode = 0;
-
// Acquire an exclusive lock for the backend.
//TODO: Find a way to do this with the server online.
try
@@ -614,6 +582,7 @@
return 1;
}
+ int returnCode = 0;
try
{
final BackendImpl jebBackend = (BackendImpl) backend;
@@ -662,11 +631,9 @@
* @throws Exception
* If an exception occurred during the backend search.
*/
- private Backend retrieveBackend(final DN selectedDN) throws ConfigException,
- Exception
+ private Backend<?> retrieveBackend(final DN selectedDN) throws ConfigException, Exception
{
- Backend backend = null;
- DN[] baseDNArray;
+ Backend<?> backend = null;
final ArrayList<Backend> backendList = new ArrayList<Backend>();
final ArrayList<BackendCfg> entryList = new ArrayList<BackendCfg>();
@@ -676,25 +643,18 @@
final int numBackends = backendList.size();
for (int i = 0; i < numBackends; i++)
{
- final Backend b = backendList.get(i);
+ final Backend<?> b = backendList.get(i);
final List<DN> baseDNs = dnList.get(i);
for (final DN baseDN : baseDNs)
{
if (baseDN.equals(selectedDN))
{
- if (backend == null)
+ if (backend != null)
{
- backend = b;
- baseDNArray = new DN[baseDNs.size()];
- baseDNs.toArray(baseDNArray);
+ throw new ConfigException(ERR_MULTIPLE_BACKENDS_FOR_BASE.get(baseDNString.getValue()));
}
- else
- {
- final LocalizableMessage message =
- ERR_MULTIPLE_BACKENDS_FOR_BASE.get(baseDNString.getValue());
- throw new ConfigException(message);
- }
+ backend = b;
break;
}
}
@@ -702,15 +662,12 @@
if (backend == null)
{
- final LocalizableMessage message =
- ERR_NO_BACKENDS_FOR_BASE.get(baseDNString.getValue());
- throw new ConfigException(message);
+ throw new ConfigException(ERR_NO_BACKENDS_FOR_BASE.get(baseDNString.getValue()));
}
if (!(backend instanceof BackendImpl))
{
- final LocalizableMessage message = ERR_BACKEND_NO_INDEXING_SUPPORT.get();
- throw new ConfigException(message);
+ throw new ConfigException(ERR_BACKEND_NO_INDEXING_SUPPORT.get());
}
return backend;
}
@@ -795,85 +752,83 @@
return 0;
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
+ @Override
public String getTaskId()
{
// NYI.
return null;
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
+ @Override
public void addTaskAttributes(List<RawAttribute> attributes)
{
- //
// Required attributes
- //
- ArrayList<ByteString> values;
-
- final String baseDN = baseDNString.getValue();
- values = new ArrayList<ByteString>(1);
- values.add(ByteString.valueOf(baseDN));
- attributes.add(new LDAPAttribute(ATTR_REBUILD_BASE_DN, values));
+ addLdapAttribute(attributes, ATTR_REBUILD_BASE_DN, baseDNString.getValue());
final List<String> indexes = indexList.getValues();
- values = new ArrayList<ByteString>(indexes.size());
+ final ArrayList<ByteString> values = new ArrayList<ByteString>(indexes.size());
for (final String s : indexes)
{
values.add(ByteString.valueOf(s));
}
attributes.add(new LDAPAttribute(ATTR_REBUILD_INDEX, values));
- if (tmpDirectory.getValue() != null
- && !tmpDirectory.getValue().equals(tmpDirectory.getDefaultValue()))
+ if (hasNonDefaultValue(tmpDirectory))
{
- values = new ArrayList<ByteString>(1);
- values.add(ByteString.valueOf(tmpDirectory.getValue()));
- attributes.add(new LDAPAttribute(ATTR_REBUILD_TMP_DIRECTORY, values));
+ addLdapAttribute(attributes, ATTR_REBUILD_TMP_DIRECTORY, tmpDirectory.getValue());
}
- if (rebuildAll.getValue() != null
- && !rebuildAll.getValue().equals(rebuildAll.getDefaultValue()))
+ if (hasNonDefaultValue(rebuildAll))
{
- values = new ArrayList<ByteString>(1);
- values.add(ByteString.valueOf(REBUILD_ALL));
- attributes.add(new LDAPAttribute(ATTR_REBUILD_INDEX, values));
+ addLdapAttribute(attributes, ATTR_REBUILD_INDEX, REBUILD_ALL);
}
- if (rebuildDegraded.getValue() != null
- && !rebuildDegraded.getValue()
- .equals(rebuildDegraded.getDefaultValue()))
+ if (hasNonDefaultValue(rebuildDegraded))
{
- values = new ArrayList<ByteString>(1);
- values.add(ByteString.valueOf(REBUILD_DEGRADED));
- attributes.add(new LDAPAttribute(ATTR_REBUILD_INDEX, values));
+ addLdapAttribute(attributes, ATTR_REBUILD_INDEX, REBUILD_DEGRADED);
}
- if (clearDegradedState.getValue() != null
- && !clearDegradedState.getValue().equals(
- clearDegradedState.getDefaultValue()))
+ if (hasNonDefaultValue(clearDegradedState))
{
- values = new ArrayList<ByteString>(1);
- values.add(ByteString.valueOf("true"));
- attributes.add(new LDAPAttribute(ATTR_REBUILD_INDEX_CLEARDEGRADEDSTATE,
- values));
+ addLdapAttribute(attributes, ATTR_REBUILD_INDEX_CLEARDEGRADEDSTATE, "true");
}
}
- /**
- * {@inheritDoc}
- */
+ private void addLdapAttribute(List<RawAttribute> attributes, String attrType, String attrValue)
+ {
+ attributes.add(new LDAPAttribute(attrType, toByteStrings(attrValue)));
+ }
+
+ private boolean hasNonDefaultValue(BooleanArgument arg)
+ {
+ return arg.getValue() != null
+ && !arg.getValue().equals(arg.getDefaultValue());
+ }
+
+ private boolean hasNonDefaultValue(StringArgument arg)
+ {
+ return arg.getValue() != null
+ && !arg.getValue().equals(arg.getDefaultValue());
+ }
+
+ private ArrayList<ByteString> toByteStrings(String value)
+ {
+ final ArrayList<ByteString> values = new ArrayList<ByteString>(1);
+ values.add(ByteString.valueOf(value));
+ return values;
+ }
+
+ /** {@inheritDoc} */
+ @Override
public String getTaskObjectclass()
{
return "ds-task-rebuild";
}
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
+ @Override
public Class<?> getTaskClass()
{
return RebuildTask.class;
@@ -905,7 +860,7 @@
*
* @return The current backend.
*/
- public Backend getCurrentBackend()
+ public Backend<?> getCurrentBackend()
{
return currentBackend;
}
@@ -916,7 +871,7 @@
* @param currentBackend
* The current backend to set.
*/
- public void setCurrentBackend(Backend currentBackend)
+ public void setCurrentBackend(Backend<?> currentBackend)
{
this.currentBackend = currentBackend;
}
--
Gitblit v1.10.0