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