Author: orudyy
Date: Tue Jul  7 12:03:33 2015
New Revision: 1689633

URL: http://svn.apache.org/r1689633
Log:
QPID-6614: [Java Broker] Add onNoRolloverDetected to RolloverListener interface.

Modified:
    
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/logback/RollingPolicyDecorator.java
    
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/logback/RolloverWatcher.java
    
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/logging/logback/RollingPolicyDecoratorTest.java
    
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/util/LoggerTestHelper.java

Modified: 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/logback/RollingPolicyDecorator.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/logback/RollingPolicyDecorator.java?rev=1689633&r1=1689632&r2=1689633&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/logback/RollingPolicyDecorator.java
 (original)
+++ 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/logback/RollingPolicyDecorator.java
 Tue Jul  7 12:03:33 2015
@@ -54,7 +54,6 @@ public class RollingPolicyDecorator impl
     public static final int DEFAULT_RESCAN_LIMIT = 60;
     public static final String ROLLOVER_RESCAN_LIMIT_PROPERTY_NAME = 
"qpid.logger_rollover_rescan_limit";
     private static final Logger LOGGER = 
LoggerFactory.getLogger(RollingPolicyDecorator.class);
-    public static final String WARNING_MESSAGE = "Exceeded maximum number of 
rescans without detecting rolled over log file.";
 
     private final RollingPolicyBase _decorated;
     private final RolloverListener _listener;
@@ -138,6 +137,7 @@ public class RollingPolicyDecorator impl
     public interface RolloverListener
     {
         void onRollover(Path baseFolder, String[] relativeFileNames);
+        void onNoRolloverDetected(Path baseFolder, String[] relativeFileNames);
     }
 
     public RollingPolicyBase getDecorated()
@@ -198,7 +198,7 @@ public class RollingPolicyDecorator impl
                     }
                     else
                     {
-                        LOGGER.warn(WARNING_MESSAGE);
+                        _listener.onNoRolloverDetected(_rolledFilesBaseFolder, 
rolloverFiles);
                     }
                 }
             }

Modified: 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/logback/RolloverWatcher.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/logback/RolloverWatcher.java?rev=1689633&r1=1689632&r2=1689633&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/logback/RolloverWatcher.java
 (original)
+++ 
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/logback/RolloverWatcher.java
 Tue Jul  7 12:03:33 2015
@@ -32,13 +32,16 @@ import java.util.Map;
 import java.util.Set;
 import java.util.TreeMap;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import org.apache.qpid.server.logging.LogFileDetails;
 import org.apache.qpid.server.logging.PathContent;
 import org.apache.qpid.server.logging.ZippedContent;
-import org.apache.qpid.server.model.Content;
 
 public class RolloverWatcher implements RollingPolicyDecorator.RolloverListener
 {
+    private static final Logger LOGGER = 
LoggerFactory.getLogger(RolloverWatcher.class);
     private final Path _activeFilePath;
     private volatile Collection<String> _rolledFiles;
     private volatile Path _baseFolder;
@@ -56,6 +59,16 @@ public class RolloverWatcher implements
         _baseFolder = baseFolder;
     }
 
+    @Override
+    public void onNoRolloverDetected(final Path baseFolder, final String[] 
relativeFileNames)
+    {
+        if (_baseFolder == null)
+        {
+            _baseFolder = baseFolder;
+        }
+        LOGGER.warn("Exceeded maximum number of rescans without detecting 
rolled over log file.");
+    }
+
     public PathContent getFileContent(String fileName)
     {
         if (fileName == null)

Modified: 
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/logging/logback/RollingPolicyDecoratorTest.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/logging/logback/RollingPolicyDecoratorTest.java?rev=1689633&r1=1689632&r2=1689633&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/logging/logback/RollingPolicyDecoratorTest.java
 (original)
+++ 
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/logging/logback/RollingPolicyDecoratorTest.java
 Tue Jul  7 12:03:33 2015
@@ -20,24 +20,25 @@
  */
 package org.apache.qpid.server.logging.logback;
 
-import static org.apache.qpid.server.util.LoggerTestHelper.assertLoggedEvent;
-import static 
org.apache.qpid.server.util.LoggerTestHelper.createAndRegisterAppender;
-import static 
org.apache.qpid.server.util.LoggerTestHelper.deleteAndUnregisterAppender;
 import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.argThat;
 import static org.mockito.Matchers.eq;
-import static org.mockito.Mockito.*;
+import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 import java.io.File;
 import java.io.IOException;
 import java.nio.file.Path;
 import java.util.Arrays;
-import java.util.concurrent.*;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
+
 
-import ch.qos.logback.classic.Level;
 import ch.qos.logback.core.Context;
 import ch.qos.logback.core.FileAppender;
-import ch.qos.logback.core.read.ListAppender;
 import ch.qos.logback.core.rolling.RollingPolicyBase;
 import org.apache.qpid.test.utils.QpidTestCase;
 import org.apache.qpid.test.utils.TestFileUtils;
@@ -85,7 +86,7 @@ public class RollingPolicyDecoratorTest
     public File createTestFile(String fileName) throws IOException
     {
         File testFile = new File(_baseFolder, fileName);
-        testFile.createNewFile();
+        assertTrue("Cannot create a new file " + testFile.getPath(), 
testFile.createNewFile());
         return testFile;
     }
 
@@ -130,18 +131,13 @@ public class RollingPolicyDecoratorTest
 
     public void testRolloverRescanLimit() throws IOException
     {
-        ListAppender loggerAppender = 
createAndRegisterAppender("testAppender");
-        try
-        {
-            _policy.rollover();
-            verify(_delegate).rollover();
-            _policy.rollover();
-            assertLoggedEvent(loggerAppender, true, 
RollingPolicyDecorator.WARNING_MESSAGE, RollingPolicyDecorator.class.getName(), 
Level.WARN);
-        }
-        finally
-        {
-            deleteAndUnregisterAppender(loggerAppender);
-        }
+        _policy.rollover();
+        verify(_delegate).rollover();
+        Matcher<String[]> matcher = getMatcher(new 
String[]{_testFile.getName()});
+        verify(_listener).onRollover(eq(_baseFolder.toPath()), 
argThat(matcher));
+        _policy.rollover();
+        verify(_delegate, times(2)).rollover();
+        verify(_listener).onNoRolloverDetected(eq(_baseFolder.toPath()), 
argThat(matcher));
     }
 
     public void testSequentialRollover() throws IOException

Modified: 
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/util/LoggerTestHelper.java
URL: 
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/util/LoggerTestHelper.java?rev=1689633&r1=1689632&r2=1689633&view=diff
==============================================================================
--- 
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/util/LoggerTestHelper.java
 (original)
+++ 
qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/util/LoggerTestHelper.java
 Tue Jul  7 12:03:33 2015
@@ -64,7 +64,7 @@ public class LoggerTestHelper
         List<ILoggingEvent> events;
         synchronized(appender)
         {
-            events = new ArrayList<>(appender.list);
+            events = new ArrayList<ILoggingEvent>(appender.list);
         }
 
         boolean logged = false;



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to