Create a single ClusteredQueryInvoker for each Distributed LazyIterator
Update to Hibernate Search 5.0.0.Alpha3
Use an HQLParser version which is compatible with Search 5
Apply all package renaming via a replacement script

This is the applied script:

    find . -type f -name \*.java -o -name \*.xml | xargs sed -i '' -f ~/sources/Lucene4Migration.sedscript

where Lucene4Migration.sedscript contains:

s/org.apache.lucene.util.collections.IntToDoubleMap/org.apache.lucene.facet.collections.IntToDoubleMap/g
s/org.apache.lucene.search.Similarity/org.apache.lucene.search.similarities.Similarity/g
s/org.apache.lucene.analysis.KeywordAnalyzer/org.apache.lucene.analysis.core.KeywordAnalyzer/g
s/org.apache.lucene.analysis.SimpleAnalyzer/org.apache.lucene.analysis.core.SimpleAnalyzer/g
s/org.apache.lucene.analysis.StopAnalyzer/org.apache.lucene.analysis.core.StopAnalyzer/g
s/org.apache.solr.analysis.TokenizerFactory/org.apache.lucene.analysis.util.TokenizerFactory/g
s/org.apache.lucene.util.ReaderUtil/org.apache.lucene.index.ReaderUtil/g
s/org.apache.solr.analysis.CharFilterFactory/org.apache.lucene.analysis.util.CharFilterFactory/g
s/org.apache.lucene.analysis.CharTokenizer/org.apache.lucene.analysis.util.CharTokenizer/g
s/org.apache.lucene.search.DefaultSimilarity/org.apache.lucene.search.similarities.DefaultSimilarity/g
s/org.apache.solr.analysis.TokenFilterFactory/org.apache.lucene.analysis.util.TokenFilterFactory/g
s/org.apache.lucene.analysis.ASCIIFoldingFilter/org.apache.lucene.analysis.miscellaneous.ASCIIFoldingFilter/g
s/org.apache.solr.analysis.HTMLStripCharFilterFactory/org.apache.lucene.analysis.charfilter.HTMLStripCharFilterFactory/g
s/org.apache.solr.analysis.ASCIIFoldingFilterFactory/org.apache.lucene.analysis.miscellaneous.ASCIIFoldingFilterFactory/g
s/org.apache.solr.analysis.LengthFilterFactory/org.apache.lucene.analysis.miscellaneous.LengthFilterFactory/g
s/org.apache.solr.analysis.LowerCaseFilterFactory/org.apache.lucene.analysis.core.LowerCaseFilterFactory/g
s/org.apache.solr.analysis.LowerCaseTokenizerFactory/org.apache.lucene.analysis.core.LowerCaseTokenizerFactory/g
s/org.apache.solr.analysis.MappingCharFilterFactory/org.apache.lucene.analysis.charfilter.MappingCharFilterFactory/g
s/org.apache.solr.analysis.ShingleFilterFactory/org.apache.lucene.analysis.shingle.ShingleFilterFactory/g
s/org.apache.solr.analysis.PorterStemFilterFactory/org.apache.lucene.analysis.en.PorterStemFilterFactory/g
s/org.apache.solr.analysis.SnowballPorterFilterFactory/org.apache.lucene.analysis.snowball.SnowballPorterFilterFactory/g
s/org.apache.solr.analysis.StandardFilterFactory/org.apache.lucene.analysis.standard.StandardFilterFactory/g
s/org.apache.solr.analysis.StandardTokenizerFactory/org.apache.lucene.analysis.standard.StandardTokenizerFactory/g
s/org.apache.solr.analysis.StopFilterFactory/org.apache.lucene.analysis.core.StopFilterFactory/g
s/org.apache.solr.analysis.SynonymFilterFactory/org.apache.lucene.analysis.synonym.SynonymFilterFactory/g
s/org.apache.solr.analysis.TrimFilterFactory/org.apache.lucene.analysis.miscellaneous.TrimFilterFactory/g
s/org.apache.solr.analysis.WordDelimiterFilterFactory/org.apache.lucene.analysis.miscellaneous.WordDelimiterFilterFactory/g
s/org.apache.solr.analysis.PhoneticFilterFactory/org.apache.lucene.analysis.phonetic.PhoneticFilterFactory/g
s/org.apache.solr.analysis.PatternTokenizerFactory/org.apache.lucene.analysis.pattern.PatternTokenizerFactory/g
s/org.apache.lucene.queryParser.ParseException/org.apache.lucene.queryparser.classic.ParseException/g
s/org.apache.lucene.queryParser.QueryParser/org.apache.lucene.queryparser.classic.QueryParser/g
s/org.apache.lucene.queryParser.MultiFieldQueryParser/org.apache.lucene.queryparser.classic.MultiFieldQueryParser/g
s/org.apache.solr.analysis.GermanStemFilterFactory/org.apache.lucene.analysis.de.GermanStemFilterFactory/g
s/org.apache.solr.analysis.NGramFilterFactory/org.apache.lucene.analysis.ngram.NGramFilterFactory/g
s/org.apache.lucene.index.TermPositions/org.apache.lucene.index.DocsAndPositionsEnum/g
s/import org.apache.lucene.document.NumericField;/\/\/NumericField was removed in Lucene 4 with no alternative replacement/g
s/import org.apache.lucene.document.FieldSelector;/\/\/FieldSelector was removed in Lucene 4 with no alternative replacement/g
s/import org.apache.lucene.index.TermDocs;/\/\/TermDocs was removed in Lucene 4 with no alternative replacement/g
s/import org.apache.lucene.index.TermEnum;/\/\/TermEnum was removed in Lucene 4 with no alternative replacement/g
s/import org.apache.lucene.index.TermFreqVector;/\/\/TermFreqVector was removed in Lucene 4 with no alternative replacement/g
s/import org.apache.lucene.document.FieldSelector;/\/\/FieldSelector was removed in Lucene 4 with no alternative replacement/g
s/import org.apache.lucene.index.TermVectorMapper;/\/\/TermVectorMapper was removed in Lucene 4 with no alternative replacement/g
s/import org.apache.lucene.document.Fieldable;/\/\/Fieldable was removed in Lucene 4 with no alternative replacement/g
s/import org.apache.lucene.document.MapFieldSelector;/\/\/MapFieldSelector was removed in Lucene 4 with no alternative replacement/g
s/import org.apache.lucene.index.Payload;/\/\/Payload was removed in Lucene 4 with no alternative replacement/g
s/import org.apache.lucene.analysis.tokenattributes.TermAttribute;/\/\/TermAttribute was removed in Lucene 4 with no alternative replacement/g
s/import org.apache.lucene.document.FieldSelectorResult;/\/\/FieldSelectorResult was removed in Lucene 4 with no alternative replacement/g
s/import org.apache.lucene.index.TermPositionVector;/\/\/org.apache.lucene.index.TermPositionVector was removed in Lucene 4 with no alternative replacement/g
s/import org.apache.lucene.index.TermVectorOffsetInfo;/\/\/org.apache.lucene.index.TermVectorOffsetInfo was removed in Lucene 4 with no alternative replacement/g
s/import org.apache.lucene.util.SortedVIntList;/\/\/SortedVIntList was removed in Lucene 4 with no alternative replacement/g
s/import org.apache.solr.analysis.BaseTokenFilterFactory;/\/\/org.apache.solr.analysis.BaseTokenFilterFactory was removed in Lucene 4 with no alternative replacement/g
Redefine the Infinispan Query / Hibernate Search dependency structure
Change default lucene_version testing attribute to LUCENE_48
Update to new API: tests to match Lucene 4 API, Service handling changes in the Search SPI
Apply package renaming of Hibernate Search 5 APIs via a replacement script

