Return-Path: Delivered-To: apmail-lucene-java-commits-archive@www.apache.org Received: (qmail 41379 invoked from network); 8 Nov 2007 10:21:52 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 8 Nov 2007 10:21:52 -0000 Received: (qmail 34048 invoked by uid 500); 8 Nov 2007 10:21:40 -0000 Delivered-To: apmail-lucene-java-commits-archive@lucene.apache.org Received: (qmail 34021 invoked by uid 500); 8 Nov 2007 10:21:40 -0000 Mailing-List: contact java-commits-help@lucene.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: java-dev@lucene.apache.org Delivered-To: mailing list java-commits@lucene.apache.org Received: (qmail 34010 invoked by uid 99); 8 Nov 2007 10:21:40 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 08 Nov 2007 02:21:40 -0800 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 08 Nov 2007 10:21:51 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 2A1161A9832; Thu, 8 Nov 2007 02:21:31 -0800 (PST) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r593115 - in /lucene/java/trunk/src: java/org/apache/lucene/index/ test/org/apache/lucene/index/ Date: Thu, 08 Nov 2007 10:21:30 -0000 To: java-commits@lucene.apache.org From: mikemccand@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20071108102131.2A1161A9832@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: mikemccand Date: Thu Nov 8 02:21:29 2007 New Revision: 593115 URL: http://svn.apache.org/viewvc?rev=593115&view=rev Log: LUCENE-1047: change MergePolicy & MergeScheduler from interface to abstract base class to have future freedom to add default methods without breaking backwards compatibility Modified: lucene/java/trunk/src/java/org/apache/lucene/index/ConcurrentMergeScheduler.java lucene/java/trunk/src/java/org/apache/lucene/index/LogMergePolicy.java lucene/java/trunk/src/java/org/apache/lucene/index/MergePolicy.java lucene/java/trunk/src/java/org/apache/lucene/index/MergeScheduler.java lucene/java/trunk/src/java/org/apache/lucene/index/SerialMergeScheduler.java lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriter.java Modified: lucene/java/trunk/src/java/org/apache/lucene/index/ConcurrentMergeScheduler.java URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/java/org/apache/lucene/index/ConcurrentMergeScheduler.java?rev=593115&r1=593114&r2=593115&view=diff ============================================================================== --- lucene/java/trunk/src/java/org/apache/lucene/index/ConcurrentMergeScheduler.java (original) +++ lucene/java/trunk/src/java/org/apache/lucene/index/ConcurrentMergeScheduler.java Thu Nov 8 02:21:29 2007 @@ -31,7 +31,7 @@ * having to create and manage application level * threads. */ -public class ConcurrentMergeScheduler implements MergeScheduler { +public class ConcurrentMergeScheduler extends MergeScheduler { private int mergeThreadPriority = -1; Modified: lucene/java/trunk/src/java/org/apache/lucene/index/LogMergePolicy.java URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/java/org/apache/lucene/index/LogMergePolicy.java?rev=593115&r1=593114&r2=593115&view=diff ============================================================================== --- lucene/java/trunk/src/java/org/apache/lucene/index/LogMergePolicy.java (original) +++ lucene/java/trunk/src/java/org/apache/lucene/index/LogMergePolicy.java Thu Nov 8 02:21:29 2007 @@ -37,7 +37,7 @@ * file(s) for the segment.

