You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kw...@apache.org on 2015/07/15 14:59:03 UTC

svn commit: r1691202 - in /qpid/java/trunk/broker-core/src: main/java/org/apache/qpid/server/logging/ main/java/org/apache/qpid/server/logging/logback/ test/java/org/apache/qpid/server/logging/logback/

Author: kwall
Date: Wed Jul 15 12:59:02 2015
New Revision: 1691202

URL: http://svn.apache.org/r1691202
Log:
QPID-6614: [Java Broker] Order the list rolled files by last modification time

Work by Lorenz Quack <qu...@gmail.com> and Keith Wall

Modified:
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/BrokerFileLogger.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/BrokerFileLoggerImpl.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/VirtualHostFileLogger.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/VirtualHostFileLoggerImpl.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/RolloverWatcherTest.java

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/BrokerFileLogger.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/BrokerFileLogger.java?rev=1691202&r1=1691201&r2=1691202&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/BrokerFileLogger.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/BrokerFileLogger.java Wed Jul 15 12:59:02 2015
@@ -21,6 +21,7 @@
 package org.apache.qpid.server.logging;
 
 import java.util.Collection;
+import java.util.List;
 import java.util.Set;
 
 import org.apache.qpid.server.model.BrokerLogger;
@@ -65,7 +66,7 @@ public interface BrokerFileLogger<X exte
     String getLayout();
 
     @DerivedAttribute
-    Collection<LogFileDetails> getLogFiles();
+    List<LogFileDetails> getLogFiles();
 
     @ManagedOperation(nonModifying = true)
     Content getFile(@Param(name = "fileName") String fileName);

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/BrokerFileLoggerImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/BrokerFileLoggerImpl.java?rev=1691202&r1=1691201&r2=1691202&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/BrokerFileLoggerImpl.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/BrokerFileLoggerImpl.java Wed Jul 15 12:59:02 2015
@@ -24,7 +24,7 @@ import java.io.File;
 import java.io.IOError;
 import java.io.IOException;
 import java.security.AccessControlException;
-import java.util.Collection;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.Executors;
@@ -149,7 +149,7 @@ public class BrokerFileLoggerImpl extend
     }
 
     @Override
-    public Collection<LogFileDetails> getLogFiles()
+    public List<LogFileDetails> getLogFiles()
     {
         return _rolloverWatcher.getLogFileDetails();
     }

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/VirtualHostFileLogger.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/VirtualHostFileLogger.java?rev=1691202&r1=1691201&r2=1691202&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/VirtualHostFileLogger.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/VirtualHostFileLogger.java Wed Jul 15 12:59:02 2015
@@ -22,6 +22,7 @@ package org.apache.qpid.server.logging;
 
 
 import java.util.Collection;
+import java.util.List;
 import java.util.Set;
 
 import org.apache.qpid.server.model.DerivedAttribute;
@@ -61,7 +62,7 @@ public interface VirtualHostFileLogger<X
     String getLayout();
 
     @DerivedAttribute
-    Collection<LogFileDetails> getLogFiles();
+    List<LogFileDetails> getLogFiles();
 
     @ManagedOperation(nonModifying = true)
     Content getFile(@Param(name = "fileName") String fileName);

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/VirtualHostFileLoggerImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/VirtualHostFileLoggerImpl.java?rev=1691202&r1=1691201&r2=1691202&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/VirtualHostFileLoggerImpl.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/VirtualHostFileLoggerImpl.java Wed Jul 15 12:59:02 2015
@@ -22,7 +22,7 @@ package org.apache.qpid.server.logging;
 
 import java.io.File;
 import java.security.AccessControlException;
-import java.util.Collection;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.Executors;
@@ -138,7 +138,7 @@ public class VirtualHostFileLoggerImpl e
     }
 
     @Override
-    public Collection<LogFileDetails> getLogFiles()
+    public List<LogFileDetails> getLogFiles()
     {
         return _rolloverWatcher.getLogFileDetails();
     }

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=1691202&r1=1691201&r2=1691202&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 Wed Jul 15 12:59:02 2015
@@ -26,6 +26,7 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.Comparator;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
@@ -42,6 +43,14 @@ import org.apache.qpid.server.logging.Zi
 public class RolloverWatcher implements RollingPolicyDecorator.RolloverListener
 {
     private static final Logger LOGGER = LoggerFactory.getLogger(RolloverWatcher.class);
+    private static final Comparator<LogFileDetails> LAST_MODIFIED_COMPARATOR = new Comparator<LogFileDetails>()
+    {
+        @Override
+        public int compare(final LogFileDetails o1, final LogFileDetails o2)
+        {
+            return (int) (o2.getLastModified() - o1.getLastModified());
+        }
+    };
     private final Path _activeFilePath;
     private volatile Collection<String> _rolledFiles;
     private volatile Path _baseFolder;
@@ -111,6 +120,7 @@ public class RolloverWatcher implements
             LogFileDetails details = getFileDetails(file);
             results.add(details);
         }
+        Collections.sort(results, LAST_MODIFIED_COMPARATOR);
         return results;
     }
 

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/logging/logback/RolloverWatcherTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/logging/logback/RolloverWatcherTest.java?rev=1691202&r1=1691201&r2=1691202&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/logging/logback/RolloverWatcherTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/logging/logback/RolloverWatcherTest.java Wed Jul 15 12:59:02 2015
@@ -69,6 +69,39 @@ public class RolloverWatcherTest extends
                 new HashSet<>(_rolloverWatcher.getRolledFiles()));
     }
 
+    public void testGetLogFileDetailsIsOrdered() throws Exception
+    {
+
+        String[] files = {"test1", "test2"};
+        List<String> expectedOrder = new ArrayList<>();
+
+        _activeFile.createNewFile();
+        expectedOrder.add(_activeFile.toPath().getFileName().toString());
+
+        long lastModified = System.currentTimeMillis() - (1000 * 60 * 5);
+        for(String filename : files)
+        {
+            File file = new File(_baseFolder, filename);
+            file.createNewFile();
+            file.setLastModified(lastModified);
+            lastModified += 1000 * 30;
+            expectedOrder.add(1, filename);
+        }
+
+        _rolloverWatcher.onRollover(_baseFolder.toPath(), files);
+
+        List<LogFileDetails> orderedDetails = _rolloverWatcher.getLogFileDetails();
+
+        assertEquals("Unexpected number of log file details", expectedOrder.size(), orderedDetails.size());
+
+        for (int i = 0; i < expectedOrder.size(); i++)
+        {
+            String expectedFilename = expectedOrder.get(i);
+            String actualFilename = orderedDetails.get(i).getName();
+            assertEquals("Unexpected filename at position " + i, expectedFilename, actualFilename);
+        }
+    }
+
     public void testGetTypedContentForActiveFile() throws Exception
     {
         _rolloverWatcher.onRollover(_baseFolder.toPath(), new String[]{});



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org