Lucene 2.3.2 Files:
---------------

DONE ISH	analysis\Analyzer.java				- Needs testing of mem-leaks caused by the reusableTokenStream interface. See http://permalink.gmane.org/gmane.comp.jakarta.lucene.clucene.devel/3359. Currently all class-specific data is being released on its destructor, and the Tokenizer is never being released by the Analyzer.
?	analysis\CachingTokenFilter.java
?	analysis\CharArraySet.java
?	analysis\CharTokenizer.java
?	analysis\ISOLatin1AccentFilter.java
?	analysis\KeywordTokenizer.java
?	analysis\LetterTokenizer.java
?	analysis\LowerCaseFilter.java
?	analysis\LowerCaseTokenizer.java
?	analysis\SinkTokenizer.java
?	analysis\standard\StandardAnalyzer.java
?	analysis\standard\StandardFilter.java
?	analysis\standard\StandardTokenizer.java
?	analysis\standard\StandardTokenizerImpl.java
?	analysis\standard\StandardTokenizerImpl.jflex
DONE ISH	analysis\StopAnalyzer.java				- reusableTokenStream and StopAnalyzer(Set stopWords) were not implemented. May need to revisit reusableTokenStream()
?	analysis\TeeTokenFilter.java
?	analysis\Token.java
?	analysis\TokenFilter.java
DONE ISH	analysis\TokenStream.java				- Should we keep next() deprecated for performance reasons, or comply with JL? Also, check to see if reset() is required here at all, or can be defined for Tokenizer only (one level above)
DONE ISH	analysis\WhitespaceTokenizer.java
DONE ISH	analysis\WordlistLoader.java				- Missing getStemDict
DONE ISH	document\DateTools.java				- TODO: Create a test suite for this based on values tested with Java Lucene



DONE ISH	queryParser\MultiFieldQueryParser.java	- Some tests are missing
DONE ISH	queryParser\QueryParser.java		- Missing Locale and Calendar support (for RangeQuery) and some tests. _tcstod.
IRRELEVANT	queryParser\QueryParser.jj
DONE ISH	queryParser\QueryParserConstants.java
DONE ISH	queryParser\QueryParserTokenManager.java	- PrintStream implementation is missing (if at all necessary)
DONE ISH	queryParser\Token.java			- If LUCENE_TOKEN_WORD_LENGTH is still necessary, it needs to be implemented in the new code, and have tests written to make sure it works flawlessly with the new QP. Currently it's half implemented.
DONE ISH	queryParser\TokenMgrError.java		- Integrated within QueryParserTokenManager as functions

?	search\BooleanScorer.java
?	search\DisjunctionMaxQuery.java - new file, not ported yet
?	search\ExtendedFieldCache.java
?	search\ExtendedFieldCacheImpl.java
?	search\FieldCache.java
?	search\FieldCacheImpl.java
?	search\FieldDoc.java
?	search\FieldDocSortedHitQueue.java
?	search\FieldSortedHitQueue.java
?	search\FilteredQuery.java
DONE ISH	search\FilteredTermEnum.java		- Can we mend term(void) and term(bool) ?
?	search\FilterManager.java
DONE ISH	search\FuzzyQuery.java			- See TODOs.
DONE ISH	search\FuzzyTermEnum.java			- See TODOs. Also, Old similarity code is commented out and marked as "legacy". It looks like some optimizations were made there, but since Fuzzy queries weren't working as they should we had to revert to Java's implementation. Perhaps after tests are complete we could try and get the optimized version to work again.
?	search\Hit.java
?	search\HitIterator.java
DONE ISH	search\Hits.java				- Needs rethinking of why Query* is used instead of Weight*
PARTIAL	search\IndexSearcher.java			- Almost no difference. See todo and complete comparison between JL and CL.
?	search\MultiSearcher.java
?	search\PhrasePositions.java
?	search\QueryFilter.java
?	search\QueryTermVector.java
?	search\QueryWrapperFilter.java
?	search\RemoteSearchable.java
?	search\Searchable.java			- Any idea why the explain() function in Searchable and derived differs from Java (accepts Query* instead of Weight*)? can we safely confrom with Java now?
?	search\Similarity.java
?	search\SimilarityDelegator.java
DONE ISH	search\TermQuery.java			- Missing implementation for extractTerms(Set)
?	search\TopDocCollector.java
?	search\TopFieldDocCollector.java