This is the applied script:

    find . -type f -name \*.java -o -name \*.xml | xargs sed -i '' -f ~/sources/Search5Migration.sedscript

where Search5Migration.sedscript contains:

s/org.hibernate.search.Environment/org.hibernate.search.cfg.Environment/g
s/org.hibernate.search.SearchFactory/org.hibernate.search.engine.SearchFactory/g
s/org.hibernate.search.SearchException/org.hibernate.search.exception.SearchException/g
s/org.hibernate.search.FullTextFilter/org.hibernate.search.filter.FullTextFilter/g
s/org.hibernate.search.Version/org.hibernate.search.engine.Version/g
s/org.hibernate.search.ProjectionConstants/org.hibernate.search.engine.ProjectionConstants/g
s/org.hibernate.search.spi.MassIndexerFactory/org.hibernate.search.batchindexing.spi.MassIndexerFactory/g
Additional API changes of Hibernate Search5
Introduce custom Externalizers in the Query module: BooleanQuery serialization support
Add Externalizer for TermQuery
Introduce Externalizer for Lucene Term
Introduce Externalizer for Lucene Sort and SortField
Include ClusteredTopDocs and TopDocs Externalizer
Externalizer for ScoreDoc
Add Externalizer for TopFieldDocs
Include an Externalizer integration test focusing on Lucene Term
Improve code for ClusteredQueryTest
Review PriorityQueue handling
Refactoring in DistributedIterator