From f8e01cac63c2468e082a77889c3a7b354eb14c8e Mon Sep 17 00:00:00 2001
From: Jean-Noël Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Tue, 06 Oct 2015 08:08:53 +0000
Subject: [PATCH] Text*LogPublisher.java: Code cleanup Extracted methods newParallelWriter(), newAsyncWriter(), configure(). In applyConfigurationChange(), rewrote the conditions to make them more readable.
---
opendj-server-legacy/src/main/java/org/opends/server/loggers/TextErrorLogPublisher.java | 139 +++++++++++++++++++++-------------------------
1 files changed, 63 insertions(+), 76 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/loggers/TextErrorLogPublisher.java b/opendj-server-legacy/src/main/java/org/opends/server/loggers/TextErrorLogPublisher.java
index 73c610f..2592f20 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/loggers/TextErrorLogPublisher.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/loggers/TextErrorLogPublisher.java
@@ -40,6 +40,7 @@
import java.util.StringTokenizer;
import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.opendj.config.server.ConfigChangeResult;
import org.forgerock.opendj.config.server.ConfigException;
import org.opends.messages.Severity;
import org.opends.server.admin.server.ConfigurationChangeListener;
@@ -47,7 +48,6 @@
import org.opends.server.admin.std.server.FileBasedErrorLogPublisherCfg;
import org.opends.server.core.DirectoryServer;
import org.opends.server.core.ServerContext;
-import org.forgerock.opendj.config.server.ConfigChangeResult;
import org.opends.server.types.DN;
import org.opends.server.types.DirectoryException;
import org.opends.server.types.FilePermission;
@@ -55,9 +55,7 @@
import org.opends.server.util.StaticUtils;
import org.opends.server.util.TimeThread;
-/**
- * This class provides an implementation of an error log publisher.
- */
+/** This class provides an implementation of an error log publisher. */
public class TextErrorLogPublisher
extends ErrorLogPublisher<FileBasedErrorLogPublisherCfg>
implements ConfigurationChangeListener<FileBasedErrorLogPublisherCfg>
@@ -82,8 +80,6 @@
return startupPublisher;
}
-
-
/**
* Returns a new text error log publisher which will print only notices,
* severe warnings and errors, and fatal errors messages to the provided
@@ -96,8 +92,7 @@
* severe warnings and errors, and fatal errors messages to the
* provided writer.
*/
- public static TextErrorLogPublisher getServerStartupTextErrorPublisher(
- TextWriter writer)
+ public static TextErrorLogPublisher getServerStartupTextErrorPublisher(TextWriter writer)
{
TextErrorLogPublisher startupPublisher = new TextErrorLogPublisher();
startupPublisher.writer = writer;
@@ -106,26 +101,18 @@
return startupPublisher;
}
-
-
- /** {@inheritDoc} */
@Override
public void initializeLogPublisher(FileBasedErrorLogPublisherCfg config, ServerContext serverContext)
throws ConfigException, InitializationException
{
- File logFile = getFileForPath(config.getLogFile());
+ File logFile = getLogFile(config);
FileNamingPolicy fnPolicy = new TimeStampNaming(logFile);
try
{
- FilePermission perm =
- FilePermission.decodeUNIXMode(config.getLogFilePermissions());
-
- LogPublisherErrorHandler errorHandler =
- new LogPublisherErrorHandler(config.dn());
-
- boolean writerAutoFlush =
- config.isAutoFlush() && !config.isAsynchronous();
+ FilePermission perm = FilePermission.decodeUNIXMode(config.getLogFilePermissions());
+ LogPublisherErrorHandler errorHandler = new LogPublisherErrorHandler(config.dn());
+ boolean writerAutoFlush = config.isAutoFlush() && !config.isAsynchronous();
MultifileTextWriter writer = new MultifileTextWriter("Multifile Text Writer for " + config.dn(),
config.getTimeInterval(),
@@ -142,7 +129,6 @@
{
writer.addRotationPolicy(DirectoryServer.getRotationPolicy(dn));
}
-
for(DN dn: config.getRetentionPolicyDNs())
{
writer.addRetentionPolicy(DirectoryServer.getRetentionPolicy(dn));
@@ -150,8 +136,7 @@
if(config.isAsynchronous())
{
- this.writer = new AsynchronousTextWriter("Asynchronous Text Writer for " + config.dn(),
- config.getQueueSize(), config.isAutoFlush(), writer);
+ this.writer = newAsyncWriter(writer, config);
}
else
{
@@ -224,9 +209,6 @@
config.addFileBasedErrorChangeListener(this);
}
-
-
- /** {@inheritDoc} */
@Override
public boolean isConfigurationAcceptable(
FileBasedErrorLogPublisherCfg config, List<LocalizableMessage> unacceptableReasons)
@@ -234,7 +216,6 @@
return isConfigurationChangeAcceptable(config, unacceptableReasons);
}
- /** {@inheritDoc} */
@Override
public boolean isConfigurationChangeAcceptable(
FileBasedErrorLogPublisherCfg config, List<LocalizableMessage> unacceptableReasons)
@@ -290,7 +271,6 @@
return true;
}
- /** {@inheritDoc} */
@Override
public ConfigChangeResult applyConfigurationChange(FileBasedErrorLogPublisherCfg config)
{
@@ -351,18 +331,11 @@
}
}
- File logFile = getFileForPath(config.getLogFile());
- FileNamingPolicy fnPolicy = new TimeStampNaming(logFile);
try
{
- FilePermission perm = FilePermission.decodeUNIXMode(config.getLogFilePermissions());
-
- boolean writerAutoFlush =
- config.isAutoFlush() && !config.isAsynchronous();
-
- TextWriter currentWriter;
// Determine the writer we are using. If we were writing asynchronously,
// we need to modify the underlying writer.
+ TextWriter currentWriter;
if(writer instanceof AsynchronousTextWriter)
{
currentWriter = ((AsynchronousTextWriter)writer).getWrappedWriter();
@@ -375,40 +348,25 @@
if(currentWriter instanceof MultifileTextWriter)
{
MultifileTextWriter mfWriter = (MultifileTextWriter)currentWriter;
+ configure(mfWriter, config);
- mfWriter.setNamingPolicy(fnPolicy);
- mfWriter.setFilePermissions(perm);
- mfWriter.setAppend(config.isAppend());
- mfWriter.setAutoFlush(writerAutoFlush);
- mfWriter.setBufferSize((int)config.getBufferSize());
- mfWriter.setInterval(config.getTimeInterval());
-
- mfWriter.removeAllRetentionPolicies();
- mfWriter.removeAllRotationPolicies();
-
- for(DN dn : config.getRotationPolicyDNs())
+ if (config.isAsynchronous())
{
- mfWriter.addRotationPolicy(DirectoryServer.getRotationPolicy(dn));
+ if (!(writer instanceof AsynchronousTextWriter))
+ {
+ // The asynchronous setting is being turned on.
+ writer = newAsyncWriter(mfWriter, config);
+ }
}
-
- for(DN dn: config.getRetentionPolicyDNs())
+ else
{
- mfWriter.addRetentionPolicy(DirectoryServer.getRetentionPolicy(dn));
- }
-
- if(writer instanceof AsynchronousTextWriter && !config.isAsynchronous())
- {
- // The asynchronous setting is being turned off.
- AsynchronousTextWriter asyncWriter = (AsynchronousTextWriter)writer;
- writer = mfWriter;
- asyncWriter.shutdown(false);
- }
-
- if (!(writer instanceof AsynchronousTextWriter) && config.isAsynchronous())
- {
- // The asynchronous setting is being turned on.
- writer = new AsynchronousTextWriter("Asynchronous Text Writer for " + config.dn(),
- config.getQueueSize(), config.isAutoFlush(), mfWriter);
+ if (writer instanceof AsynchronousTextWriter)
+ {
+ // The asynchronous setting is being turned off.
+ AsynchronousTextWriter asyncWriter = (AsynchronousTextWriter) writer;
+ writer = mfWriter;
+ asyncWriter.shutdown(false);
+ }
}
if (currentConfig.isAsynchronous()
@@ -431,6 +389,44 @@
return ccr;
}
+ private void configure(MultifileTextWriter mfWriter, FileBasedErrorLogPublisherCfg config) throws DirectoryException
+ {
+ FilePermission perm = FilePermission.decodeUNIXMode(config.getLogFilePermissions());
+ boolean writerAutoFlush = config.isAutoFlush() && !config.isAsynchronous();
+
+ File logFile = getLogFile(config);
+ FileNamingPolicy fnPolicy = new TimeStampNaming(logFile);
+
+ mfWriter.setNamingPolicy(fnPolicy);
+ mfWriter.setFilePermissions(perm);
+ mfWriter.setAppend(config.isAppend());
+ mfWriter.setAutoFlush(writerAutoFlush);
+ mfWriter.setBufferSize((int) config.getBufferSize());
+ mfWriter.setInterval(config.getTimeInterval());
+
+ mfWriter.removeAllRetentionPolicies();
+ mfWriter.removeAllRotationPolicies();
+ for (DN dn : config.getRotationPolicyDNs())
+ {
+ mfWriter.addRotationPolicy(DirectoryServer.getRotationPolicy(dn));
+ }
+ for (DN dn : config.getRetentionPolicyDNs())
+ {
+ mfWriter.addRetentionPolicy(DirectoryServer.getRetentionPolicy(dn));
+ }
+ }
+
+ private File getLogFile(FileBasedErrorLogPublisherCfg config)
+ {
+ return getFileForPath(config.getLogFile());
+ }
+
+ private AsynchronousTextWriter newAsyncWriter(MultifileTextWriter mfWriter, FileBasedErrorLogPublisherCfg config)
+ {
+ String name = "Asynchronous Text Writer for " + config.dn();
+ return new AsynchronousTextWriter(name, config.getQueueSize(), config.isAutoFlush(), mfWriter);
+ }
+
private void setDefaultSeverities(Set<ErrorLogPublisherCfgDefn.DefaultSeverity> defSevs)
{
defaultSeverities.clear();
@@ -451,11 +447,7 @@
defaultSeverities.add(Severity.INFORMATION);
defaultSeverities.add(Severity.NOTICE);
}
- else if (LOG_SEVERITY_NONE.equalsIgnoreCase(defaultSeverity))
- {
- // don't add any severity
- }
- else
+ else if (!LOG_SEVERITY_NONE.equalsIgnoreCase(defaultSeverity))
{
Severity errorSeverity = Severity.parseString(defSev.name());
if (errorSeverity != null)
@@ -467,7 +459,6 @@
}
}
- /** {@inheritDoc} */
@Override
public void close()
{
@@ -479,7 +470,6 @@
}
}
- /** {@inheritDoc} */
@Override
public void log(String category, Severity severity, LocalizableMessage message, Throwable exception)
{
@@ -504,7 +494,6 @@
}
}
- /** {@inheritDoc} */
@Override
public boolean isEnabledFor(String category, Severity severity)
{
@@ -516,7 +505,6 @@
return severities.contains(severity);
}
- /** {@inheritDoc} */
@Override
public DN getDN()
{
@@ -527,4 +515,3 @@
return null;
}
}
-
--
Gitblit v1.10.0