From ad85b8dfd8775fa342dcf6d0deaa380be53d080f Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Mon, 20 Apr 2015 09:32:50 +0000
Subject: [PATCH] Code cleanup: Extracted methods, used ternary operator.
---
opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/BackendDescriptor.java | 2
opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/ConfigFromDirContext.java | 20 -
opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/VerifyIndexPanel.java | 79 +++----
opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/ConfigFromFile.java | 110 +++++------
opendj-server-legacy/src/main/java/org/opends/server/extensions/FileBasedKeyManagerProvider.java | 173 ++++++++++--------
opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/StatusGenericPanel.java | 58 +++--
opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/IndexDescriptor.java | 31 ++-
opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/RebuildIndexPanel.java | 59 ++----
8 files changed, 267 insertions(+), 265 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/BackendDescriptor.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/BackendDescriptor.java
index 7859642..4c22237 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/BackendDescriptor.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/BackendDescriptor.java
@@ -31,6 +31,7 @@
import java.util.TreeSet;
import org.opends.admin.ads.ADSContext;
+import org.opends.server.backends.jeb.RemoveOnceLocalDBBackendIsPluggable;
/** The class that describes the backend configuration. */
public class BackendDescriptor
@@ -52,6 +53,7 @@
/** The backend is a backup backend. */
BACKUP,
/** The backend is a local backend. */
+ @RemoveOnceLocalDBBackendIsPluggable
LOCAL_DB,
/** The backend is a LDIF backend. */
LDIF,
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/IndexDescriptor.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/IndexDescriptor.java
index 22fb8be..0a413d6 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/IndexDescriptor.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/datamodel/IndexDescriptor.java
@@ -24,9 +24,11 @@
* Copyright 2008-2010 Sun Microsystems, Inc.
* Portions Copyright 2015 ForgeRock AS
*/
-
package org.opends.guitools.controlpanel.datamodel;
+import static org.opends.server.backends.pluggable.SuffixContainer.*;
+
+import java.util.Collections;
import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;
@@ -40,7 +42,8 @@
public class IndexDescriptor extends AbstractIndexDescriptor
{
- private static final String[] DATABASE_INDEXES = new String[] {"dn2id", "id2children", "id2subtree"};
+ private static final String[] DATABASE_INDEXES = new String[] {
+ DN2ID_INDEX_NAME, ID2CHILDREN_INDEX_NAME, ID2SUBTREE_INDEX_NAME };
private final SortedSet<IndexTypeDescriptor> types = new TreeSet<IndexTypeDescriptor>();
private final boolean isDatabaseIndex;
@@ -51,6 +54,17 @@
/**
* Constructor of the index descriptor.
*
+ * @param indexName
+ * name of the index.
+ */
+ public IndexDescriptor(String indexName)
+ {
+ this(indexName, null, null, Collections.EMPTY_SET, -1);
+ }
+
+ /**
+ * Constructor of the index descriptor.
+ *
* @param name
* name of the index.
* @param attr
@@ -62,9 +76,8 @@
* @param entryLimit
* the entry limit for the index.
*/
- public IndexDescriptor(String name, AttributeType attr,
- BackendDescriptor backend,
- Set<IndexTypeDescriptor> types, int entryLimit)
+ public IndexDescriptor(
+ String name, AttributeType attr, BackendDescriptor backend, Set<IndexTypeDescriptor> types, int entryLimit)
{
super(name, backend);
this.attr = attr;
@@ -134,7 +147,6 @@
return true;
}
}
-
return false;
}
@@ -159,9 +171,9 @@
private boolean backendIdEqual(IndexDescriptor index)
{
- return getBackend() != null
- && index.getBackend() != null
- && getBackend().getBackendID().equals(index.getBackend().getBackendID());
+ BackendDescriptor backend1 = getBackend();
+ BackendDescriptor backend2 = index.getBackend();
+ return backend1 != null && backend2 != null && backend1.getBackendID().equals(backend2.getBackendID());
}
/**
@@ -188,5 +200,4 @@
}
hashCode = (getName()+sb+entryLimit).hashCode();
}
-
}
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/RebuildIndexPanel.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/RebuildIndexPanel.java
index 917d9ba..fd0534c 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/RebuildIndexPanel.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/RebuildIndexPanel.java
@@ -24,7 +24,6 @@
* Copyright 2008-2009 Sun Microsystems, Inc.
* Portions Copyright 2014-2015 ForgeRock AS
*/
-
package org.opends.guitools.controlpanel.ui;
import static org.opends.messages.AdminToolMessages.*;
@@ -33,11 +32,10 @@
import java.awt.GridBagConstraints;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
-import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.Iterator;
import java.util.LinkedHashSet;
-import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.SortedSet;
@@ -49,6 +47,7 @@
import javax.swing.ListCellRenderer;
import javax.swing.SwingUtilities;
+import org.forgerock.i18n.LocalizableMessage;
import org.opends.guitools.controlpanel.datamodel.AbstractIndexDescriptor;
import org.opends.guitools.controlpanel.datamodel.BackendDescriptor;
import org.opends.guitools.controlpanel.datamodel.CategorizedComboBoxElement;
@@ -66,7 +65,6 @@
import org.opends.guitools.controlpanel.ui.renderer.IndexCellRenderer;
import org.opends.guitools.controlpanel.util.Utilities;
import org.opends.guitools.controlpanel.util.ViewPositions;
-import org.forgerock.i18n.LocalizableMessage;
/**
* The panel that appears when the user wants to rebuild indexes.
@@ -84,12 +82,9 @@
private final Map<String, SortedSet<AbstractIndexDescriptor>> hmIndexes =
new HashMap<String, SortedSet<AbstractIndexDescriptor>>();
- /**
- * Constructor of the panel.
- */
+ /** Constructor of the panel. */
public RebuildIndexPanel()
{
- super();
createLayout();
}
@@ -203,8 +198,7 @@
@Override
public void configurationChanged(final ConfigurationChangeEvent ev)
{
- ServerDescriptor desc = ev.getNewDescriptor();
- refreshContents(desc);
+ refreshContents(ev.getNewDescriptor());
}
/**
@@ -220,17 +214,7 @@
updateBaseDNComboBoxModel((DefaultComboBoxModel) baseDNs.getModel(), desc);
- // Check that all backends
- boolean allDisabled = false;
- for (BackendDescriptor backend : desc.getBackends())
- {
- if (displayBackend(backend) && backend.isEnabled())
- {
- allDisabled = false;
- break;
- }
- }
- if (!allDisabled)
+ if (!allDisabled(desc.getBackends()))
{
updateErrorPaneAndOKButtonIfAuthRequired(desc,
isLocal() ? INFO_CTRL_PANEL_AUTHENTICATION_REQUIRED_FOR_DISABLE_BACKEND.get()
@@ -274,6 +258,18 @@
});
}
+ private boolean allDisabled(Set<BackendDescriptor> backends)
+ {
+ for (BackendDescriptor backend : backends)
+ {
+ if (displayBackend(backend) && backend.isEnabled())
+ {
+ return false;
+ }
+ }
+ return true;
+ }
+
/** {@inheritDoc} */
@Override
public void cancelClicked()
@@ -361,13 +357,8 @@
private String getSelectedBaseDN()
{
- String dn = null;
CategorizedComboBoxElement o = (CategorizedComboBoxElement) baseDNs.getSelectedItem();
- if (o != null)
- {
- dn = (String) o.getValue();
- }
- return dn;
+ return o != null ? (String) o.getValue() : null;
}
private void filterIndexes(final Map<String, SortedSet<AbstractIndexDescriptor>> hmIndexes)
@@ -375,32 +366,28 @@
// Remove the indexes that are not to be added.
for (SortedSet<AbstractIndexDescriptor> indexes : hmIndexes.values())
{
- List<AbstractIndexDescriptor> toRemove = new ArrayList<AbstractIndexDescriptor>();
- for (AbstractIndexDescriptor index : indexes)
+ for (Iterator<AbstractIndexDescriptor> it = indexes.iterator(); it.hasNext();)
{
- if (!mustBeDisplayed(index))
+ if (!mustBeDisplayed(it.next()))
{
- toRemove.add(index);
+ it.remove();
}
}
- indexes.removeAll(toRemove);
}
}
private boolean mustBeDisplayed(final AbstractIndexDescriptor index)
{
- boolean mustBeDisplayed = true;
if (index instanceof IndexDescriptor)
{
for (String name : RebuildIndexTask.INDEXES_NOT_TO_SPECIFY)
{
if (name.equalsIgnoreCase(index.getName()))
{
- mustBeDisplayed = false;
- break;
+ return false;
}
}
}
- return mustBeDisplayed;
+ return true;
}
}
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/StatusGenericPanel.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/StatusGenericPanel.java
index 4a5ba6e..cf491c1 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/StatusGenericPanel.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/StatusGenericPanel.java
@@ -59,6 +59,7 @@
import javax.naming.directory.SearchControls;
import javax.naming.directory.SearchResult;
import javax.swing.Box;
+import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.JComponent;
@@ -792,16 +793,7 @@
{
if (selectedItem == null)
{
- // Look for the first element that is not a category
- for (int i = 0; i < combo.getModel().getSize(); i++)
- {
- Object item = combo.getModel().getElementAt(i);
- if (item instanceof CategorizedComboBoxElement && !isCategory(item))
- {
- selectedItem = item;
- break;
- }
- }
+ selectedItem = firstNonCategoryItem(combo.getModel());
}
if (selectedItem != null)
{
@@ -817,6 +809,19 @@
selectedItem = o;
}
}
+
+ private Object firstNonCategoryItem(ComboBoxModel model)
+ {
+ for (int i = 0; i < model.getSize(); i++)
+ {
+ Object item = model.getElementAt(i);
+ if (item instanceof CategorizedComboBoxElement && !isCategory(item))
+ {
+ return item;
+ }
+ }
+ return null;
+ }
}
/**
@@ -1219,22 +1224,7 @@
private void updatePane(final JEditorPane pane, final LocalizableMessage title, final Font titleFont,
final LocalizableMessage details, final Font detailsFont, final PanelType type)
{
- String text;
- switch (type)
- {
- case ERROR:
- text = Utilities.getFormattedError(title, titleFont, details, detailsFont);
- break;
- case CONFIRMATION:
- text = Utilities.getFormattedConfirmation(title, titleFont, details, detailsFont);
- break;
- case WARNING:
- text = Utilities.getFormattedWarning(title, titleFont, details, detailsFont);
- break;
- default:
- text = Utilities.getFormattedSuccess(title, titleFont, details, detailsFont);
- break;
- }
+ String text = getText(type, title, titleFont, details, detailsFont);
if (!text.equals(lastDisplayedError))
{
LocalizableMessage wrappedTitle = Utilities.wrapHTML(title, 80);
@@ -1274,6 +1264,22 @@
}
}
+ private String getText(
+ PanelType type, LocalizableMessage title, Font titleFont, LocalizableMessage details, Font detailsFont)
+ {
+ switch (type)
+ {
+ case ERROR:
+ return Utilities.getFormattedError(title, titleFont, details, detailsFont);
+ case CONFIRMATION:
+ return Utilities.getFormattedConfirmation(title, titleFont, details, detailsFont);
+ case WARNING:
+ return Utilities.getFormattedWarning(title, titleFont, details, detailsFont);
+ default:
+ return Utilities.getFormattedSuccess(title, titleFont, details, detailsFont);
+ }
+ }
+
/**
* Commodity method used to update the elements of a combo box that contains
* the different user backends. If no backends are found the combo box will be
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/VerifyIndexPanel.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/VerifyIndexPanel.java
index 542bc6e..4afa638 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/VerifyIndexPanel.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/VerifyIndexPanel.java
@@ -52,6 +52,7 @@
import javax.swing.ListCellRenderer;
import javax.swing.SwingUtilities;
+import org.forgerock.i18n.LocalizableMessage;
import org.opends.guitools.controlpanel.datamodel.AbstractIndexDescriptor;
import org.opends.guitools.controlpanel.datamodel.BackendDescriptor;
import org.opends.guitools.controlpanel.datamodel.CategorizedComboBoxElement;
@@ -71,7 +72,6 @@
import org.opends.guitools.controlpanel.ui.renderer.IndexComboBoxCellRenderer;
import org.opends.guitools.controlpanel.util.Utilities;
import org.opends.guitools.controlpanel.util.ViewPositions;
-import org.forgerock.i18n.LocalizableMessage;
/**
* The panel that appears when the user wants to verify an index.
@@ -92,9 +92,7 @@
private JLabel lIndex;
private JLabel lNoBaseDNsFound;
- /**
- * Constructor of the panel.
- */
+ /** Constructor of the panel. */
public VerifyIndexPanel()
{
super();
@@ -102,6 +100,7 @@
}
/** {@inheritDoc} */
+ @Override
public void setInfo(ControlPanelInfo info)
{
super.setInfo(info);
@@ -112,12 +111,14 @@
}
/** {@inheritDoc} */
+ @Override
public void indexModified(IndexModifiedEvent ev)
{
refreshContents(getInfo().getServerDescriptor());
}
/** {@inheritDoc} */
+ @Override
public void backendIndexesModified(IndexModifiedEvent ev)
{
refreshContents(getInfo().getServerDescriptor());
@@ -146,6 +147,7 @@
baseDNs.addItemListener(listener);
baseDNs.addItemListener(new ItemListener()
{
+ @Override
public void itemStateChanged(ItemEvent ev)
{
comboBoxSelected(hmIndexes, (CategorizedComboBoxElement) baseDNs.getSelectedItem(), addRemove);
@@ -229,6 +231,7 @@
verifyIndexContents.setSelected(true);
listener = new ItemListener()
{
+ @Override
public void itemStateChanged(ItemEvent ev)
{
addRemove.setEnabled(verifyIndexContents.isSelected());
@@ -241,18 +244,21 @@
}
/** {@inheritDoc} */
+ @Override
public LocalizableMessage getTitle()
{
return INFO_CTRL_PANEL_VERIFY_INDEXES_PANEL_TITLE.get();
}
/** {@inheritDoc} */
+ @Override
public Component getPreferredFocusComponent()
{
return baseDNs;
}
/** {@inheritDoc} */
+ @Override
public void configurationChanged(ConfigurationChangeEvent ev)
{
refreshContents(ev.getNewDescriptor());
@@ -264,6 +270,7 @@
updateBaseDNComboBoxModel((DefaultComboBoxModel) baseDNs.getModel(), desc);
SwingUtilities.invokeLater(new Runnable()
{
+ @Override
public void run()
{
ViewPositions pos;
@@ -300,6 +307,7 @@
}
/** {@inheritDoc} */
+ @Override
public void cancelClicked()
{
setPrimaryValid(lBaseDN);
@@ -309,6 +317,7 @@
}
/** {@inheritDoc} */
+ @Override
public void okClicked()
{
setPrimaryValid(lBaseDN);
@@ -381,6 +390,7 @@
}
/** {@inheritDoc} */
+ @Override
protected boolean displayBackend(BackendDescriptor backend)
{
return !backend.isConfigBackend() && (backend.getType() == BackendDescriptor.Type.LOCAL_DB
@@ -389,24 +399,14 @@
private String getSelectedBaseDN()
{
- String dn = null;
CategorizedComboBoxElement o = (CategorizedComboBoxElement) baseDNs.getSelectedItem();
- if (o != null)
- {
- dn = (String) o.getValue();
- }
- return dn;
+ return o != null ? (String) o.getValue() : null;
}
private AbstractIndexDescriptor getSelectedIndex()
{
- AbstractIndexDescriptor index = null;
CategorizedComboBoxElement o = (CategorizedComboBoxElement) keyEntryIDs.getSelectedItem();
- if (o != null)
- {
- index = (AbstractIndexDescriptor) o.getValue();
- }
- return index;
+ return o != null ? (AbstractIndexDescriptor) o.getValue() : null;
}
private void updateVerifyKeyEntriesComboBox()
@@ -481,18 +481,21 @@
}
/** {@inheritDoc} */
+ @Override
public Type getType()
{
return Type.VERIFY_INDEXES;
}
/** {@inheritDoc} */
+ @Override
public LocalizableMessage getTaskDescription()
{
return INFO_CTRL_PANEL_VERIFY_INDEX_TASK_DESCRIPTION.get(baseDN);
}
/** {@inheritDoc} */
+ @Override
public boolean canLaunch(Task taskToBeLaunched, Collection<LocalizableMessage> incompatibilityReasons)
{
boolean canLaunch = true;
@@ -516,6 +519,7 @@
}
/** {@inheritDoc} */
+ @Override
public void runTask()
{
state = State.RUNNING;
@@ -523,19 +527,10 @@
try
{
List<String> arguments = getCommandLineArguments();
- String[] args = new String[arguments.size()];
+ String[] args = arguments.toArray(new String[arguments.size()]);
- arguments.toArray(args);
returnCode = executeCommandLine(getCommandLinePath(), args);
-
- if (returnCode != 0)
- {
- state = State.FINISHED_WITH_ERROR;
- }
- else
- {
- state = State.FINISHED_SUCCESSFULLY;
- }
+ state = returnCode == 0 ? State.FINISHED_SUCCESSFULLY : State.FINISHED_WITH_ERROR;
}
catch (Throwable t)
{
@@ -545,6 +540,7 @@
}
/** {@inheritDoc} */
+ @Override
protected List<String> getCommandLineArguments()
{
List<String> args = new ArrayList<String>();
@@ -558,28 +554,13 @@
for (AbstractIndexDescriptor index : model.getData())
{
args.add("--index");
- if (index instanceof VLVIndexDescriptor)
- {
- args.add(Utilities.getVLVNameInCommandLine((VLVIndexDescriptor) index));
- }
- else
- {
- args.add(index.getName());
- }
+ args.add(getName(index));
}
}
else
{
args.add("--index");
- AbstractIndexDescriptor index = getSelectedIndex();
- if (index instanceof VLVIndexDescriptor)
- {
- args.add(Utilities.getVLVNameInCommandLine((VLVIndexDescriptor) index));
- }
- else
- {
- args.add(index.getName());
- }
+ getName(getSelectedIndex());
args.add("--clean");
}
@@ -588,7 +569,17 @@
return args;
}
+ private String getName(AbstractIndexDescriptor index)
+ {
+ if (index instanceof VLVIndexDescriptor)
+ {
+ return Utilities.getVLVNameInCommandLine((VLVIndexDescriptor) index);
+ }
+ return index.getName();
+ }
+
/** {@inheritDoc} */
+ @Override
protected String getCommandLinePath()
{
return getCommandLinePath("verify-index");
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/ConfigFromDirContext.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/ConfigFromDirContext.java
index 6caa325..105ea17 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/ConfigFromDirContext.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/ConfigFromDirContext.java
@@ -27,6 +27,7 @@
package org.opends.guitools.controlpanel.util;
import static org.opends.messages.AdminToolMessages.*;
+import static org.opends.server.backends.pluggable.SuffixContainer.*;
import java.net.InetAddress;
import java.text.DateFormat;
@@ -96,7 +97,6 @@
import org.opends.server.admin.std.client.SNMPConnectionHandlerCfgClient;
import org.opends.server.admin.std.client.TaskBackendCfgClient;
import org.opends.server.backends.jeb.RemoveOnceLocalDBBackendIsPluggable;
-import org.opends.server.backends.pluggable.SuffixContainer;
import org.opends.server.config.ConfigConstants;
import org.opends.server.core.DirectoryServer;
import org.opends.server.tools.tasks.TaskEntry;
@@ -492,13 +492,10 @@
private void readBackendIndexes(final Set<IndexDescriptor> indexes, final List<OpenDsException> errors,
final PluggableBackendCfgClient db)
{
- indexes.add(new IndexDescriptor(
- SuffixContainer.DN2ID_INDEX_NAME, null, null, new TreeSet<IndexTypeDescriptor>(), -1));
+ indexes.add(new IndexDescriptor(DN2ID_INDEX_NAME));
// FIXME: Remove the two following indexes when they will be deleted
- indexes.add(new IndexDescriptor(
- SuffixContainer.ID2CHILDREN_INDEX_NAME, null, null, new TreeSet<IndexTypeDescriptor>(), -1));
- indexes.add(new IndexDescriptor(
- SuffixContainer.ID2SUBTREE_INDEX_NAME, null, null, new TreeSet<IndexTypeDescriptor>(), -1));
+ indexes.add(new IndexDescriptor(ID2CHILDREN_INDEX_NAME));
+ indexes.add(new IndexDescriptor(ID2SUBTREE_INDEX_NAME));
try
{
for (final String indexName : db.listBackendIndexes())
@@ -555,14 +552,11 @@
errors.add(oe);
}
- indexes.add(new IndexDescriptor(
- SuffixContainer.DN2ID_INDEX_NAME, null, null, new TreeSet<IndexTypeDescriptor>(), -1));
+ indexes.add(new IndexDescriptor(DN2ID_INDEX_NAME));
if (localDBBackend.isSubordinateIndexesEnabled())
{
- indexes.add(new IndexDescriptor(
- SuffixContainer.ID2CHILDREN_INDEX_NAME, null, null, new TreeSet<IndexTypeDescriptor>(), -1));
- indexes.add(new IndexDescriptor(
- SuffixContainer.ID2SUBTREE_INDEX_NAME, null, null, new TreeSet<IndexTypeDescriptor>(), -1));
+ indexes.add(new IndexDescriptor(ID2CHILDREN_INDEX_NAME));
+ indexes.add(new IndexDescriptor(ID2SUBTREE_INDEX_NAME));
}
try
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/ConfigFromFile.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/ConfigFromFile.java
index 6035e22..d54f77b 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/ConfigFromFile.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/ConfigFromFile.java
@@ -24,10 +24,10 @@
* Copyright 2008-2011 Sun Microsystems, Inc.
* Portions Copyright 2013-2015 ForgeRock AS.
*/
-
package org.opends.guitools.controlpanel.util;
import static org.opends.messages.AdminToolMessages.*;
+import static org.opends.server.backends.pluggable.SuffixContainer.*;
import java.net.InetAddress;
import java.util.ArrayList;
@@ -59,7 +59,6 @@
import org.opends.server.admin.std.server.BackendVLVIndexCfg;
import org.opends.server.admin.std.server.BackupBackendCfg;
import org.opends.server.admin.std.server.ConnectionHandlerCfg;
-import org.opends.server.admin.std.server.CryptoManagerCfg;
import org.opends.server.admin.std.server.HTTPConnectionHandlerCfg;
import org.opends.server.admin.std.server.JMXConnectionHandlerCfg;
import org.opends.server.admin.std.server.LDAPConnectionHandlerCfg;
@@ -79,7 +78,7 @@
import org.opends.server.admin.std.server.RootDNUserCfg;
import org.opends.server.admin.std.server.SNMPConnectionHandlerCfg;
import org.opends.server.admin.std.server.TaskBackendCfg;
-import org.opends.server.backends.pluggable.SuffixContainer;
+import org.opends.server.backends.jeb.RemoveOnceLocalDBBackendIsPluggable;
import org.opends.server.core.DirectoryServer;
import org.opends.server.types.DN;
import org.opends.server.types.OpenDsException;
@@ -234,46 +233,7 @@
if (backend instanceof LocalDBBackendCfg)
{
type = BackendDescriptor.Type.LOCAL_DB;
- final LocalDBBackendCfg db = (LocalDBBackendCfg) backend;
- try
- {
- for (final String indexName : db.listLocalDBIndexes())
- {
- final LocalDBIndexCfg index = db.getLocalDBIndex(indexName);
- indexes.add(new IndexDescriptor(index.getAttribute().getNameOrOID(), index.getAttribute(), null,
- IndexTypeDescriptor.fromLocalDBIndexTypes(index.getIndexType()), index.getIndexEntryLimit()));
- }
- }
- catch (final ConfigException ce)
- {
- errors.add(toConfigException(ce));
- }
- indexes.add(new IndexDescriptor(
- SuffixContainer.DN2ID_INDEX_NAME, null, null, new TreeSet<IndexTypeDescriptor>(), -1));
- if (db.isSubordinateIndexesEnabled())
- {
- indexes.add(new IndexDescriptor(
- SuffixContainer.ID2CHILDREN_INDEX_NAME, null, null, new TreeSet<IndexTypeDescriptor>(), -1));
- indexes.add(new IndexDescriptor(
- SuffixContainer.ID2SUBTREE_INDEX_NAME, null, null, new TreeSet<IndexTypeDescriptor>(), -1));
- }
-
- try
- {
- for (final String vlvIndexName : db.listLocalDBVLVIndexes())
- {
- final LocalDBVLVIndexCfg index = db.getLocalDBVLVIndex(vlvIndexName);
- final String s = index.getSortOrder();
- final List<VLVSortOrder> sortOrder = getVLVSortOrder(s);
- vlvIndexes.add(new VLVIndexDescriptor(
- index.getName(), null, index.getBaseDN(), VLVIndexDescriptor.toSearchScope(index.getScope()),
- index.getFilter(), sortOrder));
- }
- }
- catch (final ConfigException ce)
- {
- errors.add(toConfigException(ce));
- }
+ refreshLocalDBBackendConfig(errors, backend, indexes, vlvIndexes);
}
else if (backend instanceof PluggableBackendCfg)
{
@@ -335,13 +295,10 @@
private void readBackendIndexes(final Set<IndexDescriptor> indexes, final List<OpenDsException> errors,
final PluggableBackendCfg db)
{
- indexes.add(new IndexDescriptor(
- SuffixContainer.DN2ID_INDEX_NAME, null, null, new TreeSet<IndexTypeDescriptor>(), -1));
+ indexes.add(new IndexDescriptor(DN2ID_INDEX_NAME));
// FIXME: Remove the two following indexes when they will be deleted
- indexes.add(new IndexDescriptor(
- SuffixContainer.ID2CHILDREN_INDEX_NAME, null, null, new TreeSet<IndexTypeDescriptor>(), -1));
- indexes.add(new IndexDescriptor(
- SuffixContainer.ID2SUBTREE_INDEX_NAME, null, null, new TreeSet<IndexTypeDescriptor>(), -1));
+ indexes.add(new IndexDescriptor(ID2CHILDREN_INDEX_NAME));
+ indexes.add(new IndexDescriptor(ID2SUBTREE_INDEX_NAME));
try
{
for (final String indexName : db.listBackendIndexes())
@@ -378,34 +335,73 @@
}
}
- private boolean readIfReplicationIsSecure(final RootCfg root, final List<OpenDsException> errors)
+ @RemoveOnceLocalDBBackendIsPluggable
+ private void refreshLocalDBBackendConfig(final List<OpenDsException> errors, final BackendCfg backend,
+ final Set<IndexDescriptor> indexes, final Set<VLVIndexDescriptor> vlvIndexes)
{
- boolean isReplicationSecure = false;
+ final LocalDBBackendCfg db = (LocalDBBackendCfg) backend;
try
{
- final CryptoManagerCfg cryptoManager = root.getCryptoManager();
- isReplicationSecure = cryptoManager.isSSLEncryption();
+ for (final String indexName : db.listLocalDBIndexes())
+ {
+ final LocalDBIndexCfg index = db.getLocalDBIndex(indexName);
+ indexes.add(new IndexDescriptor(index.getAttribute().getNameOrOID(), index.getAttribute(), null,
+ IndexTypeDescriptor.fromLocalDBIndexTypes(index.getIndexType()), index.getIndexEntryLimit()));
+ }
}
catch (final ConfigException ce)
{
errors.add(toConfigException(ce));
}
- return isReplicationSecure;
+ indexes.add(new IndexDescriptor(DN2ID_INDEX_NAME));
+ if (db.isSubordinateIndexesEnabled())
+ {
+ indexes.add(new IndexDescriptor(ID2CHILDREN_INDEX_NAME));
+ indexes.add(new IndexDescriptor(ID2SUBTREE_INDEX_NAME));
+ }
+
+ try
+ {
+ for (final String vlvIndexName : db.listLocalDBVLVIndexes())
+ {
+ final LocalDBVLVIndexCfg index = db.getLocalDBVLVIndex(vlvIndexName);
+ final String s = index.getSortOrder();
+ final List<VLVSortOrder> sortOrder = getVLVSortOrder(s);
+ vlvIndexes.add(new VLVIndexDescriptor(index.getName(), null, index.getBaseDN(), VLVIndexDescriptor
+ .toSearchScope(index.getScope()), index.getFilter(), sortOrder));
+ }
+ }
+ catch (final ConfigException ce)
+ {
+ errors.add(toConfigException(ce));
+ }
+ }
+
+ private boolean readIfReplicationIsSecure(final RootCfg root, final List<OpenDsException> errors)
+ {
+ try
+ {
+ return root.getCryptoManager().isSSLEncryption();
+ }
+ catch (final ConfigException ce)
+ {
+ errors.add(toConfigException(ce));
+ return false;
+ }
}
private ReplicationSynchronizationProviderCfg readSyncProviderIfExists(final RootCfg root)
{
replicationPort = -1;
- ReplicationSynchronizationProviderCfg sync = null;
try
{
- sync = (ReplicationSynchronizationProviderCfg) root.getSynchronizationProvider("Multimaster Synchronization");
+ return (ReplicationSynchronizationProviderCfg) root.getSynchronizationProvider("Multimaster Synchronization");
}
catch (final ConfigException ce)
{
// Ignore this one
+ return null;
}
- return sync;
}
private void readReplicationConfig(final Set<ConnectionHandlerDescriptor> connectionHandlers,
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/extensions/FileBasedKeyManagerProvider.java b/opendj-server-legacy/src/main/java/org/opends/server/extensions/FileBasedKeyManagerProvider.java
index aa308fb..d05d9f1 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/extensions/FileBasedKeyManagerProvider.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/extensions/FileBasedKeyManagerProvider.java
@@ -103,8 +103,7 @@
public void initializeKeyManagerProvider(
FileBasedKeyManagerProviderCfg configuration)
throws ConfigException, InitializationException {
- // Store the DN of the configuration entry and register as a change
- // listener.
+ // Store the DN of the configuration entry and register as a change listener
currentConfig = configuration;
configEntryDN = configuration.dn();
configuration.addFileBasedChangeListener(this);
@@ -188,18 +187,7 @@
throw new InitializationException(message);
}
- String pinStr;
- try {
- BufferedReader br = new BufferedReader(
- new FileReader(pinFile));
- pinStr = br.readLine();
- br.close();
- } catch (IOException ioe) {
- LocalizableMessage message = ERR_FILE_KEYMANAGER_PIN_FILE_CANNOT_READ.
- get(fileName, configEntryDN, getExceptionMessage(ioe));
- throw new InitializationException(message, ioe);
- }
-
+ String pinStr = readPinFromFile(fileName, pinFile);
if (pinStr == null) {
LocalizableMessage message = ERR_FILE_KEYMANAGER_PIN_FILE_EMPTY.get(fileName, configEntryDN);
throw new InitializationException(message);
@@ -211,12 +199,28 @@
}
}
+ private String readPinFromFile(String fileName, File pinFile) throws InitializationException
+ {
+ BufferedReader br = null;
+ try
+ {
+ br = new BufferedReader(new FileReader(pinFile));
+ return br.readLine();
+ }
+ catch (IOException ioe)
+ {
+ LocalizableMessage message =
+ ERR_FILE_KEYMANAGER_PIN_FILE_CANNOT_READ.get(fileName, configEntryDN, getExceptionMessage(ioe));
+ throw new InitializationException(message, ioe);
+ }
+ finally
+ {
+ close(br);
+ }
+ }
-
- /**
- * Performs any finalization that may be necessary for this key
- * manager provider.
- */
+ /** Performs any finalization that may be necessary for this key manager provider. */
+ @Override
public void finalizeKeyManagerProvider()
{
currentConfig.removeFileBasedChangeListener(this);
@@ -234,8 +238,8 @@
* @throws DirectoryException If a problem occurs while attempting to obtain
* the set of key managers.
*/
- public KeyManager[] getKeyManagers()
- throws DirectoryException
+ @Override
+ public KeyManager[] getKeyManagers() throws DirectoryException
{
KeyStore keyStore;
try
@@ -244,8 +248,14 @@
FileInputStream inputStream =
new FileInputStream(getFileForPath(keyStoreFile));
- keyStore.load(inputStream, keyStorePIN);
- inputStream.close();
+ try
+ {
+ keyStore.load(inputStream, keyStorePIN);
+ }
+ finally
+ {
+ close(inputStream);
+ }
}
catch (Exception e)
{
@@ -259,16 +269,8 @@
try {
// Troubleshooting aid; Analyse the keystore for the presence of at least one private entry.
- boolean foundOneKeyEntry = false;
- Enumeration<String> aliases = keyStore.aliases();
- while (aliases.hasMoreElements()) {
- String alias = aliases.nextElement();
- if (keyStore.entryInstanceOf(alias, KeyStore.PrivateKeyEntry.class)) {
- foundOneKeyEntry = true;
- break;
- }
- }
- if (!foundOneKeyEntry) {
+ if (!findOneKeyEntry(keyStore))
+ {
logger.warn(INFO_NO_KEY_ENTRY_IN_KEYSTORE, keyStoreFile);
}
}
@@ -295,7 +297,19 @@
}
}
-
+ private boolean findOneKeyEntry(KeyStore keyStore) throws KeyStoreException
+ {
+ Enumeration<String> aliases = keyStore.aliases();
+ while (aliases.hasMoreElements())
+ {
+ String alias = aliases.nextElement();
+ if (keyStore.entryInstanceOf(alias, KeyStore.PrivateKeyEntry.class))
+ {
+ return true;
+ }
+ }
+ return false;
+ }
/** {@inheritDoc} */
@Override
@@ -309,11 +323,12 @@
/** {@inheritDoc} */
+ @Override
public boolean isConfigurationChangeAcceptable(
FileBasedKeyManagerProviderCfg configuration,
List<LocalizableMessage> unacceptableReasons)
{
- boolean configAcceptable = true;
+ int startSize = unacceptableReasons.size();
DN cfgEntryDN = configuration.dn();
@@ -325,7 +340,6 @@
if (!f.exists() || !f.isFile())
{
unacceptableReasons.add(ERR_FILE_KEYMANAGER_NO_SUCH_FILE.get(newKeyStoreFile, cfgEntryDN));
- configAcceptable = false;
}
}
catch (Exception e)
@@ -333,7 +347,6 @@
logger.traceException(e);
unacceptableReasons.add(ERR_FILE_KEYMANAGER_CANNOT_DETERMINE_FILE.get(cfgEntryDN, getExceptionMessage(e)));
- configAcceptable = false;
}
// Get the keystore type. If none is specified, then use the default type.
@@ -349,7 +362,6 @@
unacceptableReasons.add(ERR_FILE_KEYMANAGER_INVALID_TYPE.get(
configuration.getKeyStoreType(), cfgEntryDN, getExceptionMessage(kse)));
- configAcceptable = false;
}
}
@@ -373,7 +385,6 @@
if (pinStr == null)
{
unacceptableReasons.add(ERR_FILE_KEYMANAGER_PIN_PROPERTY_NOT_SET.get(propertyName, cfgEntryDN));
- configAcceptable = false;
}
}
else if (configuration.getKeyStorePinEnvironmentVariable() != null)
@@ -384,7 +395,6 @@
if (pinStr == null)
{
unacceptableReasons.add(ERR_FILE_KEYMANAGER_PIN_ENVAR_NOT_SET.get(enVarName, cfgEntryDN));
- configAcceptable = false;
}
}
else if (configuration.getKeyStorePinFile() != null)
@@ -395,31 +405,13 @@
if (!pinFile.exists())
{
unacceptableReasons.add(ERR_FILE_KEYMANAGER_PIN_NO_SUCH_FILE.get(fileName, cfgEntryDN));
- configAcceptable = false;
}
else
{
- String pinStr = null;
- BufferedReader br = null;
- try {
- br = new BufferedReader(new FileReader(pinFile));
- pinStr = br.readLine();
- }
- catch (IOException ioe)
- {
- unacceptableReasons.add(ERR_FILE_KEYMANAGER_PIN_FILE_CANNOT_READ.get(
- fileName, cfgEntryDN, getExceptionMessage(ioe)));
- configAcceptable = false;
- }
- finally
- {
- close(br);
- }
-
+ String pinStr = readPinFromFile(pinFile, fileName, cfgEntryDN, unacceptableReasons);
if (pinStr == null)
{
unacceptableReasons.add(ERR_FILE_KEYMANAGER_PIN_FILE_EMPTY.get(fileName, cfgEntryDN));
- configAcceptable = false;
}
}
}
@@ -429,16 +421,35 @@
if (pinStr == null)
{
unacceptableReasons.add(ERR_FILE_KEYMANAGER_CANNOT_DETERMINE_PIN_FROM_ATTR.get(cfgEntryDN, null));
- configAcceptable = false;
}
}
- return configAcceptable;
+ return startSize != unacceptableReasons.size();
}
-
+ private String readPinFromFile(File pinFile, String fileName, DN cfgEntryDN,
+ List<LocalizableMessage> unacceptableReasons)
+ {
+ BufferedReader br = null;
+ try
+ {
+ br = new BufferedReader(new FileReader(pinFile));
+ return br.readLine();
+ }
+ catch (IOException ioe)
+ {
+ unacceptableReasons.add(
+ ERR_FILE_KEYMANAGER_PIN_FILE_CANNOT_READ.get(fileName, cfgEntryDN, getExceptionMessage(ioe)));
+ return null;
+ }
+ finally
+ {
+ close(br);
+ }
+ }
/** {@inheritDoc} */
+ @Override
public ConfigChangeResult applyConfigurationChange(
FileBasedKeyManagerProviderCfg configuration)
{
@@ -540,23 +551,7 @@
}
else
{
- String pinStr = null;
- BufferedReader br = null;
- try {
- br = new BufferedReader(new FileReader(pinFile));
- pinStr = br.readLine();
- }
- catch (IOException ioe)
- {
- ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
- ccr.addMessage(ERR_FILE_KEYMANAGER_PIN_FILE_CANNOT_READ.get(
- fileName, configEntryDN, getExceptionMessage(ioe)));
- }
- finally
- {
- close(br);
- }
-
+ String pinStr = readPinFromFile(pinFile, fileName, ccr);
if (pinStr == null)
{
ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
@@ -583,4 +578,24 @@
return ccr;
}
+
+ private String readPinFromFile(File pinFile, String fileName, ConfigChangeResult ccr)
+ {
+ BufferedReader br = null;
+ try
+ {
+ br = new BufferedReader(new FileReader(pinFile));
+ return br.readLine();
+ }
+ catch (IOException ioe)
+ {
+ ccr.setResultCode(DirectoryServer.getServerErrorResultCode());
+ ccr.addMessage(ERR_FILE_KEYMANAGER_PIN_FILE_CANNOT_READ.get(fileName, configEntryDN, getExceptionMessage(ioe)));
+ return null;
+ }
+ finally
+ {
+ close(br);
+ }
+ }
}
--
Gitblit v1.10.0