From 5d1a7f43aa3104bd4047839897a65066c555f7a9 Mon Sep 17 00:00:00 2001
From: Nicolas Capponi <nicolas.capponi@forgerock.com>
Date: Thu, 13 Feb 2014 13:00:25 +0000
Subject: [PATCH] Checkpoint commit for OPENDJ-1288 : Migrate I18n and logging support to i18n framework and SLF4J
---
opendj3-server-dev/src/server/org/opends/server/core/DirectoryServer.java | 16 ++--
opendj3-server-dev/tests/unit-tests-testng/resource/config-changes.ldif | 2
opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/TestCaseUtils.java | 3
opendj3-server-dev/src/server/org/opends/server/tools/BackUpDB.java | 7 --
opendj3-server-dev/src/server/org/opends/server/tools/RebuildIndex.java | 7 --
opendj3-server-dev/src/server/org/opends/server/loggers/DebugLogger.java | 44 ++++++++++++++
opendj3-server-dev/src/server/org/opends/server/tools/ExportLDIF.java | 8 --
opendj3-server-dev/src/server/org/opends/server/tools/RestoreDB.java | 10 --
opendj3-server-dev/src/server/org/opends/server/loggers/TextDebugLogPublisher.java | 60 ++++++++-----------
9 files changed, 85 insertions(+), 72 deletions(-)
diff --git a/opendj3-server-dev/src/server/org/opends/server/core/DirectoryServer.java b/opendj3-server-dev/src/server/org/opends/server/core/DirectoryServer.java
index 542e885..37c260e 100644
--- a/opendj3-server-dev/src/server/org/opends/server/core/DirectoryServer.java
+++ b/opendj3-server-dev/src/server/org/opends/server/core/DirectoryServer.java
@@ -74,8 +74,6 @@
import org.opends.server.extensions.ConfigFileHandler;
import org.opends.server.extensions.JMXAlertHandler;
import org.opends.server.loggers.*;
-import org.opends.server.loggers.DebugLogPublisher;
-import org.opends.server.loggers.ErrorLogPublisher;
import org.forgerock.i18n.slf4j.LocalizedLogger;
import org.opends.server.monitors.BackendMonitor;
import org.opends.server.monitors.ConnectionHandlerMonitor;
@@ -87,11 +85,13 @@
import org.opends.server.util.*;
import org.forgerock.util.Reject;
import org.forgerock.util.Utils;
+
import com.forgerock.opendj.cli.ArgumentException;
import com.forgerock.opendj.cli.ArgumentParser;
import com.forgerock.opendj.cli.BooleanArgument;
import com.forgerock.opendj.cli.IntegerArgument;
import com.forgerock.opendj.cli.StringArgument;
+
import org.opends.server.workflowelement.WorkflowElement;
import org.opends.server.workflowelement.WorkflowElementConfigManager;
import org.opends.server.workflowelement.localbackend.*;
@@ -9188,14 +9188,11 @@
// Install the default loggers so the startup messages
// will be printed.
ErrorLogPublisher startupErrorLogPublisher =
- TextErrorLogPublisher.getServerStartupTextErrorPublisher(
- new TextWriter.STDOUT());
+ TextErrorLogPublisher.getServerStartupTextErrorPublisher(new TextWriter.STDOUT());
ErrorLogger.getInstance().addLogPublisher(startupErrorLogPublisher);
DebugLogPublisher startupDebugLogPublisher =
- TextDebugLogPublisher.getStartupTextDebugPublisher(new TextWriter.STDOUT());
- DebugLogger.getInstance().addLogPublisher(startupDebugLogPublisher);
-
+ DebugLogger.getInstance().addPublisherIfRequired(new TextWriter.STDOUT());
// Create an environment configuration for the server and populate a number
// of appropriate properties.
@@ -9269,7 +9266,10 @@
}
ErrorLogger.getInstance().removeLogPublisher(startupErrorLogPublisher);
- DebugLogger.getInstance().removeLogPublisher(startupDebugLogPublisher);
+ if (startupDebugLogPublisher != null)
+ {
+ DebugLogger.getInstance().removeLogPublisher(startupDebugLogPublisher);
+ }
}
/**
diff --git a/opendj3-server-dev/src/server/org/opends/server/loggers/DebugLogger.java b/opendj3-server-dev/src/server/org/opends/server/loggers/DebugLogger.java
index 4d343df..78311a6 100644
--- a/opendj3-server-dev/src/server/org/opends/server/loggers/DebugLogger.java
+++ b/opendj3-server-dev/src/server/org/opends/server/loggers/DebugLogger.java
@@ -27,8 +27,11 @@
package org.opends.server.loggers;
import static org.opends.messages.ConfigMessages.*;
+import static org.opends.server.util.ServerConstants.*;
+import java.util.ArrayList;
import java.util.Collection;
+import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@@ -149,6 +152,47 @@
return tracer;
}
+ /**
+ * Adds a text debug log publisher that will print all messages to the
+ * provided writer, based on debug target(s) defined through system
+ * properties.
+ * <p>
+ * It is expected that one or more system properties beginning with
+ * {@code PROPERTY_DEBUG_TARGET} are set to define the properties of the debug
+ * targets used by the publisher, otherwise no publisher is added.
+ *
+ * @param writer
+ * The text writer where the message will be written to.
+ * @return the publisher. It may be {@code null} if no publisher is added.
+ */
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ public final TextDebugLogPublisher addPublisherIfRequired(TextWriter writer)
+ {
+ final List<String> debugTargets = getDebugTargetsFromSystemProperties();
+ TextDebugLogPublisher publisher = null;
+ if (!debugTargets.isEmpty())
+ {
+ publisher = TextDebugLogPublisher.getStartupTextDebugPublisher(debugTargets, writer);
+ if (publisher != null) {
+ addLogPublisher((DebugLogPublisher) publisher);
+ }
+ }
+ return publisher;
+ }
+
+ private List<String> getDebugTargetsFromSystemProperties()
+ {
+ final List<String> targets = new ArrayList<String>();
+ for (Map.Entry<Object, Object> entry : System.getProperties().entrySet())
+ {
+ if (((String) entry.getKey()).startsWith(PROPERTY_DEBUG_TARGET))
+ {
+ targets.add((String)entry.getValue());
+ }
+ }
+ return targets;
+ }
+
/** {@inheritDoc} */
@Override
public final synchronized void addLogPublisher(
diff --git a/opendj3-server-dev/src/server/org/opends/server/loggers/TextDebugLogPublisher.java b/opendj3-server-dev/src/server/org/opends/server/loggers/TextDebugLogPublisher.java
index bed74b6..d51cebd 100644
--- a/opendj3-server-dev/src/server/org/opends/server/loggers/TextDebugLogPublisher.java
+++ b/opendj3-server-dev/src/server/org/opends/server/loggers/TextDebugLogPublisher.java
@@ -31,7 +31,6 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
-import java.util.Set;
import org.forgerock.i18n.LocalizableMessage;
import org.opends.server.admin.server.ConfigurationAddListener;
@@ -52,7 +51,6 @@
import org.opends.server.util.TimeThread;
import static org.opends.messages.ConfigMessages.*;
-import static org.opends.server.util.ServerConstants.*;
import static org.opends.server.util.StaticUtils.*;
/**
@@ -73,46 +71,39 @@
private FileBasedDebugLogPublisherCfg currentConfig;
/**
- * Returns an instance of the text debug log publisher that will print
- * all messages to the provided writer. This is used to print the messages
- * to the console when the server starts up. By default, only error level
- * messages are printed. Special debug targets are also parsed from
- * system properties if any are specified.
+ * Returns an instance of the text debug log publisher that will print all
+ * messages to the provided writer, based on the provided debug targets.
*
- * @param writer The text writer where the message will be written to.
- * @return The instance of the text error log publisher that will print
- * all messages to standard out.
+ * @param debugTargets
+ * The targets defining which and how debug events are logged.
+ * @param writer
+ * The text writer where the message will be written to.
+ * @return The instance of the text error log publisher that will print all
+ * messages to standard out. May be {@code null} if no debug target is
+ * valid.
*/
- public static TextDebugLogPublisher
- getStartupTextDebugPublisher(TextWriter writer)
+ static TextDebugLogPublisher getStartupTextDebugPublisher(List<String> debugTargets, TextWriter writer)
{
- TextDebugLogPublisher startupPublisher = new TextDebugLogPublisher();
- startupPublisher.writer = writer;
-
- Set<Map.Entry<Object, Object>> propertyEntries =
- System.getProperties().entrySet();
- for(Map.Entry<Object, Object> entry : propertyEntries)
+ TextDebugLogPublisher startupPublisher = null;
+ for (String value : debugTargets)
{
- if(((String)entry.getKey()).startsWith(PROPERTY_DEBUG_TARGET))
- {
- String value = (String)entry.getValue();
- int settingsStart= value.indexOf(":");
+ int settingsStart = value.indexOf(":");
- //See if the scope and settings exists
- if(settingsStart > 0)
+ //See if the scope and settings exists
+ if (settingsStart > 0)
+ {
+ String scope = value.substring(0, settingsStart);
+ TraceSettings settings = TraceSettings.parseTraceSettings(value.substring(settingsStart + 1));
+ if (settings != null)
{
- String scope = value.substring(0, settingsStart);
- TraceSettings settings =
- TraceSettings.parseTraceSettings(
- value.substring(settingsStart+1));
- if(settings != null)
- {
- startupPublisher.addTraceSettings(scope, settings);
+ if (startupPublisher == null) {
+ startupPublisher = new TextDebugLogPublisher();
+ startupPublisher.writer = writer;
}
+ startupPublisher.addTraceSettings(scope, settings);
}
}
}
-
return startupPublisher;
}
@@ -342,9 +333,8 @@
private TraceSettings getDefaultSettings(FileBasedDebugLogPublisherCfg config)
{
- return new TraceSettings(TraceSettings.Level.getLevel(
- false,
- config.isDefaultDebugExceptionsOnly()),
+ return new TraceSettings(
+ TraceSettings.Level.getLevel(true, config.isDefaultDebugExceptionsOnly()),
config.isDefaultOmitMethodEntryArguments(),
config.isDefaultOmitMethodReturnValue(),
config.getDefaultThrowableStackFrames(),
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/BackUpDB.java b/opendj3-server-dev/src/server/org/opends/server/tools/BackUpDB.java
index 3b175df..f256582 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/BackUpDB.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/BackUpDB.java
@@ -48,12 +48,10 @@
import org.opends.server.core.DirectoryServer;
import org.opends.server.core.LockFileManager;
import org.opends.server.extensions.ConfigFileHandler;
-import org.opends.server.loggers.DebugLogPublisher;
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.TextDebugLogPublisher;
import org.opends.server.loggers.TextErrorLogPublisher;
import org.opends.server.loggers.TextWriter;
import org.opends.server.protocols.ldap.LDAPAttribute;
@@ -724,11 +722,8 @@
ErrorLogPublisher errorLogPublisher =
TextErrorLogPublisher.getToolStartupTextErrorPublisher(
new TextWriter.STREAM(out));
- DebugLogPublisher debugLogPublisher =
- TextDebugLogPublisher.getStartupTextDebugPublisher(
- new TextWriter.STREAM(out));
ErrorLogger.getInstance().addLogPublisher(errorLogPublisher);
- DebugLogger.getInstance().addLogPublisher(debugLogPublisher);
+ DebugLogger.getInstance().addPublisherIfRequired(new TextWriter.STREAM(out));
}
catch(Exception e)
{
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/ExportLDIF.java b/opendj3-server-dev/src/server/org/opends/server/tools/ExportLDIF.java
index c2e401e..5e015ce 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/ExportLDIF.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/ExportLDIF.java
@@ -45,11 +45,9 @@
import org.opends.server.core.DirectoryServer;
import org.opends.server.core.LockFileManager;
import org.opends.server.extensions.ConfigFileHandler;
-import org.opends.server.loggers.DebugLogPublisher;
import org.opends.server.loggers.DebugLogger;
import org.opends.server.loggers.ErrorLogPublisher;
import org.opends.server.loggers.JDKLogging;
-import org.opends.server.loggers.TextDebugLogPublisher;
import org.opends.server.loggers.TextWriter;
import org.opends.server.loggers.TextErrorLogPublisher;
import org.opends.server.loggers.ErrorLogger;
@@ -639,11 +637,9 @@
ErrorLogPublisher errorLogPublisher =
TextErrorLogPublisher.getToolStartupTextErrorPublisher(
new TextWriter.STREAM(out));
- DebugLogPublisher debugLogPublisher =
- TextDebugLogPublisher.getStartupTextDebugPublisher(
- new TextWriter.STREAM(out));
ErrorLogger.getInstance().addLogPublisher(errorLogPublisher);
- DebugLogger.getInstance().addLogPublisher(debugLogPublisher);
+
+ DebugLogger.getInstance().addPublisherIfRequired(new TextWriter.STREAM(out));
}
catch(Exception e)
{
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 8070803..56bbb53 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
@@ -44,11 +44,9 @@
import org.opends.server.util.args.LDAPConnectionArgumentParser;
import org.opends.server.extensions.ConfigFileHandler;
import org.opends.server.config.ConfigException;
-import org.opends.server.loggers.DebugLogPublisher;
import org.opends.server.loggers.DebugLogger;
import org.opends.server.loggers.ErrorLogPublisher;
import org.opends.server.loggers.JDKLogging;
-import org.opends.server.loggers.TextDebugLogPublisher;
import org.opends.server.loggers.TextWriter;
import org.opends.server.loggers.ErrorLogger;
import org.opends.server.loggers.TextErrorLogPublisher;
@@ -407,11 +405,8 @@
final ErrorLogPublisher errorLogPublisher =
TextErrorLogPublisher
.getToolStartupTextErrorPublisher(new TextWriter.STREAM(out));
- final DebugLogPublisher debugLogPublisher =
- TextDebugLogPublisher
- .getStartupTextDebugPublisher(new TextWriter.STREAM(out));
ErrorLogger.getInstance().addLogPublisher(errorLogPublisher);
- DebugLogger.getInstance().addLogPublisher(debugLogPublisher);
+ DebugLogger.getInstance().addPublisherIfRequired(new TextWriter.STREAM(out));
}
catch (Exception e)
{
diff --git a/opendj3-server-dev/src/server/org/opends/server/tools/RestoreDB.java b/opendj3-server-dev/src/server/org/opends/server/tools/RestoreDB.java
index be1e307..15fe93f 100644
--- a/opendj3-server-dev/src/server/org/opends/server/tools/RestoreDB.java
+++ b/opendj3-server-dev/src/server/org/opends/server/tools/RestoreDB.java
@@ -47,11 +47,9 @@
import org.opends.server.core.DirectoryServer;
import org.opends.server.core.LockFileManager;
import org.opends.server.extensions.ConfigFileHandler;
-import org.opends.server.loggers.DebugLogPublisher;
import org.opends.server.loggers.DebugLogger;
import org.opends.server.loggers.ErrorLogPublisher;
import org.opends.server.loggers.JDKLogging;
-import org.opends.server.loggers.TextDebugLogPublisher;
import org.opends.server.loggers.TextWriter;
import org.opends.server.loggers.ErrorLogger;
import org.opends.server.loggers.TextErrorLogPublisher;
@@ -468,13 +466,9 @@
try
{
ErrorLogPublisher errorLogPublisher =
- TextErrorLogPublisher.getToolStartupTextErrorPublisher(
- new TextWriter.STREAM(out));
- DebugLogPublisher debugLogPublisher =
- TextDebugLogPublisher.getStartupTextDebugPublisher(
- new TextWriter.STREAM(out));
+ TextErrorLogPublisher.getToolStartupTextErrorPublisher(new TextWriter.STREAM(out));
ErrorLogger.getInstance().addLogPublisher(errorLogPublisher);
- DebugLogger.getInstance().addLogPublisher(debugLogPublisher);
+ DebugLogger.getInstance().addPublisherIfRequired(new TextWriter.STREAM(out));
}
catch(Exception e)
{
diff --git a/opendj3-server-dev/tests/unit-tests-testng/resource/config-changes.ldif b/opendj3-server-dev/tests/unit-tests-testng/resource/config-changes.ldif
index 0a8882c..af8798f 100644
--- a/opendj3-server-dev/tests/unit-tests-testng/resource/config-changes.ldif
+++ b/opendj3-server-dev/tests/unit-tests-testng/resource/config-changes.ldif
@@ -1434,7 +1434,7 @@
dn: cn=File-Based Debug Logger,cn=Loggers,cn=config
changetype: modify
replace: ds-cfg-enabled
-ds-cfg-enabled: true
+ds-cfg-enabled: false
-
replace: ds-cfg-default-include-throwable-cause
ds-cfg-default-include-throwable-cause: true
diff --git a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/TestCaseUtils.java b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/TestCaseUtils.java
index b561add..77577c4 100644
--- a/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/TestCaseUtils.java
+++ b/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/TestCaseUtils.java
@@ -475,8 +475,7 @@
ErrorLogger.getInstance().addLogPublisher(
(ErrorLogPublisher) TextErrorLogPublisher.getToolStartupTextErrorPublisher(ERROR_TEXT_WRITER));
- DebugLogger.getInstance().addLogPublisher(
- (DebugLogPublisher) TextDebugLogPublisher.getStartupTextDebugPublisher(DEBUG_TEXT_WRITER));
+ DebugLogger.getInstance().addPublisherIfRequired(DEBUG_TEXT_WRITER);
// Writing the buildinfo with the current version.
final FileWriter buildInfoWriter = new FileWriter (new File(testConfigDir, "buildinfo"));
--
Gitblit v1.10.0