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/TextDebugLogPublisher.java | 145 +++++++++++++++++++++--------------------------
1 files changed, 65 insertions(+), 80 deletions(-)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/loggers/TextDebugLogPublisher.java b/opendj-server-legacy/src/main/java/org/opends/server/loggers/TextDebugLogPublisher.java
index 888b2fe..6bdb010 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/loggers/TextDebugLogPublisher.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/loggers/TextDebugLogPublisher.java
@@ -32,16 +32,16 @@
import java.util.Map;
import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.opendj.config.server.ConfigChangeResult;
+import org.forgerock.opendj.config.server.ConfigException;
import org.opends.server.admin.server.ConfigurationAddListener;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.server.ConfigurationDeleteListener;
import org.opends.server.admin.std.server.DebugTargetCfg;
import org.opends.server.admin.std.server.FileBasedDebugLogPublisherCfg;
import org.opends.server.api.DirectoryThread;
-import org.forgerock.opendj.config.server.ConfigException;
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;
@@ -63,9 +63,7 @@
ConfigurationDeleteListener<DebugTargetCfg>
{
private static long globalSequenceNumber;
-
private TextWriter writer;
-
private FileBasedDebugLogPublisherCfg currentConfig;
/**
@@ -105,7 +103,6 @@
return startupPublisher;
}
- /** {@inheritDoc} */
@Override
public boolean isConfigurationAcceptable(
FileBasedDebugLogPublisherCfg config, List<LocalizableMessage> unacceptableReasons)
@@ -113,7 +110,6 @@
return isConfigurationChangeAcceptable(config, unacceptableReasons);
}
- /** {@inheritDoc} */
@Override
public void initializeLogPublisher(FileBasedDebugLogPublisherCfg config, ServerContext serverContext)
throws ConfigException, InitializationException
@@ -123,14 +119,9 @@
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(),
@@ -147,7 +138,6 @@
{
writer.addRotationPolicy(DirectoryServer.getRotationPolicy(dn));
}
-
for(DN dn: config.getRetentionPolicyDNs())
{
writer.addRetentionPolicy(DirectoryServer.getRetentionPolicy(dn));
@@ -155,8 +145,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
{
@@ -174,7 +163,6 @@
ERR_CONFIG_LOGGING_CANNOT_OPEN_FILE.get(logFile, config.dn(), e), e);
}
-
config.addDebugTargetAddListener(this);
config.addDebugTargetDeleteListener(this);
@@ -191,9 +179,6 @@
config.addFileBasedDebugChangeListener(this);
}
-
-
- /** {@inheritDoc} */
@Override
public boolean isConfigurationChangeAcceptable(
FileBasedDebugLogPublisherCfg config, List<LocalizableMessage> unacceptableReasons)
@@ -201,17 +186,15 @@
// Make sure the permission is valid.
try
{
- FilePermission filePerm =
- FilePermission.decodeUNIXMode(config.getLogFilePermissions());
- if(!filePerm.isOwnerWritable())
+ FilePermission filePerm = FilePermission.decodeUNIXMode(config.getLogFilePermissions());
+ if (!filePerm.isOwnerWritable())
{
- LocalizableMessage message = ERR_CONFIG_LOGGING_INSANE_MODE.get(
- config.getLogFilePermissions());
+ LocalizableMessage message = ERR_CONFIG_LOGGING_INSANE_MODE.get(config.getLogFilePermissions());
unacceptableReasons.add(message);
return false;
}
}
- catch(DirectoryException e)
+ catch (DirectoryException e)
{
unacceptableReasons.add(ERR_CONFIG_LOGGING_MODE_INVALID.get(config.getLogFilePermissions(), e));
return false;
@@ -220,30 +203,19 @@
return true;
}
- /** {@inheritDoc} */
@Override
- public ConfigChangeResult applyConfigurationChange(
- FileBasedDebugLogPublisherCfg config)
+ public ConfigChangeResult applyConfigurationChange(FileBasedDebugLogPublisherCfg config)
{
final ConfigChangeResult ccr = new ConfigChangeResult();
addTraceSettings(null, getDefaultSettings(config));
DebugLogger.updateTracerSettings();
- 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();
@@ -256,41 +228,25 @@
if(currentWriter instanceof MultifileTextWriter)
{
MultifileTextWriter mfWriter = (MultifileTextWriter)writer;
+ 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() && config.isAsynchronous() &&
@@ -312,6 +268,44 @@
return ccr;
}
+ private AsynchronousTextWriter newAsyncWriter(MultifileTextWriter writer, FileBasedDebugLogPublisherCfg config)
+ {
+ String name = "Asynchronous Text Writer for " + config.dn();
+ return new AsynchronousTextWriter(name, config.getQueueSize(), config.isAutoFlush(), writer);
+ }
+
+ private void configure(MultifileTextWriter mfWriter, FileBasedDebugLogPublisherCfg 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(FileBasedDebugLogPublisherCfg config)
+ {
+ return getFileForPath(config.getLogFile());
+ }
+
private TraceSettings getDefaultSettings(FileBasedDebugLogPublisherCfg config)
{
return new TraceSettings(
@@ -322,7 +316,6 @@
config.isDefaultIncludeThrowableCause());
}
- /** {@inheritDoc} */
@Override
public boolean isConfigurationAddAcceptable(DebugTargetCfg config,
List<LocalizableMessage> unacceptableReasons)
@@ -330,7 +323,6 @@
return !hasTraceSettings(config.getDebugScope());
}
- /** {@inheritDoc} */
@Override
public boolean isConfigurationDeleteAcceptable(DebugTargetCfg config,
List<LocalizableMessage> unacceptableReasons)
@@ -339,7 +331,6 @@
return true;
}
- /** {@inheritDoc} */
@Override
public ConfigChangeResult applyConfigurationAdd(DebugTargetCfg config)
{
@@ -350,7 +341,6 @@
return new ConfigChangeResult();
}
- /** {@inheritDoc} */
@Override
public ConfigChangeResult applyConfigurationDelete(DebugTargetCfg config)
{
@@ -361,7 +351,6 @@
return new ConfigChangeResult();
}
- /** {@inheritDoc} */
@Override
public void trace(TraceSettings settings, String signature,
String sourceLocation, String msg, StackTraceElement[] stackTrace)
@@ -375,7 +364,6 @@
publish(signature, sourceLocation, msg, stack);
}
- /** {@inheritDoc} */
@Override
public void traceException(TraceSettings settings, String signature,
String sourceLocation, String msg, Throwable ex,
@@ -392,7 +380,6 @@
publish(signature, sourceLocation, message, stack);
}
- /** {@inheritDoc} */
@Override
public void close()
{
@@ -404,7 +391,6 @@
}
}
-
/**
* Publishes a record, optionally performing some "special" work:
* - injecting a stack trace into the message
@@ -469,7 +455,6 @@
writer.writeRecord(buf.toString());
}
- /** {@inheritDoc} */
@Override
public DN getDN()
{
--
Gitblit v1.10.0