*/ -public abstract class LogMergePolicy implements MergePolicy { +public abstract class LogMergePolicy extends MergePolicy { /** Defines the allowed range of log(size) for each * level. A level is computed by taking the max segment Modified: lucene/java/trunk/src/java/org/apache/lucene/index/MergePolicy.java URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/java/org/apache/lucene/index/MergePolicy.java?rev=593115&r1=593114&r2=593115&view=diff ============================================================================== --- lucene/java/trunk/src/java/org/apache/lucene/index/MergePolicy.java (original) +++ lucene/java/trunk/src/java/org/apache/lucene/index/MergePolicy.java Thu Nov 8 02:21:29 2007 @@ -52,7 +52,7 @@ * LogByteSizeMergePolicy}.

*/ -public interface MergePolicy { +public abstract class MergePolicy { /** OneMerge provides the information necessary to perform * an individual primitive merge operation, resulting in @@ -152,7 +152,7 @@ /** Exception thrown if there are any problems while * executing a merge. */ - public class MergeException extends RuntimeException { + public static class MergeException extends RuntimeException { public MergeException(String message) { super(message); } @@ -171,9 +171,9 @@ * @param segmentInfos the total set of segments in the index * @param writer IndexWriter instance */ - MergeSpecification findMerges(SegmentInfos segmentInfos, - IndexWriter writer) - throws CorruptIndexException, IOException; + abstract MergeSpecification findMerges(SegmentInfos segmentInfos, + IndexWriter writer) + throws CorruptIndexException, IOException; /** * Determine what set of merge operations are necessary in @@ -190,26 +190,26 @@ * SegmentInfo instances that must be merged away. This * may be a subset of all SegmentInfos. */ - MergeSpecification findMergesForOptimize(SegmentInfos segmentInfos, - IndexWriter writer, - int maxSegmentCount, - Set segmentsToOptimize) - throws CorruptIndexException, IOException; + abstract MergeSpecification findMergesForOptimize(SegmentInfos segmentInfos, + IndexWriter writer, + int maxSegmentCount, + Set segmentsToOptimize) + throws CorruptIndexException, IOException; /** * Release all resources for the policy. */ - void close(); + abstract void close(); /** * Returns true if a newly flushed (not from merge) * segment should use the compound file format. */ - boolean useCompoundFile(SegmentInfos segments, SegmentInfo newSegment); + abstract boolean useCompoundFile(SegmentInfos segments, SegmentInfo newSegment); /** * Returns true if the doc store files should use the * compound file format. */ - boolean useCompoundDocStore(SegmentInfos segments); + abstract boolean useCompoundDocStore(SegmentInfos segments); } Modified: lucene/java/trunk/src/java/org/apache/lucene/index/MergeScheduler.java URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/java/org/apache/lucene/index/MergeScheduler.java?rev=593115&r1=593114&r2=593115&view=diff ============================================================================== --- lucene/java/trunk/src/java/org/apache/lucene/index/MergeScheduler.java (original) +++ lucene/java/trunk/src/java/org/apache/lucene/index/MergeScheduler.java Thu Nov 8 02:21:29 2007 @@ -24,13 +24,13 @@ * selected by a {@link MergePolicy}. The default * MergeScheduler is {@link ConcurrentMergeScheduler}. */ -public interface MergeScheduler { +public abstract class MergeScheduler { /** Run the merges provided by {@link IndexWriter#getNextMerge()}. */ - void merge(IndexWriter writer) + abstract void merge(IndexWriter writer) throws CorruptIndexException, IOException; /** Close this MergeScheduler. */ - void close() + abstract void close() throws CorruptIndexException, IOException; } Modified: lucene/java/trunk/src/java/org/apache/lucene/index/SerialMergeScheduler.java URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/java/org/apache/lucene/index/SerialMergeScheduler.java?rev=593115&r1=593114&r2=593115&view=diff ============================================================================== --- lucene/java/trunk/src/java/org/apache/lucene/index/SerialMergeScheduler.java (original) +++ lucene/java/trunk/src/java/org/apache/lucene/index/SerialMergeScheduler.java Thu Nov 8 02:21:29 2007 @@ -21,7 +21,7 @@ /** A {@link MergeScheduler} that simply does each merge * sequentially, using the current thread. */ -public class SerialMergeScheduler implements MergeScheduler { +public class SerialMergeScheduler extends MergeScheduler { /** Just do the merges in sequence. We do this * "synchronized" so that even if the application is using Modified: lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriter.java URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriter.java?rev=593115&r1=593114&r2=593115&view=diff ============================================================================== --- lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriter.java (original) +++ lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriter.java Thu Nov 8 02:21:29 2007 @@ -1607,7 +1607,7 @@ // Just intercepts all merges & verifies that we are never // merging a segment with >= 20 (maxMergeDocs) docs - private class MyMergeScheduler implements MergeScheduler { + private class MyMergeScheduler extends MergeScheduler { synchronized public void merge(IndexWriter writer) throws CorruptIndexException, IOException {