PARTIAL JW	store\NativeFSLockFactory.java - 1 class implemented as FSLockFactory
PARTIAL JW	store\SimpleFSLockFactory.java - 1 class implemented as FSLockFactory
?	store\VerifyingLockFactory.java

?	util\ScorerDocQueue.java

Pending: waiting on other things...
DONE ISH	search\Filter.java				- Remove virtual toString once CachingWrapperFilter and ChainedFilter (does not exist in JL?) conform to JL. Missing equals() and hashCode() virtual functions, hence all derived miss this as well.
PARTIAL ISH 	search\RangeFilter.java			- Missing hashCode() and equals() -- see comment on Filter. Needs testing for bits() and toString().

Finished except a few functions:
DONE ISH	search\PhraseQuery.java			- extractTerms(Set) was never ported (probably not needed). Inconsitency in return value of getPositions getTerms.
DONE ISH	search\Query.java			- Missing implementation for extractTerms(Set terms)
DONE ISH	search\MultiTermQuery.java			- hashcode and equals were never ported
DONE ISH	search\MatchAllDocsQuery.java	- MatchAllDocsWeight::explain needs to support ComplexExplanation in order to set "match", plus we might want to reconsider returning void instead of Explanation* in Weight::explain an derived
DONE ISH	search\MultiPhraseQuery.java	- Complete TODOs (2 unported functions, test hashCode(), clone(), and decide on memory contract for rewrite)
DONE ISH	index\SegmentTermPositions.java			- getPayload is still incomplete
DONE ISH	search\ConstantScoreQuery.java		- See TODOs
DONE ISH	search\ConstantScoreRangeQuery.java	- See TODOs

CMake:
Check todos in (_)clucene-config.h.cmake. Some checks arent being done yet.
for example: _CL_HAVE_PTHREAD_MUTEX_RECURSIVE
get rid of Misc.h, repl_*
check up on sub-folders bug (analysis/standard)
MapViewOfFile issues (cmake not picking up functions in kernel32)
Use safe CRT where possible. For example, make _tcsdup / stringDuplicate require n and call the _s version if cmake realizes it exists

Misc TODOs:







Post v1 Final:
DONE ISH	analysis\StopFilter.java				- Should we implement a CharArraySet or similar? Radix/PATRICIA maybe?
DONE ISH	analysis\TokenStream.java				- Should we keep next() deprecated for performance reasons, or comply with JL? (ben: for me, it's fine as it is now) Also, check to see if reset() is required here at all, or can be defined for Tokenizer only (one level above)
DONE ISH	analysis\WordlistLoader.java				- Missing getStemDict
DONE ISH	document\DateTools.java				- TODO: Create a test suite for this based on values tested with Java Lucene
PARTIAL ISH/BEN	index\SegmentInfos.java				- Still requires some testing of the sub-classes under SegmentInfos used for the retry mechanism, the write function (only after reading totally conforms with JL)

?	search\CachingSpanFilter.java
?	search\CachingWrapperFilter.java
? 	index\SortedTermVectorMapper.java			-alt
?	index\TermVectorEntryFreqSortedComparator.java 		-alt
? 	index\PositionBasedTermVectorMapper.java 		-alt
?	index\CheckIndex.java
DONE BEN search\BooleanScorer2.java
?	search\SpanFilter.java
?	search\SpanFilterResult.java
?	search\SpanQueryFilter.java
?	search\spans\NearSpansOrdered.java
?	search\spans\NearSpansUnordered.java
?	search\spans\SpanFirstQuery.java
?	search\spans\SpanNearQuery.java
?	search\spans\SpanNotQuery.java
?	search\spans\SpanOrQuery.java
?	search\spans\SpanQuery.java
?	search\spans\Spans.java
?	search\spans\SpanScorer.java
?	search\spans\SpanTermQuery.java
?	search\spans\SpanWeight.java
?	search\spans\TermSpans.java
?	search\function\ByteFieldSource.java
?	search\function\CustomScoreQuery.java
?	search\function\DocValues.java
?	search\function\FieldCacheSource.java
?	search\function\FieldScoreQuery.java
?	search\function\FloatFieldSource.java
?	search\function\IntFieldSource.java
?	search\function\OrdFieldSource.java
?	search\function\ReverseOrdFieldSource.java
?	search\function\ShortFieldSource.java
?	search\function\ValueSource.java
?	search\function\ValueSourceQuery.java
?	index\ConcurrentMergeScheduler.java
?	index\SnapshotDeletionPolicy.java
?	index\ParallelReader.java
?	store\LockStressTest.java
?	store\LockVerifyServer.java
?	search\ParallelMultiSearcher.java
?	search\payloads\BoostingTermQuery.java
?	search\RemoteCachingWrapperFilter.java







"Archived"
DONE ISH	document\Fieldable.java				- Merged into Field
DONE ISH	document\FieldSelector.java
DONE ISH	document\FieldSelectorResult.java
DONE ISH	document\LoadFirstFieldSelector.java
DONE ISH	document\NumberTools.java
DONE BEN	document\MapFieldSelector.java
DONE BEN	document\SetBasedFieldSelector.java (Irrelevent, actually, we achive both in MapFieldSelector)
DONE ISH	document\Document.java				- All Fieldable mentiones were kept Field*.
DONE ISH	document\Field.java				- Still need to complete all TODOs in file

DONE ISH	queryParser\ParseException.java		- Done, integrated within QueryParser as functions (no special Exception class required)

DONE ISH/BEN    index\TermInfosReader.java
DONE ISH	index\FieldsReader.java
DONE BEN	index\FieldsWriter.java
DONE ISH	index\TermVectorMapper.java
DONE ISH	index\TermVectorOffsetInfo.java
DONE ISH	index\TermVectorsReader.java
DONE ISH/BEN	index\SegmentInfo.java
DONE BEN	index\StaleReaderException.java
DONE BEN	index\TermBuffer.java (actually, not nessary, Term has the same functionality)
DONE BEN	index\TermInfosWriter.java
DONE ISH	index\FieldInfo.java
DONE ISH	index\SegmentMergeInfo.java
DONE ISH	index\SegmentMergeQueue.java
DONE ISH	index\SegmentTermVector.java
DONE ISH	index\Term.java
DONE ISH	index\TermDocs.java
DONE ISH	index\TermEnum.java
DONE ISH	index\TermFreqVector.java
DONE ISH	index\TermInfo.java
DONE ISH	index\TermPositions.java
DONE ISH	index\TermPositionVector.java
IRRELEVANT	LucenePackage.java
DONE ISH	queryParser\CharStream.java
DONE ISH	queryParser\FastCharStream.java
DONE ISH	index\CompoundFileReader.java
DONE BEN	index\CompoundFileWriter.java
DONE BEN	index\CorruptIndexException.java
DONE ISH	index\DefaultSkipListReader.java
DONE BEN	index\DefaultSkipListWriter.java
DONE BEN	index\DirectoryIndexReader.java
DONE BEN	index\DocumentsWriter.java
DONE ISH	index\FieldInfos.java
DONE BEN	index\FieldReaderException.java
DONE ISH	index\FieldSortedTermVectorMapper.java
DONE ISH 	index\FilterIndexReader.java
DONE BEN	index\IndexCommitPoint.java
DONE BEN	index\IndexDeletionPolicy.java
DONE BEN	index\IndexFileDeleter.java
DONE BEN	index\IndexFileNameFilter.java
DONE JW		index\IndexFileNames.java
DONE BEN	index\IndexModifier.java
DONE BEN	index\IndexReader.java
DONE BEN	index\IndexWriter.java
DONE BEN	index\KeepOnlyLastCommitDeletionPolicy.java
DONE BEN	index\LogByteSizeMergePolicy.java
DONE BEN	index\LogDocMergePolicy.java
DONE BEN	index\LogMergePolicy.java
DONE BEN	index\MergePolicy.java
DONE BEN	index\MergeScheduler.java
DONE ISH	index\MultiLevelSkipListReader.java
DONE BEN	index\MultiLevelSkipListWriter.java
DONE BEN	index\MultiReader.java
DONE BEN	index\MultiSegmentReader.java
DONE ISH	index\Payload.java
DONE BEN	index\SegmentMerger.java
DONE BEN	index\SegmentReader.java
DONE BEN	index\SegmentTermDocs.java
DONE BEN	index\SegmentTermEnum.java
DONE ISH	index\SegmentTermPositionVector.java
DONE BEN	index\SerialMergeScheduler.java
DONE BEN	index\TermVectorEntry.java
DONE BEN	index\TermVectorsWriter.java


DONE ISH/BEN	index\MultipleTermPositions.java
DONE BEN	search\BooleanQuery.java
DONE BEN	search\DefaultSimilarity.java
DONE BEN	search\ConjunctionScorer.java
DONE ISH	search\SloppyPhraseScorer.java
DONE ISH	search\ExactPhraseScorer.java
DONE BEN	search\NonMatchingScorer.java		- This class is under BooleanScorer2 - should this ever be used anywhere else in the namespace it's going to be a problem. Perhaps we should move it now already outside to the namespace scope?
DONE BEN	search\ReqExclScorer.java 		  	- This class is under BooleanScorer2 - should this ever be used anywhere else in the namespace it's going to be a problem. Perhaps we should move it now already outside to the namespace scope?
DONE BEN	search\ReqOptSumScorer.java		  - This class is under BooleanScorer2 - should this ever be used anywhere else in the namespace it's going to be a problem. Perhaps we should move it now already outside to the namespace scope?
DONE BEN	search\PhraseQueue.java
DONE ISH	search\PhraseScorer.java
DONE ISH	search\DisjunctionSumScorer.java
DONE ISH	search\ComplexExplanation.java
DONE BEN	search\HitQueue.java                - no changes
DONE BEN  search\Weight.java
DONE BEN	search\TopDocs.java
DONE ISH	search\PrefixQuery.java
DONE BEN	search\RangeQuery.java
DONE ISH	search\ScoreDocComparator.java
DONE ISH	search\Scorer.java
DONE BEN	search\Searcher.java			- no changes
DONE BEN	search\SortComparator.java
DONE BEN	search\SortComparatorSource.java
DONE BEN	search\TopFieldDocs.java			- no changes
DONE BEN	search\WildcardQuery.java
DONE BEN	search\WildcardTermEnum.java		- no changes
DONE ISH	search\BooleanClause.java			- Should we change the flags in Occur to be named with an OCCUR_ prefix, since they're being used as BooleanClause::SHOULD all throughout the code?
BEN DONE  search\PrefixFilter.java      - all done
BEN DONE  search\SortField.java
BEN DONE  search\Sort.java
BEN DONE search\TermScorer.java
DONE ISH	search\Explanation.java			- Why can't we use TCHAR* for description?
DONE ISH	search\ScoreDoc.java			- Implemented. Java Lucene has a constructor for it, we don't.
DONE ISH	search\HitCollector.java			- No changes, abstract class


IRRELEVANT	analysis\PorterStemFilter.java  - deprecated
IRRELEVANT	analysis\PorterStemmer.java  - deprecated
DONE ISH	analysis\WhitespaceAnalyzer.java
DONE ISH	analysis\PerFieldAnalyzerWrapper.java		- toString() not yet implemented
DONE ISH	analysis\LengthFilter.java
DONE ISH	analysis\KeywordAnalyzer.java
DONE ISH	analysis\SimpleAnalyzer.java
DONE ISH	analysis\Tokenizer.java			-- Should we delete input on destructor and close? perhaps allow this through an optional parameter?

DONE ISH	store\IndexInput.java			- Clone method implemented as constructor only
IRRELEVANT	store\AlreadyClosedException.java		- Using CL_ERR_IllegalState for this
DONE JW		store\Directory.java
DONE JW		store\FSDirectory.java
DONE JW		store\NoLockFactory.java
DONE JW		store\RAMDirectory.java
DONE JW		store\RAMFile.java
DONE JW		store\RAMInputStream.java
DONE JW		store\RAMOutputStream.java
DONE ISH	store\IndexOutput.java
DONE JW		store\Lock.java
DONE JW		store\LockFactory.java
IRRELEVANT	store\LockObtainFailedException.java
IRRELEVANT	store\LockReleaseFailedException.java
IRRELEVANT	store\MMapDirectory.java
DONE JW	store\SingleInstanceLockFactory.java
DONE ISH	store\BufferedIndexInput.java
DONE ISH	store\BufferedIndexOutput.java
DONE ISH	document\AbstractField.java				- Merged into Field
DEPRECATED	document\DateField.java

DONE BEN	util\BitVector.java
DONE BEN	util\Constants.java
DONE BEN	util\Parameter.java
DONE BEN	util\SmallFloat.java
DONE BEN	util\StringHelper.java
DONE ISH	util\ToStringUtils.java
DONE JW		util\PriorityQueue.java

Update jstreams from latest code of Strigi: strigi isn't really used anymore... we can link to it as necessary...
Create an auxiliary namespace with all the platform-dependant code, to enable static linking to it by contrib, tests and other apps which might need this: that's what the clucene-shared lib is
update Internal* internal to be named otherwise (internal is a preserved word in VS; perhaps ChesireCat* chesCat?)? renamed to _internal
