From 430d063aee2d08f8226131875ff23bc7652adc41 Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Wed, 29 Oct 2008 07:26:36 +0000
Subject: [PATCH] Modify some code to create unmodifiable collections only once in the life cycle of the descriptor objects.
---
opends/src/guitools/org/opends/guitools/controlpanel/datamodel/ControlPanelInfo.java | 69 +++++++++++++++++++++++++++-------
1 files changed, 55 insertions(+), 14 deletions(-)
diff --git a/opends/src/guitools/org/opends/guitools/controlpanel/datamodel/ControlPanelInfo.java b/opends/src/guitools/org/opends/guitools/controlpanel/datamodel/ControlPanelInfo.java
index 7c1e8f4..b395fe4 100644
--- a/opends/src/guitools/org/opends/guitools/controlpanel/datamodel/ControlPanelInfo.java
+++ b/opends/src/guitools/org/opends/guitools/controlpanel/datamodel/ControlPanelInfo.java
@@ -110,7 +110,11 @@
private static ControlPanelInfo instance;
- private ControlPanelInfo()
+ /**
+ * Default constructor.
+ *
+ */
+ protected ControlPanelInfo()
{
}
@@ -370,12 +374,55 @@
}
/**
+ * Returns an empty new server descriptor instance.
+ * @return an empty new server descriptor instance.
+ */
+ protected ServerDescriptor createNewServerDescriptorInstance()
+ {
+ return new ServerDescriptor();
+ }
+
+ /**
+ * Returns a reader that will read the configuration from a file.
+ * @return a reader that will read the configuration from a file.
+ */
+ protected ConfigFromFile createNewConfigFromFileReader()
+ {
+ return new ConfigFromFile();
+ }
+
+ /**
+ * Returns a reader that will read the configuration from a dir context.
+ * @return a reader that will read the configuration from a dir context.
+ */
+ protected ConfigFromDirContext createNewConfigFromDirContextReader()
+ {
+ return new ConfigFromDirContext();
+ }
+
+ /**
+ * Updates the contents of the server descriptor with the provider reader.
+ * @param reader the configuration reader.
+ * @param desc the server descriptor.
+ */
+ protected void updateServerDescriptor(ConfigReader reader,
+ ServerDescriptor desc)
+ {
+ desc.setExceptions(reader.getExceptions());
+ desc.setAdministrativeUsers(reader.getAdministrativeUsers());
+ desc.setBackends(reader.getBackends());
+ desc.setConnectionHandlers(reader.getConnectionHandlers());
+ desc.setAdminConnector(reader.getAdminConnector());
+ desc.setSchema(reader.getSchema());
+ desc.setSchemaEnabled(reader.isSchemaEnabled());
+ }
+ /**
* Regenerates the last found ServerDescriptor object.
*
*/
public synchronized void regenerateDescriptor()
{
- ServerDescriptor desc = new ServerDescriptor();
+ ServerDescriptor desc = createNewServerDescriptorInstance();
InitialLdapContext ctx = getDirContext();
desc.setInstallPath(Utilities.getServerRootDirectory());
boolean windowsServiceEnabled = false;
@@ -442,7 +489,7 @@
userDataCtx = null;
}
}
- reader = new ConfigFromFile();
+ reader = createNewConfigFromFileReader();
((ConfigFromFile)reader).readConfiguration();
desc.setAuthenticated(false);
}
@@ -453,12 +500,12 @@
desc.setStatus(ServerDescriptor.ServerStatus.STARTED);
if (ctx == null)
{
- reader = new ConfigFromFile();
+ reader = createNewConfigFromFileReader();
((ConfigFromFile)reader).readConfiguration();
}
else
{
- reader = new ConfigFromDirContext();
+ reader = createNewConfigFromDirContextReader();
((ConfigFromDirContext)reader).readConfiguration(ctx);
if (reader.getExceptions().size() > 0)
{
@@ -479,7 +526,7 @@
if (!connectionWorks)
{
// Try with offline info
- reader = new ConfigFromFile();
+ reader = createNewConfigFromFileReader();
((ConfigFromFile)reader).readConfiguration();
try
{
@@ -518,16 +565,10 @@
{
desc.setStatus(ServerDescriptor.ServerStatus.STOPPED);
desc.setAuthenticated(false);
- reader = new ConfigFromFile();
+ reader = createNewConfigFromFileReader();
((ConfigFromFile)reader).readConfiguration();
}
- desc.setExceptions(reader.getExceptions());
- desc.setAdministrativeUsers(reader.getAdministrativeUsers());
- desc.setBackends(reader.getBackends());
- desc.setConnectionHandlers(reader.getConnectionHandlers());
- desc.setAdminConnector(reader.getAdminConnector());
- desc.setSchema(reader.getSchema());
- desc.setSchemaEnabled(reader.isSchemaEnabled());
+ updateServerDescriptor(reader, desc);
if ((serverDesc == null) || !serverDesc.equals(desc))
{
--
Gitblit v1.10.0