You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@lucene.apache.org by mi...@apache.org on 2008/09/04 11:40:30 UTC

svn commit: r691952 - in /lucene/java/trunk: CHANGES.txt src/java/org/apache/lucene/index/IndexCommit.java src/test/org/apache/lucene/index/TestDeletionPolicy.java

Author: mikemccand
Date: Thu Sep  4 02:40:29 2008
New Revision: 691952

URL: http://svn.apache.org/viewvc?rev=691952&view=rev
Log:
LUCENE-1375: added IndexCommit.getTimestamp method

Modified:
    lucene/java/trunk/CHANGES.txt
    lucene/java/trunk/src/java/org/apache/lucene/index/IndexCommit.java
    lucene/java/trunk/src/test/org/apache/lucene/index/TestDeletionPolicy.java

Modified: lucene/java/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/java/trunk/CHANGES.txt?rev=691952&r1=691951&r2=691952&view=diff
==============================================================================
--- lucene/java/trunk/CHANGES.txt (original)
+++ lucene/java/trunk/CHANGES.txt Thu Sep  4 02:40:29 2008
@@ -145,6 +145,10 @@
     constructor and fields from package to protected. (Shai Erera
     via Doron Cohen) 
 
+24. LUCENE-1375: Added convencience method IndexCommit.getTimestamp,
+    which is equivalent to
+    getDirectory().fileModified(getSegmentsFileName()).  (Mike McCandless)
+
 Bug fixes
     
  1. LUCENE-1134: Fixed BooleanQuery.rewrite to only optimize a single 

Modified: lucene/java/trunk/src/java/org/apache/lucene/index/IndexCommit.java
URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/java/org/apache/lucene/index/IndexCommit.java?rev=691952&r1=691951&r2=691952&view=diff
==============================================================================
--- lucene/java/trunk/src/java/org/apache/lucene/index/IndexCommit.java (original)
+++ lucene/java/trunk/src/java/org/apache/lucene/index/IndexCommit.java Thu Sep  4 02:40:29 2008
@@ -112,4 +112,12 @@
   public long getGeneration() {
     throw new UnsupportedOperationException("This IndexCommit does not support this method.");
   }
+
+  /** Convenience method that returns the last modified time
+   *  of the segments_N file corresponding to this index
+   *  commit, equivalent to
+   *  getDirectory().fileModified(getSegmentsFileName()). */
+  public long getTimestamp() throws IOException {
+    return getDirectory().fileModified(getSegmentsFileName());
+  }
 }

Modified: lucene/java/trunk/src/test/org/apache/lucene/index/TestDeletionPolicy.java
URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/test/org/apache/lucene/index/TestDeletionPolicy.java?rev=691952&r1=691951&r2=691952&view=diff
==============================================================================
--- lucene/java/trunk/src/test/org/apache/lucene/index/TestDeletionPolicy.java (original)
+++ lucene/java/trunk/src/test/org/apache/lucene/index/TestDeletionPolicy.java Thu Sep  4 02:40:29 2008
@@ -42,19 +42,24 @@
 
 public class TestDeletionPolicy extends LuceneTestCase
 {
-  private void verifyCommitOrder(List commits) {
+  private void verifyCommitOrder(List commits) throws IOException {
     final IndexCommit firstCommit = ((IndexCommit) commits.get(0));
     long last = SegmentInfos.generationFromSegmentsFileName(firstCommit.getSegmentsFileName());
     assertEquals(last, firstCommit.getGeneration());
     long lastVersion = firstCommit.getVersion();
+    long lastTimestamp = firstCommit.getTimestamp();
     for(int i=1;i<commits.size();i++) {
       final IndexCommit commit = ((IndexCommit) commits.get(i));
       long now = SegmentInfos.generationFromSegmentsFileName(commit.getSegmentsFileName());
       long nowVersion = commit.getVersion();
+      long nowTimestamp = commit.getTimestamp();
       assertTrue("SegmentInfos commits are out-of-order", now > last);
       assertTrue("SegmentInfos versions are out-of-order", nowVersion > lastVersion);
+      assertTrue("SegmentInfos timestamps are out-of-order: now=" + nowTimestamp + " vs last=" + lastTimestamp, nowTimestamp >= lastTimestamp);
       assertEquals(now, commit.getGeneration());
       last = now;
+      lastVersion = nowVersion;
+      lastTimestamp = nowTimestamp;
     }
   }
 
@@ -62,7 +67,7 @@
     int numOnInit;
     int numOnCommit;
     Directory dir;
-    public void onInit(List commits) {
+    public void onInit(List commits) throws IOException {
       verifyCommitOrder(commits);
       numOnInit++;
     }
@@ -83,7 +88,7 @@
   class KeepNoneOnInitDeletionPolicy implements IndexDeletionPolicy {
     int numOnInit;
     int numOnCommit;
-    public void onInit(List commits) {
+    public void onInit(List commits) throws IOException {
       verifyCommitOrder(commits);
       numOnInit++;
       // On init, delete all commit points:
@@ -94,7 +99,7 @@
         assertTrue(commit.isDeleted());
       }
     }
-    public void onCommit(List commits) {
+    public void onCommit(List commits) throws IOException {
       verifyCommitOrder(commits);
       int size = commits.size();
       // Delete all but last one:
@@ -116,14 +121,14 @@
       this.numToKeep = numToKeep;
     }
 
-    public void onInit(List commits) {
+    public void onInit(List commits) throws IOException {
       verifyCommitOrder(commits);
       numOnInit++;
       // do no deletions on init
       doDeletes(commits, false);
     }
 
-    public void onCommit(List commits) {
+    public void onCommit(List commits) throws IOException {
       verifyCommitOrder(commits);
       doDeletes(commits, true);
     }