You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucenenet.apache.org by ni...@apache.org on 2020/02/09 06:15:52 UTC

[lucenenet] branch master updated (26c0145 -> f9e8fc0)

This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git.


    from 26c0145  Fixed merge conflict: Removed CommonAssemblyKeys.cs reference from Lucene.Net.csproj
     new 9843db6  Upgraded J2N to 2.0.0-beta-0002 and ICU4N to 60.1.0-alpha.203
     new 57cd889  azure-pipelines.yml, run-tests-on-os.yml: Upgraded UseDotNet task to version 2
     new e315e91  Lucene.Net.Facet, Lucene.Net.QueryParser: Factored out LurchTable in favor of J2N's implementation
     new 933e345  BREAKING: Lucene.Net.Support.Threading: Deleted unused ThreadLock class
     new 3eb9d39  BREAKING: Lucene.Net.Support.Threading: Marked ICompletionService and TaskSchedulerCompletionService internal
     new 30efa44  BREAKING: Lucene.Net.Support.Threading: Deleted unused DisposableThreadLocalProfiler
     new e29dc7c  BREAKING: Lucene.Net.Support.Threading: Marked ReentrantLock internal
     new de0f149  BREAKING: Lucene.Net.Support.Threading: Marked LimitedConcurrencyLevelTaskScheduler internal
     new 81946c4  BREAKING: Factored out Lucene.Net.Support.AssemblyExtensions in favor of J2N's implementation
     new 20f75fd  BREAKING: Lucene.Net.Support: Marked ICallable interface internal
     new bb5d6bd  BREAKING: Lucene.Net.Support: Marked Arrays and Collections classes internal
     new d12e918  BREAKING: Lucene.Net.Support: Marked AssemblyUtils internal
     new 9c867a1  BREAKING: Lucene.Net.Support: Marked BitArrayExtensions internal
     new 22d52a9  BREAKING: Lucene.Net.Support: Marked DictionaryExtensions, EnumerableExtensions, and SetExtensions internal
     new 9f66ace  BREAKING: Lucene.Net.Support: Marked Number class internal
     new 3fe4203  BREAKING: Lucene.Net.Support: Marked Time class internal, factored out CurrentTimeMilliseconds() in favor of J2N's
     new 608bbe3  BREAKING: Lucene.Net.Support: Marked IdentityWeakReference internal
     new d8edac2  BREAKING: Lucene.Net.Support.IO: Marked BinaryReaderDataInput, BinaryReaderDataOutput and ByteArrayOutputStream internal
     new c3c7f7a  BREAKING: Lucene.Net.Support.IO: Marked FileStreamExtensions and StreamExtensions internal
     new 6cd02b4  BREAKING: Lucene.Net.Support.IO: Marked SafeTextWriterWrapper internal
     new 7ae3267  BREAKING: Lucene.Net.Support.IO: Marked FileSupport class internal
     new 06a327f  BREAKING: Moved Lucene.Net.Support.SystemConsole to Lucene.Net.Util namespace
     new f396231  BREAKING: Lucene.Net.Support: Marked RectangularArrays internal
     new 6e88977  BREAKING: Lucene.Net.Support.CRC32, Lucene.Net.Support.IChecksum, Lucene.Net.Store.BufferedChecksum: Marked internal now to prevent a future breaking change, since the plan is to use HashAlgorithm as a replacement for IChecksum (see LUCENENET-637)
     new 6412f5d  BREAKING: Lucene.Net.Support: Moved ExceptionExtensions to Lucene.Net.Util namespace
     new 2632993  BREAKING: Lucene.Net.Support.ListExtensions: Moved AddRange, Sort, TimSort, and IntroSort extension methods to Lucene.Net.Util.ListExtensions. Marked Lucene.Net.Support.ListExtensions internal.
     new f062c04  BREAKING: Lucene.Net.Support.NumberFormat: Moved to Lucene.Net.Util namespace
     new 86d1694  BREAKING: Lucene.Net.TestFramework.Support.JavaCompatibility.AbstractBeforeAfterRule: Moved from Lucene.Net.Support namespace to Lucene.Net.Util
     new 36abc9a  BREAKING: Lucene.Net.TestFramework.Support: Changed namespace of ApiScanTestBase, CultureInfoSupport, and ExceptionSerializationTestBase to Lucene.Net.Util
     new 4452aa4  BREAKING: Lucene.Net.Util.NumberFormat, Lucene.Net.QueryParsers.Flexible.Standard.Config.NumberDateFormat: Changed protected locale field to private, made property named Culture, and changed constructors and methods to use "culture" rather than "locale" for parameter names
     new 79eeb85  BREAKING: Lucene.Net.Support: Moved SystemProperties class to Lucene.Net.Util namespace
     new 67013f1  BREAKING: Lucene.Net.Benchmark.Support: Moved EnglishNumberFormatExtensions to Lucene.Net.Util namespace
     new 5da2567  Lucene.Net.Support.IO.FileStreamExtensions::Read(): Moved to StreamExtensions class and optimized to read bytes in bulk instead of one byte at a time (fixes LUCENENET-643)
     new 039f380  Upgraded Morfologik.Stemming to 2.1.6-beta-0004
     new f9e8fc0  BUG: Lucene.Net.Search.BooleanClause::Equals(BooleanClause): Fixed potential null reference exception when Query is set to null

The 35 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 Lucene.Net.sln                                     |   22 +-
 azure-pipelines.yml                                |    2 +-
 build/Dependencies.props                           |    6 +-
 build/azure-templates/run-tests-on-os.yml          |    2 +-
 .../CharFilter/MappingCharFilterFactory.cs         |    6 +-
 .../Analysis/Compound/Hyphenation/PatternParser.cs |    4 +-
 .../Analysis/Util/ClasspathResourceLoader.cs       |    6 +-
 .../Analysis/Util/StopwordAnalyzerBase.cs          |   12 +-
 .../Analysis/Icu/ICUFoldingFilter.cs               |   16 +-
 .../Icu/Segmentation/DefaultICUTokenizerConfig.cs  |    6 +-
 .../Dict/BinaryDictionary.cs                       |    6 +-
 .../JapaneseTokenizer.cs                           |    2 +-
 .../Tools/DictionaryBuilder.cs                     |    2 +-
 .../Tools/TokenInfoDictionaryBuilder.cs            |    2 +-
 .../Uk/UkrainianMorfologikAnalyzer.cs              |    6 +-
 .../Language/Bm/Lang.cs                            |    5 +-
 .../Language/Bm/Languages.cs                       |    5 +-
 .../Language/Bm/PhoneticEngine.cs                  |   48 +-
 .../Language/Bm/Rule.cs                            |   58 +-
 .../Language/DaitchMokotoffSoundex.cs              |   27 +-
 src/Lucene.Net.Analysis.SmartCn/AnalyzerProfile.cs |    2 +-
 .../Hhmm/BigramDictionary.cs                       |    5 +-
 .../Hhmm/WordDictionary.cs                         |    5 +-
 .../Egothor.Stemmer/Compile.cs                     |    4 +-
 .../Egothor.Stemmer/DiffIt.cs                      |    4 +-
 .../Pl/PolishAnalyzer.cs                           |   35 +-
 src/Lucene.Net.Benchmark/ByTask/Benchmark.cs       |    2 +-
 .../ByTask/Feeds/ContentItemsSource.cs             |    4 +-
 .../ByTask/Feeds/EnwikiQueryMaker.cs               |    2 +-
 .../ByTask/Feeds/FileBasedQueryMaker.cs            |    9 +-
 .../ByTask/Feeds/LongToEnglishContentSource.cs     |    2 +-
 .../ByTask/Feeds/ReutersQueryMaker.cs              |    2 +-
 .../ByTask/Feeds/SpatialDocMaker.cs                |    2 +-
 .../ByTask/Feeds/TrecContentSource.cs              |    2 +-
 src/Lucene.Net.Benchmark/ByTask/PerfRunData.cs     |    4 +-
 .../ByTask/Programmatic/Sample.cs                  |    2 +-
 src/Lucene.Net.Benchmark/ByTask/Stats/TaskStats.cs |    2 +-
 .../ByTask/Tasks/CloseReaderTask.cs                |    2 +-
 .../ByTask/Tasks/CloseTaxonomyReaderTask.cs        |    2 +-
 .../ByTask/Tasks/CreateIndexTask.cs                |    2 +-
 .../ByTask/Tasks/NearRealtimeReaderTask.cs         |   10 +-
 .../ByTask/Tasks/NewCollationAnalyzerTask.cs       |    2 +-
 .../ByTask/Tasks/NewLocaleTask.cs                  |    2 +-
 src/Lucene.Net.Benchmark/ByTask/Tasks/PerfTask.cs  |    2 +-
 .../ByTask/Tasks/PrintReaderTask.cs                |    2 +-
 src/Lucene.Net.Benchmark/ByTask/Tasks/ReadTask.cs  |    2 +-
 .../ByTask/Tasks/RepAllTask.cs                     |    2 +-
 .../ByTask/Tasks/RepSelectByPrefTask.cs            |    2 +-
 .../ByTask/Tasks/RepSumByNameRoundTask.cs          |    2 +-
 .../ByTask/Tasks/RepSumByNameTask.cs               |    2 +-
 .../ByTask/Tasks/RepSumByPrefRoundTask.cs          |    2 +-
 .../ByTask/Tasks/RepSumByPrefTask.cs               |    2 +-
 .../ByTask/Tasks/TaskSequence.cs                   |   18 +-
 src/Lucene.Net.Benchmark/ByTask/Utils/Config.cs    |   12 +-
 .../Quality/QualityBenchmark.cs                    |   10 +-
 .../Quality/Trec/QueryDriver.cs                    |    2 +-
 .../Quality/Utils/QualityQueriesFinder.cs          |    2 +-
 .../{ => Util}/EnglishNumberFormatExtensions.cs    |    2 +-
 src/Lucene.Net.Benchmark/Utils/ExtractReuters.cs   |    2 +-
 src/Lucene.Net.Benchmark/Utils/ExtractWikipedia.cs |    6 +-
 .../JS/JavascriptCompiler.cs                       |    4 +-
 src/Lucene.Net.Facet/Taxonomy/LRUHashMap.cs        |   16 +-
 .../Taxonomy/WriterCache/NameIntCacheLRU.cs        |   31 +-
 src/Lucene.Net.Misc/Index/CompoundFileExtractor.cs |    2 +-
 src/Lucene.Net.Misc/Index/IndexSplitter.cs         |    2 +-
 .../Index/MultiPassIndexSplitter.cs                |    2 +-
 src/Lucene.Net.Misc/Misc/GetTermInfo.cs            |    2 +-
 src/Lucene.Net.Misc/Misc/HighFreqTerms.cs          |    2 +-
 src/Lucene.Net.Misc/Misc/IndexMergeTool.cs         |    2 +-
 .../Classic/FastCharStream.cs                      |    2 +-
 .../Flexible/Standard/Config/NumberDateFormat.cs   |   36 +-
 .../Flexible/Standard/Config/NumericConfig.cs      |   34 +-
 .../Flexible/Standard/Nodes/NumericQueryNode.cs    |    8 +-
 .../Parser/StandardSyntaxParserTokenManager.cs     |    2 +-
 .../Processors/NumericQueryNodeProcessor.cs        |    2 +-
 .../Processors/NumericRangeQueryNodeProcessor.cs   |    2 +-
 .../RemoveEmptyNonLeafQueryNodeProcessor.cs        |    2 +-
 .../Surround/Parser/FastCharStream.cs              |    2 +-
 .../Xml/Builders/CachedFilterBuilder.cs            |    4 +-
 .../Serialized/SerializedDVStrategy.cs             |    3 +-
 .../Analysis/BaseTokenStreamTestCase.cs            |    5 +-
 .../Analysis/LookaheadTokenFilter.cs               |    2 +-
 .../Analysis/MockAnalyzer.cs                       |    2 +-
 .../Analysis/MockGraphTokenFilter.cs               |    2 +-
 .../Analysis/MockRandomLookaheadTokenFilter.cs     |    2 +-
 .../Analysis/TokenStreamToDot.cs                   |    2 +-
 .../Codecs/Lucene3x/PreFlexRWPostingsFormat.cs     |    2 +-
 .../Codecs/MockRandom/MockRandomPostingsFormat.cs  |    2 +-
 .../Index/BasePostingsFormatTestCase.cs            |    2 +-
 .../Index/BaseStoredFieldsFormatTestCase.cs        |    2 +-
 src/Lucene.Net.TestFramework/Index/RandomCodec.cs  |    2 +-
 .../Index/RandomIndexWriter.cs                     |    2 +-
 .../Index/ThreadedIndexingAndSearchingTestCase.cs  |    2 +-
 .../Search/ShardSearchingTestBase.cs               |    2 +-
 .../Store/MockDirectoryWrapper.cs                  |    2 +-
 .../Store/MockIndexOutputWrapper.cs                |    2 +-
 .../Support/ApiScanTestBase.cs                     |   29 +-
 .../Support/CultureInfoSupport.cs                  |    2 +-
 .../Support/ExceptionSerializationTestBase.cs      |    4 +-
 .../JavaCompatibility/AbstractBeforeAfterRule.cs   |   36 -
 .../JavaCompatibility/SystemTypesHelpers.cs        |    7 +-
 .../Util/AbstractBeforeAfterRule.cs                |  123 +-
 src/Lucene.Net.TestFramework/Util/Fst/FSTTester.cs |    2 +-
 src/Lucene.Net.TestFramework/Util/LineFileDocs.cs  |    2 +-
 .../Util/LuceneTestCase.cs                         |    4 +-
 .../Util/RunListenerPrintReproduceInfo.cs          |    2 +-
 .../Util/TestRuleAssertionsRequired.cs             |    2 +-
 .../Util/TestRuleSetupAndRestoreClassEnv.cs        |    2 +-
 src/Lucene.Net.TestFramework/Util/TestUtil.cs      |    2 +-
 .../Analysis/Ar/TestArabicNormalizationFilter.cs   |    2 +-
 .../Analysis/Ar/TestArabicStemFilter.cs            |    2 +-
 .../Analysis/Bg/TestBulgarianStemmer.cs            |    2 +-
 .../Analysis/Br/TestBrazilianStemmer.cs            |    2 +-
 .../CharFilters/HTMLStripCharFilterTest.cs         |    4 +-
 .../Analysis/CharFilters/TestMappingCharFilter.cs  |   14 +-
 .../Analysis/Cjk/TestCJKAnalyzer.cs                |    8 +-
 .../Analysis/Cjk/TestCJKBigramFilter.cs            |   10 +-
 .../Analysis/Cjk/TestCJKWidthFilter.cs             |    4 +-
 .../Analysis/Ckb/TestSoraniNormalizationFilter.cs  |    2 +-
 .../Analysis/Ckb/TestSoraniStemFilter.cs           |    2 +-
 .../Analysis/Cn/TestChineseTokenizer.cs            |    4 +-
 .../Analysis/Commongrams/CommonGramsFilterTest.cs  |    8 +-
 .../Compound/TestCompoundWordTokenFilter.cs        |   12 +-
 .../Analysis/Core/TestAnalyzers.cs                 |    4 +-
 .../Analysis/Core/TestBugInSomething.cs            |   10 +-
 .../Analysis/Core/TestDuelingAnalyzers.cs          |   12 +-
 .../Analysis/Core/TestFactories.cs                 |    4 +-
 .../Analysis/Core/TestRandomChains.cs              |    9 +-
 .../Analysis/Core/TestStandardAnalyzer.cs          |    8 +-
 .../Analysis/Core/TestStopFilter.cs                |    4 +-
 .../Analysis/Core/TestTypeTokenFilter.cs           |    2 +-
 .../Analysis/Core/TestUAX29URLEmailTokenizer.cs    |   14 +-
 .../Analysis/Cz/TestCzechStemmer.cs                |    2 +-
 .../Analysis/De/TestGermanLightStemFilter.cs       |    6 +-
 .../Analysis/De/TestGermanMinimalStemFilter.cs     |    6 +-
 .../Analysis/De/TestGermanNormalizationFilter.cs   |    4 +-
 .../Analysis/De/TestGermanStemFilter.cs            |    6 +-
 .../Analysis/El/TestGreekStemmer.cs                |    2 +-
 .../Analysis/En/TestEnglishMinimalStemFilter.cs    |    4 +-
 .../Analysis/En/TestKStemmer.cs                    |    4 +-
 .../Analysis/En/TestPorterStemFilter.cs            |    4 +-
 .../Analysis/Es/TestSpanishLightStemFilter.cs      |    4 +-
 .../Analysis/Fa/TestPersianCharFilter.cs           |    4 +-
 .../Analysis/Fa/TestPersianNormalizationFilter.cs  |    2 +-
 .../Analysis/Fi/TestFinnishLightStemFilter.cs      |    6 +-
 .../Analysis/Fr/TestFrenchLightStemFilter.cs       |    6 +-
 .../Analysis/Fr/TestFrenchMinimalStemFilter.cs     |    6 +-
 .../Analysis/Ga/TestIrishLowerCaseFilter.cs        |    2 +-
 .../Analysis/Gl/TestGalicianMinimalStemFilter.cs   |    6 +-
 .../Analysis/Gl/TestGalicianStemFilter.cs          |    4 +-
 .../Analysis/Hi/TestHindiNormalizer.cs             |    2 +-
 .../Analysis/Hi/TestHindiStemmer.cs                |    2 +-
 .../Analysis/Hu/TestHungarianLightStemFilter.cs    |    6 +-
 .../Analysis/Hunspell/TestAllDictionaries.cs       |    2 +-
 .../Analysis/Hunspell/TestAllDictionaries2.cs      |    2 +-
 .../Analysis/Hunspell/TestHunspellStemFilter.cs    |    6 +-
 .../Analysis/Id/TestIndonesianStemmer.cs           |    6 +-
 .../Analysis/In/TestIndicNormalizer.cs             |    2 +-
 .../Analysis/It/TestItalianLightStemFilter.cs      |    4 +-
 .../Analysis/Lv/TestLatvianStemmer.cs              |    4 +-
 .../Miscellaneous/TestASCIIFoldingFilter.cs        |    4 +-
 .../Miscellaneous/TestCapitalizationFilter.cs      |    4 +-
 .../Miscellaneous/TestCodepointCountFilter.cs      |    2 +-
 .../Miscellaneous/TestHyphenatedWordsFilter.cs     |    4 +-
 .../Analysis/Miscellaneous/TestKeepWordFilter.cs   |    2 +-
 .../Analysis/Miscellaneous/TestLengthFilter.cs     |    2 +-
 .../Miscellaneous/TestLimitTokenPositionFilter.cs  |    2 +-
 .../TestLucene47WordDelimiterFilter.cs             |   10 +-
 .../Miscellaneous/TestPerFieldAnalyzerWrapper.cs   |    4 +-
 .../TestRemoveDuplicatesTokenFilter.cs             |    4 +-
 .../Miscellaneous/TestScandinavianFoldingFilter.cs |    4 +-
 .../TestScandinavianNormalizationFilter.cs         |    4 +-
 .../Analysis/Miscellaneous/TestTrimFilter.cs       |    6 +-
 .../Miscellaneous/TestWordDelimiterFilter.cs       |   16 +-
 .../Analysis/NGram/EdgeNGramTokenFilterTest.cs     |   10 +-
 .../Analysis/NGram/EdgeNGramTokenizerTest.cs       |    4 +-
 .../Analysis/NGram/NGramTokenFilterTest.cs         |    6 +-
 .../Analysis/NGram/NGramTokenizerTest.cs           |    2 +-
 .../Analysis/No/TestNorwegianLightStemFilter.cs    |    8 +-
 .../Analysis/No/TestNorwegianMinimalStemFilter.cs  |    8 +-
 .../Analysis/Path/TestPathHierarchyTokenizer.cs    |    4 +-
 .../Path/TestReversePathHierarchyTokenizer.cs      |    4 +-
 .../Pattern/TestPatternCaptureGroupTokenFilter.cs  |    2 +-
 .../Pattern/TestPatternReplaceCharFilter.cs        |    6 +-
 .../Analysis/Pattern/TestPatternReplaceFilter.cs   |    6 +-
 .../Analysis/Pattern/TestPatternTokenizer.cs       |    4 +-
 .../Analysis/Pt/TestPortugueseLightStemFilter.cs   |    6 +-
 .../Analysis/Pt/TestPortugueseMinimalStemFilter.cs |    6 +-
 .../Analysis/Pt/TestPortugueseStemFilter.cs        |    6 +-
 .../Analysis/Reverse/TestReverseStringFilter.cs    |    4 +-
 .../Analysis/Ru/TestRussianLightStemFilter.cs      |    6 +-
 .../Analysis/Shingle/ShingleAnalyzerWrapperTest.cs |    2 +-
 .../Analysis/Shingle/ShingleFilterTest.cs          |    6 +-
 .../Analysis/Sinks/TestTeeSinkTokenFilter.cs       |    2 +-
 .../Analysis/Snowball/TestSnowball.cs              |    4 +-
 .../Analysis/Snowball/TestSnowballVocab.cs         |    4 +-
 .../Analysis/Sv/TestSwedishLightStemFilter.cs      |    6 +-
 .../Analysis/Synonym/TestSolrSynonymParser.cs      |    4 +-
 .../Analysis/Synonym/TestSynonymMapFilter.cs       |   34 +-
 .../Analysis/Synonym/TestWordnetSynonymParser.cs   |    2 +-
 .../Analysis/Tr/TestTurkishLowerCaseFilter.cs      |    2 +-
 .../Analysis/Util/TestCharTokenizers.cs            |    6 +-
 .../Analysis/Util/TestElision.cs                   |    2 +-
 .../Analysis/Util/TestFilesystemResourceLoader.cs  |    5 +-
 .../Analysis/Util/TestRollingCharBuffer.cs         |    2 +-
 .../Analysis/Wikipedia/WikipediaTokenizerTest.cs   |    4 +-
 .../Support/TestApiConsistency.cs                  |   40 +-
 .../Support/TestExceptionSerialization.cs          |    1 +
 .../Analysis/Icu/Segmentation/TestICUTokenizer.cs  |    1 +
 .../Dict/TestTokenInfoDictionary.cs                |    2 +-
 .../Support/TestApiConsistency.cs                  |   42 +-
 .../Support/TestExceptionSerialization.cs          |    1 +
 .../TestJapaneseTokenizer.cs                       |    2 +-
 .../TestSearchMode.cs                              |    2 +-
 .../Tools/TestBuildDictionary.cs                   |    7 +-
 .../Morfologik/TestMorfologikAnalyzer.cs           |    3 +-
 .../Morfologik/TestMorfologikFilterFactory.cs      |    2 +-
 .../Language/Bm/CacheSubSequencePerformanceTest.cs |    2 +-
 .../Language/Bm/PhoneticEnginePerformanceTest.cs   |    2 +-
 .../Support/TestApiConsistency.cs                  |   42 +-
 .../Support/TestExceptionSerialization.cs          |    1 +
 .../Support/TestApiConsistency.cs                  |   42 +-
 .../Support/TestExceptionSerialization.cs          |    1 +
 .../Support/TestApiConsistency.cs                  |   40 +-
 .../Support/TestExceptionSerialization.cs          |    1 +
 .../BenchmarkTestCase.cs                           |    2 +-
 .../ByTask/Feeds/DocMakerTest.cs                   |    2 +-
 .../ByTask/Tasks/CountingSearchTestTask.cs         |    2 +-
 .../ByTask/Tasks/CreateIndexTaskTest.cs            |    2 +-
 .../Support/TestApiConsistency.cs                  |   42 +-
 .../Support/TestEnglishNumberFormatExtensions.cs   |    1 +
 .../Support/TestExceptionSerialization.cs          |    1 +
 .../Support/TestApiConsistency.cs                  |   40 +-
 .../Support/TestExceptionSerialization.cs          |    1 +
 .../Support/TestApiConsistency.cs                  |   40 +-
 .../Support/TestExceptionSerialization.cs          |    1 +
 .../Support/TestApiConsistency.cs                  |   32 +-
 .../Support/TestExceptionSerialization.cs          |    1 +
 src/Lucene.Net.Tests.Facet/FacetTestCase.cs        |    2 +-
 .../Range/TestRangeFacetCounts.cs                  |    2 +-
 .../SortedSet/TestSortedSetDocValuesFacets.cs      |    2 +-
 .../Support/TestApiConsistency.cs                  |   40 +-
 .../Support/TestExceptionSerialization.cs          |    1 +
 .../Directory/TestConcurrentFacetedIndexing.cs     |    2 +-
 .../Directory/TestDirectoryTaxonomyWriter.cs       |    3 +-
 .../Taxonomy/TestSearcherTaxonomyManager.cs        |    2 +-
 .../Taxonomy/TestTaxonomyFacetCounts.cs            |    2 +-
 .../Taxonomy/TestTaxonomyFacetSumValueSource.cs    |    2 +-
 .../WriterCache/TestCompactLabelToOrdinal.cs       |    2 +-
 src/Lucene.Net.Tests.Facet/TestDrillSideways.cs    |    2 +-
 .../AllGroupHeadsCollectorTest.cs                  |    2 +-
 .../AllGroupsCollectorTest.cs                      |    2 +-
 .../DistinctValuesCollectorTest.cs                 |    2 +-
 .../GroupFacetCollectorTest.cs                     |    2 +-
 .../Support/TestApiConsistency.cs                  |   40 +-
 .../Support/TestExceptionSerialization.cs          |    1 +
 src/Lucene.Net.Tests.Grouping/TestGrouping.cs      |    2 +-
 .../Highlight/Custom/HighlightCustomQueryTest.cs   |    2 +-
 .../Highlight/HighlighterTest.cs                   |    4 +-
 .../Highlight/OffsetLimitTokenFilterTest.cs        |    2 +-
 .../Support/TestApiConsistency.cs                  |   40 +-
 .../Support/TestExceptionSerialization.cs          |    1 +
 .../VectorHighlight/AbstractTestCase.cs            |    2 +-
 .../VectorHighlight/IndexTimeSynonymTest.cs        |    2 +-
 .../VectorHighlight/SimpleFragListBuilderTest.cs   |    2 +-
 .../Support/TestApiConsistency.cs                  |   40 +-
 .../Support/TestExceptionSerialization.cs          |    1 +
 src/Lucene.Net.Tests.Join/TestBlockJoin.cs         |    2 +-
 src/Lucene.Net.Tests.Join/TestJoinUtil.cs          |    2 +-
 .../Index/Memory/MemoryIndexTest.cs                |    2 +-
 .../Support/TestApiConsistency.cs                  |   40 +-
 .../Support/TestExceptionSerialization.cs          |    1 +
 .../Document/TestLazyDocument.cs                   |    2 +-
 .../Index/Sorter/IndexSortingTest.cs               |    2 +-
 .../Index/Sorter/SorterTestBase.cs                 |    2 +-
 .../Index/Sorter/SortingAtomicReaderTest.cs        |    2 +-
 .../Support/TestApiConsistency.cs                  |   40 +-
 .../Support/TestExceptionSerialization.cs          |    1 +
 src/Lucene.Net.Tests.Misc/Util/Fst/TestFSTsMisc.cs |    2 +-
 .../CommonTermsQueryTest.cs                        |    4 +-
 .../Function/FunctionTestSetup.cs                  |    2 +-
 .../Support/TestApiConsistency.cs                  |   40 +-
 .../Support/TestExceptionSerialization.cs          |    1 +
 .../Spans/TestSpanQueryParserSimpleSample.cs       |    2 +-
 .../Flexible/Standard/TestNumericQueryParser.cs    |    2 +-
 .../Flexible/Standard/TestQPHelper.cs              |    2 +-
 .../Support/TestApiConsistency.cs                  |   40 +-
 .../Support/TestExceptionSerialization.cs          |    1 +
 .../Surround/Query/BooleanQueryTst.cs              |    2 +-
 .../Surround/Query/ExceptionQueryTst.cs            |    2 +-
 .../Util/QueryParserTestBase.cs                    |    2 +-
 src/Lucene.Net.Tests.QueryParser/Xml/TestParser.cs |    2 +-
 .../IndexAndTaxonomyReplicationClientTest.cs       |    2 +-
 .../IndexReplicationClientTest.cs                  |    2 +-
 .../Support/TestApiConsistency.cs                  |   42 +-
 .../Support/TestExceptionSerialization.cs          |    1 +
 .../Queries/TestSlowFuzzyQuery2.cs                 |    2 +-
 .../Support/TestApiConsistency.cs                  |   40 +-
 .../Support/TestExceptionSerialization.cs          |    1 +
 .../Prefix/NtsPolygonTest.cs                       |    2 +-
 .../Prefix/SpatialOpRecursivePrefixTreeTest.cs     |    2 +-
 .../Prefix/Tree/SpatialPrefixTreeTest.cs           |    2 +-
 .../Support/TestApiConsistency.cs                  |   40 +-
 .../Support/TestExceptionSerialization.cs          |    1 +
 .../Analyzing/AnalyzingInfixSuggesterTest.cs       |    6 +-
 .../Suggest/Analyzing/AnalyzingSuggesterTest.cs    |   36 +-
 .../Suggest/Analyzing/BlendedInfixSuggesterTest.cs |    2 +-
 .../Suggest/Analyzing/FuzzySuggesterTest.cs        |   16 +-
 .../Suggest/Analyzing/TestFreeTextSuggester.cs     |    4 +-
 .../Suggest/Fst/FSTCompletionTest.cs               |    2 +-
 .../Suggest/Fst/LargeInputFST.cs                   |    2 +-
 .../Suggest/LookupBenchmarkTest.cs                 |   13 +-
 .../Support/TestApiConsistency.cs                  |   40 +-
 .../Support/TestExceptionSerialization.cs          |    1 +
 .../Support/TestApiConsistency.cs                  |   41 +-
 .../Support/TestExceptionSerialization.cs          |    1 +
 .../Analysis/TestGraphTokenizers.cs                |    2 +-
 .../Codecs/Lucene3x/TestSurrogates.cs              |    2 +-
 .../Codecs/PerField/TestPerFieldPostingsFormat2.cs |    2 +-
 .../Index/Test2BBinaryDocValues.cs                 |    2 +-
 .../Index/Test2BNumericDocValues.cs                |    2 +-
 src/Lucene.Net.Tests/Index/Test2BPositions.cs      |    2 +-
 src/Lucene.Net.Tests/Index/Test2BPostings.cs       |    2 +-
 .../Index/Test2BSortedDocValues.cs                 |    2 +-
 src/Lucene.Net.Tests/Index/Test2BTerms.cs          |    2 +-
 src/Lucene.Net.Tests/Index/Test4GBStoredFields.cs  |    2 +-
 src/Lucene.Net.Tests/Index/TestAddIndexes.cs       |    2 +-
 src/Lucene.Net.Tests/Index/TestAtomicUpdate.cs     |    2 +-
 .../Index/TestBackwardsCompatibility.cs            |   12 +-
 .../Index/TestBackwardsCompatibility3x.cs          |   16 +-
 src/Lucene.Net.Tests/Index/TestBagOfPositions.cs   |    2 +-
 src/Lucene.Net.Tests/Index/TestBagOfPostings.cs    |    2 +-
 .../Index/TestBinaryDocValuesUpdates.cs            |    9 +-
 src/Lucene.Net.Tests/Index/TestByteSlices.cs       |    2 +-
 src/Lucene.Net.Tests/Index/TestCheckIndex.cs       |    2 +-
 src/Lucene.Net.Tests/Index/TestCodecs.cs           |    2 +-
 .../Index/TestConcurrentMergeScheduler.cs          |    2 +-
 src/Lucene.Net.Tests/Index/TestCrash.cs            |    2 +-
 .../Index/TestCrashCausesCorruptIndex.cs           |    2 +-
 src/Lucene.Net.Tests/Index/TestDeletionPolicy.cs   |    2 +-
 src/Lucene.Net.Tests/Index/TestDirectoryReader.cs  |    2 +-
 .../Index/TestDirectoryReaderReopen.cs             |    2 +-
 src/Lucene.Net.Tests/Index/TestDoc.cs              |    2 +-
 src/Lucene.Net.Tests/Index/TestDocTermOrds.cs      |    2 +-
 .../Index/TestDocValuesWithThreads.cs              |    2 +-
 .../Index/TestDocumentsWriterStallControl.cs       |    2 +-
 .../Index/TestFlushByRamOrCountsPolicy.cs          |    2 +-
 .../Index/TestForceMergeForever.cs                 |    2 +-
 src/Lucene.Net.Tests/Index/TestIndexWriter.cs      |    2 +-
 .../Index/TestIndexWriterCommit.cs                 |    2 +-
 .../Index/TestIndexWriterDelete.cs                 |    2 +-
 .../Index/TestIndexWriterExceptions.cs             |    2 +-
 .../Index/TestIndexWriterForceMerge.cs             |    2 +-
 .../Index/TestIndexWriterMerging.cs                |    2 +-
 .../Index/TestIndexWriterNRTIsCurrent.cs           |    2 +-
 .../Index/TestIndexWriterOnDiskFull.cs             |    2 +-
 .../Index/TestIndexWriterOnJRECrash.cs             |    2 +-
 .../Index/TestIndexWriterOutOfFileDescriptors.cs   |    2 +-
 .../Index/TestIndexWriterReader.cs                 |    2 +-
 .../Index/TestIndexWriterWithThreads.cs            |    2 +-
 src/Lucene.Net.Tests/Index/TestIndexableField.cs   |    2 +-
 src/Lucene.Net.Tests/Index/TestLongPostings.cs     |    2 +-
 src/Lucene.Net.Tests/Index/TestMixedCodecs.cs      |    2 +-
 src/Lucene.Net.Tests/Index/TestMultiFields.cs      |    2 +-
 .../Index/TestNRTReaderWithThreads.cs              |    2 +-
 src/Lucene.Net.Tests/Index/TestNRTThreads.cs       |    2 +-
 src/Lucene.Net.Tests/Index/TestNeverDelete.cs      |    2 +-
 .../Index/TestParallelReaderEmptyIndex.cs          |    2 +-
 src/Lucene.Net.Tests/Index/TestPayloads.cs         |    2 +-
 .../Index/TestPerSegmentDeletes.cs                 |    2 +-
 src/Lucene.Net.Tests/Index/TestRollingUpdates.cs   |    2 +-
 .../Index/TestSnapshotDeletionPolicy.cs            |    2 +-
 src/Lucene.Net.Tests/Index/TestStressAdvance.cs    |    2 +-
 src/Lucene.Net.Tests/Index/TestStressIndexing.cs   |    2 +-
 src/Lucene.Net.Tests/Index/TestStressIndexing2.cs  |    2 +-
 src/Lucene.Net.Tests/Index/TestStressNRT.cs        |    2 +-
 src/Lucene.Net.Tests/Index/TestSumDocFreq.cs       |    2 +-
 src/Lucene.Net.Tests/Index/TestTermdocPerf.cs      |    2 +-
 src/Lucene.Net.Tests/Index/TestTermsEnum.cs        |    2 +-
 .../Index/TestThreadedForceMerge.cs                |    2 +-
 .../Index/TestTieredMergePolicy.cs                 |    2 +-
 src/Lucene.Net.Tests/Index/TestTransactions.cs     |    2 +-
 .../Search/Payloads/TestPayloadNearQuery.cs        |    2 +-
 .../Search/Spans/TestPayloadSpans.cs               |    2 +-
 .../Search/Spans/TestSpansAdvanced.cs              |    2 +-
 src/Lucene.Net.Tests/Search/TestAutomatonQuery.cs  |    2 +-
 src/Lucene.Net.Tests/Search/TestBoolean2.cs        |    2 +-
 .../Search/TestBooleanMinShouldMatch.cs            |    2 +-
 src/Lucene.Net.Tests/Search/TestBooleanQuery.cs    |    2 +-
 .../Search/TestControlledRealTimeReopenThread.cs   |    2 +-
 .../Search/TestCustomSearcherSort.cs               |    2 +-
 .../Search/TestDisjunctionMaxQuery.cs              |    2 +-
 src/Lucene.Net.Tests/Search/TestDocBoost.cs        |    2 +-
 src/Lucene.Net.Tests/Search/TestDocIdSet.cs        |    2 +-
 .../Search/TestDocTermOrdsRangeFilter.cs           |    2 +-
 .../Search/TestDocTermOrdsRewriteMethod.cs         |    2 +-
 src/Lucene.Net.Tests/Search/TestFieldCache.cs      |    2 +-
 src/Lucene.Net.Tests/Search/TestLiveFieldValues.cs |    2 +-
 src/Lucene.Net.Tests/Search/TestMinShouldMatch2.cs |    1 +
 .../Search/TestMultiPhraseQuery.cs                 |    2 +-
 .../Search/TestMultiTermConstantScore.cs           |    2 +-
 .../Search/TestMultiTermQueryRewrites.cs           |    2 +-
 .../Search/TestMultiThreadTermVectors.cs           |    2 +-
 .../Search/TestNumericRangeQuery32.cs              |    2 +-
 .../Search/TestNumericRangeQuery64.cs              |    2 +-
 .../Search/TestPositionIncrement.cs                |    2 +-
 src/Lucene.Net.Tests/Search/TestRegexpRandom2.cs   |    2 +-
 src/Lucene.Net.Tests/Search/TestScorerPerf.cs      |    2 +-
 src/Lucene.Net.Tests/Search/TestSearchAfter.cs     |    2 +-
 .../Search/TestSearchWithThreads.cs                |    2 +-
 src/Lucene.Net.Tests/Search/TestSearcherManager.cs |    2 +-
 src/Lucene.Net.Tests/Search/TestShardSearching.cs  |    2 +-
 src/Lucene.Net.Tests/Search/TestSort.cs            |    3 +-
 src/Lucene.Net.Tests/Search/TestSortRandom.cs      |    2 +-
 .../Search/TestTimeLimitingCollector.cs            |    2 +-
 src/Lucene.Net.Tests/Search/TestTopDocsMerge.cs    |    2 +-
 src/Lucene.Net.Tests/Search/TestWildcard.cs        |    2 +-
 src/Lucene.Net.Tests/Search/TestWildcardRandom.cs  |    2 +-
 src/Lucene.Net.Tests/Store/TestCopyBytes.cs        |    2 +-
 src/Lucene.Net.Tests/Store/TestDirectory.cs        |    6 +-
 src/Lucene.Net.Tests/Store/TestLockFactory.cs      |    2 +-
 .../Store/TestNRTCachingDirectory.cs               |    2 +-
 .../Support/Index/TestTaskMergeScheduler.cs        |    2 +-
 src/Lucene.Net.Tests/Support/TestApiConsistency.cs |   40 +-
 .../Support/TestExceptionSerialization.cs          |    1 +
 src/Lucene.Net.Tests/Support/TestLurchTable.cs     |  994 ------------
 .../Support/TestLurchTableThreading.cs             |  278 ----
 .../Support/Threading/TestCloseableThreadLocal.cs  |  116 --
 src/Lucene.Net.Tests/TestExternalCodecs.cs         |    2 +-
 src/Lucene.Net.Tests/TestMergeSchedulerExternal.cs |    2 +-
 src/Lucene.Net.Tests/TestSearch.cs                 |    2 +-
 src/Lucene.Net.Tests/TestSearchForDuplicates.cs    |    2 +-
 src/Lucene.Net.Tests/TestWorstCaseTestBehavior.cs  |    2 +-
 .../Util/Automaton/TestBasicOperations.cs          |    2 +-
 .../Util/Automaton/TestCompiledAutomaton.cs        |    2 +-
 .../Util/Automaton/TestMinimize.cs                 |    2 +-
 .../Util/Automaton/TestUTF32ToUTF8.cs              |    2 +-
 src/Lucene.Net.Tests/Util/Fst/Test2BFST.cs         |    2 +-
 src/Lucene.Net.Tests/Util/Fst/TestBytesStore.cs    |    2 +-
 src/Lucene.Net.Tests/Util/Fst/TestFSTs.cs          |    2 +-
 src/Lucene.Net.Tests/Util/Packed/TestPackedInts.cs |    2 +-
 .../Util/StressRamUsageEstimator.cs                |    2 +-
 src/Lucene.Net.Tests/Util/TestArrayUtil.cs         |    2 +-
 src/Lucene.Net.Tests/Util/TestConstants.cs         |    2 +-
 .../Util/TestFieldCacheSanityChecker.cs            |    2 +-
 src/Lucene.Net.Tests/Util/TestPriorityQueue.cs     |    2 +-
 src/Lucene.Net.Tests/Util/TestRollingBuffer.cs     |    2 +-
 src/Lucene.Net.Tests/Util/TestUnicodeUtil.cs       |    2 +-
 src/Lucene.Net/Codecs/Lucene3x/Lucene3xFields.cs   |    2 +-
 src/Lucene.Net/Index/CheckIndex.cs                 |    2 +-
 src/Lucene.Net/Index/IndexReader.cs                |    1 +
 src/Lucene.Net/Index/IndexUpgrader.cs              |    2 +-
 src/Lucene.Net/Properties/AssemblyInfo.cs          |   12 +
 src/Lucene.Net/Search/BooleanClause.cs             |   61 +-
 src/Lucene.Net/Search/DisjunctionMaxQuery.cs       |    2 +-
 src/Lucene.Net/Search/Spans/NearSpansOrdered.cs    |    8 +-
 src/Lucene.Net/Store/BufferedChecksum.cs           |    7 +-
 src/Lucene.Net/Store/LockStressTest.cs             |    2 +-
 src/Lucene.Net/Store/LockVerifyServer.cs           |    4 +-
 src/Lucene.Net/Store/NIOFSDirectory.cs             |    4 +-
 src/Lucene.Net/Store/NRTCachingDirectory.cs        |    2 +-
 src/Lucene.Net/Support/Arrays.cs                   |   32 +-
 src/Lucene.Net/Support/AssemblyExtensions.cs       |  160 --
 src/Lucene.Net/Support/AssemblyUtils.cs            |    2 +-
 src/Lucene.Net/Support/BitArrayExtensions.cs       |    2 +-
 src/Lucene.Net/Support/CRC32.cs                    |    2 +-
 src/Lucene.Net/Support/Collections.cs              |    2 +-
 src/Lucene.Net/Support/DictionaryExtensions.cs     |    2 +-
 src/Lucene.Net/Support/EnumerableExtensions.cs     |   32 +-
 src/Lucene.Net/Support/ICallable.cs                |   32 +-
 src/Lucene.Net/Support/IChecksum.cs                |    2 +-
 src/Lucene.Net/Support/IO/BinaryReaderDataInput.cs |   32 +-
 .../Support/IO/BinaryWriterDataOutput.cs           |   32 +-
 src/Lucene.Net/Support/IO/ByteArrayOutputStream.cs |   32 +-
 src/Lucene.Net/Support/IO/FileStreamExtensions.cs  |   57 -
 src/Lucene.Net/Support/IO/FileSupport.cs           |   32 +-
 src/Lucene.Net/Support/IO/SafeTextWriterWrapper.cs |   47 +-
 src/Lucene.Net/Support/IO/StreamExtensions.cs      |  139 +-
 src/Lucene.Net/Support/IdentityWeakReference.cs    |   32 +-
 src/Lucene.Net/Support/ListExtensions.cs           |  198 +--
 src/Lucene.Net/Support/LurchTable.cs               | 1697 --------------------
 src/Lucene.Net/Support/Number.cs                   |    2 +-
 src/Lucene.Net/Support/RectangularArrays.cs        |    2 +-
 src/Lucene.Net/Support/SetExtensions.cs            |    2 +-
 .../Threading/CloseableThreadLocalProfiler.cs      |   45 -
 .../Support/Threading/ICompletionService.cs        |   32 +-
 .../LimitedConcurrencyLevelTaskScheduler.cs        |    2 +-
 src/Lucene.Net/Support/Threading/ReentrantLock.cs  |   32 +-
 .../Threading/TaskSchedulerCompletionService.cs    |   32 +-
 src/Lucene.Net/Support/Threading/ThreadLock.cs     |   83 -
 src/Lucene.Net/Support/Time.cs                     |   38 +-
 .../Support/Util/BundleResourceManagerFactory.cs   |    4 +-
 .../Support/{ => Util}/ExceptionExtensions.cs      |   32 +-
 src/Lucene.Net/Support/Util/ListExtensions.cs      |  160 ++
 src/Lucene.Net/Support/{ => Util}/NumberFormat.cs  |   83 +-
 src/Lucene.Net/Support/{ => Util}/SystemConsole.cs |    2 +-
 .../Support/{ => Util}/SystemProperties.cs         |   42 +-
 src/Lucene.Net/Util/IOUtils.cs                     |    7 +-
 src/Lucene.Net/Util/PrintStreamInfoStream.cs       |    2 +-
 src/Lucene.Net/Util/StringHelper.cs                |    2 +-
 .../Support/JDKBreakIterator.cs                    |    6 +-
 .../Support/TestApiConsistency.cs                  |   39 +-
 .../Support/TestExceptionSerialization.cs          |    1 +
 .../SourceCode/SourceCodeParserTest.cs             |    7 +-
 .../CommandLine/CommandLineApplication.cs          |    2 +-
 .../tools/lucene-cli/SourceCode/ConsolePager.cs    |   29 +-
 .../lucene-cli/SourceCode/SourceCodeExporter.cs    |    6 +-
 507 files changed, 1956 insertions(+), 5579 deletions(-)
 rename src/Lucene.Net.Benchmark/Support/{ => Util}/EnglishNumberFormatExtensions.cs (99%)
 delete mode 100644 src/Lucene.Net.TestFramework/Support/JavaCompatibility/AbstractBeforeAfterRule.cs
 delete mode 100644 src/Lucene.Net.Tests/Support/TestLurchTable.cs
 delete mode 100644 src/Lucene.Net.Tests/Support/TestLurchTableThreading.cs
 delete mode 100644 src/Lucene.Net.Tests/Support/Threading/TestCloseableThreadLocal.cs
 delete mode 100644 src/Lucene.Net/Support/AssemblyExtensions.cs
 delete mode 100644 src/Lucene.Net/Support/IO/FileStreamExtensions.cs
 delete mode 100644 src/Lucene.Net/Support/LurchTable.cs
 delete mode 100644 src/Lucene.Net/Support/Threading/CloseableThreadLocalProfiler.cs
 delete mode 100644 src/Lucene.Net/Support/Threading/ThreadLock.cs
 rename src/Lucene.Net/Support/{ => Util}/ExceptionExtensions.cs (57%)
 create mode 100644 src/Lucene.Net/Support/Util/ListExtensions.cs
 rename src/Lucene.Net/Support/{ => Util}/NumberFormat.cs (55%)
 rename src/Lucene.Net/Support/{ => Util}/SystemConsole.cs (99%)
 rename src/Lucene.Net/Support/{ => Util}/SystemProperties.cs (88%)


[lucenenet] 19/35: BREAKING: Lucene.Net.Support.IO: Marked FileStreamExtensions and StreamExtensions internal

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit c3c7f7a53736e43979f26f10ef37809b987e0912
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Fri Feb 7 10:13:17 2020 +0700

    BREAKING: Lucene.Net.Support.IO: Marked FileStreamExtensions and StreamExtensions internal
---
 src/Lucene.Net/Support/IO/FileStreamExtensions.cs | 34 +++++++++++------------
 src/Lucene.Net/Support/IO/StreamExtensions.cs     | 32 ++++++++++-----------
 2 files changed, 33 insertions(+), 33 deletions(-)

diff --git a/src/Lucene.Net/Support/IO/FileStreamExtensions.cs b/src/Lucene.Net/Support/IO/FileStreamExtensions.cs
index 5f87228..cec1efd 100644
--- a/src/Lucene.Net/Support/IO/FileStreamExtensions.cs
+++ b/src/Lucene.Net/Support/IO/FileStreamExtensions.cs
@@ -4,23 +4,23 @@ using System.IO;
 namespace Lucene.Net.Support.IO
 {
     /*
-	 * Licensed to the Apache Software Foundation (ASF) under one or more
-	 * contributor license agreements.  See the NOTICE file distributed with
-	 * this work for additional information regarding copyright ownership.
-	 * The ASF licenses this file to You under the Apache License, Version 2.0
-	 * (the "License"); you may not use this file except in compliance with
-	 * the License.  You may obtain a copy of the License at
-	 *
-	 *     http://www.apache.org/licenses/LICENSE-2.0
-	 *
-	 * Unless required by applicable law or agreed to in writing, software
-	 * distributed under the License is distributed on an "AS IS" BASIS,
-	 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-	 * See the License for the specific language governing permissions and
-	 * limitations under the License.
-	 */
-
-    public static class FileStreamExtensions
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+
+    internal static class FileStreamExtensions
     {
         private static object _fsReadLock = new object();
 
diff --git a/src/Lucene.Net/Support/IO/StreamExtensions.cs b/src/Lucene.Net/Support/IO/StreamExtensions.cs
index 134245d..f8c8531 100644
--- a/src/Lucene.Net/Support/IO/StreamExtensions.cs
+++ b/src/Lucene.Net/Support/IO/StreamExtensions.cs
@@ -3,21 +3,21 @@
 namespace Lucene.Net.Support.IO
 {
     /*
-	 * Licensed to the Apache Software Foundation (ASF) under one or more
-	 * contributor license agreements.  See the NOTICE file distributed with
-	 * this work for additional information regarding copyright ownership.
-	 * The ASF licenses this file to You under the Apache License, Version 2.0
-	 * (the "License"); you may not use this file except in compliance with
-	 * the License.  You may obtain a copy of the License at
-	 *
-	 *     http://www.apache.org/licenses/LICENSE-2.0
-	 *
-	 * Unless required by applicable law or agreed to in writing, software
-	 * distributed under the License is distributed on an "AS IS" BASIS,
-	 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-	 * See the License for the specific language governing permissions and
-	 * limitations under the License.
-	 */
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
 
     /// <summary>
     /// Extension methods that make a <see cref="Stream"/> effectively into a
@@ -30,7 +30,7 @@ namespace Lucene.Net.Support.IO
     /// <para/>
     /// Byte order is little-endian (same as <see cref="BinaryReader"/> and <see cref="BinaryWriter"/>).
     /// </summary>
-    public static class StreamExtensions
+    internal static class StreamExtensions
     {
         public static void Write(this Stream stream, char[] chars)
         {


[lucenenet] 17/35: BREAKING: Lucene.Net.Support: Marked IdentityWeakReference internal

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit 608bbe3d85f27078016396b3ea003eadfa65d0d0
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Fri Feb 7 00:13:36 2020 +0700

    BREAKING: Lucene.Net.Support: Marked IdentityWeakReference internal
---
 src/Lucene.Net/Support/IdentityWeakReference.cs | 32 ++++++++++++-------------
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/src/Lucene.Net/Support/IdentityWeakReference.cs b/src/Lucene.Net/Support/IdentityWeakReference.cs
index 6d9a02a..23f41d2 100644
--- a/src/Lucene.Net/Support/IdentityWeakReference.cs
+++ b/src/Lucene.Net/Support/IdentityWeakReference.cs
@@ -4,23 +4,23 @@ using System.Runtime.CompilerServices;
 namespace Lucene.Net.Support
 {
     /*
-	 * Licensed to the Apache Software Foundation (ASF) under one or more
-	 * contributor license agreements.  See the NOTICE file distributed with
-	 * this work for additional information regarding copyright ownership.
-	 * The ASF licenses this file to You under the Apache License, Version 2.0
-	 * (the "License"); you may not use this file except in compliance with
-	 * the License.  You may obtain a copy of the License at
-	 *
-	 *     http://www.apache.org/licenses/LICENSE-2.0
-	 *
-	 * Unless required by applicable law or agreed to in writing, software
-	 * distributed under the License is distributed on an "AS IS" BASIS,
-	 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-	 * See the License for the specific language governing permissions and
-	 * limitations under the License.
-	 */
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
 
-    public class IdentityWeakReference<T> : WeakReference
+    internal class IdentityWeakReference<T> : WeakReference
         where T : class
     {
         private readonly int hash;


[lucenenet] 33/35: Lucene.Net.Support.IO.FileStreamExtensions::Read(): Moved to StreamExtensions class and optimized to read bytes in bulk instead of one byte at a time (fixes LUCENENET-643)

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit 5da2567ea771538a31566918066d01bde3b6af0f
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Fri Feb 7 12:38:54 2020 +0700

    Lucene.Net.Support.IO.FileStreamExtensions::Read(): Moved to StreamExtensions class and optimized to read bytes in bulk instead of one byte at a time (fixes LUCENENET-643)
---
 src/Lucene.Net/Store/NIOFSDirectory.cs            |   4 +-
 src/Lucene.Net/Support/IO/FileStreamExtensions.cs |  57 ------------
 src/Lucene.Net/Support/IO/StreamExtensions.cs     | 107 +++++++++++++++++++++-
 3 files changed, 108 insertions(+), 60 deletions(-)

diff --git a/src/Lucene.Net/Store/NIOFSDirectory.cs b/src/Lucene.Net/Store/NIOFSDirectory.cs
index 8842766..d49625e 100644
--- a/src/Lucene.Net/Store/NIOFSDirectory.cs
+++ b/src/Lucene.Net/Store/NIOFSDirectory.cs
@@ -158,8 +158,8 @@ namespace Lucene.Net.Store
         }
 
         /// <summary>
-        /// Reads bytes with the <see cref="FileStreamExtensions.Read(FileStream, ByteBuffer, long)"/>
-        /// extension method for <see cref="FileStream"/>.
+        /// Reads bytes with the <see cref="StreamExtensions.Read(Stream, ByteBuffer, long)"/>
+        /// extension method for <see cref="Stream"/>.
         /// </summary>
         protected class NIOFSIndexInput : BufferedIndexInput
         {
diff --git a/src/Lucene.Net/Support/IO/FileStreamExtensions.cs b/src/Lucene.Net/Support/IO/FileStreamExtensions.cs
deleted file mode 100644
index cec1efd..0000000
--- a/src/Lucene.Net/Support/IO/FileStreamExtensions.cs
+++ /dev/null
@@ -1,57 +0,0 @@
-using J2N.IO;
-using System.IO;
-
-namespace Lucene.Net.Support.IO
-{
-    /*
-     * Licensed to the Apache Software Foundation (ASF) under one or more
-     * contributor license agreements.  See the NOTICE file distributed with
-     * this work for additional information regarding copyright ownership.
-     * The ASF licenses this file to You under the Apache License, Version 2.0
-     * (the "License"); you may not use this file except in compliance with
-     * the License.  You may obtain a copy of the License at
-     *
-     *     http://www.apache.org/licenses/LICENSE-2.0
-     *
-     * Unless required by applicable law or agreed to in writing, software
-     * distributed under the License is distributed on an "AS IS" BASIS,
-     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     * See the License for the specific language governing permissions and
-     * limitations under the License.
-     */
-
-    internal static class FileStreamExtensions
-    {
-        private static object _fsReadLock = new object();
-
-        //Reads bytes from the Filestream into the bytebuffer
-        public static int Read(this FileStream file, ByteBuffer dst, long position)
-        {
-            lock (_fsReadLock)
-            {
-                // TODO: check this logic, could probably optimize
-                if (position >= file.Length)
-                    return 0;
-
-                var original = file.Position;
-
-                file.Seek(position, SeekOrigin.Begin);
-
-                int count = 0;
-
-                for (int i = dst.Position; i < dst.Limit; i++)
-                {
-                    int v = file.ReadByte();
-                    if (v == -1)
-                        break;
-                    dst.Put((byte) v);
-                    count++;
-                }
-
-                file.Seek(original, SeekOrigin.Begin);
-
-                return count;
-            }
-        }
-    }
-}
\ No newline at end of file
diff --git a/src/Lucene.Net/Support/IO/StreamExtensions.cs b/src/Lucene.Net/Support/IO/StreamExtensions.cs
index f8c8531..2a4d5ca 100644
--- a/src/Lucene.Net/Support/IO/StreamExtensions.cs
+++ b/src/Lucene.Net/Support/IO/StreamExtensions.cs
@@ -1,4 +1,6 @@
-using System.IO;
+using J2N.IO;
+using System;
+using System.IO;
 
 namespace Lucene.Net.Support.IO
 {
@@ -32,8 +34,94 @@ namespace Lucene.Net.Support.IO
     /// </summary>
     internal static class StreamExtensions
     {
+        private static readonly object readLock = new object();
+
+
+        /// <summary>
+        /// Reads a sequence of bytes from a <see cref="Stream"/> to the given <see cref="ByteBuffer"/>, starting at the given position.
+        /// The <paramref name="stream"/> must be both seekable and readable.
+        /// </summary>
+        /// <param name="stream">The stream to read.</param>
+        /// <param name="destination">The <see cref="ByteBuffer"/> to write to.</param>
+        /// <param name="position">The file position at which the transfer is to begin; must be non-negative.</param>
+        /// <returns>The number of bytes read, possibly zero.</returns>
+        /// <exception cref="ArgumentNullException"><paramref name="stream"/> or <paramref name="destination"/> is <c>null</c></exception>
+        /// <exception cref="NotSupportedException">
+        /// <paramref name="stream"/> is not readable.
+        /// <para/>
+        /// -or-
+        /// <para/>
+        /// <paramref name="stream"/> is not seekable.
+        /// </exception>
+        /// <exception cref="ArgumentOutOfRangeException">
+        /// <paramref name="position"/> is less than 0.
+        /// <para/>
+        /// -or-
+        /// <para/>
+        /// <paramref name="position"/> is greater than the <see cref="Stream.Length"/> of the stream.
+        /// </exception>
+        /// <exception cref="IOException">An I/O error occurs.</exception>
+        /// <exception cref="ObjectDisposedException"><paramref name="stream"/> has already been disposed.</exception>
+        /// <remarks>
+        /// This method is atomic when used by itself, but does not synchronize with the rest of the stream methods.
+        /// </remarks>
+        public static int Read(this Stream stream, ByteBuffer destination, long position)
+        {
+            if (stream == null)
+                throw new ArgumentNullException(nameof(stream));
+            if (destination == null)
+                throw new ArgumentNullException(nameof(destination));
+            if (position < 0)
+                throw new ArgumentOutOfRangeException(nameof(position));
+            if (!stream.CanSeek)
+                throw new NotSupportedException("Stream does not support seeking.");
+            if (!stream.CanRead)
+                throw new NotSupportedException("Stream does not support reading.");
+            if (position > stream.Length)
+                return 0;
+
+            int read = 0;
+            lock (readLock)
+            {
+                long originalPosition = stream.Position;
+                stream.Seek(position, SeekOrigin.Begin);
+
+                if (destination.HasArray)
+                {
+                    // If the buffer has an array, we can write to it directly and save
+                    // an extra copy operation.
+
+                    // Read from the stream
+                    read = stream.Read(destination.Array, destination.Position, destination.Remaining);
+                    destination.Position += read;
+                }
+                else
+                {
+                    // If the buffer has no array, we must use a local buffer
+                    byte[] buffer = new byte[destination.Remaining];
+
+                    // Read from the stream
+                    read = stream.Read(buffer, 0, buffer.Length);
+
+                    // Write to the byte buffer
+                    destination.Put(buffer, 0, read);
+                }
+
+                // Per Java's FileChannel.Read(), we don't want to alter the position
+                // of the stream, so we return it as it was originally.
+                stream.Seek(originalPosition, SeekOrigin.Begin);
+            }
+
+            return read;
+        }
+
         public static void Write(this Stream stream, char[] chars)
         {
+            if (stream == null)
+                throw new ArgumentNullException(nameof(stream));
+            if (chars == null)
+                throw new ArgumentNullException(nameof(chars));
+
             byte[] newBytes = new byte[chars.Length * 2];
             for (int index = 0; index < chars.Length; index++)
             {
@@ -46,6 +134,11 @@ namespace Lucene.Net.Support.IO
 
         public static char[] ReadChars(this Stream stream, int count)
         {
+            if (stream == null)
+                throw new ArgumentNullException(nameof(stream));
+            if (count < 0)
+                throw new ArgumentOutOfRangeException(nameof(count));
+
             byte[] buff = new byte[2];
             char[] newChars = new char[count];
             for (int i = 0; i < count; i++)
@@ -58,6 +151,9 @@ namespace Lucene.Net.Support.IO
 
         public static void Write(this Stream stream, int value)
         {
+            if (stream == null)
+                throw new ArgumentNullException(nameof(stream));
+
             byte[] buff = new byte[4];
             buff[0] = (byte)(value);
             buff[1] = (byte)(value >> 8);
@@ -68,6 +164,9 @@ namespace Lucene.Net.Support.IO
 
         public static int ReadInt32(this Stream stream)
         {
+            if (stream == null)
+                throw new ArgumentNullException(nameof(stream));
+
             byte[] buff = new byte[4];
             stream.Read(buff, 0, buff.Length);
             return (buff[0] & 0xff) | ((buff[1] & 0xff) << 8) |
@@ -76,6 +175,9 @@ namespace Lucene.Net.Support.IO
 
         public static void Write(this Stream stream, long value)
         {
+            if (stream == null)
+                throw new ArgumentNullException(nameof(stream));
+
             byte[] buff = new byte[8];
             buff[0] = (byte)value;
             buff[1] = (byte)(value >> 8);
@@ -90,6 +192,9 @@ namespace Lucene.Net.Support.IO
 
         public static long ReadInt64(this Stream stream)
         {
+            if (stream == null)
+                throw new ArgumentNullException(nameof(stream));
+
             byte[] buff = new byte[8];
             stream.Read(buff, 0, buff.Length);
             uint lo = (uint)(buff[0] | buff[1] << 8 |


[lucenenet] 30/35: BREAKING: Lucene.Net.Util.NumberFormat, Lucene.Net.QueryParsers.Flexible.Standard.Config.NumberDateFormat: Changed protected locale field to private, made property named Culture, and changed constructors and methods to use "culture" rather than "locale" for parameter names

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit 4452aa4b8bef6399c8c379e4317cb80da07c7d50
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Sat Feb 8 21:03:16 2020 +0700

    BREAKING: Lucene.Net.Util.NumberFormat, Lucene.Net.QueryParsers.Flexible.Standard.Config.NumberDateFormat: Changed protected locale field to private, made property named Culture, and changed constructors and methods to use "culture" rather than "locale" for parameter names
---
 .../Flexible/Standard/Config/NumberDateFormat.cs   | 34 +++++++++++-----------
 src/Lucene.Net/Support/Util/NumberFormat.cs        | 28 +++++++++---------
 2 files changed, 32 insertions(+), 30 deletions(-)

diff --git a/src/Lucene.Net.QueryParser/Flexible/Standard/Config/NumberDateFormat.cs b/src/Lucene.Net.QueryParser/Flexible/Standard/Config/NumberDateFormat.cs
index 60a592c..5e969bb 100644
--- a/src/Lucene.Net.QueryParser/Flexible/Standard/Config/NumberDateFormat.cs
+++ b/src/Lucene.Net.QueryParser/Flexible/Standard/Config/NumberDateFormat.cs
@@ -64,10 +64,10 @@ namespace Lucene.Net.QueryParsers.Flexible.Standard.Config
 
         /// <summary>
         /// Constructs a <see cref="NumberDateFormat"/> object using the given <paramref name="dateStyle"/>,
-        /// <paramref name="timeStyle"/>, and <paramref name="locale"/>.
+        /// <paramref name="timeStyle"/>, and <paramref name="culture"/>.
         /// </summary>
-        public NumberDateFormat(DateFormat dateStyle, DateFormat timeStyle, CultureInfo locale)
-            : base(locale)
+        public NumberDateFormat(DateFormat dateStyle, DateFormat timeStyle, CultureInfo culture)
+            : base(culture)
         {
             this.dateStyle = dateStyle;
             this.timeStyle = timeStyle;
@@ -81,26 +81,26 @@ namespace Lucene.Net.QueryParsers.Flexible.Standard.Config
 
         public override string Format(double number)
         {
-            return new DateTime(EPOCH).AddMilliseconds(number).ToString(GetDateFormat(), this.locale);
+            return new DateTime(EPOCH).AddMilliseconds(number).ToString(GetDateFormat(), Culture);
         }
 
         public override string Format(long number)
         {
-            return new DateTime(EPOCH).AddMilliseconds(number).ToString(GetDateFormat(), this.locale);
+            return new DateTime(EPOCH).AddMilliseconds(number).ToString(GetDateFormat(), Culture);
         }
 
         public override object Parse(string source)
         {
             // Try exact format first, if it fails, do a loose DateTime.Parse
             DateTime d;
-            d = DateTime.ParseExact(source, GetDateFormat(), this.locale, DateTimeStyles.None);
+            d = DateTime.ParseExact(source, GetDateFormat(), Culture, DateTimeStyles.None);
 
             return (d - new DateTime(EPOCH)).TotalMilliseconds;
         }
 
         public override string Format(object number)
         {
-            return new DateTime(EPOCH).AddMilliseconds(Convert.ToInt64(number, CultureInfo.InvariantCulture)).ToString(GetDateFormat(), this.locale);
+            return new DateTime(EPOCH).AddMilliseconds(Convert.ToInt64(number, CultureInfo.InvariantCulture)).ToString(GetDateFormat(), Culture);
         }
 
         public void SetDateFormat(string dateFormat)
@@ -117,45 +117,45 @@ namespace Lucene.Net.QueryParsers.Flexible.Standard.Config
         {
             if (dateFormat != null) return dateFormat;
 
-            return GetDateFormat(this.dateStyle, this.timeStyle, this.locale);
+            return GetDateFormat(this.dateStyle, this.timeStyle, Culture);
         }
 
-        public static string GetDateFormat(DateFormat dateStyle, DateFormat timeStyle, CultureInfo locale)
+        public static string GetDateFormat(DateFormat dateStyle, DateFormat timeStyle, CultureInfo culture)
         {
             string datePattern = "", timePattern = "";
 
             switch (dateStyle)
             {
                 case DateFormat.SHORT:
-                    datePattern = locale.DateTimeFormat.ShortDatePattern;
+                    datePattern = culture.DateTimeFormat.ShortDatePattern;
                     break;
                 case DateFormat.MEDIUM:
-                    datePattern = locale.DateTimeFormat.LongDatePattern
+                    datePattern = culture.DateTimeFormat.LongDatePattern
                         .Replace("dddd,", "").Replace(", dddd", "") // Remove the day of the week
                         .Replace("MMMM", "MMM"); // Replace month with abbreviated month
                     break;
                 case DateFormat.LONG:
-                    datePattern = locale.DateTimeFormat.LongDatePattern
+                    datePattern = culture.DateTimeFormat.LongDatePattern
                         .Replace("dddd,", "").Replace(", dddd", ""); // Remove the day of the week
                     break;
                 case DateFormat.FULL:
-                    datePattern = locale.DateTimeFormat.LongDatePattern;
+                    datePattern = culture.DateTimeFormat.LongDatePattern;
                     break;
             }
 
             switch (timeStyle)
             {
                 case DateFormat.SHORT:
-                    timePattern = locale.DateTimeFormat.ShortTimePattern;
+                    timePattern = culture.DateTimeFormat.ShortTimePattern;
                     break;
                 case DateFormat.MEDIUM:
-                    timePattern = locale.DateTimeFormat.LongTimePattern;
+                    timePattern = culture.DateTimeFormat.LongTimePattern;
                     break;
                 case DateFormat.LONG:
-                    timePattern = locale.DateTimeFormat.LongTimePattern.Replace("z", "").Trim() + " z";
+                    timePattern = culture.DateTimeFormat.LongTimePattern.Replace("z", "").Trim() + " z";
                     break;
                 case DateFormat.FULL:
-                    timePattern = locale.DateTimeFormat.LongTimePattern.Replace("z", "").Trim() + " z"; // LUCENENET TODO: Time zone info not being added to match behavior of Java, but Java doc is unclear on what the difference is between this and LONG
+                    timePattern = culture.DateTimeFormat.LongTimePattern.Replace("z", "").Trim() + " z"; // LUCENENET TODO: Time zone info not being added to match behavior of Java, but Java doc is unclear on what the difference is between this and LONG
                     break;
             }
 
diff --git a/src/Lucene.Net/Support/Util/NumberFormat.cs b/src/Lucene.Net/Support/Util/NumberFormat.cs
index 92b2e31..311d096 100644
--- a/src/Lucene.Net/Support/Util/NumberFormat.cs
+++ b/src/Lucene.Net/Support/Util/NumberFormat.cs
@@ -33,45 +33,47 @@ namespace Lucene.Net.Util
     // types instead of just the ones that Java supports, as well.
     public class NumberFormat
     {
-        protected readonly CultureInfo locale;
+        private readonly CultureInfo culture;
 
         //private int maximumIntegerDigits;
         //private int minimumIntegerDigits;
         //private int maximumFractionDigits;
         //private int minimumFractionDigits;
 
-        public NumberFormat(CultureInfo locale)
+        public NumberFormat(CultureInfo culture)
         {
-            this.locale = locale;
+            this.culture = culture;
         }
 
+        protected CultureInfo Culture => culture;
+
         public virtual string Format(object number)
         {
             string format = GetNumberFormat();
 
             if (number is int)
             {
-                return ((int)number).ToString(format, locale);
+                return ((int)number).ToString(format, culture);
             }
             else if (number is long)
             {
-                return ((long)number).ToString(format, locale);
+                return ((long)number).ToString(format, culture);
             }
             else if (number is short)
             {
-                return ((short)number).ToString(format, locale);
+                return ((short)number).ToString(format, culture);
             }
             else if (number is float)
             {
-                return ((float)number).ToString(format, locale);
+                return ((float)number).ToString(format, culture);
             }
             else if (number is double)
             {
-                return ((double)number).ToString(format, locale);
+                return ((double)number).ToString(format, culture);
             }
             else if (number is decimal)
             {
-                return ((decimal)number).ToString(format, locale);
+                return ((decimal)number).ToString(format, culture);
             }
 
             throw new ArgumentException("Cannot format given object as a Number");
@@ -80,13 +82,13 @@ namespace Lucene.Net.Util
         public virtual string Format(double number)
         {
             string format = GetNumberFormat();
-            return number.ToString(format, locale);
+            return number.ToString(format, culture);
         }
 
         public virtual string Format(long number)
         {
             string format = GetNumberFormat();
-            return number.ToString(format, locale);
+            return number.ToString(format, culture);
         }
 
         /// <summary>
@@ -102,12 +104,12 @@ namespace Lucene.Net.Util
 
         public virtual /*Number*/ object Parse(string source)
         {
-            return decimal.Parse(source, locale);
+            return decimal.Parse(source, culture);
         }
 
         public override string ToString()
         {
-            return base.ToString() + " - " + GetNumberFormat() + " - " + locale.ToString();
+            return base.ToString() + " - " + GetNumberFormat() + " - " + culture.ToString();
         }
 
         // LUCENENET TODO: Add additional functionality to edit the NumberFormatInfo


[lucenenet] 03/35: Lucene.Net.Facet, Lucene.Net.QueryParser: Factored out LurchTable in favor of J2N's implementation

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit e315e918275dd9760e12e953bc30da8f8c06689b
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Thu Feb 6 20:10:55 2020 +0700

    Lucene.Net.Facet, Lucene.Net.QueryParser: Factored out LurchTable in favor of J2N's implementation
---
 src/Lucene.Net.Facet/Taxonomy/LRUHashMap.cs        |   16 +-
 .../Taxonomy/WriterCache/NameIntCacheLRU.cs        |   31 +-
 .../Xml/Builders/CachedFilterBuilder.cs            |    4 +-
 src/Lucene.Net.Tests/Support/TestLurchTable.cs     |  994 ------------
 .../Support/TestLurchTableThreading.cs             |  278 ----
 src/Lucene.Net/Support/LurchTable.cs               | 1697 --------------------
 6 files changed, 16 insertions(+), 3004 deletions(-)

diff --git a/src/Lucene.Net.Facet/Taxonomy/LRUHashMap.cs b/src/Lucene.Net.Facet/Taxonomy/LRUHashMap.cs
index 3a673be..3db3a5b 100644
--- a/src/Lucene.Net.Facet/Taxonomy/LRUHashMap.cs
+++ b/src/Lucene.Net.Facet/Taxonomy/LRUHashMap.cs
@@ -1,4 +1,4 @@
-using Lucene.Net.Support;
+using J2N.Collections.Concurrent;
 using System;
 using System.Collections;
 using System.Collections.Generic;
@@ -40,7 +40,7 @@ namespace Lucene.Net.Facet.Taxonomy
     /// </summary>
     public class LRUHashMap<TKey, TValue> : IDictionary<TKey, TValue>
     {
-        private LurchTable<TKey, TValue> cache;
+        private readonly LurchTable<TKey, TValue> cache;
 
         /// <summary>
         /// Create a new hash map with a bounded size and with least recently
@@ -117,7 +117,7 @@ namespace Lucene.Net.Facet.Taxonomy
 
         public TValue Put(TKey key, TValue value)
         {
-            TValue oldValue = default(TValue);
+            TValue oldValue = default;
             cache.AddOrUpdate(key, value, (k, v) =>
             {
                 oldValue = cache[key];
@@ -130,7 +130,7 @@ namespace Lucene.Net.Facet.Taxonomy
         {
             if (!cache.TryGetValue(key, out TValue result))
             {
-                return default(TValue);
+                return default;
             }
             return result;
         }
@@ -168,7 +168,7 @@ namespace Lucene.Net.Facet.Taxonomy
 
         public bool Contains(KeyValuePair<TKey, TValue> item)
         {
-            throw new NotSupportedException();
+            return ((ICollection<KeyValuePair<TKey, TValue>>)cache).Contains(item);
         }
 
         public bool ContainsKey(TKey key)
@@ -176,9 +176,9 @@ namespace Lucene.Net.Facet.Taxonomy
             return cache.ContainsKey(key);
         }
 
-        public void CopyTo(KeyValuePair<TKey, TValue>[] array, int arrayIndex)
+        public void CopyTo(KeyValuePair<TKey, TValue>[] array, int index)
         {
-            throw new NotSupportedException();
+            cache.CopyTo(array, index);
         }
 
         public IEnumerator<KeyValuePair<TKey, TValue>> GetEnumerator()
@@ -188,7 +188,7 @@ namespace Lucene.Net.Facet.Taxonomy
 
         public bool Remove(KeyValuePair<TKey, TValue> item)
         {
-            throw new NotSupportedException();
+            return cache.TryRemove(item);
         }
 
         public bool Remove(TKey key)
diff --git a/src/Lucene.Net.Facet/Taxonomy/WriterCache/NameIntCacheLRU.cs b/src/Lucene.Net.Facet/Taxonomy/WriterCache/NameIntCacheLRU.cs
index 2eedc5c..c089885 100644
--- a/src/Lucene.Net.Facet/Taxonomy/WriterCache/NameIntCacheLRU.cs
+++ b/src/Lucene.Net.Facet/Taxonomy/WriterCache/NameIntCacheLRU.cs
@@ -1,4 +1,4 @@
-using Lucene.Net.Support;
+using J2N.Collections.Concurrent;
 using System.Collections.Generic;
 using System.Linq;
 
@@ -38,7 +38,7 @@ namespace Lucene.Net.Facet.Taxonomy.WriterCache
         private IDictionary<object, int> cache;
         internal long nMisses = 0; // for debug
         internal long nHits = 0; // for debug
-        private int maxCacheSize;
+        private readonly int maxCacheSize;
 
         internal NameInt32CacheLRU(int limit)
         {
@@ -49,24 +49,12 @@ namespace Lucene.Net.Facet.Taxonomy.WriterCache
         /// <summary>
         /// Maximum number of cache entries before eviction.
         /// </summary>
-        public virtual int Limit
-        {
-            get
-            {
-                return maxCacheSize;
-            }
-        }
+        public virtual int Limit => maxCacheSize;
 
         /// <summary>
         /// Number of entries currently in the cache.
         /// </summary>
-        public virtual int Count
-        {
-            get
-            {
-                return cache.Count;
-            }
-        }
+        public virtual int Count => cache.Count;
 
         private void CreateCache(int maxSize)
         {
@@ -82,8 +70,7 @@ namespace Lucene.Net.Facet.Taxonomy.WriterCache
 
         internal virtual int Get(FacetLabel name)
         {
-            int result;
-            TryGetValue(name, out result);
+            TryGetValue(name, out int result);
             return result;
         }
 
@@ -131,13 +118,7 @@ namespace Lucene.Net.Facet.Taxonomy.WriterCache
             return IsCacheFull;
         }
 
-        private bool IsCacheFull
-        {
-            get
-            {
-                return cache.Count > maxCacheSize;
-            }
-        }
+        private bool IsCacheFull => cache.Count > maxCacheSize;
 
         internal virtual void Clear()
         {
diff --git a/src/Lucene.Net.QueryParser/Xml/Builders/CachedFilterBuilder.cs b/src/Lucene.Net.QueryParser/Xml/Builders/CachedFilterBuilder.cs
index 7f573ea..63281b1 100644
--- a/src/Lucene.Net.QueryParser/Xml/Builders/CachedFilterBuilder.cs
+++ b/src/Lucene.Net.QueryParser/Xml/Builders/CachedFilterBuilder.cs
@@ -1,5 +1,5 @@
-using Lucene.Net.Search;
-using Lucene.Net.Support;
+using J2N.Collections.Concurrent;
+using Lucene.Net.Search;
 using System.Xml;
 
 namespace Lucene.Net.QueryParsers.Xml.Builders
diff --git a/src/Lucene.Net.Tests/Support/TestLurchTable.cs b/src/Lucene.Net.Tests/Support/TestLurchTable.cs
deleted file mode 100644
index c2ba988..0000000
--- a/src/Lucene.Net.Tests/Support/TestLurchTable.cs
+++ /dev/null
@@ -1,994 +0,0 @@
-using Lucene.Net.Attributes;
-using NUnit.Framework;
-using System;
-using System.Collections.Generic;
-
-namespace Lucene.Net.Support
-{
-    #region Copyright 2012-2014 by Roger Knapp, Licensed under the Apache License, Version 2.0
-    /* Licensed under the Apache License, Version 2.0 (the "License");
-     * you may not use this file except in compliance with the License.
-     * You may obtain a copy of the License at
-     * 
-     *   http://www.apache.org/licenses/LICENSE-2.0
-     * 
-     * Unless required by applicable law or agreed to in writing, software
-     * distributed under the License is distributed on an "AS IS" BASIS,
-     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     * See the License for the specific language governing permissions and
-     * limitations under the License.
-     */
-    #endregion
-
-    [TestFixture]
-    public class TestLurchTable : TestGenericCollection<TestLurchTable.LurchTableTest<int, string>, KeyValuePair<int, string>>
-    {
-        public class LurchTableTest<TKey, TValue> : LurchTable<TKey, TValue>
-        {
-            public LurchTableTest() : base(1024, LurchTableOrder.Access)
-            { }
-            public LurchTableTest(LurchTableOrder order) : base(1024, order)
-            { }
-            public LurchTableTest(IEqualityComparer<TKey> comparer) : base(1024, LurchTableOrder.Access, comparer)
-            { }
-        }
-
-        protected override KeyValuePair<int, string>[] GetSample()
-        {
-            var results = new List<KeyValuePair<int, string>>();
-            Random r = new Random();
-            for (int i = 1; i < 100; i += r.Next(1, 3))
-                results.Add(new KeyValuePair<int, string>(i, i.ToString()));
-            return results.ToArray();
-        }
-
-        class IntComparer : IEqualityComparer<int>
-        {
-            bool IEqualityComparer<int>.Equals(int x, int y)
-            {
-                return false;
-            }
-
-            int IEqualityComparer<int>.GetHashCode(int obj)
-            {
-                return 0;
-            }
-        }
-        [Test, LuceneNetSpecific]
-        public void TestCTors()
-        {
-            var cmp = new IntComparer();
-            const int limit = 5;
-
-            Assert.AreEqual(LurchTableOrder.None, new LurchTable<int, int>(1).Ordering);
-            Assert.AreEqual(LurchTableOrder.Insertion, new LurchTable<int, int>(1, LurchTableOrder.Insertion).Ordering);
-            Assert.IsTrue(ReferenceEquals(cmp, new LurchTable<int, int>(1, LurchTableOrder.Insertion, cmp).Comparer));
-            Assert.AreEqual(LurchTableOrder.Modified, new LurchTable<int, int>(LurchTableOrder.Modified, limit).Ordering);
-            Assert.AreEqual(limit, new LurchTable<int, int>(LurchTableOrder.Modified, limit).Limit);
-            Assert.AreEqual(LurchTableOrder.Access, new LurchTable<int, int>(LurchTableOrder.Access, limit, cmp).Ordering);
-            Assert.AreEqual(limit, new LurchTable<int, int>(LurchTableOrder.Access, limit, cmp).Limit);
-            Assert.IsTrue(ReferenceEquals(cmp, new LurchTable<int, int>(LurchTableOrder.Access, limit, cmp).Comparer));
-            Assert.AreEqual(LurchTableOrder.Access, new LurchTable<int, int>(LurchTableOrder.Access, limit, 1, 1, 1, cmp).Ordering);
-            Assert.AreEqual(limit, new LurchTable<int, int>(LurchTableOrder.Access, limit, 1, 1, 1, cmp).Limit);
-            Assert.IsTrue(ReferenceEquals(cmp, new LurchTable<int, int>(LurchTableOrder.Access, limit, 1, 1, 1, cmp).Comparer));
-        }
-
-        [Test, LuceneNetSpecific]
-        public void TestDequeueByInsertion()
-        {
-            var test = new LurchTableTest<int, string>(LurchTableOrder.Insertion);
-            Assert.AreEqual(LurchTableOrder.Insertion, test.Ordering);
-            var sample = GetSample();
-            Array.Reverse(sample);
-            foreach (var item in sample)
-                test.Add(item.Key, item.Value);
-
-            KeyValuePair<int, string> value;
-            foreach (var item in sample)
-            {
-                Assert.IsTrue(test.Peek(out value));
-                Assert.AreEqual(item.Key, value.Key);
-                Assert.AreEqual(item.Value, value.Value);
-                value = test.Dequeue();
-                Assert.AreEqual(item.Key, value.Key);
-                Assert.AreEqual(item.Value, value.Value);
-            }
-
-            Assert.IsFalse(test.Peek(out value));
-            Assert.IsFalse(test.TryDequeue(out value));
-        }
-
-        [Test, LuceneNetSpecific]
-        public void TestDequeueByModified()
-        {
-            var test = new LurchTableTest<int, string>(LurchTableOrder.Modified);
-            Assert.AreEqual(LurchTableOrder.Modified, test.Ordering);
-            var sample = GetSample();
-            foreach (var item in sample)
-                test.Add(item.Key, item.Value);
-
-            Array.Reverse(sample);
-            for (int i = 0; i < sample.Length; i++)
-            {
-                var item = new KeyValuePair<int, string>(sample[i].Key, sample[i].Value + "-2");
-                test[item.Key] = item.Value;
-                sample[i] = item;
-            }
-
-            KeyValuePair<int, string> value;
-            foreach (var item in sample)
-            {
-                Assert.IsTrue(test.Peek(out value));
-                Assert.AreEqual(item.Key, value.Key);
-                Assert.AreEqual(item.Value, value.Value);
-                value = test.Dequeue();
-                Assert.AreEqual(item.Key, value.Key);
-                Assert.AreEqual(item.Value, value.Value);
-            }
-
-            Assert.IsFalse(test.Peek(out value));
-            Assert.IsFalse(test.TryDequeue(out value));
-        }
-
-        [Test, LuceneNetSpecific]
-        public void TestDequeueByAccess()
-        {
-            var test = new LurchTableTest<int, string>(LurchTableOrder.Access);
-            Assert.AreEqual(LurchTableOrder.Access, test.Ordering);
-            var sample = GetSample();
-            foreach (var item in sample)
-                test.Add(item.Key, item.Value);
-
-            Array.Reverse(sample);
-            foreach (var item in sample)
-                Assert.AreEqual(item.Value, test[item.Key]);
-
-            KeyValuePair<int, string> value;
-            foreach (var item in sample)
-            {
-                Assert.IsTrue(test.TryDequeue(out value));
-                Assert.AreEqual(item.Key, value.Key);
-                Assert.AreEqual(item.Value, value.Value);
-            }
-
-            Assert.IsFalse(test.Peek(out value));
-            Assert.IsFalse(test.TryDequeue(out value));
-        }
-
-        [Test, LuceneNetSpecific]
-        public void TestKeysEnumerator()
-        {
-            var sample = GetSample();
-            var test = CreateSample(sample);
-            int ix = 0;
-            foreach (var key in test.Keys)
-                Assert.AreEqual(sample[ix++].Value, test[key]);
-        }
-
-        [Test, LuceneNetSpecific]
-        public void TestValuesEnumerator()
-        {
-            var sample = GetSample();
-            var test = CreateSample(sample);
-            int ix = 0;
-            foreach (var value in test.Values)
-                Assert.AreEqual(sample[ix++].Value, value);
-        }
-
-        [Test, LuceneNetSpecific]
-        public void TestLimitorByAccess()
-        {
-            //multiple of prime will produce hash collision, thus testing removal of non-first elements
-            const int prime = 1103;
-            var test = new LurchTable<int, string>(LurchTableOrder.Access, 3, prime, 10, 10, EqualityComparer<int>.Default);
-            test[1 * prime] = "a";
-            test[2 * prime] = "b";
-            test[3 * prime] = "c";
-            Assert.AreEqual(3, test.Count);
-            Assert.AreEqual("b", test[2 * prime]); //access moves to front..
-            test[4] = "d";
-            test[5] = "e";
-            Assert.AreEqual(3, test.Count); // still 3 items
-            Assert.IsFalse(test.ContainsKey(1 * prime));
-            Assert.IsTrue(test.ContainsKey(2 * prime)); //recently access is still there
-            Assert.IsFalse(test.ContainsKey(3 * prime));
-        }
-
-        class RecordEvents<TKey, TValue>
-        {
-            public KeyValuePair<TKey, TValue> LastAdded, LastUpdate, LastRemove;
-
-            public void ItemAdded(KeyValuePair<TKey, TValue> obj) { LastAdded = obj; }
-            public void ItemUpdated(KeyValuePair<TKey, TValue> original, KeyValuePair<TKey, TValue> obj) { LastUpdate = obj; }
-            public void ItemRemoved(KeyValuePair<TKey, TValue> obj) { LastRemove = obj; }
-        }
-
-        [Test, LuceneNetSpecific]
-        public void TestCrudEvents()
-        {
-            var recorder = new RecordEvents<int, string>();
-            var test = new LurchTable<int, string>(LurchTableOrder.Access, 3, 1103, 10, 10, EqualityComparer<int>.Default);
-            test.ItemAdded += recorder.ItemAdded;
-            test.ItemUpdated += recorder.ItemUpdated;
-            test.ItemRemoved += recorder.ItemRemoved;
-            test[1] = "a";
-            Assert.AreEqual("a", recorder.LastAdded.Value);
-            test[2] = "b";
-            Assert.AreEqual("b", recorder.LastAdded.Value);
-            test[3] = "c";
-            Assert.AreEqual("c", recorder.LastAdded.Value);
-            Assert.AreEqual(3, test.Count);
-            Assert.AreEqual("b", test[2]); //access moves to front..
-            test[4] = "d";
-            Assert.AreEqual("d", recorder.LastAdded.Value);
-            Assert.AreEqual("a", recorder.LastRemove.Value);
-            test[5] = "e";
-            Assert.AreEqual("e", recorder.LastAdded.Value);
-            Assert.AreEqual("c", recorder.LastRemove.Value);
-            test[2] = "B";
-            Assert.AreEqual("B", recorder.LastUpdate.Value);
-            test[6] = "f";
-            Assert.AreEqual("f", recorder.LastAdded.Value);
-            Assert.AreEqual("d", recorder.LastRemove.Value);
-
-            Assert.AreEqual(3, test.Count); // still 3 items
-            string value;
-            Assert.IsTrue(test.TryRemove(5, out value));
-            Assert.AreEqual("e", value);
-            Assert.AreEqual("e", recorder.LastRemove.Value);
-
-            Assert.AreEqual("B", test.Dequeue().Value);
-            Assert.AreEqual("f", test.Dequeue().Value);
-            Assert.AreEqual(0, test.Count);
-        }
-
-        [Test, LuceneNetSpecific]
-        public void TestCollisionRemoval()
-        {
-            //multiple of prime will produce hash collision, thus testing removal of non-first elements
-            const int prime = 1103;
-            var test = new LurchTable<int, string>(LurchTableOrder.Access, 10, prime, 10, 10, EqualityComparer<int>.Default);
-            test[1 * prime] = "a";
-            test[2 * prime] = "b";
-            test[3 * prime] = "c";
-            test[4 * prime] = "d";
-            test[5 * prime] = "e";
-            Assert.IsTrue(test.Remove(4 * prime));
-            Assert.IsTrue(test.Remove(2 * prime));
-            Assert.IsTrue(test.Remove(5 * prime));
-            Assert.IsTrue(test.Remove(1 * prime));
-            Assert.IsTrue(test.Remove(3 * prime));
-            Assert.AreEqual(0, test.Count);
-        }
-
-        [Test, LuceneNetSpecific]
-        public void TestAddRemoveByKey()
-        {
-            LurchTableTest<int, string> test = new LurchTableTest<int, string>();
-            for (int i = 0; i < 10; i++)
-                test.Add(i, i.ToString());
-
-            for (int i = 0; i < 10; i++)
-                Assert.IsTrue(test.ContainsKey(i));
-
-            string cmp;
-            for (int i = 0; i < 10; i++)
-                Assert.IsTrue(test.TryGetValue(i, out cmp) && cmp == i.ToString());
-
-            for (int i = 0; i < 10; i++)
-                Assert.IsTrue(test.Remove(i));
-        }
-
-        [Test, LuceneNetSpecific]
-        public void TestComparer()
-        {
-            var test = new LurchTableTest<string, string>(StringComparer.OrdinalIgnoreCase);
-            test["a"] = "b";
-            Assert.IsTrue(test.ContainsKey("A"));
-
-            test = new LurchTableTest<string, string>(StringComparer.OrdinalIgnoreCase);
-            test["a"] = "b";
-            Assert.IsTrue(test.ContainsKey("A"));
-        }
-
-        [Test, LuceneNetSpecific]
-        public void TestKeys()
-        {
-            LurchTableTest<string, string> test = new LurchTableTest<string, string>();
-            test["a"] = "b";
-            string all = String.Join("", new List<string>(test.Keys).ToArray());
-            Assert.AreEqual("a", all);
-        }
-
-        [Test, LuceneNetSpecific]
-        public void TestValues()
-        {
-            LurchTableTest<string, string> test = new LurchTableTest<string, string>();
-            test["a"] = "b";
-            string all = String.Join("", new List<string>(test.Values).ToArray());
-            Assert.AreEqual("b", all);
-        }
-
-        [Test, LuceneNetSpecific]
-        public void TestAtomicAdd()
-        {
-            var data = new LurchTableTest<int, string>();
-            int[] counter = new int[] { -1 };
-            for (int i = 0; i < 100; i++)
-                Assert.IsTrue(data.TryAdd(i, (k) => (++counter[0]).ToString()));
-            Assert.AreEqual(100, data.Count);
-            Assert.AreEqual(100, counter[0] + 1);
-
-            //Inserts of existing keys will not call method
-            Assert.IsFalse(data.TryAdd(50, (k) => { throw new InvalidOperationException(); }));
-            Assert.AreEqual(100, data.Count);
-        }
-
-        [Test, LuceneNetSpecific]
-        public void TestAtomicAddOrUpdate()
-        {
-            var data = new LurchTableTest<int, string>();
-            int[] counter = new int[] { -1 };
-
-            for (int i = 0; i < 100; i++)
-                data.AddOrUpdate(i, (k) => (++counter[0]).ToString(), (k, v) => { throw new InvalidOperationException(); });
-
-            for (int i = 0; i < 100; i++)
-                Assert.AreEqual((i & 1) == 1, data.TryRemove(i, (k, v) => (int.Parse(v) & 1) == 1));
-
-            for (int i = 0; i < 100; i++)
-                data.AddOrUpdate(i, (k) => (++counter[0]).ToString(), (k, v) => (++counter[0]).ToString());
-
-            Assert.AreEqual(100, data.Count);
-            Assert.AreEqual(200, counter[0] + 1);
-
-            for (int i = 0; i < 100; i++)
-                Assert.IsTrue(data.TryRemove(i, (k, v) => int.Parse(v) - 100 == i));
-
-            Assert.AreEqual(0, data.Count);
-        }
-
-        [Test, LuceneNetSpecific]
-        public void TestNewAddOrUpdate()
-        {
-            var data = new LurchTableTest<int, string>();
-            Assert.AreEqual("a", data.AddOrUpdate(1, "a", (k, v) => k.ToString()));
-            Assert.AreEqual("1", data.AddOrUpdate(1, "a", (k, v) => k.ToString()));
-
-            Assert.AreEqual("b", data.AddOrUpdate(2, k => "b", (k, v) => k.ToString()));
-            Assert.AreEqual("2", data.AddOrUpdate(2, k => "b", (k, v) => k.ToString()));
-        }
-
-        struct AddUpdateValue : ICreateOrUpdateValue<int, string>, IRemoveValue<int, string>
-        {
-            public string OldValue;
-            public string Value;
-            public bool CreateValue(int key, out string value)
-            {
-                OldValue = null;
-                value = Value;
-                return Value != null;
-            }
-            public bool UpdateValue(int key, ref string value)
-            {
-                OldValue = value;
-                value = Value;
-                return Value != null;
-            }
-            public bool RemoveValue(int key, string value)
-            {
-                OldValue = value;
-                return value == Value;
-            }
-        }
-
-        [Test, LuceneNetSpecific]
-        public void TestAtomicInterfaces()
-        {
-            var data = new LurchTableTest<int, string>();
-
-            data[1] = "a";
-
-            AddUpdateValue update = new AddUpdateValue();
-            Assert.IsFalse(data.AddOrUpdate(1, ref update));
-            Assert.AreEqual("a", update.OldValue);
-            Assert.IsFalse(data.AddOrUpdate(2, ref update));
-            Assert.IsNull(update.OldValue);
-            Assert.IsFalse(data.TryRemove(1, ref update));
-            Assert.AreEqual("a", update.OldValue);
-
-            Assert.AreEqual(1, data.Count);
-            Assert.AreEqual("a", data[1]);
-
-            update.Value = "b";
-            Assert.IsTrue(data.AddOrUpdate(1, ref update));
-            Assert.AreEqual("a", update.OldValue);
-            Assert.IsTrue(data.AddOrUpdate(2, ref update));
-            Assert.IsNull(update.OldValue);
-
-            Assert.AreEqual(2, data.Count);
-            Assert.AreEqual("b", data[1]);
-            Assert.AreEqual("b", data[2]);
-
-            Assert.IsTrue(data.TryRemove(1, ref update));
-            Assert.AreEqual("b", update.OldValue);
-            Assert.IsTrue(data.TryRemove(2, ref update));
-            Assert.AreEqual("b", update.OldValue);
-            Assert.AreEqual(0, data.Count);
-        }
-
-        [Test, LuceneNetSpecific]
-        public void TestGetOrAdd()
-        {
-            var data = new LurchTableTest<int, string>();
-            Assert.AreEqual("a", data.GetOrAdd(1, "a"));
-            Assert.AreEqual("a", data.GetOrAdd(1, "b"));
-
-            Assert.AreEqual("b", data.GetOrAdd(2, k => "b"));
-            Assert.AreEqual("b", data.GetOrAdd(2, k => "c"));
-        }
-
-
-        [Test, LuceneNetSpecific]
-        public void TestTryRoutines()
-        {
-            var data = new LurchTableTest<int, string>();
-
-            Assert.IsTrue(data.TryAdd(1, "a"));
-            Assert.IsFalse(data.TryAdd(1, "a"));
-
-            Assert.IsTrue(data.TryUpdate(1, "a"));
-            Assert.IsTrue(data.TryUpdate(1, "c"));
-            Assert.IsTrue(data.TryUpdate(1, "d", "c"));
-            Assert.IsFalse(data.TryUpdate(1, "f", "c"));
-            Assert.AreEqual("d", data[1]);
-            Assert.IsTrue(data.TryUpdate(1, "a", data[1]));
-            Assert.AreEqual("a", data[1]);
-            Assert.IsFalse(data.TryUpdate(2, "b"));
-
-            string val;
-            Assert.IsTrue(data.TryRemove(1, out val) && val == "a");
-            Assert.IsFalse(data.TryRemove(2, out val));
-            Assert.AreNotEqual(val, "a");
-
-            Assert.IsFalse(data.TryUpdate(1, (k, x) => x.ToUpper()));
-            data[1] = "a";
-            data[1] = "b";
-            Assert.IsTrue(data.TryUpdate(1, (k, x) => x.ToUpper()));
-            Assert.AreEqual("B", data[1]);
-        }
-
-        [Test, LuceneNetSpecific]
-        public void TestInitialize()
-        {
-            LurchTableTest<string, string> test = new LurchTableTest<string, string>(StringComparer.Ordinal);
-            test["a"] = "b";
-            Assert.AreEqual(1, test.Count);
-            test.Initialize();
-            Assert.AreEqual(0, test.Count);
-        }
-
-        [Test, LuceneNetSpecific]
-        public void TestSampleCollection()
-        {
-            var sample = GetSample();
-            var items = CreateSample(sample);
-            IDictionary<int, string> dict = items;
-            VerifyCollection(new KeyValueEquality<int, string>(), new List<KeyValuePair<int, string>>(sample), items);
-            VerifyCollection(new KeyValueEquality<int, string>(), new List<KeyValuePair<int, string>>(sample), dict);
-        }
-
-        [Test, LuceneNetSpecific]
-        public void TestSampleKeyCollection()
-        {
-            var sample = GetSample();
-            var items = CreateSample(sample);
-            IDictionary<int, string> dict = items;
-            var keys = new List<int>();
-            foreach (var kv in sample)
-                keys.Add(kv.Key);
-            VerifyCollection(EqualityComparer<int>.Default, keys.AsReadOnly(), items.Keys);
-            VerifyCollection(EqualityComparer<int>.Default, keys.AsReadOnly(), dict.Keys);
-        }
-
-        [Test, LuceneNetSpecific]
-        public void TestSampleValueCollection()
-        {
-            var sample = GetSample();
-            var items = CreateSample(sample);
-            IDictionary<int, string> dict = items;
-            var values = new List<string>();
-            foreach (var kv in sample)
-                values.Add(kv.Value);
-            VerifyCollection(EqualityComparer<string>.Default, values.AsReadOnly(), items.Values);
-            VerifyCollection(EqualityComparer<string>.Default, values.AsReadOnly(), dict.Values);
-        }
-
-        [Test]
-        public void TestDisposed()
-        {
-            IDictionary<int, string> test = new LurchTableTest<int, string>();
-            var disposable = test as IDisposable;
-            if (disposable != null)
-            {
-                disposable.Dispose();
-            }
-            Assert.Throws<ObjectDisposedException>(() => { test.Add(1, ""); });
-        }
-
-        class KeyValueEquality<TKey, TValue> : IEqualityComparer<KeyValuePair<TKey, TValue>>
-        {
-            IEqualityComparer<TKey> KeyComparer = EqualityComparer<TKey>.Default;
-            IEqualityComparer<TValue> ValueComparer = EqualityComparer<TValue>.Default;
-            public bool Equals(KeyValuePair<TKey, TValue> x, KeyValuePair<TKey, TValue> y)
-            {
-                return KeyComparer.Equals(x.Key, y.Key) && ValueComparer.Equals(x.Value, y.Value);
-            }
-            public int GetHashCode(KeyValuePair<TKey, TValue> obj)
-            {
-                return KeyComparer.GetHashCode(obj.Key) ^ ValueComparer.GetHashCode(obj.Value);
-            }
-        }
-    }
-
-    [TestFixture]
-    public class TestLurchTableDictionary : TestDictionary<LurchTable<Guid, String>, TestLurchTableDictionary.Factory, Guid, String>
-    {
-        private const int SAMPLE_SIZE = 1000;
-        public new class Factory : IFactory<LurchTable<Guid, String>>
-        {
-            public LurchTable<Guid, string> Create()
-            {
-                return new LurchTable<Guid, string>(SAMPLE_SIZE, LurchTableOrder.Access);
-            }
-        }
-
-        protected override KeyValuePair<Guid, string>[] GetSample()
-        {
-            var results = new List<KeyValuePair<Guid, string>>();
-            for (int i = 0; i < SAMPLE_SIZE; i++)
-            {
-                Guid id = Guid.NewGuid();
-                results.Add(new KeyValuePair<Guid, string>(id, id.ToString()));
-            }
-            return results.ToArray();
-        }
-    }
-
-
-    #region Support
-
-    #region Abstract classes
-    public abstract class TestGenericCollection<TList, TItem>
-        where TList : ICollection<TItem>, new()
-    {
-        protected abstract TItem[] GetSample();
-
-        protected TList CreateSample(TItem[] items)
-        {
-            TList list = new TList();
-
-            int count = 0;
-            Assert.AreEqual(count, list.Count);
-
-            foreach (TItem item in items)
-            {
-                list.Add(item);
-                Assert.AreEqual(++count, list.Count);
-            }
-            return list;
-        }
-
-        [Test, LuceneNetSpecific]
-        public virtual void TestAddRemove()
-        {
-            TList list = new TList();
-            TItem[] items = GetSample();
-
-            int count = 0;
-            Assert.AreEqual(count, list.Count);
-
-            foreach (TItem item in items)
-            {
-                list.Add(item);
-                Assert.AreEqual(++count, list.Count);
-            }
-            foreach (TItem item in items)
-            {
-                Assert.IsTrue(list.Remove(item));
-                Assert.AreEqual(--count, list.Count);
-            }
-        }
-
-        [Test, LuceneNetSpecific]
-        public virtual void TestAddReverseRemove()
-        {
-            TList list = new TList();
-            TItem[] items = GetSample();
-
-            int count = 0;
-            Assert.AreEqual(count, list.Count);
-
-            foreach (TItem item in items)
-            {
-                list.Add(item);
-                Assert.AreEqual(++count, list.Count);
-            }
-            for (int ix = items.Length - 1; ix >= 0; ix--)
-            {
-                Assert.IsTrue(list.Remove(items[ix]));
-                Assert.AreEqual(--count, list.Count);
-            }
-        }
-
-        [Test, LuceneNetSpecific]
-        public virtual void TestClear()
-        {
-            TList list = new TList();
-            TItem[] items = GetSample();
-
-            foreach (TItem item in items)
-                list.Add(item);
-            Assert.AreEqual(items.Length, list.Count);
-
-            Assert.AreNotEqual(0, list.Count);
-            list.Clear();
-            Assert.AreEqual(0, list.Count);
-        }
-
-        [Test, LuceneNetSpecific]
-        public virtual void TestContains()
-        {
-            TList list = new TList();
-            TItem[] items = GetSample();
-
-            foreach (TItem item in items)
-                list.Add(item);
-            Assert.AreEqual(items.Length, list.Count);
-
-            foreach (TItem item in items)
-                Assert.IsTrue(list.Contains(item));
-        }
-
-        [Test, LuceneNetSpecific]
-        public virtual void TestCopyTo()
-        {
-            TList list = new TList();
-            List<TItem> items = new List<TItem>(GetSample());
-
-            foreach (TItem item in items)
-                list.Add(item);
-            Assert.AreEqual(items.Count, list.Count);
-
-            TItem[] copy = new TItem[items.Count + 1];
-            list.CopyTo(copy, 1);
-            Assert.AreEqual(default(TItem), copy[0]);
-
-            for (int i = 1; i < copy.Length; i++)
-                Assert.IsTrue(items.Remove(copy[i]));
-
-            Assert.AreEqual(0, items.Count);
-        }
-
-        [Test, LuceneNetSpecific]
-        public virtual void TestIsReadOnly()
-        {
-            Assert.IsFalse(new TList().IsReadOnly);
-        }
-
-        [Test, LuceneNetSpecific]
-        public virtual void TestGetEnumerator()
-        {
-            TList list = new TList();
-            List<TItem> items = new List<TItem>(GetSample());
-
-            foreach (TItem item in items)
-                list.Add(item);
-            Assert.AreEqual(items.Count, list.Count);
-
-            foreach (TItem item in list)
-                Assert.IsTrue(items.Remove(item));
-
-            Assert.AreEqual(0, items.Count);
-        }
-
-        [Test, LuceneNetSpecific]
-        public virtual void TestGetEnumerator2()
-        {
-            TList list = new TList();
-            List<TItem> items = new List<TItem>(GetSample());
-
-            foreach (TItem item in items)
-                list.Add(item);
-            Assert.AreEqual(items.Count, list.Count);
-
-            foreach (TItem item in ((System.Collections.IEnumerable)list))
-                Assert.IsTrue(items.Remove(item));
-
-            Assert.AreEqual(0, items.Count);
-        }
-
-        public static void VerifyCollection<T, TC>(IEqualityComparer<T> comparer, ICollection<T> expected, TC collection) where TC : ICollection<T>
-        {
-            Assert.AreEqual(expected.IsReadOnly, collection.IsReadOnly);
-            Assert.AreEqual(expected.Count, collection.Count);
-            CompareEnumerations(comparer, expected, collection);
-            using (var a = expected.GetEnumerator())
-            using (var b = collection.GetEnumerator())
-            {
-                bool result;
-                Assert.IsTrue(b.MoveNext());
-                b.Reset();
-                Assert.AreEqual(result = a.MoveNext(), b.MoveNext());
-                while (result)
-                {
-                    Assert.IsTrue(comparer.Equals(a.Current, b.Current));
-                    Assert.IsTrue(comparer.Equals(a.Current, (T)((System.Collections.IEnumerator)b).Current));
-                    Assert.AreEqual(result = a.MoveNext(), b.MoveNext());
-                }
-            }
-
-            T[] items = new T[10 + collection.Count];
-            collection.CopyTo(items, 5);
-            Array.Copy(items, 5, items, 0, collection.Count);
-            Array.Resize(ref items, collection.Count);
-            CompareEnumerations(comparer, expected, collection);
-
-            for (int i = 0; i < 5; i++)
-                Assert.IsTrue(collection.Contains(items[i]));
-        }
-
-        public static void CompareEnumerations<T>(IEqualityComparer<T> comparer, IEnumerable<T> expected, IEnumerable<T> collection)
-        {
-            using (var a = expected.GetEnumerator())
-            using (var b = collection.GetEnumerator())
-            {
-                bool result;
-                Assert.AreEqual(result = a.MoveNext(), b.MoveNext());
-                while (result)
-                {
-                    Assert.IsTrue(comparer.Equals(a.Current, b.Current));
-                    Assert.AreEqual(result = a.MoveNext(), b.MoveNext());
-                }
-            }
-        }
-    }
-
-    public abstract class TestDictionary<TDictionary, TFactory, TKey, TValue> : TestCollection<TDictionary, TFactory, KeyValuePair<TKey, TValue>>
-        where TDictionary : IDictionary<TKey, TValue>, IDisposable
-        where TFactory : IFactory<TDictionary>, new()
-    {
-        [Test, LuceneNetSpecific]
-        public virtual void TestAddRemoveByKey()
-        {
-            KeyValuePair<TKey, TValue>[] sample = GetSample();
-
-            using (TDictionary test = Factory.Create())
-            {
-                foreach (KeyValuePair<TKey, TValue> kv in sample)
-                    test.Add(kv.Key, kv.Value);
-
-                foreach (KeyValuePair<TKey, TValue> kv in sample)
-                    Assert.IsTrue(test.ContainsKey(kv.Key));
-
-                TValue cmp;
-                foreach (KeyValuePair<TKey, TValue> kv in sample)
-                    Assert.IsTrue(test.TryGetValue(kv.Key, out cmp) && kv.Value.Equals(cmp));
-
-                foreach (KeyValuePair<TKey, TValue> kv in sample)
-                    Assert.IsTrue(test.Remove(kv.Key));
-            }
-        }
-
-        [Test, LuceneNetSpecific]
-        public virtual void TestKeys()
-        {
-            KeyValuePair<TKey, TValue>[] sample = GetSample();
-
-            using (TDictionary test = Factory.Create())
-            {
-                List<TKey> keys = new List<TKey>();
-
-                foreach (KeyValuePair<TKey, TValue> kv in sample)
-                {
-                    test[kv.Key] = kv.Value;
-                    keys.Add(kv.Key);
-                }
-
-                List<TKey> cmp = new List<TKey>(test.Keys);
-
-                Assert.AreEqual(keys.Count, cmp.Count);
-                for (int i = 0; i < keys.Count; i++)
-                    Assert.IsTrue(test.ContainsKey(keys[i]));
-            }
-        }
-
-        [Test, LuceneNetSpecific]
-        public virtual void TestValues()
-        {
-            KeyValuePair<TKey, TValue>[] sample = GetSample();
-
-            using (TDictionary test = Factory.Create())
-            {
-                List<TValue> values = new List<TValue>();
-
-                foreach (KeyValuePair<TKey, TValue> kv in sample)
-                {
-                    test[kv.Key] = kv.Value;
-                    values.Add(kv.Value);
-                }
-
-                List<TValue> cmp = new List<TValue>(test.Values);
-                Assert.AreEqual(values.Count, cmp.Count);
-            }
-        }
-    }
-
-    public abstract class TestCollection<TList, TFactory, TItem>
-        where TList : ICollection<TItem>, IDisposable
-        where TFactory : IFactory<TList>, new()
-    {
-        protected abstract TItem[] GetSample();
-
-        protected readonly TFactory Factory = new TFactory();
-
-        [Test, LuceneNetSpecific]
-        public virtual void TestAddRemove()
-        {
-            using (TList list = Factory.Create())
-            {
-                TItem[] items = GetSample();
-
-                int count = 0;
-                Assert.AreEqual(count, list.Count);
-
-                foreach (TItem item in items)
-                {
-                    list.Add(item);
-                    Assert.AreEqual(++count, list.Count);
-                }
-                foreach (TItem item in items)
-                {
-                    Assert.IsTrue(list.Remove(item));
-                    Assert.AreEqual(--count, list.Count);
-                }
-            }
-        }
-
-        [Test, LuceneNetSpecific]
-        public virtual void TestAddReverseRemove()
-        {
-            using (TList list = Factory.Create())
-            {
-                TItem[] items = GetSample();
-
-                int count = 0;
-                Assert.AreEqual(count, list.Count);
-
-                foreach (TItem item in items)
-                {
-                    list.Add(item);
-                    Assert.AreEqual(++count, list.Count);
-                }
-                for (int ix = items.Length - 1; ix >= 0; ix--)
-                {
-                    Assert.IsTrue(list.Remove(items[ix]));
-                    Assert.AreEqual(--count, list.Count);
-                }
-            }
-        }
-
-        [Test, LuceneNetSpecific]
-        public virtual void TestClear()
-        {
-            using (TList list = Factory.Create())
-            {
-                TItem[] items = GetSample();
-
-                foreach (TItem item in items)
-                    list.Add(item);
-                Assert.AreEqual(items.Length, list.Count);
-
-                Assert.AreNotEqual(0, list.Count);
-                list.Clear();
-                Assert.AreEqual(0, list.Count);
-            }
-        }
-
-        [Test, LuceneNetSpecific]
-        public virtual void TestContains()
-        {
-            using (TList list = Factory.Create())
-            {
-                TItem[] items = GetSample();
-
-                foreach (TItem item in items)
-                    list.Add(item);
-                Assert.AreEqual(items.Length, list.Count);
-
-                foreach (TItem item in items)
-                    Assert.IsTrue(list.Contains(item));
-            }
-        }
-
-        [Test, LuceneNetSpecific]
-        public virtual void TestCopyTo()
-        {
-            using (TList list = Factory.Create())
-            {
-                List<TItem> items = new List<TItem>(GetSample());
-
-                foreach (TItem item in items)
-                    list.Add(item);
-                Assert.AreEqual(items.Count, list.Count);
-
-                TItem[] copy = new TItem[items.Count + 1];
-                list.CopyTo(copy, 1);
-                Assert.AreEqual(default(TItem), copy[0]);
-
-                for (int i = 1; i < copy.Length; i++)
-                    Assert.IsTrue(items.Remove(copy[i]));
-
-                Assert.AreEqual(0, items.Count);
-            }
-        }
-
-        [Test, LuceneNetSpecific]
-        public virtual void TestIsReadOnly()
-        {
-            using (TList list = Factory.Create())
-                Assert.IsFalse(list.IsReadOnly);
-        }
-
-        [Test, LuceneNetSpecific]
-        public virtual void TestGetEnumerator()
-        {
-            using (TList list = Factory.Create())
-            {
-                List<TItem> items = new List<TItem>(GetSample());
-
-                foreach (TItem item in items)
-                    list.Add(item);
-                Assert.AreEqual(items.Count, list.Count);
-
-                foreach (TItem item in list)
-                    Assert.IsTrue(items.Remove(item));
-
-                Assert.AreEqual(0, items.Count);
-            }
-        }
-
-        [Test, LuceneNetSpecific]
-        public virtual void TestGetEnumerator2()
-        {
-            using (TList list = Factory.Create())
-            {
-                List<TItem> items = new List<TItem>(GetSample());
-
-                foreach (TItem item in items)
-                    list.Add(item);
-                Assert.AreEqual(items.Count, list.Count);
-
-                foreach (TItem item in ((System.Collections.IEnumerable)list))
-                    Assert.IsTrue(items.Remove(item));
-
-                Assert.AreEqual(0, items.Count);
-            }
-        }
-    }
-
-    #endregion
-
-    #region Interfaces
-
-    /// <summary> Generic factory for instances of type T </summary>
-    public interface IFactory<T>
-    {
-        /// <summary> Creates an instance of an object assignable to type T </summary>
-        T Create();
-    }
-
-    #endregion
-
-    #endregion
-}
diff --git a/src/Lucene.Net.Tests/Support/TestLurchTableThreading.cs b/src/Lucene.Net.Tests/Support/TestLurchTableThreading.cs
deleted file mode 100644
index 0e08523..0000000
--- a/src/Lucene.Net.Tests/Support/TestLurchTableThreading.cs
+++ /dev/null
@@ -1,278 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-using Lucene.Net.Attributes;
-using NUnit.Framework;
-using System;
-using System.Collections.Concurrent;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.Threading;
-
-namespace Lucene.Net.Support
-{
-    [TestFixture]
-    public class TestLurchTableThreading
-    {
-        private const int MAXTHREADS = 8;
-        private const int COUNT = 1000;
-        static LurchTable<Guid, T> CreateMap<T>()
-        {
-            var ht = new LurchTable<Guid, T>(COUNT, LurchTableOrder.Access);
-            return ht;
-        }
-
-        private static void Parallel<T>(int loopCount, T[] args, Action<T> task)
-        {
-            var timer = Stopwatch.StartNew();
-            int[] ready = new[] { 0 };
-            ManualResetEvent start = new ManualResetEvent(false);
-            int nthreads = Math.Min(MAXTHREADS, args.Length);
-            var threads = new Thread[nthreads];
-            for (int i = 0; i < threads.Length; i++)
-            {
-                threads[i] = new Thread((ithread) =>
-                {
-                    Interlocked.Increment(ref ready[0]);
-                    start.WaitOne();
-                    for (int loop = 0; loop < loopCount; loop++)
-                        for (int ix = (int)ithread; ix < args.Length; ix += nthreads)
-                            task(args[ix]);
-                });
-            }
-
-            int threadIx = 0;
-            foreach (var t in threads)
-                t.Start(threadIx++);
-
-            while (Interlocked.CompareExchange(ref ready[0], 0, 0) < nthreads)
-                Thread.Sleep(0);
-
-            start.Set();
-
-            foreach (var t in threads)
-                t.Join();
-
-            Trace.TraceInformation("Execution time: {0}", timer.Elapsed);
-        }
-
-        // LUCENENET TODO: For some reason, this logic depends on the underlying
-        // implementation of Guid.NewGuid(), which has changed in .NET Core 2.0.
-        // But the functionality of LurchTable seems unaffected by this change.
-#if !NETCOREAPP
-        [Test, LuceneNetSpecific]
-        public void TestGuidHashCollision()
-        {
-            Guid id1 = Guid.NewGuid();
-            Guid id2 = NextHashCollision(id1);
-
-            Assert.AreNotEqual(id1, id2);
-            Assert.AreEqual(id1.GetHashCode(), id2.GetHashCode());
-        }
-#endif
-
-        [Test, LuceneNetSpecific]
-        public void TestLimitedInsert()
-        {
-            var Map = new LurchTable<Guid, bool>(LurchTableOrder.Access, 1000);
-            var ids = CreateSample(Guid.NewGuid(), 1000000, 0);
-
-            Parallel(1, ids,
-                     id =>
-                     {
-                         bool test;
-                         Assert.IsTrue(Map.TryAdd(id, true));
-                         Map.TryGetValue(id, out test);
-                     });
-
-            Assert.AreEqual(1000, Map.Count);
-        }
-
-        [Test, LuceneNetSpecific]
-        public void TestInsert()
-        {
-            var Map = CreateMap<bool>();
-            var ids = CreateSample(Guid.NewGuid(), COUNT, 4);
-
-            bool test;
-            Parallel(1, ids, id => { Assert.IsTrue(Map.TryAdd(id, true)); });
-
-            Assert.AreEqual(ids.Length, Map.Count);
-            foreach (var id in ids)
-                Assert.IsTrue(Map.TryGetValue(id, out test) && test);
-        }
-
-        [Test, LuceneNetSpecific]
-        public void TestDelete()
-        {
-            var Map = CreateMap<bool>();
-            var ids = CreateSample(Guid.NewGuid(), COUNT, 4);
-            foreach (var id in ids)
-                Assert.IsTrue(Map.TryAdd(id, true));
-
-            bool test;
-            Parallel(1, ids, id => { Assert.IsTrue(Map.Remove(id)); });
-
-            Assert.AreEqual(0, Map.Count);
-            foreach (var id in ids)
-                Assert.IsTrue(!Map.TryGetValue(id, out test));
-        }
-
-        [Test, LuceneNetSpecific]
-        public void TestInsertDelete()
-        {
-            var Map = CreateMap<bool>();
-            var ids = CreateSample(Guid.NewGuid(), COUNT, 4);
-
-            bool test;
-            Parallel(100, ids, id => { Assert.IsTrue(Map.TryAdd(id, true)); Assert.IsTrue(Map.Remove(id)); });
-
-            Assert.AreEqual(0, Map.Count);
-            foreach (var id in ids)
-                Assert.IsTrue(!Map.TryGetValue(id, out test));
-        }
-
-        [Test, LuceneNetSpecific]
-        public void TestInsertUpdateDelete()
-        {
-            var Map = CreateMap<bool>();
-            var ids = CreateSample(Guid.NewGuid(), COUNT, 4);
-
-            bool test;
-            Parallel(100, ids, id => { Assert.IsTrue(Map.TryAdd(id, true)); Assert.IsTrue(Map.TryUpdate(id, false, true)); Assert.IsTrue(Map.Remove(id)); });
-
-            Assert.AreEqual(0, Map.Count);
-            foreach (var id in ids)
-                Assert.IsTrue(!Map.TryGetValue(id, out test));
-        }
-
-        [Test, LongRunningTest, LuceneNetSpecific]
-        public void CompareTest()
-        {
-            const int size = 1000000;
-            int reps = 3;
-            Stopwatch timer;
-
-            IDictionary<Guid, TestValue> dict = new ConcurrentDictionary<Guid, TestValue>(new Dictionary<Guid, TestValue>(size));
-            IDictionary<Guid, TestValue> test = new LurchTable<Guid, TestValue>(size);
-
-            for (int rep = 0; rep < reps; rep++)
-            {
-                var sample = CreateSample(Guid.NewGuid(), size, 1);
-
-                timer = Stopwatch.StartNew();
-                Parallel(1, sample, item => dict.Add(item, new TestValue { Id = item, Count = rep }));
-                Trace.TraceInformation("Dict Add: {0}", timer.Elapsed);
-
-                timer = Stopwatch.StartNew();
-                Parallel(1, sample, item => test.Add(item, new TestValue { Id = item, Count = rep }));
-                Trace.TraceInformation("Test Add: {0}", timer.Elapsed);
-
-                timer = Stopwatch.StartNew();
-                Parallel(1, sample, item => dict[item] = new TestValue { Id = item, Count = rep });
-                Trace.TraceInformation("Dict Update: {0}", timer.Elapsed);
-
-                timer = Stopwatch.StartNew();
-                Parallel(1, sample, item => test[item] = new TestValue { Id = item, Count = rep });
-                Trace.TraceInformation("Test Update: {0}", timer.Elapsed);
-
-                timer = Stopwatch.StartNew();
-                Parallel(1, sample, item => dict.Remove(item));
-                Trace.TraceInformation("Dict Rem: {0}", timer.Elapsed);
-                Assert.AreEqual(0, dict.Count);
-
-                timer = Stopwatch.StartNew();
-                Parallel(1, sample, item => test.Remove(item));
-                Trace.TraceInformation("Test Rem: {0}", timer.Elapsed);
-
-                test.Clear();
-                dict.Clear();
-
-                GC.Collect();
-                GC.WaitForPendingFinalizers();
-            }
-        }
-
-        struct TestValue
-        {
-            public Guid Id;
-            public int Count;
-        };
-
-#region Guid Hash Collision Generator
-
-        private static Random random = new Random();
-        private static int iCounter = 0x01010101;
-
-        public static Guid NextHashCollision(Guid guid)
-        {
-            var bytes = guid.ToByteArray();
-
-            // Modify bytes 8 & 9 with random number
-            Array.Copy(
-                BitConverter.GetBytes((short)random.Next()),
-                0,
-                bytes,
-                8,
-                2
-            );
-
-            // Increment bytes 11, 12, 13, & 14
-            Array.Copy(
-                BitConverter.GetBytes(
-                    BitConverter.ToInt32(bytes, 11) +
-                    Interlocked.Increment(ref iCounter)
-                    ),
-                0,
-                bytes,
-                11,
-                4
-            );
-
-            Guid result = new Guid(bytes);
-#if !NETCOREAPP
-            Assert.AreEqual(guid.GetHashCode(), result.GetHashCode());
-#endif
-            return result;
-        }
-
-        public static Guid[] CreateSample(Guid seed, int size, double collisions)
-        {
-            var sample = new Guid[size];
-            int count = 0, collis = 0, uix = 0;
-            for (int i = 0; i < size; i++)
-            {
-                if (collis >= count * collisions)
-                {
-                    sample[uix = i] = Guid.NewGuid();
-                    count++;
-                }
-                else
-                {
-                    sample[i] = NextHashCollision(sample[uix]);
-                    collis++;
-                }
-            }
-            return sample;
-        }
-#endregion
-    }
-}
diff --git a/src/Lucene.Net/Support/LurchTable.cs b/src/Lucene.Net/Support/LurchTable.cs
deleted file mode 100644
index cb496d4..0000000
--- a/src/Lucene.Net/Support/LurchTable.cs
+++ /dev/null
@@ -1,1697 +0,0 @@
-#region Copyright 2012-2014 by Roger Knapp, Licensed under the Apache License, Version 2.0
-/* Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
- // 2016-10-03: Modified from the original version by Shad Storhaug to 
- //             allow read-write access to the Limit property
-#endregion
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Threading;
-
-namespace Lucene.Net.Support
-{
-    /// <summary>
-    /// Defines if and how items added to a LurchTable are linked together, this defines
-    /// the value returned from Peek/Dequeue as the oldest entry of the specified operation.
-    /// </summary>
-    public enum LurchTableOrder
-    {
-        /// <summary> No linking </summary>
-        None,
-        /// <summary> Linked in insertion order </summary>
-        Insertion,
-        /// <summary> Linked by most recently inserted or updated </summary>
-        Modified,
-        /// <summary> Linked by most recently inserted, updated, or fetched </summary>
-        Access,
-    }
-
-    /// <summary>
-    /// LurchTable stands for "Least Used Recently Concurrent Hash Table" and has definate
-    /// similarities to both the .NET 4 ConcurrentDictionary as well as Java's LinkedHashMap.
-    /// This gives you a thread-safe dictionary/hashtable that stores element ordering by
-    /// insertion, updates, or access.  In addition it can be configured to use a 'hard-limit'
-    /// count of items that will automatically 'pop' the oldest item in the collection.
-    /// </summary>
-    /// <typeparam name="TKey">The type of keys in the dictionary.</typeparam>
-    /// <typeparam name="TValue">The type of values in the dictionary.</typeparam>
-    public class LurchTable<TKey, TValue> : IDictionary<TKey, TValue>, IDisposable
-    {
-        /// <summary> Method signature for the ItemUpdated event </summary>
-        public delegate void ItemUpdatedMethod(KeyValuePair<TKey, TValue> previous, KeyValuePair<TKey, TValue> next);
-
-        /// <summary> Event raised after an item is removed from the collection </summary>
-        public event Action<KeyValuePair<TKey, TValue>> ItemRemoved;
-        /// <summary> Event raised after an item is updated in the collection </summary>
-        public event ItemUpdatedMethod ItemUpdated;
-        /// <summary> Event raised after an item is added to the collection </summary>
-        public event Action<KeyValuePair<TKey, TValue>> ItemAdded;
-
-        private const int OverAlloc = 128;
-        private const int FreeSlots = 32;
-
-        private readonly IEqualityComparer<TKey> _comparer;
-        private readonly int _hsize, _lsize;
-        private int _limit; // LUCENENET: Changed to read-write
-        private readonly int _allocSize, _shift, _shiftMask;
-        private readonly LurchTableOrder _ordering;
-        private readonly object[] _locks;
-        private readonly int[] _buckets;
-        private readonly FreeList[] _free;
-
-        private Entry[][] _entries;
-        private int _used, _count;
-        private int _allocNext, _freeVersion;
-
-
-
-        /// <summary>Creates a LurchTable that can store up to <paramref name="capacity"/> items efficiently.</summary>
-        /// <param name="capacity">The initial allowable number of items before allocation of more memory</param>
-        public LurchTable(int capacity)
-            : this(LurchTableOrder.None, int.MaxValue, capacity >> 1, capacity >> 4, capacity >> 8, null) { }
-
-        /// <summary>Creates a LurchTable that can store up to <paramref name="capacity"/> items efficiently.</summary>
-        /// <param name="capacity">The initial allowable number of items before allocation of more memory</param>
-        /// <param name="ordering">The type of linking for the items</param>
-        public LurchTable(int capacity, LurchTableOrder ordering)
-            : this(ordering, int.MaxValue, capacity >> 1, capacity >> 4, capacity >> 8, null) { }
-
-        /// <summary>Creates a LurchTable that can store up to <paramref name="capacity"/> items efficiently.</summary>
-        /// <param name="capacity">The initial allowable number of items before allocation of more memory</param>
-        /// <param name="ordering">The type of linking for the items</param>
-        /// <param name="comparer">The element hash generator for keys, or <c>null</c> to use <see cref="EqualityComparer{TKey}.Default"/></param>
-        public LurchTable(int capacity, LurchTableOrder ordering, IEqualityComparer<TKey> comparer)
-            : this(ordering, int.MaxValue, capacity >> 1, capacity >> 4, capacity >> 8, comparer) { }
-
-        /// <summary>Creates a LurchTable that orders items by <paramref name="ordering"/> and removes items once the specified <paramref name="limit"/> is reached.</summary>
-        /// <param name="ordering">The type of linking for the items</param>
-        /// <param name="limit">The maximum allowable number of items, or int.MaxValue for unlimited</param>
-        public LurchTable(LurchTableOrder ordering, int limit)
-            : this(ordering, limit, limit >> 1, limit >> 4, limit >> 8, null) { }
-
-        /// <summary>Creates a LurchTable that orders items by <paramref name="ordering"/> and removes items once the specified <paramref name="limit"/> is reached.</summary>
-        /// <param name="ordering">The type of linking for the items</param>
-        /// <param name="limit">The maximum allowable number of items, or int.MaxValue for unlimited</param>
-        /// <param name="comparer">The element hash generator for keys, or <c>null</c> to use <see cref="EqualityComparer{TKey}.Default"/></param>
-        public LurchTable(LurchTableOrder ordering, int limit, IEqualityComparer<TKey> comparer)
-            : this(ordering, limit, limit >> 1, limit >> 4, limit >> 8, comparer) { }
-
-        /// <summary>
-        /// Creates a LurchTable that orders items by <paramref name="ordering"/> and removes items once the specified <paramref name="limit"/> is reached.
-        /// </summary>
-        /// <param name="ordering">The type of linking for the items</param>
-        /// <param name="limit">The maximum allowable number of items, or int.MaxValue for unlimited</param>
-        /// <param name="hashSize">The number of hash buckets to use for the collection, usually 1/2 estimated capacity</param>
-        /// <param name="allocSize">The number of entries to allocate at a time, usually 1/16 estimated capacity</param>
-        /// <param name="lockSize">The number of concurrency locks to preallocate, usually 1/256 estimated capacity</param>
-        /// <param name="comparer">The element hash generator for keys, or <c>null</c> to use <see cref="EqualityComparer{TKey}.Default"/></param>
-        public LurchTable(LurchTableOrder ordering, int limit, int hashSize, int allocSize, int lockSize, IEqualityComparer<TKey> comparer)
-        {
-            if (limit <= 0)
-                throw new ArgumentOutOfRangeException("limit");
-            if (ordering == LurchTableOrder.None && limit < int.MaxValue)
-                throw new ArgumentOutOfRangeException("ordering");
-
-            _limit = limit <= 0 ? int.MaxValue : limit;
-            _comparer = comparer ?? EqualityComparer<TKey>.Default;
-            _ordering = ordering;
-
-            allocSize = (int)Math.Min((long)allocSize + OverAlloc, 0x3fffffff);
-            //last power of 2 that is less than allocSize
-            for (_shift = 7; _shift < 24 && (1 << (_shift + 1)) < allocSize; _shift++) { }
-            _allocSize = 1 << _shift;
-            _shiftMask = _allocSize - 1;
-
-            _hsize = HashUtilities.SelectPrimeNumber(Math.Max(127, hashSize));
-            _buckets = new int[_hsize];
-
-            _lsize = HashUtilities.SelectPrimeNumber(lockSize);
-            _locks = new object[_lsize];
-            for (int i = 0; i < _lsize; i++)
-                _locks[i] = new object();
-
-            _free = new FreeList[FreeSlots];
-            Initialize();
-        }
-
-        #region IDisposable Members
-
-        /// <summary>
-        /// Clears references to all objects and invalidates the collection
-        /// </summary>
-        public void Dispose()
-        {
-            _entries = null;
-            _used = _count = 0;
-        }
-
-        #endregion
-
-        /// <summary>
-        /// Gets the number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1"/>.
-        /// </summary>
-        public int Count { get { return _count; } }
-        /// <summary>
-        /// Retrieves the LurchTableOrder Ordering enumeration this instance was created with.
-        /// </summary>
-        public LurchTableOrder Ordering { get { return _ordering; } }
-        /// <summary>
-        /// Retrives the key comparer being used by this instance.
-        /// </summary>
-        public IEqualityComparer<TKey> Comparer { get { return _comparer; } }
-        /// <summary>
-        /// Gets or Sets the record limit allowed in this instance.
-        /// </summary>
-        public int Limit
-        {
-            get { return _limit; }
-            set { _limit = value; }
-        }
-
-        /// <summary>
-        /// WARNING: not thread-safe, reinitializes all internal structures.  Use Clear() for a thread-safe
-        /// delete all.  If you have externally provided exclusive access this method may be used to more
-        /// efficiently clear the collection.
-        /// </summary>
-        public void Initialize()
-        {
-            lock (this)
-            {
-                _freeVersion = _allocNext = 0;
-                _count = 0;
-                _used = 1;
-
-                Array.Clear(_buckets, 0, _hsize);
-                _entries = new[] { new Entry[_allocSize] };
-                for (int slot = 0; slot < FreeSlots; slot++)
-                {
-                    var index = Interlocked.CompareExchange(ref _used, _used + 1, _used);
-                    if (index != slot + 1)
-                        throw new LurchTableCorruptionException();
-
-                    _free[slot].Tail = index;
-                    _free[slot].Head = index;
-                }
-
-                if (_count != 0 || _used != FreeSlots + 1)
-                    throw new LurchTableCorruptionException();
-            }
-        }
-
-        #region IDictionary<TKey,TValue> Members
-
-        /// <summary>
-        /// Removes all items from the <see cref="T:System.Collections.Generic.ICollection`1"/>.
-        /// </summary>
-        public void Clear()
-        {
-            if (_entries == null) throw new ObjectDisposedException(GetType().Name);
-            foreach (var item in this)
-                Remove(item.Key);
-        }
-
-        /// <summary>
-        /// Determines whether the <see cref="T:System.Collections.Generic.IDictionary`2"/> contains an element with the specified key.
-        /// </summary>
-        public bool ContainsKey(TKey key)
-        {
-            if (_entries == null) throw new ObjectDisposedException(GetType().Name);
-            TValue value;
-            return TryGetValue(key, out value);
-        }
-
-        /// <summary>
-        /// Gets or sets the element with the specified key.
-        /// </summary>
-        public TValue this[TKey key]
-        {
-            set
-            {
-                var info = new AddInfo<TKey, TValue> { Value = value, CanUpdate = true };
-                Insert(key, ref info);
-            }
-            get
-            {
-                TValue value;
-                if (!TryGetValue(key, out value))
-                    throw new ArgumentOutOfRangeException();
-                return value;
-            }
-        }
-
-        /// <summary>
-        /// Gets the value associated with the specified key.
-        /// </summary>
-        /// <returns>
-        /// true if the object that implements <see cref="T:System.Collections.Generic.IDictionary`2"/> contains an element with the specified key; otherwise, false.
-        /// </returns>
-        public bool TryGetValue(TKey key, out TValue value)
-        {
-            int hash = _comparer.GetHashCode(key) & int.MaxValue;
-            return InternalGetValue(hash, key, out value);
-        }
-
-        /// <summary>
-        /// Adds an element with the provided key and value to the <see cref="T:System.Collections.Generic.IDictionary`2"/>.
-        /// </summary>
-        public void Add(TKey key, TValue value)
-        {
-            var info = new AddInfo<TKey, TValue> { Value = value };
-            if (InsertResult.Inserted != Insert(key, ref info))
-                throw new ArgumentOutOfRangeException();
-        }
-
-        /// <summary>
-        /// Removes the element with the specified key from the <see cref="T:System.Collections.Generic.IDictionary`2"/>.
-        /// </summary>
-        /// <returns>
-        /// true if the element is successfully removed; otherwise, false.  This method also returns false if <paramref name="key"/> was not found in the original <see cref="T:System.Collections.Generic.IDictionary`2"/>.
-        /// </returns>
-        /// <param name="key">The key of the element to remove.</param>
-        public bool Remove(TKey key)
-        {
-            var del = new DelInfo<TKey, TValue>();
-            return Delete(key, ref del);
-        }
-
-        #endregion
-
-        #region IDictionaryEx<TKey,TValue> Members
-
-        /// <summary>
-        /// Adds a key/value pair to the  <see cref="T:System.Collections.Generic.IDictionary`2"/> if the key does not already exist.
-        /// </summary>
-        /// <param name="key">The key of the element to add.</param>
-        /// <param name="value">The value to be added, if the key does not already exist.</param>
-        public TValue GetOrAdd(TKey key, TValue value)
-        {
-            var info = new AddInfo<TKey, TValue> { Value = value, CanUpdate = false };
-            if (InsertResult.Exists == Insert(key, ref info))
-                return info.Value;
-            return value;
-        }
-
-        /// <summary>
-        /// Adds an element with the provided key and value to the <see cref="T:System.Collections.Generic.IDictionary`2"/>.
-        /// </summary>
-        /// <param name="key">The object to use as the key of the element to add.</param>
-        /// <param name="value">The object to use as the value of the element to add.</param>
-        public bool TryAdd(TKey key, TValue value)
-        {
-            var info = new AddInfo<TKey, TValue> { Value = value, CanUpdate = false };
-            return InsertResult.Inserted == Insert(key, ref info);
-        }
-
-        /// <summary>
-        /// Updates an element with the provided key to the value if it exists.
-        /// </summary>
-        /// <returns>Returns true if the key provided was found and updated to the value.</returns>
-        /// <param name="key">The object to use as the key of the element to update.</param>
-        /// <param name="value">The new value for the key if found.</param>
-        public bool TryUpdate(TKey key, TValue value)
-        {
-            var info = new UpdateInfo<TKey, TValue> { Value = value };
-            return InsertResult.Updated == Insert(key, ref info);
-        }
-
-        /// <summary>
-        /// Updates an element with the provided key to the value if it exists.
-        /// </summary>
-        /// <returns>Returns true if the key provided was found and updated to the value.</returns>
-        /// <param name="key">The object to use as the key of the element to update.</param>
-        /// <param name="value">The new value for the key if found.</param>
-        /// <param name="comparisonValue">The value that is compared to the value of the element with key.</param>
-        public bool TryUpdate(TKey key, TValue value, TValue comparisonValue)
-        {
-            var info = new UpdateInfo<TKey, TValue>(comparisonValue) { Value = value };
-            return InsertResult.Updated == Insert(key, ref info);
-        }
-
-        /// <summary>
-        /// Removes the element with the specified key from the <see cref="T:System.Collections.Generic.IDictionary`2"/>.
-        /// </summary>
-        /// <returns>
-        /// true if the element is successfully removed; otherwise, false.  This method also returns false if <paramref name="key"/> was not found in the original <see cref="T:System.Collections.Generic.IDictionary`2"/>.
-        /// </returns>
-        /// <param name="key">The key of the element to remove.</param>
-        /// <param name="value">The value that was removed.</param>
-        public bool TryRemove(TKey key, out TValue value)
-        {
-            var info = new DelInfo<TKey, TValue>();
-            if (Delete(key, ref info))
-            {
-                value = info.Value;
-                return true;
-            }
-            value = default(TValue);
-            return false;
-        }
-
-        #endregion
-
-        #region IConcurrentDictionary<TKey,TValue> Members
-
-        /// <summary>
-        /// Adds a key/value pair to the  <see cref="T:System.Collections.Generic.IDictionary`2"/> if the key does not already exist.
-        /// </summary>
-        /// <param name="key">The key of the element to add.</param>
-        /// <param name="fnCreate">Constructs a new value for the key.</param>
-        public TValue GetOrAdd(TKey key, Func<TKey, TValue> fnCreate)
-        {
-            var info = new Add2Info<TKey, TValue> { Create = fnCreate };
-            Insert(key, ref info);
-            return info.Value;
-        }
-
-        /// <summary>
-        /// Adds a key/value pair to the <see cref="T:System.Collections.Generic.IDictionary`2"/> if the key does not already exist, 
-        /// or updates a key/value pair if the key already exists.
-        /// </summary>
-        public TValue AddOrUpdate(TKey key, TValue addValue, KeyValueUpdate<TKey, TValue> fnUpdate)
-        {
-            var info = new Add2Info<TKey, TValue>(addValue) { Update = fnUpdate };
-            Insert(key, ref info);
-            return info.Value;
-        }
-
-        /// <summary>
-        /// Adds a key/value pair to the <see cref="T:System.Collections.Generic.IDictionary`2"/> if the key does not already exist, 
-        /// or updates a key/value pair if the key already exists.
-        /// </summary>
-        /// <remarks>
-        /// Adds or modifies an element with the provided key and value.  If the key does not exist in the collection,
-        /// the factory method fnCreate will be called to produce the new value, if the key exists, the converter method
-        /// fnUpdate will be called to create an updated value.
-        /// </remarks>
-        public TValue AddOrUpdate(TKey key, Func<TKey, TValue> fnCreate, KeyValueUpdate<TKey, TValue> fnUpdate)
-        {
-            var info = new Add2Info<TKey, TValue> { Create = fnCreate, Update = fnUpdate };
-            Insert(key, ref info);
-            return info.Value;
-        }
-
-        /// <summary>
-        /// Add, update, or fetche a key/value pair from the dictionary via an implementation of the
-        /// <see cref="T:CSharpTest.Net.Collections.ICreateOrUpdateValue`2"/> interface.
-        /// </summary>
-        public bool AddOrUpdate<T>(TKey key, ref T createOrUpdateValue) where T : ICreateOrUpdateValue<TKey, TValue>
-        {
-            var result = Insert(key, ref createOrUpdateValue);
-            return result == InsertResult.Inserted || result == InsertResult.Updated;
-        }
-
-        /// <summary>
-        /// Adds an element with the provided key and value to the <see cref="T:System.Collections.Generic.IDictionary`2"/>
-        /// by calling the provided factory method to construct the value if the key is not already present in the collection.
-        /// </summary>
-        public bool TryAdd(TKey key, Func<TKey, TValue> fnCreate)
-        {
-            var info = new Add2Info<TKey, TValue> { Create = fnCreate };
-            return InsertResult.Inserted == Insert(key, ref info);
-        }
-
-        /// <summary>
-        /// Modify the value associated with the result of the provided update method
-        /// as an atomic operation, Allows for reading/writing a single record within
-        /// the syncronization lock.
-        /// </summary>
-        public bool TryUpdate(TKey key, KeyValueUpdate<TKey, TValue> fnUpdate)
-        {
-            var info = new Add2Info<TKey, TValue> { Update = fnUpdate };
-            return InsertResult.Updated == Insert(key, ref info);
-        }
-
-        /// <summary>
-        /// Removes the element with the specified key from the <see cref="T:System.Collections.Generic.IDictionary`2"/>
-        /// if the fnCondition predicate is null or returns true.
-        /// </summary>
-        public bool TryRemove(TKey key, KeyValuePredicate<TKey, TValue> fnCondition)
-        {
-            var info = new DelInfo<TKey, TValue> { Condition = fnCondition };
-            return Delete(key, ref info);
-        }
-
-        /// <summary>
-        /// Conditionally removes a key/value pair from the dictionary via an implementation of the
-        /// <see cref="T:CSharpTest.Net.Collections.IRemoveValue`2"/> interface.
-        /// </summary>
-        public bool TryRemove<T>(TKey key, ref T removeValue) where T : IRemoveValue<TKey, TValue>
-        {
-            return Delete(key, ref removeValue);
-        }
-
-        #endregion
-
-        #region ICollection<KeyValuePair<TKey,TValue>> Members
-
-        bool ICollection<KeyValuePair<TKey, TValue>>.IsReadOnly
-        {
-            get { return false; }
-        }
-
-        void ICollection<KeyValuePair<TKey, TValue>>.Add(KeyValuePair<TKey, TValue> item)
-        {
-            Add(item.Key, item.Value);
-        }
-
-        bool ICollection<KeyValuePair<TKey, TValue>>.Contains(KeyValuePair<TKey, TValue> item)
-        {
-            TValue test;
-            if (TryGetValue(item.Key, out test))
-                return EqualityComparer<TValue>.Default.Equals(item.Value, test);
-            return false;
-        }
-
-        void ICollection<KeyValuePair<TKey, TValue>>.CopyTo(KeyValuePair<TKey, TValue>[] array, int arrayIndex)
-        {
-            foreach (var item in this)
-                array[arrayIndex++] = item;
-        }
-
-        bool ICollection<KeyValuePair<TKey, TValue>>.Remove(KeyValuePair<TKey, TValue> item)
-        {
-            var del = new DelInfo<TKey, TValue>(item.Value);
-            return Delete(item.Key, ref del);
-        }
-
-        #endregion
-
-        #region IEnumerator<KeyValuePair<TKey, TValue>>
-
-        private bool MoveNext(ref EnumState state)
-        {
-            if (_entries == null) throw new ObjectDisposedException(GetType().Name);
-
-            if (state.Current > 0)
-                state.Current = state.Next;
-
-            if (state.Current > 0)
-            {
-                state.Next = _entries[state.Current >> _shift][state.Current & _shiftMask].Link;
-                return true;
-            }
-
-            state.Unlock();
-            while (++state.Bucket < _hsize)
-            {
-                if (_buckets[state.Bucket] == 0)
-                    continue;
-
-                state.Lock(_locks[state.Bucket % _lsize]);
-
-                state.Current = _buckets[state.Bucket];
-                if (state.Current > 0)
-                {
-                    state.Next = _entries[state.Current >> _shift][state.Current & _shiftMask].Link;
-                    return true;
-                }
-
-                state.Unlock();
-            }
-
-            return false;
-        }
-
-        /// <summary>
-        /// Provides an enumerator that iterates through the collection.
-        /// </summary>
-        public struct Enumerator : IEnumerator<KeyValuePair<TKey, TValue>>
-        {
-            private readonly LurchTable<TKey, TValue> _owner;
-            private EnumState _state;
-
-            internal Enumerator(LurchTable<TKey, TValue> owner)
-            {
-                _owner = owner;
-                _state = new EnumState();
-                _state.Init();
-            }
-
-            /// <summary>
-            /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
-            /// </summary>
-            public void Dispose()
-            {
-                _state.Unlock();
-            }
-
-            object IEnumerator.Current { get { return Current; } }
-
-            /// <summary>
-            /// Gets the element in the collection at the current position of the enumerator.
-            /// </summary>
-            public KeyValuePair<TKey, TValue> Current
-            {
-                get
-                {
-                    int index = _state.Current;
-                    if (index <= 0)
-                        throw new InvalidOperationException();
-                    if (_owner._entries == null)
-                        throw new ObjectDisposedException(GetType().Name);
-
-                    return new KeyValuePair<TKey, TValue>
-                        (
-                            _owner._entries[index >> _owner._shift][index & _owner._shiftMask].Key,
-                            _owner._entries[index >> _owner._shift][index & _owner._shiftMask].Value
-                        );
-                }
-            }
-
-            /// <summary>
-            /// Advances the enumerator to the next element of the collection.
-            /// </summary>
-            public bool MoveNext()
-            {
-                return _owner.MoveNext(ref _state);
-            }
-
-            /// <summary>
-            /// Sets the enumerator to its initial position, which is before the first element in the collection.
-            /// </summary>
-            public void Reset()
-            {
-                _state.Unlock();
-                _state.Init();
-            }
-        }
-
-        /// <summary>
-        /// Returns an enumerator that iterates through the collection.
-        /// </summary>
-        public Enumerator GetEnumerator() { return new Enumerator(this); }
-        IEnumerator<KeyValuePair<TKey, TValue>> IEnumerable<KeyValuePair<TKey, TValue>>.GetEnumerator()
-        { return GetEnumerator(); }
-        IEnumerator IEnumerable.GetEnumerator()
-        { return GetEnumerator(); }
-        #endregion
-
-        #region KeyCollection
-        /// <summary>
-        /// Provides the collection of Keys for the LurchTable
-        /// </summary>
-        public class KeyCollection : ICollection<TKey>
-        {
-            private readonly LurchTable<TKey, TValue> _owner;
-
-            internal KeyCollection(LurchTable<TKey, TValue> owner)
-            {
-                _owner = owner;
-            }
-
-            #region ICollection<TKey> Members
-
-            /// <summary>
-            /// Determines whether the <see cref="T:System.Collections.Generic.ICollection`1"/> contains a specific value.
-            /// </summary>
-            public bool Contains(TKey item)
-            {
-                return _owner.ContainsKey(item);
-            }
-
-            /// <summary>
-            /// Copies the elements of the <see cref="T:System.Collections.Generic.ICollection`1"/> to an <see cref="T:System.Array"/>, starting at a particular <see cref="T:System.Array"/> index.
-            /// </summary>
-            public void CopyTo(TKey[] array, int arrayIndex)
-            {
-                foreach (var item in _owner)
-                    array[arrayIndex++] = item.Key;
-            }
-
-            /// <summary>
-            /// Gets the number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1"/>.
-            /// </summary>
-            public int Count
-            {
-                get { return _owner.Count; }
-            }
-
-            /// <summary>
-            /// Returns an enumerator that iterates through the collection.
-            /// </summary>
-            public Enumerator GetEnumerator()
-            {
-                return new Enumerator(_owner);
-            }
-
-            /// <summary>
-            /// Provides an enumerator that iterates through the collection.
-            /// </summary>
-            public struct Enumerator : IEnumerator<TKey>
-            {
-                private readonly LurchTable<TKey, TValue> _owner;
-                private EnumState _state;
-
-                internal Enumerator(LurchTable<TKey, TValue> owner)
-                {
-                    _owner = owner;
-                    _state = new EnumState();
-                    _state.Init();
-                }
-
-                /// <summary>
-                /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
-                /// </summary>
-                public void Dispose()
-                {
-                    _state.Unlock();
-                }
-
-                object IEnumerator.Current { get { return Current; } }
-
-                /// <summary>
-                /// Gets the element in the collection at the current position of the enumerator.
-                /// </summary>
-                public TKey Current
-                {
-                    get
-                    {
-                        int index = _state.Current;
-                        if (index <= 0)
-                            throw new InvalidOperationException();
-                        if (_owner._entries == null)
-                            throw new ObjectDisposedException(GetType().Name);
-                        return _owner._entries[index >> _owner._shift][index & _owner._shiftMask].Key;
-                    }
-                }
-
-                /// <summary>
-                /// Advances the enumerator to the next element of the collection.
-                /// </summary>
-                public bool MoveNext()
-                {
-                    return _owner.MoveNext(ref _state);
-                }
-
-                /// <summary>
-                /// Sets the enumerator to its initial position, which is before the first element in the collection.
-                /// </summary>
-                public void Reset()
-                {
-                    _state.Unlock();
-                    _state.Init();
-                }
-            }
-            [Obsolete]
-            IEnumerator<TKey> IEnumerable<TKey>.GetEnumerator()
-            {
-                return new Enumerator(_owner);
-            }
-            [Obsolete]
-            IEnumerator IEnumerable.GetEnumerator()
-            {
-                return new Enumerator(_owner);
-            }
-            [Obsolete]
-            bool ICollection<TKey>.IsReadOnly
-            {
-                get { return true; }
-            }
-            [Obsolete]
-            void ICollection<TKey>.Add(TKey item)
-            {
-                throw new NotSupportedException();
-            }
-            [Obsolete]
-            void ICollection<TKey>.Clear()
-            {
-                throw new NotSupportedException();
-            }
-            [Obsolete]
-            bool ICollection<TKey>.Remove(TKey item)
-            {
-                throw new NotSupportedException();
-            }
-
-            #endregion
-        }
-
-        private KeyCollection _keyCollection;
-        /// <summary>
-        /// Gets an <see cref="T:System.Collections.Generic.ICollection`1"/> containing the keys of the <see cref="T:System.Collections.Generic.IDictionary`2"/>.
-        /// </summary>
-        public KeyCollection Keys { get { return _keyCollection ?? (_keyCollection = new KeyCollection(this)); } }
-        [Obsolete]
-        ICollection<TKey> IDictionary<TKey, TValue>.Keys { get { return Keys; } }
-        #endregion
-
-        #region ValueCollection
-        /// <summary>
-        /// Provides the collection of Values for the LurchTable
-        /// </summary>
-        public class ValueCollection : ICollection<TValue>
-        {
-            private readonly LurchTable<TKey, TValue> _owner;
-
-            internal ValueCollection(LurchTable<TKey, TValue> owner)
-            {
-                _owner = owner;
-            }
-
-            #region ICollection<TValue> Members
-
-            /// <summary>
-            /// Determines whether the <see cref="T:System.Collections.Generic.ICollection`1"/> contains a specific value.
-            /// </summary>
-            public bool Contains(TValue value)
-            {
-                var comparer = EqualityComparer<TValue>.Default;
-                foreach (var item in _owner)
-                {
-                    if (comparer.Equals(item.Value, value))
-                        return true;
-                }
-                return false;
-            }
-
-            /// <summary>
-            /// Copies the elements of the <see cref="T:System.Collections.Generic.ICollection`1"/> to an <see cref="T:System.Array"/>, starting at a particular <see cref="T:System.Array"/> index.
-            /// </summary>
-            public void CopyTo(TValue[] array, int arrayIndex)
-            {
-                foreach (var item in _owner)
-                    array[arrayIndex++] = item.Value;
-            }
-
-            /// <summary>
-            /// Gets the number of elements contained in the <see cref="T:System.Collections.Generic.ICollection`1"/>.
-            /// </summary>
-            public int Count
-            {
-                get { return _owner.Count; }
-            }
-
-            /// <summary>
-            /// Returns an enumerator that iterates through the collection.
-            /// </summary>
-            public Enumerator GetEnumerator()
-            {
-                return new Enumerator(_owner);
-            }
-
-            /// <summary>
-            /// Provides an enumerator that iterates through the collection.
-            /// </summary>
-            public struct Enumerator : IEnumerator<TValue>
-            {
-                private readonly LurchTable<TKey, TValue> _owner;
-                private EnumState _state;
-
-                internal Enumerator(LurchTable<TKey, TValue> owner)
-                {
-                    _owner = owner;
-                    _state = new EnumState();
-                    _state.Init();
-                }
-
-                /// <summary>
-                /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
-                /// </summary>
-                public void Dispose()
-                {
-                    _state.Unlock();
-                }
-
-                object IEnumerator.Current { get { return Current; } }
-
-                /// <summary>
-                /// Gets the element in the collection at the current position of the enumerator.
-                /// </summary>
-                public TValue Current
-                {
-                    get
-                    {
-                        int index = _state.Current;
-                        if (index <= 0)
-                            throw new InvalidOperationException();
-                        if (_owner._entries == null)
-                            throw new ObjectDisposedException(GetType().Name);
-                        return _owner._entries[index >> _owner._shift][index & _owner._shiftMask].Value;
-                    }
-                }
-
-                /// <summary>
-                /// Advances the enumerator to the next element of the collection.
-                /// </summary>
-                public bool MoveNext()
-                {
-                    return _owner.MoveNext(ref _state);
-                }
-
-                /// <summary>
-                /// Sets the enumerator to its initial position, which is before the first element in the collection.
-                /// </summary>
-                public void Reset()
-                {
-                    _state.Unlock();
-                    _state.Init();
-                }
-            }
-            [Obsolete]
-            IEnumerator<TValue> IEnumerable<TValue>.GetEnumerator()
-            {
-                return new Enumerator(_owner);
-            }
-            [Obsolete]
-            IEnumerator IEnumerable.GetEnumerator()
-            {
-                return new Enumerator(_owner);
-            }
-            [Obsolete]
-            bool ICollection<TValue>.IsReadOnly
-            {
-                get { return true; }
-            }
-            [Obsolete]
-            void ICollection<TValue>.Add(TValue item)
-            {
-                throw new NotSupportedException();
-            }
-            [Obsolete]
-            void ICollection<TValue>.Clear()
-            {
-                throw new NotSupportedException();
-            }
-            [Obsolete]
-            bool ICollection<TValue>.Remove(TValue item)
-            {
-                throw new NotSupportedException();
-            }
-
-            #endregion
-        }
-
-        private ValueCollection _valueCollection;
-        /// <summary>
-        /// Gets an <see cref="T:System.Collections.Generic.ICollection`1"/> containing the values in the <see cref="T:System.Collections.Generic.IDictionary`2"/>.
-        /// </summary>
-        public ValueCollection Values { get { return _valueCollection ?? (_valueCollection = new ValueCollection(this)); } }
-        [Obsolete]
-        ICollection<TValue> IDictionary<TKey, TValue>.Values { get { return Values; } }
-
-        #endregion
-
-        #region Peek/Dequeue
-
-        /// <summary>
-        /// Retrieves the oldest entry in the collection based on the ordering supplied to the constructor.
-        /// </summary>
-        /// <returns>True if the out parameter value was set.</returns>
-        /// <exception cref="System.InvalidOperationException">Raised if the table is unordered</exception>
-        public bool Peek(out KeyValuePair<TKey, TValue> value)
-        {
-            if (_ordering == LurchTableOrder.None)
-                throw new InvalidOperationException();
-            if (_entries == null)
-                throw new ObjectDisposedException(GetType().Name);
-
-            while (true)
-            {
-                int index = Interlocked.CompareExchange(ref _entries[0][0].Prev, 0, 0);
-                if (index == 0)
-                {
-                    value = default(KeyValuePair<TKey, TValue>);
-                    return false;
-                }
-
-                int hash = _entries[index >> _shift][index & _shiftMask].Hash;
-                if (hash >= 0)
-                {
-                    int bucket = hash % _hsize;
-                    lock (_locks[bucket % _lsize])
-                    {
-                        if (index == _entries[0][0].Prev &&
-                            hash == _entries[index >> _shift][index & _shiftMask].Hash)
-                        {
-                            value = new KeyValuePair<TKey, TValue>(
-                                _entries[index >> _shift][index & _shiftMask].Key,
-                                _entries[index >> _shift][index & _shiftMask].Value
-                            );
-                            return true;
-                        }
-                    }
-                }
-            }
-        }
-
-        /// <summary>
-        /// Removes the oldest entry in the collection based on the ordering supplied to the constructor.
-        /// If an item is not available a busy-wait loop is used to wait for for an item.
-        /// </summary>
-        /// <returns>The Key/Value pair removed.</returns>
-        /// <exception cref="System.InvalidOperationException">Raised if the table is unordered</exception>
-        public KeyValuePair<TKey, TValue> Dequeue()
-        {
-            if (_ordering == LurchTableOrder.None)
-                throw new InvalidOperationException();
-            if (_entries == null)
-                throw new ObjectDisposedException(GetType().Name);
-
-            KeyValuePair<TKey, TValue> value;
-            while (!TryDequeue(out value))
-            {
-                while (0 == Interlocked.CompareExchange(ref _entries[0][0].Prev, 0, 0))
-                    Thread.Sleep(0);
-            }
-            return value;
-        }
-
-        /// <summary>
-        /// Removes the oldest entry in the collection based on the ordering supplied to the constructor.
-        /// </summary>
-        /// <returns>False if no item was available</returns>
-        /// <exception cref="System.InvalidOperationException">Raised if the table is unordered</exception>
-        public bool TryDequeue(out KeyValuePair<TKey, TValue> value)
-        {
-            return TryDequeue(null, out value);
-        }
-
-        /// <summary>
-        /// Removes the oldest entry in the collection based on the ordering supplied to the constructor.
-        /// </summary>
-        /// <returns>False if no item was available</returns>
-        /// <exception cref="System.InvalidOperationException">Raised if the table is unordered</exception>
-        public bool TryDequeue(Predicate<KeyValuePair<TKey, TValue>> predicate, out KeyValuePair<TKey, TValue> value)
-        {
-            if (_ordering == LurchTableOrder.None)
-                throw new InvalidOperationException();
-            if (_entries == null)
-                throw new ObjectDisposedException(GetType().Name);
-
-            while (true)
-            {
-                int index = Interlocked.CompareExchange(ref _entries[0][0].Prev, 0, 0);
-                if (index == 0)
-                {
-                    value = default(KeyValuePair<TKey, TValue>);
-                    return false;
-                }
-
-                int hash = _entries[index >> _shift][index & _shiftMask].Hash;
-                if (hash >= 0)
-                {
-                    int bucket = hash % _hsize;
-                    lock (_locks[bucket % _lsize])
-                    {
-                        if (index == _entries[0][0].Prev &&
-                            hash == _entries[index >> _shift][index & _shiftMask].Hash)
-                        {
-                            if (predicate != null)
-                            {
-                                var item = new KeyValuePair<TKey, TValue>(
-                                    _entries[index >> _shift][index & _shiftMask].Key,
-                                    _entries[index >> _shift][index & _shiftMask].Value
-                                );
-                                if (!predicate(item))
-                                {
-                                    value = item;
-                                    return false;
-                                }
-                            }
-
-                            int next = _entries[index >> _shift][index & _shiftMask].Link;
-                            bool removed = false;
-
-                            if (_buckets[bucket] == index)
-                            {
-                                _buckets[bucket] = next;
-                                removed = true;
-                            }
-                            else
-                            {
-                                int test = _buckets[bucket];
-                                while (test != 0)
-                                {
-                                    int cmp = _entries[test >> _shift][test & _shiftMask].Link;
-                                    if (cmp == index)
-                                    {
-                                        _entries[test >> _shift][test & _shiftMask].Link = next;
-                                        removed = true;
-                                        break;
-                                    }
-                                    test = cmp;
-                                }
-                            }
-                            if (!removed)
-                                throw new LurchTableCorruptionException();
-
-                            value = new KeyValuePair<TKey, TValue>(
-                                _entries[index >> _shift][index & _shiftMask].Key,
-                                _entries[index >> _shift][index & _shiftMask].Value
-                            );
-                            Interlocked.Decrement(ref _count);
-                            if (_ordering != LurchTableOrder.None)
-                                InternalUnlink(index);
-                            FreeSlot(ref index, Interlocked.Increment(ref _freeVersion));
-
-                            var handler = ItemRemoved;
-                            if (handler != null)
-                                handler(value);
-
-                            return true;
-                        }
-                    }
-                }
-            }
-        }
-
-        #endregion
-
-        #region Internal Implementation
-
-        enum InsertResult { Inserted = 1, Updated = 2, Exists = 3, NotFound = 4 }
-
-        bool InternalGetValue(int hash, TKey key, out TValue value)
-        {
-            if (_entries == null)
-                throw new ObjectDisposedException(GetType().Name);
-
-            int bucket = hash % _hsize;
-            lock (_locks[bucket % _lsize])
-            {
-                int index = _buckets[bucket];
-                while (index != 0)
-                {
-                    if (hash == _entries[index >> _shift][index & _shiftMask].Hash &&
-                        _comparer.Equals(key, _entries[index >> _shift][index & _shiftMask].Key))
-                    {
-                        value = _entries[index >> _shift][index & _shiftMask].Value;
-                        if (hash == _entries[index >> _shift][index & _shiftMask].Hash)
-                        {
-                            if (_ordering == LurchTableOrder.Access)
-                            {
-                                InternalUnlink(index);
-                                InternalLink(index);
-                            }
-                            return true;
-                        }
-                    }
-                    index = _entries[index >> _shift][index & _shiftMask].Link;
-                }
-
-                value = default(TValue);
-                return false;
-            }
-        }
-
-        InsertResult Insert<T>(TKey key, ref T value) where T : ICreateOrUpdateValue<TKey, TValue>
-        {
-            if (_entries == null)
-                throw new ObjectDisposedException(GetType().Name);
-
-            int hash = _comparer.GetHashCode(key) & int.MaxValue;
-            int added;
-
-            InsertResult result = InternalInsert(hash, key, out added, ref value);
-
-            if (added > _limit && _ordering != LurchTableOrder.None)
-            {
-                KeyValuePair<TKey, TValue> ignore;
-                TryDequeue(out ignore);
-            }
-            return result;
-        }
-
-        InsertResult InternalInsert<T>(int hash, TKey key, out int added, ref T value) where T : ICreateOrUpdateValue<TKey, TValue>
-        {
-            int bucket = hash % _hsize;
-            lock (_locks[bucket % _lsize])
-            {
-                TValue temp;
-                int index = _buckets[bucket];
-                while (index != 0)
-                {
-                    if (hash == _entries[index >> _shift][index & _shiftMask].Hash &&
-                        _comparer.Equals(key, _entries[index >> _shift][index & _shiftMask].Key))
-                    {
-                        temp = _entries[index >> _shift][index & _shiftMask].Value;
-                        var original = temp;
-                        if (value.UpdateValue(key, ref temp))
-                        {
-                            _entries[index >> _shift][index & _shiftMask].Value = temp;
-
-                            if (_ordering == LurchTableOrder.Modified || _ordering == LurchTableOrder.Access)
-                            {
-                                InternalUnlink(index);
-                                InternalLink(index);
-                            }
-
-                            var handler = ItemUpdated;
-                            if (handler != null)
-                                handler(new KeyValuePair<TKey, TValue>(key, original), new KeyValuePair<TKey, TValue>(key, temp));
-
-                            added = -1;
-                            return InsertResult.Updated;
-                        }
-
-                        added = -1;
-                        return InsertResult.Exists;
-                    }
-                    index = _entries[index >> _shift][index & _shiftMask].Link;
-                }
-                if (value.CreateValue(key, out temp))
-                {
-#pragma warning disable 612,618
-                    index = AllocSlot();
-#pragma warning restore 612,618
-                    _entries[index >> _shift][index & _shiftMask].Hash = hash;
-                    _entries[index >> _shift][index & _shiftMask].Key = key;
-                    _entries[index >> _shift][index & _shiftMask].Value = temp;
-                    _entries[index >> _shift][index & _shiftMask].Link = _buckets[bucket];
-                    _buckets[bucket] = index;
-
-                    added = Interlocked.Increment(ref _count);
-                    if (_ordering != LurchTableOrder.None)
-                        InternalLink(index);
-
-                    var handler = ItemAdded;
-                    if (handler != null)
-                        handler(new KeyValuePair<TKey, TValue>(key, temp));
-
-                    return InsertResult.Inserted;
-                }
-            }
-
-            added = -1;
-            return InsertResult.NotFound;
-        }
-
-        bool Delete<T>(TKey key, ref T value) where T : IRemoveValue<TKey, TValue>
-        {
-            if (_entries == null)
-                throw new ObjectDisposedException(GetType().Name);
-
-            int hash = _comparer.GetHashCode(key) & int.MaxValue;
-            int bucket = hash % _hsize;
-            lock (_locks[bucket % _lsize])
-            {
-                int prev = 0;
-                int index = _buckets[bucket];
-                while (index != 0)
-                {
-                    if (hash == _entries[index >> _shift][index & _shiftMask].Hash &&
-                        _comparer.Equals(key, _entries[index >> _shift][index & _shiftMask].Key))
-                    {
-                        TValue temp = _entries[index >> _shift][index & _shiftMask].Value;
-
-                        if (value.RemoveValue(key, temp))
-                        {
-                            int next = _entries[index >> _shift][index & _shiftMask].Link;
-                            if (prev == 0)
-                                _buckets[bucket] = next;
-                            else
-                                _entries[prev >> _shift][prev & _shiftMask].Link = next;
-
-                            Interlocked.Decrement(ref _count);
-                            if (_ordering != LurchTableOrder.None)
-                                InternalUnlink(index);
-                            FreeSlot(ref index, Interlocked.Increment(ref _freeVersion));
-
-                            var handler = ItemRemoved;
-                            if (handler != null)
-                                handler(new KeyValuePair<TKey, TValue>(key, temp));
-
-                            return true;
-                        }
-                        return false;
-                    }
-
-                    prev = index;
-                    index = _entries[index >> _shift][index & _shiftMask].Link;
-                }
-            }
-            return false;
-        }
-
-        void InternalLink(int index)
-        {
-            Interlocked.Exchange(ref _entries[index >> _shift][index & _shiftMask].Prev, 0);
-            Interlocked.Exchange(ref _entries[index >> _shift][index & _shiftMask].Next, ~0);
-            int next = Interlocked.Exchange(ref _entries[0][0].Next, index);
-            if (next < 0)
-                throw new LurchTableCorruptionException();
-
-            while (0 != Interlocked.CompareExchange(ref _entries[next >> _shift][next & _shiftMask].Prev, index, 0))
-            { }
-
-            Interlocked.Exchange(ref _entries[index >> _shift][index & _shiftMask].Next, next);
-        }
-
-        void InternalUnlink(int index)
-        {
-            while (true)
-            {
-                int cmp;
-                int prev = _entries[index >> _shift][index & _shiftMask].Prev;
-                while (prev >= 0 && prev != (cmp = Interlocked.CompareExchange(
-                            ref _entries[index >> _shift][index & _shiftMask].Prev, ~prev, prev)))
-                    prev = cmp;
-                if (prev < 0)
-                    throw new LurchTableCorruptionException();
-
-                int next = _entries[index >> _shift][index & _shiftMask].Next;
-                while (next >= 0 && next != (cmp = Interlocked.CompareExchange(
-                            ref _entries[index >> _shift][index & _shiftMask].Next, ~next, next)))
-                    next = cmp;
-                if (next < 0)
-                    throw new LurchTableCorruptionException();
-
-                if ((Interlocked.CompareExchange(
-                        ref _entries[prev >> _shift][prev & _shiftMask].Next, next, index) == index))
-                {
-                    while (Interlocked.CompareExchange(
-                               ref _entries[next >> _shift][next & _shiftMask].Prev, prev, index) != index)
-                    { }
-                    return;
-                }
-
-                //cancel the delete markers and retry
-                if (~next != Interlocked.CompareExchange(
-                        ref _entries[index >> _shift][index & _shiftMask].Next, next, ~next))
-                    throw new LurchTableCorruptionException();
-                if (~prev != Interlocked.CompareExchange(
-                        ref _entries[index >> _shift][index & _shiftMask].Prev, prev, ~prev))
-                    throw new LurchTableCorruptionException();
-            }
-        }
-
-        [Obsolete("Release build inlining, so we need to ignore for testing.")]
-        int AllocSlot()
-        {
-            while (true)
-            {
-                int allocated = _entries.Length * _allocSize;
-                var previous = _entries;
-
-                while (_count + OverAlloc < allocated || _used < allocated)
-                {
-                    int next;
-                    if (_count + FreeSlots < _used)
-                    {
-                        int freeSlotIndex = Interlocked.Increment(ref _allocNext);
-                        int slot = (freeSlotIndex & int.MaxValue) % FreeSlots;
-                        next = Interlocked.Exchange(ref _free[slot].Head, 0);
-                        if (next != 0)
-                        {
-                            int nextFree = _entries[next >> _shift][next & _shiftMask].Link;
-                            if (nextFree == 0)
-                            {
-                                Interlocked.Exchange(ref _free[slot].Head, next);
-                            }
-                            else
-                            {
-                                Interlocked.Exchange(ref _free[slot].Head, nextFree);
-                                return next;
-                            }
-                        }
-                    }
-
-                    next = _used;
-                    if (next < allocated)
-                    {
-                        int alloc = Interlocked.CompareExchange(ref _used, next + 1, next);
-                        if (alloc == next)
-                        {
-                            return next;
-                        }
-                    }
-                }
-
-                lock (this)
-                {
-                    //time to grow...
-                    if (ReferenceEquals(_entries, previous))
-                    {
-                        Entry[][] arentries = new Entry[_entries.Length + 1][];
-                        _entries.CopyTo(arentries, 0);
-                        arentries[arentries.Length - 1] = new Entry[_allocSize];
-
-                        Interlocked.CompareExchange(ref _entries, arentries, previous);
-                    }
-                }
-            }
-        }
-
-        void FreeSlot(ref int index, int ver)
-        {
-            _entries[index >> _shift][index & _shiftMask].Key = default(TKey);
-            _entries[index >> _shift][index & _shiftMask].Value = default(TValue);
-            Interlocked.Exchange(ref _entries[index >> _shift][index & _shiftMask].Link, 0);
-
-            int slot = (ver & int.MaxValue) % FreeSlots;
-            int prev = Interlocked.Exchange(ref _free[slot].Tail, index);
-
-            if (prev <= 0 || 0 != Interlocked.CompareExchange(ref _entries[prev >> _shift][prev & _shiftMask].Link, index, 0))
-            {
-                throw new LurchTableCorruptionException();
-            }
-        }
-
-        #endregion
-
-        #region Internal Structures
-
-        struct FreeList
-        {
-            public int Head;
-            public int Tail;
-        }
-
-        struct Entry
-        {
-            public int Prev, Next; // insertion/access sequence ordering
-            public int Link;
-            public int Hash; // hash value of entry's Key
-            public TKey Key; // key of entry
-            public TValue Value; // value of entry
-        }
-
-        struct EnumState
-        {
-            private object _locked;
-            public int Bucket, Current, Next;
-            public void Init()
-            {
-                Bucket = -1;
-                Current = 0;
-                Next = 0;
-                _locked = null;
-            }
-
-            public void Unlock()
-            {
-                if (_locked != null)
-                {
-                    Monitor.Exit(_locked);
-                    _locked = null;
-                }
-            }
-
-            public void Lock(object lck)
-            {
-                if (_locked != null)
-                    Monitor.Exit(_locked);
-                Monitor.Enter(_locked = lck);
-            }
-        }
-
-        #endregion
-    }
-
-    #region LurchTable Support
-
-    #region Internal Structures (de-nested)
-
-    // LUCENENET NOTE: These were originally nested within LurchTable, but
-    // using nested generic structs without explicitly defining their parameters
-    // fails on Xamarin.iOS because of incomplete generics support. Therefore,
-    // we de-nested them and moved them here. See: LUCENENET-602
-
-    struct DelInfo<TKey, TValue> : IRemoveValue<TKey, TValue>
-    {
-        public TValue Value;
-        readonly bool _hasTestValue;
-        readonly TValue _testValue;
-        public KeyValuePredicate<TKey, TValue> Condition;
-
-        public DelInfo(TValue expected)
-        {
-            Value = default(TValue);
-            _testValue = expected;
-            _hasTestValue = true;
-            Condition = null;
-        }
-
-        public bool RemoveValue(TKey key, TValue value)
-        {
-            Value = value;
-
-            if (_hasTestValue && !EqualityComparer<TValue>.Default.Equals(_testValue, value))
-                return false;
-            if (Condition != null && !Condition(key, value))
-                return false;
-
-            return true;
-        }
-    }
-
-    struct AddInfo<TKey, TValue> : ICreateOrUpdateValue<TKey, TValue>
-    {
-        public bool CanUpdate;
-        public TValue Value;
-        public bool CreateValue(TKey key, out TValue value)
-        {
-            value = Value;
-            return true;
-        }
-
-        public bool UpdateValue(TKey key, ref TValue value)
-        {
-            if (!CanUpdate)
-            {
-                Value = value;
-                return false;
-            }
-
-            value = Value;
-            return true;
-        }
-    }
-
-    struct Add2Info<TKey, TValue> : ICreateOrUpdateValue<TKey, TValue>
-    {
-        readonly bool _hasAddValue;
-        readonly TValue _addValue;
-        public TValue Value;
-        public Func<TKey, TValue> Create;
-        public KeyValueUpdate<TKey, TValue> Update;
-
-        public Add2Info(TValue addValue) : this()
-        {
-            _hasAddValue = true;
-            _addValue = addValue;
-        }
-
-        public bool CreateValue(TKey key, out TValue value)
-        {
-            if (_hasAddValue)
-            {
-                value = Value = _addValue;
-                return true;
-            }
-            if (Create != null)
-            {
-                value = Value = Create(key);
-                return true;
-            }
-            value = Value = default(TValue);
-            return false;
-        }
-
-        public bool UpdateValue(TKey key, ref TValue value)
-        {
-            if (Update == null)
-            {
-                Value = value;
-                return false;
-            }
-
-            value = Value = Update(key, value);
-            return true;
-        }
-    }
-
-    struct UpdateInfo<TKey, TValue> : ICreateOrUpdateValue<TKey, TValue>
-    {
-        public TValue Value;
-        readonly bool _hasTestValue;
-        readonly TValue _testValue;
-
-        public UpdateInfo(TValue expected)
-        {
-            Value = default(TValue);
-            _testValue = expected;
-            _hasTestValue = true;
-        }
-
-        bool ICreateValue<TKey, TValue>.CreateValue(TKey key, out TValue value)
-        {
-            value = default(TValue);
-            return false;
-        }
-        public bool UpdateValue(TKey key, ref TValue value)
-        {
-            if (_hasTestValue && !EqualityComparer<TValue>.Default.Equals(_testValue, value))
-                return false;
-
-            value = Value;
-            return true;
-        }
-    }
-
-    #endregion
-
-    #region Exceptions
-
-    /// <summary>
-    /// Exception class: LurchTableCorruptionException
-    /// The LurchTable internal datastructure appears to be corrupted.
-    /// </summary>
-#if FEATURE_SERIALIZABLE
-    [System.SerializableAttribute()]
-#endif
-    [global::System.Diagnostics.DebuggerStepThroughAttribute()]
-    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
-    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("CSharpTest.Net.Generators", "2.13.222.435")]
-    public partial class LurchTableCorruptionException : Exception
-    {
-#if FEATURE_SERIALIZABLE
-        /// <summary>
-        /// Serialization constructor
-        /// </summary>
-        protected LurchTableCorruptionException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) : base(info, context)
-        {
-        }
-#endif
-        /// <summary>
-        /// Used to create this exception from an hresult and message bypassing the message formatting
-        /// </summary>
-        internal static System.Exception Create(int hResult, string message)
-        {
-            return new LurchTableCorruptionException((System.Exception)null, hResult, message);
-        }
-        /// <summary>
-        /// Constructs the exception from an hresult and message bypassing the message formatting
-        /// </summary>
-        protected LurchTableCorruptionException(System.Exception innerException, int hResult, string message) : base(message, innerException)
-        {
-            base.HResult = hResult;
-        }
-        /// <summary>
-        /// The LurchTable internal datastructure appears to be corrupted.
-        /// </summary>
-        public LurchTableCorruptionException()
-            : this((System.Exception)null, -1, "The LurchTable internal datastructure appears to be corrupted.")
-        {
-        }
-        /// <summary>
-        /// The LurchTable internal datastructure appears to be corrupted.
-        /// </summary>
-        public LurchTableCorruptionException(System.Exception innerException)
-            : this(innerException, -1, "The LurchTable internal datastructure appears to be corrupted.")
-        {
-        }
-        /// <summary>
-        /// if(condition == false) throws The LurchTable internal datastructure appears to be corrupted.
-        /// </summary>
-        public static void Assert(bool condition)
-        {
-            if (!condition) throw new LurchTableCorruptionException();
-        }
-    }
-
-#endregion // Exceptions
-
-#region Delegates
-
-    /// <summary> Provides a delegate that performs an atomic update of a key/value pair </summary>
-    public delegate TValue KeyValueUpdate<TKey, TValue>(TKey key, TValue original);
-
-    /// <summary> Provides a delegate that performs a test on key/value pair </summary>
-    public delegate bool KeyValuePredicate<TKey, TValue>(TKey key, TValue original);
-
-#endregion // Delegates
-
-#region Interfaces
-
-    /// <summary>
-    /// An interface to provide conditional or custom creation logic to a concurrent dictionary.
-    /// </summary>
-    public interface ICreateValue<TKey, TValue>
-    {
-        /// <summary>
-        /// Called when the key was not found within the dictionary to produce a new value that can be added.
-        /// Return true to continue with the insertion, or false to prevent the key/value from being inserted.
-        /// </summary>
-        bool CreateValue(TKey key, out TValue value);
-    }
-    /// <summary>
-    /// An interface to provide conditional or custom update logic to a concurrent dictionary.
-    /// </summary>
-    public interface IUpdateValue<TKey, TValue>
-    {
-        /// <summary>
-        /// Called when the key was found within the dictionary to produce a modified value to update the item
-        /// to. Return true to continue with the update, or false to prevent the key/value from being updated.
-        /// </summary>
-        bool UpdateValue(TKey key, ref TValue value);
-    }
-    /// <summary>
-    /// An interface to provide conditional or custom creation or update logic to a concurrent dictionary.
-    /// </summary>
-    /// <remarks>
-    /// Generally implemented as a struct and passed by ref to save stack space and to retrieve the values
-    /// that where inserted or updated.
-    /// </remarks>
-    public interface ICreateOrUpdateValue<TKey, TValue> : ICreateValue<TKey, TValue>, IUpdateValue<TKey, TValue>
-    {
-    }
-
-    /// <summary>
-    /// An interface to provide conditional removal of an item from a concurrent dictionary.
-    /// </summary>
-    /// <remarks>
-    /// Generally implemented as a struct and passed by ref to save stack space and to retrieve the values
-    /// that where inserted or updated.
-    /// </remarks>
-    public interface IRemoveValue<TKey, TValue>
-    {
-        /// <summary>
-        /// Called when the dictionary is about to remove the key/value pair provided, return true to allow
-        /// it's removal, or false to prevent it from being removed.
-        /// </summary>
-        bool RemoveValue(TKey key, TValue value);
-    }
-
-#endregion // interfaces
-
-#region Classes
-
-    internal class HashUtilities
-    {
-        private static readonly int[] PrimeNumbers =
-            new[]
-                {
-                    17, 37, 67, 131, 257, 521, // ROK - Added smaller primes
-                    1103, 1327, 1597, 1931, 2333, 2801, 3371, 4049, 4861, 5839, 7013, 8419, 10103, 12143, 14591,
-                    17519, 21023, 25229, 30293, 36353, 43627, 52361, 62851, 75431, 90523, 108631, 130363, 156437,
-                    187751, 225307, 270371, 324449, 389357, 467237, 560689, 672827, 807403, 968897, 1162687,
-                    1395263, 1674319, 2009191, 2411033, 2893249, 3471899, 4166287, 4999559, 5999471, 7199369
-                };
-
-        internal static int SelectPrimeNumber(int hashSize)
-        {
-            int offset = Array.BinarySearch(PrimeNumbers, hashSize);
-            if (offset < 0)
-                offset = ~offset;
-            return PrimeNumbers[Math.Min(offset, PrimeNumbers.Length - 1)];
-        }
-    }
-
-#endregion // Classes
-
-#endregion // LurchTable Support
-}


[lucenenet] 16/35: BREAKING: Lucene.Net.Support: Marked Time class internal, factored out CurrentTimeMilliseconds() in favor of J2N's

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit 3fe42031d2c25996f0ce4bf24688217a94bdaa41
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Fri Feb 7 00:01:14 2020 +0700

    BREAKING: Lucene.Net.Support: Marked Time class internal, factored out CurrentTimeMilliseconds() in favor of J2N's
---
 src/Lucene.Net.Benchmark/ByTask/PerfRunData.cs     |  2 +-
 src/Lucene.Net.Benchmark/ByTask/Stats/TaskStats.cs |  2 +-
 .../ByTask/Tasks/NearRealtimeReaderTask.cs         |  8 ++---
 .../ByTask/Tasks/TaskSequence.cs                   | 18 +++++-----
 .../Quality/QualityBenchmark.cs                    | 10 +++---
 src/Lucene.Net.Benchmark/Utils/ExtractWikipedia.cs |  4 +--
 .../ByTask/Feeds/DocMakerTest.cs                   |  2 +-
 .../ByTask/Tasks/CountingSearchTestTask.cs         |  2 +-
 src/Lucene.Net/Support/Time.cs                     | 38 +++++++++-------------
 src/Lucene.Net/Util/StringHelper.cs                |  2 +-
 10 files changed, 41 insertions(+), 47 deletions(-)

diff --git a/src/Lucene.Net.Benchmark/ByTask/PerfRunData.cs b/src/Lucene.Net.Benchmark/ByTask/PerfRunData.cs
index 136f968..a0c5bc4 100644
--- a/src/Lucene.Net.Benchmark/ByTask/PerfRunData.cs
+++ b/src/Lucene.Net.Benchmark/ByTask/PerfRunData.cs
@@ -227,7 +227,7 @@ namespace Lucene.Net.Benchmarks.ByTask
 
         public virtual long SetStartTimeMillis()
         {
-            startTimeMillis = Support.Time.CurrentTimeMilliseconds();
+            startTimeMillis = J2N.Time.CurrentTimeMilliseconds();
             return startTimeMillis;
         }
 
diff --git a/src/Lucene.Net.Benchmark/ByTask/Stats/TaskStats.cs b/src/Lucene.Net.Benchmark/ByTask/Stats/TaskStats.cs
index 94d354b..00be92a 100644
--- a/src/Lucene.Net.Benchmark/ByTask/Stats/TaskStats.cs
+++ b/src/Lucene.Net.Benchmark/ByTask/Stats/TaskStats.cs
@@ -91,7 +91,7 @@ namespace Lucene.Net.Benchmarks.ByTask.Stats
         /// </summary>
         internal void MarkEnd(int numParallelTasks, int count)
         {
-            elapsed = Support.Time.CurrentTimeMilliseconds();
+            elapsed = J2N.Time.CurrentTimeMilliseconds();
             long totMem = GC.GetTotalMemory(false); //Runtime.getRuntime().totalMemory();
             if (totMem > maxTotMem)
             {
diff --git a/src/Lucene.Net.Benchmark/ByTask/Tasks/NearRealtimeReaderTask.cs b/src/Lucene.Net.Benchmark/ByTask/Tasks/NearRealtimeReaderTask.cs
index 7942156..1e3dd08 100644
--- a/src/Lucene.Net.Benchmark/ByTask/Tasks/NearRealtimeReaderTask.cs
+++ b/src/Lucene.Net.Benchmark/ByTask/Tasks/NearRealtimeReaderTask.cs
@@ -63,7 +63,7 @@ namespace Lucene.Net.Benchmarks.ByTask.Tasks
             }
 
 
-            long t = Support.Time.CurrentTimeMilliseconds();
+            long t = J2N.Time.CurrentTimeMilliseconds();
             DirectoryReader r = DirectoryReader.Open(w, true);
             runData.SetIndexReader(r);
             // Transfer our reference to runData
@@ -76,18 +76,18 @@ namespace Lucene.Net.Benchmarks.ByTask.Tasks
             reopenCount = 0;
             while (!Stop)
             {
-                long waitForMsec = (pauseMSec - (Support.Time.CurrentTimeMilliseconds() - t));
+                long waitForMsec = (pauseMSec - (J2N.Time.CurrentTimeMilliseconds() - t));
                 if (waitForMsec > 0)
                 {
                     Thread.Sleep((int)waitForMsec);
                     //System.out.println("NRT wait: " + waitForMsec + " msec");
                 }
 
-                t = Support.Time.CurrentTimeMilliseconds();
+                t = J2N.Time.CurrentTimeMilliseconds();
                 DirectoryReader newReader = DirectoryReader.OpenIfChanged(r);
                 if (newReader != null)
                 {
-                    int delay = (int)(Support.Time.CurrentTimeMilliseconds() - t);
+                    int delay = (int)(J2N.Time.CurrentTimeMilliseconds() - t);
                     if (reopenTimes.Length == reopenCount)
                     {
                         reopenTimes = ArrayUtil.Grow(reopenTimes, 1 + reopenCount);
diff --git a/src/Lucene.Net.Benchmark/ByTask/Tasks/TaskSequence.cs b/src/Lucene.Net.Benchmark/ByTask/Tasks/TaskSequence.cs
index 66fb220..348a7e7 100644
--- a/src/Lucene.Net.Benchmark/ByTask/Tasks/TaskSequence.cs
+++ b/src/Lucene.Net.Benchmark/ByTask/Tasks/TaskSequence.cs
@@ -201,7 +201,7 @@ namespace Lucene.Net.Benchmarks.ByTask.Tasks
             long runTime = (long)(runTimeSec * 1000);
             List<RunBackgroundTask> bgTasks = null;
 
-            long t0 = Support.Time.CurrentTimeMilliseconds();
+            long t0 = J2N.Time.CurrentTimeMilliseconds();
             for (int k = 0; fixedTime || (repetitions == REPEAT_EXHAUST && !exhausted) || k < repetitions; k++)
             {
                 if (Stop)
@@ -232,7 +232,7 @@ namespace Lucene.Net.Benchmarks.ByTask.Tasks
                             count += inc;
                             if (countsByTime != null)
                             {
-                                int slot = (int)((Support.Time.CurrentTimeMilliseconds() - t0) / logByTimeMsec);
+                                int slot = (int)((J2N.Time.CurrentTimeMilliseconds() - t0) / logByTimeMsec);
                                 if (slot >= countsByTime.Length)
                                 {
                                     countsByTime = ArrayUtil.Grow(countsByTime, 1 + slot);
@@ -248,7 +248,7 @@ namespace Lucene.Net.Benchmarks.ByTask.Tasks
                         }
                     }
                 }
-                if (fixedTime && Support.Time.CurrentTimeMilliseconds() - t0 > runTime)
+                if (fixedTime && J2N.Time.CurrentTimeMilliseconds() - t0 > runTime)
                 {
                     repetitions = k + 1;
                     break;
@@ -282,9 +282,9 @@ namespace Lucene.Net.Benchmarks.ByTask.Tasks
         {
             InitTasksArray();
             long delayStep = (perMin ? 60000 : 1000) / rate;
-            long nextStartTime = Support.Time.CurrentTimeMilliseconds();
+            long nextStartTime = J2N.Time.CurrentTimeMilliseconds();
             int count = 0;
-            long t0 = Support.Time.CurrentTimeMilliseconds();
+            long t0 = J2N.Time.CurrentTimeMilliseconds();
             for (int k = 0; (repetitions == REPEAT_EXHAUST && !exhausted) || k < repetitions; k++)
             {
                 if (Stop)
@@ -296,7 +296,7 @@ namespace Lucene.Net.Benchmarks.ByTask.Tasks
                     PerfTask task = tasksArray[l];
                     while (!Stop)
                     {
-                        long waitMore = nextStartTime - Support.Time.CurrentTimeMilliseconds();
+                        long waitMore = nextStartTime - J2N.Time.CurrentTimeMilliseconds();
                         if (waitMore > 0)
                         {
                             // TODO: better to use condition to notify
@@ -318,7 +318,7 @@ namespace Lucene.Net.Benchmarks.ByTask.Tasks
                         count += inc;
                         if (countsByTime != null)
                         {
-                            int slot = (int)((Support.Time.CurrentTimeMilliseconds() - t0) / logByTimeMsec);
+                            int slot = (int)((J2N.Time.CurrentTimeMilliseconds() - t0) / logByTimeMsec);
                             if (slot >= countsByTime.Length)
                             {
                                 countsByTime = ArrayUtil.Grow(countsByTime, 1 + slot);
@@ -509,10 +509,10 @@ namespace Lucene.Net.Benchmarks.ByTask.Tasks
         private void StartlThreadsWithRate(ParallelTask[] t)
         {
             long delayStep = (perMin ? 60000 : 1000) / rate;
-            long nextStartTime = Support.Time.CurrentTimeMilliseconds();
+            long nextStartTime = J2N.Time.CurrentTimeMilliseconds();
             for (int i = 0; i < t.Length; i++)
             {
-                long waitMore = nextStartTime - Support.Time.CurrentTimeMilliseconds();
+                long waitMore = nextStartTime - J2N.Time.CurrentTimeMilliseconds();
                 if (waitMore > 0)
                 {
                     Thread.Sleep((int)waitMore);
diff --git a/src/Lucene.Net.Benchmark/Quality/QualityBenchmark.cs b/src/Lucene.Net.Benchmark/Quality/QualityBenchmark.cs
index ef53e25..aac26c4 100644
--- a/src/Lucene.Net.Benchmark/Quality/QualityBenchmark.cs
+++ b/src/Lucene.Net.Benchmark/Quality/QualityBenchmark.cs
@@ -95,9 +95,9 @@ namespace Lucene.Net.Benchmarks.Quality
                 // generate query
                 Query q = m_qqParser.Parse(qq);
                 // search with this query 
-                long t1 = Support.Time.CurrentTimeMilliseconds();
+                long t1 = J2N.Time.CurrentTimeMilliseconds();
                 TopDocs td = m_searcher.Search(q, null, maxResults);
-                long searchTime = Support.Time.CurrentTimeMilliseconds() - t1;
+                long searchTime = J2N.Time.CurrentTimeMilliseconds() - t1;
                 //most likely we either submit or judge, but check both 
                 if (judge != null)
                 {
@@ -120,13 +120,13 @@ namespace Lucene.Net.Benchmarks.Quality
         {
             QualityStats stts = new QualityStats(judge.MaxRecall(qq), searchTime);
             ScoreDoc[] sd = td.ScoreDocs;
-            long t1 = Support.Time.CurrentTimeMilliseconds(); // extraction of first doc name we measure also construction of doc name extractor, just in case.
+            long t1 = J2N.Time.CurrentTimeMilliseconds(); // extraction of first doc name we measure also construction of doc name extractor, just in case.
             DocNameExtractor xt = new DocNameExtractor(m_docNameField);
             for (int i = 0; i < sd.Length; i++)
             {
                 string docName = xt.DocName(m_searcher, sd[i].Doc);
-                long docNameExtractTime = Support.Time.CurrentTimeMilliseconds() - t1;
-                t1 = Support.Time.CurrentTimeMilliseconds();
+                long docNameExtractTime = J2N.Time.CurrentTimeMilliseconds() - t1;
+                t1 = J2N.Time.CurrentTimeMilliseconds();
                 bool isRelevant = judge.IsRelevant(docName, qq);
                 stts.AddResult(i + 1, isRelevant, docNameExtractTime);
             }
diff --git a/src/Lucene.Net.Benchmark/Utils/ExtractWikipedia.cs b/src/Lucene.Net.Benchmark/Utils/ExtractWikipedia.cs
index b322996..775d14f 100644
--- a/src/Lucene.Net.Benchmark/Utils/ExtractWikipedia.cs
+++ b/src/Lucene.Net.Benchmark/Utils/ExtractWikipedia.cs
@@ -101,7 +101,7 @@ namespace Lucene.Net.Benchmarks.Utils
         {
             Document doc = null;
             Console.WriteLine("Starting Extraction");
-            long start = Support.Time.CurrentTimeMilliseconds();
+            long start = J2N.Time.CurrentTimeMilliseconds();
             try
             {
                 while ((doc = m_docMaker.MakeDocument()) != null)
@@ -114,7 +114,7 @@ namespace Lucene.Net.Benchmarks.Utils
             {
                 //continue
             }
-            long finish = Support.Time.CurrentTimeMilliseconds();
+            long finish = J2N.Time.CurrentTimeMilliseconds();
             Console.WriteLine("Extraction took " + (finish - start) + " ms");
         }
 
diff --git a/src/Lucene.Net.Tests.Benchmark/ByTask/Feeds/DocMakerTest.cs b/src/Lucene.Net.Tests.Benchmark/ByTask/Feeds/DocMakerTest.cs
index c19c774..b10b08a 100644
--- a/src/Lucene.Net.Tests.Benchmark/ByTask/Feeds/DocMakerTest.cs
+++ b/src/Lucene.Net.Tests.Benchmark/ByTask/Feeds/DocMakerTest.cs
@@ -171,7 +171,7 @@ namespace Lucene.Net.Benchmarks.ByTask.Feeds
             // leading to a file handle leak.
             FileInfo f = new FileInfo(Path.Combine(getWorkDir().FullName, "docMakerLeak.txt"));
             TextWriter ps = new StreamWriter(new FileStream(f.FullName, FileMode.Create, FileAccess.Write), Encoding.UTF8);
-            ps.WriteLine("one title\t" + Time.CurrentTimeMilliseconds() + "\tsome content");
+            ps.WriteLine("one title\t" + J2N.Time.CurrentTimeMilliseconds() + "\tsome content");
             ps.Dispose();
 
             Dictionary<string, string> props = new Dictionary<string, string>();
diff --git a/src/Lucene.Net.Tests.Benchmark/ByTask/Tasks/CountingSearchTestTask.cs b/src/Lucene.Net.Tests.Benchmark/ByTask/Tasks/CountingSearchTestTask.cs
index 10c7628..87d56ea 100644
--- a/src/Lucene.Net.Tests.Benchmark/ByTask/Tasks/CountingSearchTestTask.cs
+++ b/src/Lucene.Net.Tests.Benchmark/ByTask/Tasks/CountingSearchTestTask.cs
@@ -48,7 +48,7 @@ namespace Lucene.Net.Benchmarks.ByTask.Tasks
             lock (syncLock)
             {
                 prevLastMillis = lastMillis;
-                lastMillis = Time.CurrentTimeMilliseconds();
+                lastMillis = J2N.Time.CurrentTimeMilliseconds();
                 if (0 == numSearches)
                 {
                     startMillis = prevLastMillis = lastMillis;
diff --git a/src/Lucene.Net/Support/Time.cs b/src/Lucene.Net/Support/Time.cs
index cec17e8..91d5657 100644
--- a/src/Lucene.Net/Support/Time.cs
+++ b/src/Lucene.Net/Support/Time.cs
@@ -1,26 +1,25 @@
 using System;
-using System.Diagnostics;
 
 namespace Lucene.Net.Support
 {
     /*
-	 * Licensed to the Apache Software Foundation (ASF) under one or more
-	 * contributor license agreements.  See the NOTICE file distributed with
-	 * this work for additional information regarding copyright ownership.
-	 * The ASF licenses this file to You under the Apache License, Version 2.0
-	 * (the "License"); you may not use this file except in compliance with
-	 * the License.  You may obtain a copy of the License at
-	 *
-	 *     http://www.apache.org/licenses/LICENSE-2.0
-	 *
-	 * Unless required by applicable law or agreed to in writing, software
-	 * distributed under the License is distributed on an "AS IS" BASIS,
-	 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-	 * See the License for the specific language governing permissions and
-	 * limitations under the License.
-	 */
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
 
-    public static class Time
+    internal static class Time
     {
         public const long MILLISECONDS_PER_NANOSECOND = 1000000;
         public const long TICKS_PER_NANOSECOND = 100;
@@ -32,10 +31,5 @@ namespace Lucene.Net.Support
             // return (Stopwatch.GetTimestamp() / Stopwatch.Frequency) * 1000000000;
             // for better accuracy that is not affected by the system clock
         }
-
-        public static long CurrentTimeMilliseconds()
-        {
-            return (Stopwatch.GetTimestamp() / Stopwatch.Frequency) * 1000;
-        }
     }
 }
\ No newline at end of file
diff --git a/src/Lucene.Net/Util/StringHelper.cs b/src/Lucene.Net/Util/StringHelper.cs
index 5fbfb4e..b85ed37 100644
--- a/src/Lucene.Net/Util/StringHelper.cs
+++ b/src/Lucene.Net/Util/StringHelper.cs
@@ -58,7 +58,7 @@ namespace Lucene.Net.Util
             }
             else
             {
-                return (int)Time.CurrentTimeMilliseconds();
+                return (int)J2N.Time.CurrentTimeMilliseconds();
             }
         }
 


[lucenenet] 10/35: BREAKING: Lucene.Net.Support: Marked ICallable interface internal

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit 20f75fda2ef0a151d958a77c3642eb6399353d6c
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Thu Feb 6 23:07:42 2020 +0700

    BREAKING: Lucene.Net.Support: Marked ICallable interface internal
---
 src/Lucene.Net/Support/ICallable.cs | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/src/Lucene.Net/Support/ICallable.cs b/src/Lucene.Net/Support/ICallable.cs
index 390649c..fb8554f 100644
--- a/src/Lucene.Net/Support/ICallable.cs
+++ b/src/Lucene.Net/Support/ICallable.cs
@@ -1,23 +1,23 @@
 namespace Lucene.Net.Support
 {
     /*
-	 * Licensed to the Apache Software Foundation (ASF) under one or more
-	 * contributor license agreements.  See the NOTICE file distributed with
-	 * this work for additional information regarding copyright ownership.
-	 * The ASF licenses this file to You under the Apache License, Version 2.0
-	 * (the "License"); you may not use this file except in compliance with
-	 * the License.  You may obtain a copy of the License at
-	 *
-	 *     http://www.apache.org/licenses/LICENSE-2.0
-	 *
-	 * Unless required by applicable law or agreed to in writing, software
-	 * distributed under the License is distributed on an "AS IS" BASIS,
-	 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-	 * See the License for the specific language governing permissions and
-	 * limitations under the License.
-	 */
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
 
-    public interface ICallable<V>
+    internal interface ICallable<V>
     {
         V Call();
     }


[lucenenet] 02/35: azure-pipelines.yml, run-tests-on-os.yml: Upgraded UseDotNet task to version 2

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit 57cd889c78464a14596c8a2e9f4c33b3b139c55c
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Tue Feb 4 23:16:38 2020 +0700

    azure-pipelines.yml, run-tests-on-os.yml: Upgraded UseDotNet task to version 2
---
 azure-pipelines.yml                       | 2 +-
 build/azure-templates/run-tests-on-os.yml | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index c04533b..0ff3508 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -90,7 +90,7 @@ stages:
         Write-Host "##vso[task.setvariable variable=BuildConfiguration;]$configuration"
       displayName: 'Setup Default Variable Values'
 
-    - task: DotNetCoreInstaller@0
+    - task: UseDotNet@2
       displayName: 'Use .NET Core sdk 3.1.100'
       inputs:
         version: 3.1.100
diff --git a/build/azure-templates/run-tests-on-os.yml b/build/azure-templates/run-tests-on-os.yml
index b85a20a..480bb9e 100644
--- a/build/azure-templates/run-tests-on-os.yml
+++ b/build/azure-templates/run-tests-on-os.yml
@@ -52,7 +52,7 @@ steps:
     EnsureNotNullOrEmpty('${{ parameters.maximumAllowedFailures }}', 'maximumAllowedFailures')
   displayName: 'Validate Template Parameters'
 
-- task: DotNetCoreInstaller@0
+- task: UseDotNet@2
   displayName: 'Use .NET Core sdk 3.1.100'
   inputs:
     version: 3.1.100


[lucenenet] 09/35: BREAKING: Factored out Lucene.Net.Support.AssemblyExtensions in favor of J2N's implementation

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit 81946c4e228abe62d99fefd6e4601924fc6961d9
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Thu Feb 6 22:43:59 2020 +0700

    BREAKING: Factored out Lucene.Net.Support.AssemblyExtensions in favor of J2N's implementation
---
 .../Analysis/Compound/Hyphenation/PatternParser.cs |   4 +-
 .../Analysis/Util/ClasspathResourceLoader.cs       |   6 +-
 .../Analysis/Util/StopwordAnalyzerBase.cs          |  12 +-
 .../Analysis/Icu/ICUFoldingFilter.cs               |  16 +--
 .../Icu/Segmentation/DefaultICUTokenizerConfig.cs  |   6 +-
 .../Dict/BinaryDictionary.cs                       |   6 +-
 .../Uk/UkrainianMorfologikAnalyzer.cs              |   6 +-
 .../Language/Bm/Lang.cs                            |   5 +-
 .../Language/Bm/Languages.cs                       |   5 +-
 .../Language/Bm/Rule.cs                            |   6 +-
 .../Language/DaitchMokotoffSoundex.cs              |   4 +-
 .../Hhmm/BigramDictionary.cs                       |   5 +-
 .../Hhmm/WordDictionary.cs                         |   5 +-
 .../Pl/PolishAnalyzer.cs                           |  35 +++--
 .../ByTask/Feeds/FileBasedQueryMaker.cs            |   7 +-
 .../JS/JavascriptCompiler.cs                       |   4 +-
 .../JavaCompatibility/SystemTypesHelpers.cs        |   5 +-
 .../Util/LuceneTestCase.cs                         |   2 +-
 .../Analysis/Util/TestFilesystemResourceLoader.cs  |   5 +-
 .../Tools/TestBuildDictionary.cs                   |   7 +-
 .../Suggest/LookupBenchmarkTest.cs                 |  11 +-
 .../Index/TestBackwardsCompatibility.cs            |   6 +-
 .../Index/TestBackwardsCompatibility3x.cs          |  10 +-
 .../Index/TestBinaryDocValuesUpdates.cs            |   9 +-
 src/Lucene.Net.Tests/Store/TestDirectory.cs        |   4 +-
 src/Lucene.Net/Support/AssemblyExtensions.cs       | 160 ---------------------
 .../Support/Util/BundleResourceManagerFactory.cs   |   4 +-
 src/Lucene.Net/Util/IOUtils.cs                     |   5 +-
 .../Support/JDKBreakIterator.cs                    |   6 +-
 .../SourceCode/SourceCodeParserTest.cs             |   7 +-
 .../tools/lucene-cli/SourceCode/ConsolePager.cs    |  29 +---
 .../lucene-cli/SourceCode/SourceCodeExporter.cs    |   6 +-
 32 files changed, 106 insertions(+), 302 deletions(-)

diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Compound/Hyphenation/PatternParser.cs b/src/Lucene.Net.Analysis.Common/Analysis/Compound/Hyphenation/PatternParser.cs
index b49e37d..c48a6fa 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Compound/Hyphenation/PatternParser.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Compound/Hyphenation/PatternParser.cs
@@ -1,4 +1,4 @@
-using Lucene.Net.Support;
+using J2N;
 using System;
 using System.Collections.Generic;
 using System.IO;
@@ -404,7 +404,7 @@ namespace Lucene.Net.Analysis.Compound.Hyphenation
                 string dtdFilename = "hyphenation.dtd";
                 if (dtdFilename.Equals(absoluteUri.Segments.LastOrDefault(), StringComparison.Ordinal))
                 {
-                    return GetType().GetTypeInfo().Assembly.FindAndGetManifestResourceStream(typeof(PatternParser), dtdFilename);
+                    return typeof(PatternParser).FindAndGetManifestResourceStream(dtdFilename);
                 }
 
                 return base.GetEntity(absoluteUri, role, ofObjectToReturn);
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Util/ClasspathResourceLoader.cs b/src/Lucene.Net.Analysis.Common/Analysis/Util/ClasspathResourceLoader.cs
index c6ecdcf..d7db1c0 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Util/ClasspathResourceLoader.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Util/ClasspathResourceLoader.cs
@@ -1,4 +1,4 @@
-using Lucene.Net.Support;
+using J2N;
 using System;
 using System.IO;
 using System.Reflection;
@@ -44,6 +44,10 @@ namespace Lucene.Net.Analysis.Util
 
         public Stream OpenResource(string resource)
         {
+            // LUCENENET NOTE: For some unknown reason, the shorthand version of this line
+            // Stream stream = this.clazz.FindAndGetManifestResourceStream(resource);
+            // causes TestMappingCharFilter.TestRandomMaps2 to run 2-3 times slower.
+            // So, we are using the long-hand syntax in this one place.
             Stream stream = this.clazz.GetTypeInfo().Assembly.FindAndGetManifestResourceStream(clazz, resource);
             if (stream == null)
             {
diff --git a/src/Lucene.Net.Analysis.Common/Analysis/Util/StopwordAnalyzerBase.cs b/src/Lucene.Net.Analysis.Common/Analysis/Util/StopwordAnalyzerBase.cs
index 8bb3f0b..8e0a86c 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/Util/StopwordAnalyzerBase.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/Util/StopwordAnalyzerBase.cs
@@ -1,4 +1,4 @@
-using Lucene.Net.Support;
+using J2N;
 using Lucene.Net.Util;
 using System;
 using System.IO;
@@ -42,13 +42,7 @@ namespace Lucene.Net.Analysis.Util
         /// </summary>
         /// <returns> the analyzer's stopword set or an empty set if the analyzer has no
         ///         stopwords </returns>
-        public virtual CharArraySet StopwordSet
-        {
-            get
-            {
-                return m_stopwords;
-            }
-        }
+        public virtual CharArraySet StopwordSet => m_stopwords;
 
         /// <summary>
         /// Creates a new instance initialized with the given stopword set
@@ -96,7 +90,7 @@ namespace Lucene.Net.Analysis.Util
             TextReader reader = null;
             try
             {
-                var resourceStream = aClass.GetTypeInfo().Assembly.FindAndGetManifestResourceStream(aClass, resource);
+                var resourceStream = aClass.FindAndGetManifestResourceStream(resource);
                 reader = IOUtils.GetDecodingReader(resourceStream, Encoding.UTF8);
                 return WordlistLoader.GetWordSet(reader, comment, new CharArraySet(
 #pragma warning disable 612, 618
diff --git a/src/Lucene.Net.Analysis.ICU/Analysis/Icu/ICUFoldingFilter.cs b/src/Lucene.Net.Analysis.ICU/Analysis/Icu/ICUFoldingFilter.cs
index 12780bd..590f5b9 100644
--- a/src/Lucene.Net.Analysis.ICU/Analysis/Icu/ICUFoldingFilter.cs
+++ b/src/Lucene.Net.Analysis.ICU/Analysis/Icu/ICUFoldingFilter.cs
@@ -1,5 +1,6 @@
 // Lucene version compatibility level 7.1.0
 using ICU4N.Text;
+using J2N;
 using Lucene.Net.Support;
 using System.Reflection;
 
@@ -64,7 +65,11 @@ namespace Lucene.Net.Analysis.Icu
     [ExceptionToClassNameConvention]
     public sealed class ICUFoldingFilter : ICUNormalizer2Filter
     {
-        private static readonly Normalizer2 normalizer;
+        // TODO: if the wrong version of the ICU jar is used, loading these data files may give a strange error.
+        // maybe add an explicit check? http://icu-project.org/apiref/icu4j/com/ibm/icu/util/VersionInfo.html
+        private static readonly Normalizer2 normalizer = Normalizer2.GetInstance(
+            typeof(ICUFoldingFilter).FindAndGetManifestResourceStream("utr30.nrm"),
+            "utr30", Normalizer2Mode.Compose);
 
         /// <summary>
         /// Create a new <see cref="ICUFoldingFilter"/> on the specified input
@@ -73,14 +78,5 @@ namespace Lucene.Net.Analysis.Icu
             : base(input, normalizer)
         {
         }
-
-        static ICUFoldingFilter()
-        {
-            // TODO: if the wrong version of the ICU jar is used, loading these data files may give a strange error.
-            // maybe add an explicit check? http://icu-project.org/apiref/icu4j/com/ibm/icu/util/VersionInfo.html
-            normalizer = Normalizer2.GetInstance(
-                typeof(ICUFoldingFilter).GetTypeInfo().Assembly.FindAndGetManifestResourceStream(typeof(ICUFoldingFilter), "utr30.nrm"),
-                "utr30", Normalizer2Mode.Compose);
-        }
     }
 }
diff --git a/src/Lucene.Net.Analysis.ICU/Analysis/Icu/Segmentation/DefaultICUTokenizerConfig.cs b/src/Lucene.Net.Analysis.ICU/Analysis/Icu/Segmentation/DefaultICUTokenizerConfig.cs
index bdee024..fb1cff9 100644
--- a/src/Lucene.Net.Analysis.ICU/Analysis/Icu/Segmentation/DefaultICUTokenizerConfig.cs
+++ b/src/Lucene.Net.Analysis.ICU/Analysis/Icu/Segmentation/DefaultICUTokenizerConfig.cs
@@ -2,11 +2,10 @@
 using ICU4N.Globalization;
 using ICU4N.Text;
 using ICU4N.Util;
+using J2N;
 using Lucene.Net.Analysis.Standard;
-using Lucene.Net.Support;
 using System;
 using System.IO;
-using System.Reflection;
 
 namespace Lucene.Net.Analysis.Icu.Segmentation
 {
@@ -132,8 +131,7 @@ namespace Lucene.Net.Analysis.Icu.Segmentation
 
         private static RuleBasedBreakIterator ReadBreakIterator(string filename)
         {
-            using (Stream @is =
-              typeof(DefaultICUTokenizerConfig).GetTypeInfo().Assembly.FindAndGetManifestResourceStream(typeof(DefaultICUTokenizerConfig), filename))
+            using (Stream @is = typeof(DefaultICUTokenizerConfig).FindAndGetManifestResourceStream(filename))
             {
                 try
                 {
diff --git a/src/Lucene.Net.Analysis.Kuromoji/Dict/BinaryDictionary.cs b/src/Lucene.Net.Analysis.Kuromoji/Dict/BinaryDictionary.cs
index 1302a54..f8514d6 100644
--- a/src/Lucene.Net.Analysis.Kuromoji/Dict/BinaryDictionary.cs
+++ b/src/Lucene.Net.Analysis.Kuromoji/Dict/BinaryDictionary.cs
@@ -1,11 +1,11 @@
-using J2N.IO;
+using J2N;
+using J2N.IO;
 using Lucene.Net.Codecs;
 using Lucene.Net.Store;
 using Lucene.Net.Support;
 using Lucene.Net.Util;
 using System;
 using System.IO;
-using System.Reflection;
 using System.Security;
 
 namespace Lucene.Net.Analysis.Ja.Dict
@@ -186,7 +186,7 @@ namespace Lucene.Net.Analysis.Ja.Dict
             // we load the data from the kuromoji-data directory (which can be set via the kuromoji.data.dir environment variable).
             if (string.IsNullOrEmpty(DATA_DIR))
             {
-                Stream @is = clazz.GetTypeInfo().Assembly.FindAndGetManifestResourceStream(clazz, fileName);
+                Stream @is = clazz.FindAndGetManifestResourceStream(fileName);
                 if (@is == null)
                     throw new FileNotFoundException("Not in assembly: " + clazz.FullName + suffix);
                 return @is;
diff --git a/src/Lucene.Net.Analysis.Morfologik/Uk/UkrainianMorfologikAnalyzer.cs b/src/Lucene.Net.Analysis.Morfologik/Uk/UkrainianMorfologikAnalyzer.cs
index eb6648c..6e3ecc8 100644
--- a/src/Lucene.Net.Analysis.Morfologik/Uk/UkrainianMorfologikAnalyzer.cs
+++ b/src/Lucene.Net.Analysis.Morfologik/Uk/UkrainianMorfologikAnalyzer.cs
@@ -1,11 +1,11 @@
 // Lucene version compatibility level 8.2.0
+using J2N;
 using Lucene.Net.Analysis.CharFilters;
 using Lucene.Net.Analysis.Core;
 using Lucene.Net.Analysis.Miscellaneous;
 using Lucene.Net.Analysis.Morfologik;
 using Lucene.Net.Analysis.Standard;
 using Lucene.Net.Analysis.Util;
-using Lucene.Net.Support;
 using Lucene.Net.Util;
 using Morfologik.Stemming;
 using System;
@@ -164,8 +164,8 @@ namespace Lucene.Net.Analysis.Uk
                 // (see https://search.maven.org/search?q=a:morfologik-ukrainian-search). However, we are embedding the file in .NET.
                 // Since it doesn't appear to be updated frequently, this should be okay.
                 string dictFile = "ukrainian.dict";
-                using (var dictStream = type.Assembly.FindAndGetManifestResourceStream(type, dictFile))
-                using (var metadataStream = type.Assembly.FindAndGetManifestResourceStream(type, DictionaryMetadata.GetExpectedMetadataFileName(dictFile)))
+                using (var dictStream = type.FindAndGetManifestResourceStream(dictFile))
+                using (var metadataStream = type.FindAndGetManifestResourceStream(DictionaryMetadata.GetExpectedMetadataFileName(dictFile)))
                     return Dictionary.Read(dictStream, metadataStream);
             }
             catch (IOException e)
diff --git a/src/Lucene.Net.Analysis.Phonetic/Language/Bm/Lang.cs b/src/Lucene.Net.Analysis.Phonetic/Language/Bm/Lang.cs
index 95cab22..27db241 100644
--- a/src/Lucene.Net.Analysis.Phonetic/Language/Bm/Lang.cs
+++ b/src/Lucene.Net.Analysis.Phonetic/Language/Bm/Lang.cs
@@ -1,11 +1,10 @@
 // commons-codec version compatibility level: 1.9
+using J2N;
 using J2N.Collections.Generic.Extensions;
 using J2N.Text;
-using Lucene.Net.Support;
 using System;
 using System.Collections.Generic;
 using System.IO;
-using System.Reflection;
 using System.Text.RegularExpressions;
 using JCG = J2N.Collections.Generic;
 
@@ -149,7 +148,7 @@ namespace Lucene.Net.Analysis.Phonetic.Language.Bm
         public static Lang LoadFromResource(string languageRulesResourceName, Languages languages)
         {
             IList<LangRule> rules = new List<LangRule>();
-            Stream lRulesIS = typeof(Lang).GetTypeInfo().Assembly.FindAndGetManifestResourceStream(typeof(Lang), languageRulesResourceName);
+            Stream lRulesIS = typeof(Lang).FindAndGetManifestResourceStream(languageRulesResourceName);
 
             if (lRulesIS == null)
             {
diff --git a/src/Lucene.Net.Analysis.Phonetic/Language/Bm/Languages.cs b/src/Lucene.Net.Analysis.Phonetic/Language/Bm/Languages.cs
index d01f343..b5865b5 100644
--- a/src/Lucene.Net.Analysis.Phonetic/Language/Bm/Languages.cs
+++ b/src/Lucene.Net.Analysis.Phonetic/Language/Bm/Languages.cs
@@ -1,11 +1,10 @@
 // commons-codec version compatibility level: 1.9
+using J2N;
 using J2N.Collections.Generic.Extensions;
-using Lucene.Net.Support;
 using System;
 using System.Collections.Generic;
 using System.IO;
 using System.Linq;
-using System.Reflection;
 using JCG = J2N.Collections.Generic;
 
 namespace Lucene.Net.Analysis.Phonetic.Language.Bm
@@ -92,7 +91,7 @@ namespace Lucene.Net.Analysis.Phonetic.Language.Bm
         {
             // read languages list
             ISet<string> ls = new JCG.HashSet<string>();
-            Stream langIS = typeof(Languages).GetTypeInfo().Assembly.FindAndGetManifestResourceStream(typeof(Languages), languagesResourceName);
+            Stream langIS = typeof(Languages).FindAndGetManifestResourceStream(languagesResourceName);
 
             if (langIS == null)
             {
diff --git a/src/Lucene.Net.Analysis.Phonetic/Language/Bm/Rule.cs b/src/Lucene.Net.Analysis.Phonetic/Language/Bm/Rule.cs
index 9506f2a..7b0d413 100644
--- a/src/Lucene.Net.Analysis.Phonetic/Language/Bm/Rule.cs
+++ b/src/Lucene.Net.Analysis.Phonetic/Language/Bm/Rule.cs
@@ -1,11 +1,11 @@
 // commons-codec version compatibility level: 1.9
+using J2N;
 using J2N.Collections.Generic.Extensions;
 using J2N.Text;
 using Lucene.Net.Support;
 using System;
 using System.Collections.Generic;
 using System.IO;
-using System.Reflection;
 using System.Text;
 using System.Text.RegularExpressions;
 using JCG = J2N.Collections.Generic;
@@ -200,7 +200,7 @@ namespace Lucene.Net.Analysis.Phonetic.Language.Bm
         private static TextReader CreateScanner(NameType nameType, RuleType rt, string lang)
         {
             string resName = CreateResourceName(nameType, rt, lang);
-            Stream rulesIS = typeof(Languages).GetTypeInfo().Assembly.FindAndGetManifestResourceStream(typeof(Languages), resName);
+            Stream rulesIS = typeof(Languages).FindAndGetManifestResourceStream(resName);
 
             if (rulesIS == null)
             {
@@ -213,7 +213,7 @@ namespace Lucene.Net.Analysis.Phonetic.Language.Bm
         private static TextReader CreateScanner(string lang)
         {
             string resName = string.Format("{0}.txt", lang); 
-            Stream rulesIS = typeof(Languages).GetTypeInfo().Assembly.FindAndGetManifestResourceStream(typeof(Languages), resName);
+            Stream rulesIS = typeof(Languages).FindAndGetManifestResourceStream(resName);
 
             if (rulesIS == null)
             {
diff --git a/src/Lucene.Net.Analysis.Phonetic/Language/DaitchMokotoffSoundex.cs b/src/Lucene.Net.Analysis.Phonetic/Language/DaitchMokotoffSoundex.cs
index 883e274..9c61e45 100644
--- a/src/Lucene.Net.Analysis.Phonetic/Language/DaitchMokotoffSoundex.cs
+++ b/src/Lucene.Net.Analysis.Phonetic/Language/DaitchMokotoffSoundex.cs
@@ -1,10 +1,10 @@
 // commons-codec version compatibility level: 1.10
+using J2N;
 using J2N.Text;
 using Lucene.Net.Support;
 using System;
 using System.Collections.Generic;
 using System.IO;
-using System.Reflection;
 using System.Text;
 using System.Text.RegularExpressions;
 
@@ -253,7 +253,7 @@ namespace Lucene.Net.Analysis.Phonetic.Language
 
         static DaitchMokotoffSoundex()
         {
-            Stream rulesIS = typeof(DaitchMokotoffSoundex).GetTypeInfo().Assembly.FindAndGetManifestResourceStream(typeof(DaitchMokotoffSoundex), RESOURCE_FILE);
+            Stream rulesIS = typeof(DaitchMokotoffSoundex).FindAndGetManifestResourceStream(RESOURCE_FILE);
             if (rulesIS == null)
             {
                 throw new ArgumentException("Unable to load resource: " + RESOURCE_FILE);
diff --git a/src/Lucene.Net.Analysis.SmartCn/Hhmm/BigramDictionary.cs b/src/Lucene.Net.Analysis.SmartCn/Hhmm/BigramDictionary.cs
index 0b2eab1..9ca0b57 100644
--- a/src/Lucene.Net.Analysis.SmartCn/Hhmm/BigramDictionary.cs
+++ b/src/Lucene.Net.Analysis.SmartCn/Hhmm/BigramDictionary.cs
@@ -1,9 +1,8 @@
 // lucene version compatibility level: 4.8.1
+using J2N;
 using J2N.IO;
-using Lucene.Net.Support;
 using System;
 using System.IO;
-using System.Reflection;
 using System.Text;
 
 namespace Lucene.Net.Analysis.Cn.Smart.Hhmm
@@ -244,7 +243,7 @@ namespace Lucene.Net.Analysis.Cn.Smart.Hhmm
 
         private void Load()
         {
-            using (Stream input = this.GetType().GetTypeInfo().Assembly.FindAndGetManifestResourceStream(this.GetType(), "bigramdict.mem"))
+            using (Stream input = this.GetType().FindAndGetManifestResourceStream("bigramdict.mem"))
             {
                 LoadFromInputStream(input);
             }
diff --git a/src/Lucene.Net.Analysis.SmartCn/Hhmm/WordDictionary.cs b/src/Lucene.Net.Analysis.SmartCn/Hhmm/WordDictionary.cs
index 517cc9d..8b4bce3 100644
--- a/src/Lucene.Net.Analysis.SmartCn/Hhmm/WordDictionary.cs
+++ b/src/Lucene.Net.Analysis.SmartCn/Hhmm/WordDictionary.cs
@@ -1,9 +1,8 @@
 // lucene version compatibility level: 4.8.1
+using J2N;
 using J2N.IO;
-using Lucene.Net.Support;
 using System;
 using System.IO;
-using System.Reflection;
 using System.Text;
 
 namespace Lucene.Net.Analysis.Cn.Smart.Hhmm
@@ -166,7 +165,7 @@ namespace Lucene.Net.Analysis.Cn.Smart.Hhmm
         /// <exception cref="IOException">If there is a low-level I/O error.</exception>
         public virtual void Load()
         {
-            using (Stream input = this.GetType().GetTypeInfo().Assembly.FindAndGetManifestResourceStream(this.GetType(), "coredict.mem"))
+            using (Stream input = this.GetType().FindAndGetManifestResourceStream("coredict.mem"))
             {
                 LoadFromObjectInputStream(input);
             }
diff --git a/src/Lucene.Net.Analysis.Stempel/Pl/PolishAnalyzer.cs b/src/Lucene.Net.Analysis.Stempel/Pl/PolishAnalyzer.cs
index a830aef..84b800e 100644
--- a/src/Lucene.Net.Analysis.Stempel/Pl/PolishAnalyzer.cs
+++ b/src/Lucene.Net.Analysis.Stempel/Pl/PolishAnalyzer.cs
@@ -1,35 +1,34 @@
 using Egothor.Stemmer;
+using J2N;
 using Lucene.Net.Analysis.Core;
 using Lucene.Net.Analysis.Miscellaneous;
 using Lucene.Net.Analysis.Standard;
 using Lucene.Net.Analysis.Stempel;
 using Lucene.Net.Analysis.Util;
-using Lucene.Net.Support;
 using Lucene.Net.Util;
 using System;
 using System.IO;
 using System.Linq;
 using System.Text;
-using System.Reflection;
 
 namespace Lucene.Net.Analysis.Pl
 {
     /*
-	 * Licensed to the Apache Software Foundation (ASF) under one or more
-	 * contributor license agreements.  See the NOTICE file distributed with
-	 * this work for additional information regarding copyright ownership.
-	 * The ASF licenses this file to You under the Apache License, Version 2.0
-	 * (the "License"); you may not use this file except in compliance with
-	 * the License.  You may obtain a copy of the License at
-	 *
-	 *     http://www.apache.org/licenses/LICENSE-2.0
-	 *
-	 * Unless required by applicable law or agreed to in writing, software
-	 * distributed under the License is distributed on an "AS IS" BASIS,
-	 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-	 * See the License for the specific language governing permissions and
-	 * limitations under the License.
-	 */
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
 
     /// <summary>
     /// <see cref="Analyzer"/> for Polish.
@@ -97,7 +96,7 @@ namespace Lucene.Net.Analysis.Pl
             {
                 try
                 {
-                    return StempelStemmer.Load(typeof(PolishAnalyzer).GetTypeInfo().Assembly.FindAndGetManifestResourceStream(typeof(PolishAnalyzer), DEFAULT_STEMMER_FILE));
+                    return StempelStemmer.Load(typeof(PolishAnalyzer).FindAndGetManifestResourceStream(DEFAULT_STEMMER_FILE));
                 }
                 catch (IOException ex)
                 {
diff --git a/src/Lucene.Net.Benchmark/ByTask/Feeds/FileBasedQueryMaker.cs b/src/Lucene.Net.Benchmark/ByTask/Feeds/FileBasedQueryMaker.cs
index 350870d..206fff9 100644
--- a/src/Lucene.Net.Benchmark/ByTask/Feeds/FileBasedQueryMaker.cs
+++ b/src/Lucene.Net.Benchmark/ByTask/Feeds/FileBasedQueryMaker.cs
@@ -1,13 +1,12 @@
-using Lucene.Net.Analysis;
+using J2N;
+using Lucene.Net.Analysis;
 using Lucene.Net.Benchmarks.ByTask.Tasks;
 using Lucene.Net.QueryParsers.Classic;
 using Lucene.Net.Search;
-using Lucene.Net.Support;
 using Lucene.Net.Util;
 using System;
 using System.Collections.Generic;
 using System.IO;
-using System.Reflection;
 using System.Text;
 using Console = Lucene.Net.Support.SystemConsole;
 
@@ -76,7 +75,7 @@ namespace Lucene.Net.Benchmarks.ByTask.Feeds
                 else
                 {
                     //see if we can find it as a resource
-                    Stream asStream = typeof(FileBasedQueryMaker).GetTypeInfo().Assembly.FindAndGetManifestResourceStream(typeof(FileBasedQueryMaker), fileName);
+                    Stream asStream = typeof(FileBasedQueryMaker).FindAndGetManifestResourceStream(fileName);
                     if (asStream != null)
                     {
                         reader = IOUtils.GetDecodingReader(asStream, Encoding.UTF8);
diff --git a/src/Lucene.Net.Expressions/JS/JavascriptCompiler.cs b/src/Lucene.Net.Expressions/JS/JavascriptCompiler.cs
index 36f0bd3..4af7815 100644
--- a/src/Lucene.Net.Expressions/JS/JavascriptCompiler.cs
+++ b/src/Lucene.Net.Expressions/JS/JavascriptCompiler.cs
@@ -11,6 +11,7 @@ using System.Linq;
 using System.Reflection;
 using System.Reflection.Emit;
 using JCG = J2N.Collections.Generic;
+using J2N;
 
 #if NETSTANDARD
 using System.IO;
@@ -659,8 +660,7 @@ namespace Lucene.Net.Expressions.JS
 #if NETSTANDARD
             var settings = new Dictionary<string, string>();
             var type = typeof(JavascriptCompiler);
-            var assembly = type.GetTypeInfo().Assembly;
-            using (var reader = new StreamReader(assembly.FindAndGetManifestResourceStream(type, type.GetTypeInfo().Name + ".properties")))
+            using (var reader = new StreamReader(type.FindAndGetManifestResourceStream(type.GetTypeInfo().Name + ".properties")))
             {
                 string line;
                 while(!string.IsNullOrWhiteSpace(line = reader.ReadLine()))
diff --git a/src/Lucene.Net.TestFramework/Support/JavaCompatibility/SystemTypesHelpers.cs b/src/Lucene.Net.TestFramework/Support/JavaCompatibility/SystemTypesHelpers.cs
index 200b36d..4b7e152 100644
--- a/src/Lucene.Net.TestFramework/Support/JavaCompatibility/SystemTypesHelpers.cs
+++ b/src/Lucene.Net.TestFramework/Support/JavaCompatibility/SystemTypesHelpers.cs
@@ -1,11 +1,10 @@
-using Lucene.Net.Support;
+using J2N;
 using System;
 using System.Collections;
 using System.Collections.Generic;
 using System.Globalization;
 using System.IO;
 using System.Linq;
-using System.Reflection;
 using System.Text;
 using System.Text.RegularExpressions;
 using Console = Lucene.Net.Support.SystemConsole;
@@ -299,7 +298,7 @@ namespace Lucene.Net
         /// </summary>
         public static Stream getResourceAsStream(this Type t, string name)
         {
-            return t.GetTypeInfo().Assembly.FindAndGetManifestResourceStream(t, name);
+            return t.FindAndGetManifestResourceStream(name);
         }
 
         public static int read(this TextReader reader, char[] buffer)
diff --git a/src/Lucene.Net.TestFramework/Util/LuceneTestCase.cs b/src/Lucene.Net.TestFramework/Util/LuceneTestCase.cs
index 565e34b..d3b3b26 100644
--- a/src/Lucene.Net.TestFramework/Util/LuceneTestCase.cs
+++ b/src/Lucene.Net.TestFramework/Util/LuceneTestCase.cs
@@ -2117,7 +2117,7 @@ namespace Lucene.Net.Util
         /// <summary>
         /// Gets a resource from the classpath as <see cref="Stream"/>. This method should only
         /// be used, if a real file is needed. To get a stream, code should prefer
-        /// <see cref="Lucene.Net.Support.AssemblyExtensions.FindAndGetManifestResourceStream(Assembly, Type, string)"/> using 
+        /// <see cref="J2N.AssemblyExtensions.FindAndGetManifestResourceStream(Assembly, Type, string)"/> using 
         /// <c>this.GetType().Assembly</c> and <c>this.GetType()</c>.
         /// </summary>
         protected virtual Stream GetDataFile(string name)
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestFilesystemResourceLoader.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestFilesystemResourceLoader.cs
index 373707a..dfbbe3a 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestFilesystemResourceLoader.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestFilesystemResourceLoader.cs
@@ -1,10 +1,9 @@
-using Lucene.Net.Support;
+using J2N;
 using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 using System.IO;
 using System.Linq;
-using System.Reflection;
 using System.Text;
 
 namespace Lucene.Net.Analysis.Util
@@ -58,7 +57,7 @@ namespace Lucene.Net.Analysis.Util
             // before passing it to our resource loader.
             string englishStopFile = "english_stop.txt";
             var file = CreateTempFile(System.IO.Path.GetFileNameWithoutExtension(englishStopFile), System.IO.Path.GetExtension(englishStopFile));
-            using (var stream = typeof(Snowball.SnowballFilter).GetTypeInfo().Assembly.FindAndGetManifestResourceStream(typeof(Snowball.SnowballFilter), englishStopFile))
+            using (var stream = typeof(Snowball.SnowballFilter).FindAndGetManifestResourceStream(englishStopFile))
             {
                 using (var outputStream = new FileStream(file.FullName, FileMode.OpenOrCreate, FileAccess.Write))
                 {
diff --git a/src/Lucene.Net.Tests.Analysis.Kuromoji/Tools/TestBuildDictionary.cs b/src/Lucene.Net.Tests.Analysis.Kuromoji/Tools/TestBuildDictionary.cs
index 9f13314..e18dec3 100644
--- a/src/Lucene.Net.Tests.Analysis.Kuromoji/Tools/TestBuildDictionary.cs
+++ b/src/Lucene.Net.Tests.Analysis.Kuromoji/Tools/TestBuildDictionary.cs
@@ -1,10 +1,9 @@
-using Lucene.Net.Analysis.Ja.Util;
+using J2N;
+using Lucene.Net.Analysis.Ja.Util;
 using Lucene.Net.Attributes;
-using Lucene.Net.Support;
 using Lucene.Net.Util;
 using NUnit.Framework;
 using System.Collections.Generic;
-using System.Reflection;
 
 namespace Lucene.Net.Analysis.Ja.Tools
 {
@@ -41,7 +40,7 @@ namespace Lucene.Net.Analysis.Ja.Tools
         {
             var inputDir = CreateTempDir("build-dictionary-input");
             var outputDir = CreateTempDir("build-dictionary-output");
-            using (var zipFileStream = this.GetType().GetTypeInfo().Assembly.FindAndGetManifestResourceStream(this.GetType(), "custom-dictionary-input.zip"))
+            using (var zipFileStream = this.GetType().FindAndGetManifestResourceStream("custom-dictionary-input.zip"))
             {
                 TestUtil.Unzip(zipFileStream, inputDir);
             }
diff --git a/src/Lucene.Net.Tests.Suggest/Suggest/LookupBenchmarkTest.cs b/src/Lucene.Net.Tests.Suggest/Suggest/LookupBenchmarkTest.cs
index f1a9a81..92a48fe 100644
--- a/src/Lucene.Net.Tests.Suggest/Suggest/LookupBenchmarkTest.cs
+++ b/src/Lucene.Net.Tests.Suggest/Suggest/LookupBenchmarkTest.cs
@@ -1,4 +1,5 @@
-using J2N.Collections.Generic.Extensions;
+using J2N;
+using J2N.Collections.Generic.Extensions;
 using Lucene.Net.Analysis;
 using Lucene.Net.Search.Suggest.Analyzing;
 using Lucene.Net.Search.Suggest.Fst;
@@ -91,9 +92,7 @@ namespace Lucene.Net.Search.Suggest
         {
             List<Input> input = new List<Input>();
 
-            //URL resource = LookupBenchmarkTest.class.getResource("Top50KWiki.utf8");
-            //var resource = typeof(LookupBenchmarkTest).GetTypeInfo().Assembly.GetManifestResourceStream("Lucene.Net.Tests.Suggest.Suggest.Top50KWiki.utf8");
-            var resource = typeof(LookupBenchmarkTest).GetTypeInfo().Assembly.FindAndGetManifestResourceStream(typeof(LookupBenchmarkTest), "Top50KWiki.utf8");
+            var resource = typeof(LookupBenchmarkTest).FindAndGetManifestResourceStream("Top50KWiki.utf8");
             Debug.Assert(resource != null, "Resource missing: Top50KWiki.utf8");
 
             string line = null;
@@ -297,9 +296,9 @@ namespace Lucene.Net.Search.Suggest
                 List<double> times = new List<double>();
                 for (int i = 0; i < warmup + rounds; i++)
                 {
-                    long start = Time.NanoTime();
+                    long start = J2N.Time.NanoTime();
                     guard = Convert.ToInt32(callable.Call());
-                    times.Add((Time.NanoTime() - start) / NANOS_PER_MS );
+                    times.Add((J2N.Time.NanoTime() - start) / NANOS_PER_MS );
                 }
                 return new BenchmarkResult(times, warmup, rounds);
             }
diff --git a/src/Lucene.Net.Tests/Index/TestBackwardsCompatibility.cs b/src/Lucene.Net.Tests/Index/TestBackwardsCompatibility.cs
index cd2623d..f0dba16 100644
--- a/src/Lucene.Net.Tests/Index/TestBackwardsCompatibility.cs
+++ b/src/Lucene.Net.Tests/Index/TestBackwardsCompatibility.cs
@@ -1,3 +1,4 @@
+using J2N;
 using Lucene.Net.Attributes;
 using Lucene.Net.Index.Extensions;
 using Lucene.Net.Support;
@@ -7,7 +8,6 @@ using System.Collections.Generic;
 using System.Diagnostics;
 using System.IO;
 using System.Linq;
-using System.Reflection;
 using System.Text;
 using Console = Lucene.Net.Support.SystemConsole;
 
@@ -209,7 +209,7 @@ namespace Lucene.Net.Index
             foreach (string name in names)
             {
                 DirectoryInfo dir = CreateTempDir(name);
-                using (Stream zipFileStream = this.GetType().GetTypeInfo().Assembly.FindAndGetManifestResourceStream(GetType(), "index." + name + ".zip"))
+                using (Stream zipFileStream = this.GetType().FindAndGetManifestResourceStream("index." + name + ".zip"))
                 {
                     TestUtil.Unzip(zipFileStream, dir);
                 }
@@ -953,7 +953,7 @@ namespace Lucene.Net.Index
             foreach (string name in OldIndexDirs.Keys)
             {
                 DirectoryInfo dir = CreateTempDir(name);
-                using (Stream dataFile = this.GetType().GetTypeInfo().Assembly.FindAndGetManifestResourceStream(GetType(), "index." + name + ".zip"))
+                using (Stream dataFile = this.GetType().FindAndGetManifestResourceStream("index." + name + ".zip"))
                 {
                     TestUtil.Unzip(dataFile, dir);
                 }
diff --git a/src/Lucene.Net.Tests/Index/TestBackwardsCompatibility3x.cs b/src/Lucene.Net.Tests/Index/TestBackwardsCompatibility3x.cs
index 8dbda2d..95bf649 100644
--- a/src/Lucene.Net.Tests/Index/TestBackwardsCompatibility3x.cs
+++ b/src/Lucene.Net.Tests/Index/TestBackwardsCompatibility3x.cs
@@ -1,3 +1,4 @@
+using J2N;
 using Lucene.Net.Index.Extensions;
 using Lucene.Net.Support;
 using NUnit.Framework;
@@ -5,7 +6,6 @@ using System;
 using System.Collections.Generic;
 using System.Diagnostics;
 using System.IO;
-using System.Reflection;
 using System.Text;
 using Console = Lucene.Net.Support.SystemConsole;
 
@@ -141,7 +141,7 @@ namespace Lucene.Net.Index
             foreach (string name in names)
             {
                 DirectoryInfo dir = CreateTempDir(name);
-                using (Stream zipFileStream = this.GetType().GetTypeInfo().Assembly.FindAndGetManifestResourceStream(GetType(), "index." + name + ".zip"))
+                using (Stream zipFileStream = this.GetType().FindAndGetManifestResourceStream("index." + name + ".zip"))
                 {
                     TestUtil.Unzip(zipFileStream, dir);
                 }
@@ -172,7 +172,7 @@ namespace Lucene.Net.Index
                     Console.WriteLine("TEST: index " + UnsupportedNames[i]);
                 }
                 DirectoryInfo oldIndexDir = CreateTempDir(UnsupportedNames[i]);
-                using (Stream dataFile = this.GetType().GetTypeInfo().Assembly.FindAndGetManifestResourceStream(GetType(), "unsupported." + UnsupportedNames[i] + ".zip"))
+                using (Stream dataFile = this.GetType().FindAndGetManifestResourceStream("unsupported." + UnsupportedNames[i] + ".zip"))
                 {
                     TestUtil.Unzip(dataFile, oldIndexDir);
                 }
@@ -963,7 +963,7 @@ namespace Lucene.Net.Index
         public virtual void TestSurrogates()
         {
             DirectoryInfo oldIndexDir = CreateTempDir("surrogates");
-            using (Stream dataFile = this.GetType().GetTypeInfo().Assembly.FindAndGetManifestResourceStream(GetType(), SurrogatesIndexName))
+            using (Stream dataFile = this.GetType().FindAndGetManifestResourceStream(SurrogatesIndexName))
             {
                 TestUtil.Unzip(dataFile, oldIndexDir);
             }
@@ -1025,7 +1025,7 @@ namespace Lucene.Net.Index
         public virtual void TestNegativePositions()
         {
             DirectoryInfo oldIndexDir = CreateTempDir("negatives");
-            using (Stream dataFile = this.GetType().GetTypeInfo().Assembly.FindAndGetManifestResourceStream(GetType(), Bogus24IndexName))
+            using (Stream dataFile = this.GetType().FindAndGetManifestResourceStream(Bogus24IndexName))
             {
                 TestUtil.Unzip(dataFile, oldIndexDir);
             }
diff --git a/src/Lucene.Net.Tests/Index/TestBinaryDocValuesUpdates.cs b/src/Lucene.Net.Tests/Index/TestBinaryDocValuesUpdates.cs
index 8068e3a..0165d3d 100644
--- a/src/Lucene.Net.Tests/Index/TestBinaryDocValuesUpdates.cs
+++ b/src/Lucene.Net.Tests/Index/TestBinaryDocValuesUpdates.cs
@@ -1,7 +1,7 @@
+using J2N;
 using J2N.Threading;
 using J2N.Threading.Atomic;
 using Lucene.Net.Attributes;
-using Lucene.Net.Codecs;
 using Lucene.Net.Documents;
 using Lucene.Net.Facet;
 using Lucene.Net.Facet.Taxonomy;
@@ -15,10 +15,9 @@ using NUnit.Framework;
 using System;
 using System.Collections.Generic;
 using System.IO;
-using System.Reflection;
 using System.Threading;
-using JCG = J2N.Collections.Generic;
 using Console = Lucene.Net.Support.SystemConsole;
+using JCG = J2N.Collections.Generic;
 
 namespace Lucene.Net.Index
 {
@@ -1807,14 +1806,14 @@ namespace Lucene.Net.Index
 
             // Unzip index
             DirectoryInfo indexDir = CreateTempDir("index");
-            using (Stream zipFileStream = this.GetType().GetTypeInfo().Assembly.FindAndGetManifestResourceStream(GetType(), "index.48.w-binary-doc-values.zip"))
+            using (Stream zipFileStream = this.GetType().FindAndGetManifestResourceStream("index.48.w-binary-doc-values.zip"))
             {
                 TestUtil.Unzip(zipFileStream, indexDir);
             }
 
             // Unzip taxonomy
             DirectoryInfo taxoDir = CreateTempDir("taxo");
-            using (Stream zipFileStream = this.GetType().GetTypeInfo().Assembly.FindAndGetManifestResourceStream(GetType(), "taxo.48.w-binary-doc-values.zip"))
+            using (Stream zipFileStream = this.GetType().FindAndGetManifestResourceStream("taxo.48.w-binary-doc-values.zip"))
             {
                 TestUtil.Unzip(zipFileStream, taxoDir);
             }
diff --git a/src/Lucene.Net.Tests/Store/TestDirectory.cs b/src/Lucene.Net.Tests/Store/TestDirectory.cs
index 3987d23..a1b606e 100644
--- a/src/Lucene.Net.Tests/Store/TestDirectory.cs
+++ b/src/Lucene.Net.Tests/Store/TestDirectory.cs
@@ -1,3 +1,4 @@
+using J2N;
 using J2N.Threading;
 using Lucene.Net.Attributes;
 using Lucene.Net.Support;
@@ -5,7 +6,6 @@ using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 using System.IO;
-using System.Reflection;
 using System.Threading;
 using Console = Lucene.Net.Support.SystemConsole;
 
@@ -485,7 +485,7 @@ namespace Lucene.Net.Store
         public void TestLUCENENET521()
         {
             var newDirectoryInfo = CreateTempDir("LUCENENET521");
-            using (var zipFileStream = this.GetType().GetTypeInfo().Assembly.FindAndGetManifestResourceStream(this.GetType(), "LUCENENET521.zip"))
+            using (var zipFileStream = this.GetType().FindAndGetManifestResourceStream("LUCENENET521.zip"))
             {
                 TestUtil.Unzip(zipFileStream, newDirectoryInfo);
             }
diff --git a/src/Lucene.Net/Support/AssemblyExtensions.cs b/src/Lucene.Net/Support/AssemblyExtensions.cs
deleted file mode 100644
index 7b6f9e0..0000000
--- a/src/Lucene.Net/Support/AssemblyExtensions.cs
+++ /dev/null
@@ -1,160 +0,0 @@
-using System;
-using System.Collections.Concurrent;
-using System.IO;
-using System.Linq;
-using System.Reflection;
-
-namespace Lucene.Net.Support
-{
-    /*
-	 * Licensed to the Apache Software Foundation (ASF) under one or more
-	 * contributor license agreements.  See the NOTICE file distributed with
-	 * this work for additional information regarding copyright ownership.
-	 * The ASF licenses this file to You under the Apache License, Version 2.0
-	 * (the "License"); you may not use this file except in compliance with
-	 * the License.  You may obtain a copy of the License at
-	 *
-	 *     http://www.apache.org/licenses/LICENSE-2.0
-	 *
-	 * Unless required by applicable law or agreed to in writing, software
-	 * distributed under the License is distributed on an "AS IS" BASIS,
-	 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-	 * See the License for the specific language governing permissions and
-	 * limitations under the License.
-	 */
-
-    public static class AssemblyExtensions
-    {
-        private static ConcurrentDictionary<TypeAndResource, string> resourceCache = new ConcurrentDictionary<TypeAndResource, string>();
-
-        /// <summary>
-        /// Aggressively searches for a resource and, if found, returns an open <see cref="Stream"/>
-        /// where it can be read.
-        /// </summary>
-        /// <param name="assembly">this assembly</param>
-        /// <param name="type">a type in the same namespace as the resource</param>
-        /// <param name="name">the resource name to locate</param>
-        /// <returns>an open <see cref="Stream"/> that can be used to read the resource, or <c>null</c> if the resource cannot be found.</returns>
-        public static Stream FindAndGetManifestResourceStream(this Assembly assembly, Type type, string name)
-        {
-            string resourceName = FindResource(assembly, type, name);
-            if (string.IsNullOrEmpty(resourceName))
-            {
-                return null;
-            }
-
-            return assembly.GetManifestResourceStream(resourceName);
-        }
-
-        /// <summary>
-        /// Aggressively searches to find a resource based on a <see cref="Type"/> and resource name.
-        /// </summary>
-        /// <param name="assembly">this assembly</param>
-        /// <param name="type">a type in the same namespace as the resource</param>
-        /// <param name="name">the resource name to locate</param>
-        /// <returns>the resource, if found; if not found, returns <c>null</c></returns>
-        public static string FindResource(this Assembly assembly, Type type, string name)
-        {
-            string resourceName;
-            TypeAndResource key = new TypeAndResource(type, name);
-            if (!resourceCache.TryGetValue(key, out resourceName))
-            {
-                string[] resourceNames = assembly.GetManifestResourceNames();
-                resourceName = resourceNames.Where(x => x.Equals(name, StringComparison.Ordinal)).FirstOrDefault();
-
-                // If resourceName is not null, we have an exact match, don't search
-                if (resourceName == null)
-                {
-                    string assemblyName = type.GetTypeInfo().Assembly.GetName().Name;
-                    string namespaceName = type.GetTypeInfo().Namespace;
-
-                    // Search by assembly + namespace
-                    string resourceToFind = string.Concat(namespaceName, ".", name);
-                    if (!TryFindResource(resourceNames, assemblyName, resourceToFind, name, out resourceName))
-                    {
-                        string found1 = resourceName;
-
-                        // Search by namespace only
-                        if (!TryFindResource(resourceNames, null, resourceToFind, name, out resourceName))
-                        {
-                            string found2 = resourceName;
-
-                            // Search by assembly name only
-                            resourceToFind = string.Concat(assemblyName, ".", name);
-                            if (!TryFindResource(resourceNames, null, resourceToFind, name, out resourceName))
-                            {
-                                // Take the first match of multiple, if there are any
-                                resourceName = found1 ?? found2 ?? resourceName;
-                            }
-                        }
-                    }
-                }
-
-                resourceCache[key] = resourceName;
-            }
-
-            return resourceName;
-        }
-
-        private static bool TryFindResource(string[] resourceNames, string prefix, string resourceName, string exactResourceName, out string result)
-        {
-            if (!resourceNames.Contains(resourceName))
-            {
-                string nameToFind = null;
-                while (resourceName.Length > 0 && resourceName.Contains('.') && (!(string.IsNullOrEmpty(prefix)) || resourceName.Equals(exactResourceName, StringComparison.Ordinal)))
-                {
-                    nameToFind = string.IsNullOrEmpty(prefix)
-                        ? resourceName
-                        : string.Concat(prefix, ".", resourceName);
-                    string[] matches = resourceNames.Where(x => x.EndsWith(nameToFind, StringComparison.Ordinal)).ToArray();
-                    if (matches.Length == 1)
-                    {
-                        result = matches[0]; // Exact match
-                        return true;
-                    }
-                    else if (matches.Length > 1)
-                    {
-                        result = matches[0]; // First of many
-                        return false;
-                    }
-
-                    resourceName = resourceName.Substring(resourceName.IndexOf('.') + 1);
-                }
-                result = null; // No match
-                return false;
-            }
-
-            result = resourceName;
-            return true;
-        }
-
-        private class TypeAndResource
-        {
-            private readonly Type type;
-            private readonly string name;
-
-            public TypeAndResource(Type type, string name)
-            {
-                this.type = type;
-                this.name = name;
-            }
-
-            public override bool Equals(object obj)
-            {
-                if (!(obj is TypeAndResource))
-                {
-                    return false;
-                }
-
-                var other = obj as TypeAndResource;
-                return this.type.Equals(other.type)
-                    && this.name.Equals(other.name, StringComparison.Ordinal);
-            }
-
-            public override int GetHashCode()
-            {
-                return this.type.GetHashCode() ^ this.name.GetHashCode();
-            }
-        }
-    }
-}
diff --git a/src/Lucene.Net/Support/Util/BundleResourceManagerFactory.cs b/src/Lucene.Net/Support/Util/BundleResourceManagerFactory.cs
index 2635048..28c134c 100644
--- a/src/Lucene.Net/Support/Util/BundleResourceManagerFactory.cs
+++ b/src/Lucene.Net/Support/Util/BundleResourceManagerFactory.cs
@@ -1,4 +1,4 @@
-using Lucene.Net.Support;
+using J2N;
 using System;
 using System.Reflection;
 using System.Resources;
@@ -74,7 +74,7 @@ namespace Lucene.Net.Util
         /// <returns>The resource name.</returns>
         protected virtual string GetResourceName(Type clazz)
         {
-            string resource = clazz.GetTypeInfo().Assembly.FindResource(clazz, string.Concat(clazz.Name, ResourceSuffix, ".resources"));
+            string resource = clazz.FindResource(string.Concat(clazz.Name, ResourceSuffix, ".resources"));
             return !string.IsNullOrEmpty(resource)
                 ? resource.Substring(0, resource.Length - 10)
                 : null;
diff --git a/src/Lucene.Net/Util/IOUtils.cs b/src/Lucene.Net/Util/IOUtils.cs
index 115ea08..65f4454 100644
--- a/src/Lucene.Net/Util/IOUtils.cs
+++ b/src/Lucene.Net/Util/IOUtils.cs
@@ -1,10 +1,9 @@
+using J2N;
 using Lucene.Net.Support;
 using System;
 using System.Collections.Generic;
 using System.IO;
-using System.Reflection;
 using System.Text;
-using System.Threading;
 
 namespace Lucene.Net.Util
 {
@@ -431,7 +430,7 @@ namespace Lucene.Net.Util
             bool success = false;
             try
             {
-                stream = clazz.GetTypeInfo().Assembly.FindAndGetManifestResourceStream(clazz, resource);
+                stream = clazz.FindAndGetManifestResourceStream(resource);
                 TextReader reader = GetDecodingReader(stream, charSet);
                 success = true;
                 return reader;
diff --git a/src/dotnet/Lucene.Net.Tests.ICU/Support/JDKBreakIterator.cs b/src/dotnet/Lucene.Net.Tests.ICU/Support/JDKBreakIterator.cs
index 249f400..e023aa2 100644
--- a/src/dotnet/Lucene.Net.Tests.ICU/Support/JDKBreakIterator.cs
+++ b/src/dotnet/Lucene.Net.Tests.ICU/Support/JDKBreakIterator.cs
@@ -1,7 +1,7 @@
 using ICU4N.Text;
+using J2N;
 using System.Globalization;
 using System.IO;
-using System.Reflection;
 
 namespace Lucene.Net.Support
 {
@@ -37,12 +37,12 @@ namespace Lucene.Net.Support
         static JdkBreakIterator()
         {
             using (Stream @is =
-                typeof(JdkBreakIterator).GetTypeInfo().Assembly.FindAndGetManifestResourceStream(typeof(JdkBreakIterator), "jdksent.brk"))
+                typeof(JdkBreakIterator).FindAndGetManifestResourceStream("jdksent.brk"))
             {
                 SentenceInstance = RuleBasedBreakIterator.GetInstanceFromCompiledRules(@is);
             }
             using (Stream @is =
-                typeof(JdkBreakIterator).GetTypeInfo().Assembly.FindAndGetManifestResourceStream(typeof(JdkBreakIterator), "jdkword.brk"))
+                typeof(JdkBreakIterator).FindAndGetManifestResourceStream("jdkword.brk"))
             {
                 WordInstance = RuleBasedBreakIterator.GetInstanceFromCompiledRules(@is);
             }
diff --git a/src/dotnet/tools/Lucene.Net.Tests.Cli/SourceCode/SourceCodeParserTest.cs b/src/dotnet/tools/Lucene.Net.Tests.Cli/SourceCode/SourceCodeParserTest.cs
index d7a465c..0cbba61 100644
--- a/src/dotnet/tools/Lucene.Net.Tests.Cli/SourceCode/SourceCodeParserTest.cs
+++ b/src/dotnet/tools/Lucene.Net.Tests.Cli/SourceCode/SourceCodeParserTest.cs
@@ -1,5 +1,5 @@
-using Lucene.Net.Attributes;
-using Lucene.Net.Support;
+using J2N;
+using Lucene.Net.Attributes;
 using NUnit.Framework;
 using System.IO;
 using System.Reflection;
@@ -30,11 +30,10 @@ namespace Lucene.Net.Cli.SourceCode
         public void TestSourceCodeSectionParser()
         {
             var parser = new SourceCodeSectionParser();
-            var thisAssembly = this.GetType().GetTypeInfo().Assembly;
 
             using (var output = new MemoryStream())
             {
-                using (var input = thisAssembly.FindAndGetManifestResourceStream(this.GetType(), "TestInputForParser.cs"))
+                using (var input = this.GetType().FindAndGetManifestResourceStream("TestInputForParser.cs"))
                 {
                     parser.ParseSourceCodeFiles(input, output);
                 }
diff --git a/src/dotnet/tools/lucene-cli/SourceCode/ConsolePager.cs b/src/dotnet/tools/lucene-cli/SourceCode/ConsolePager.cs
index 039fc19..cae54d8 100644
--- a/src/dotnet/tools/lucene-cli/SourceCode/ConsolePager.cs
+++ b/src/dotnet/tools/lucene-cli/SourceCode/ConsolePager.cs
@@ -1,9 +1,8 @@
-using Lucene.Net.Support;
+using J2N;
 using System;
 using System.Collections;
 using System.Collections.Generic;
 using System.IO;
-using System.Reflection;
 
 namespace Lucene.Net.Cli.SourceCode
 {
@@ -58,7 +57,7 @@ namespace Lucene.Net.Cli.SourceCode
         public ConsolePager(IEnumerable<string> files)
         {
             if (files == null)
-                throw new ArgumentNullException("files");
+                throw new ArgumentNullException(nameof(files));
             this.enumerator = new MultipleFileLineEnumerator(files);
         }
 
@@ -124,8 +123,6 @@ namespace Lucene.Net.Cli.SourceCode
         /// </summary>
         internal sealed class MultipleFileLineEnumerator : IEnumerator<string>
         {
-            private static Assembly thisAssembly = typeof(Program).GetTypeInfo().Assembly;
-
             private readonly IEnumerator<string> fileEnumerator;
             private TextReader currentFile;
             private string line = null;
@@ -133,7 +130,7 @@ namespace Lucene.Net.Cli.SourceCode
             public MultipleFileLineEnumerator(IEnumerable<string> files)
             {
                 if (files == null)
-                    throw new ArgumentNullException("files");
+                    throw new ArgumentNullException(nameof(files));
                 this.fileEnumerator = files.GetEnumerator();
                 NextFile();
             }
@@ -144,28 +141,16 @@ namespace Lucene.Net.Cli.SourceCode
                 if (this.fileEnumerator.MoveNext())
                 {
                     currentFile = new SourceCodeSectionReader(new StreamReader(
-                        thisAssembly.FindAndGetManifestResourceStream(typeof(Program), this.fileEnumerator.Current), 
+                        typeof(Program).FindAndGetManifestResourceStream(this.fileEnumerator.Current), 
                         SourceCodeSectionParser.ENCODING));
                     return true;
                 }
                 return false;
             }
 
-            public string Current
-            {
-                get
-                {
-                    return line;
-                }
-            }
+            public string Current => line;
 
-            object IEnumerator.Current
-            {
-                get
-                {
-                    return line;
-                }
-            }
+            object IEnumerator.Current => line;
 
             public void Dispose()
             {
@@ -188,7 +173,7 @@ namespace Lucene.Net.Cli.SourceCode
                 return line != null;
             }
 
-            public void Reset()
+            void IEnumerator.Reset()
             {
                 throw new NotSupportedException();
             }
diff --git a/src/dotnet/tools/lucene-cli/SourceCode/SourceCodeExporter.cs b/src/dotnet/tools/lucene-cli/SourceCode/SourceCodeExporter.cs
index 483e7d8..39352ba 100644
--- a/src/dotnet/tools/lucene-cli/SourceCode/SourceCodeExporter.cs
+++ b/src/dotnet/tools/lucene-cli/SourceCode/SourceCodeExporter.cs
@@ -1,4 +1,5 @@
-using Lucene.Net.Support;
+using J2N;
+using Lucene.Net.Support;
 using System.Collections.Generic;
 using System.IO;
 using System.Reflection;
@@ -44,11 +45,10 @@ namespace Lucene.Net.Cli.SourceCode
             {
                 Directory.CreateDirectory(outputPath);
             }
-            var thisAssembly = this.GetType().GetTypeInfo().Assembly;
 
             foreach (var file in files)
             {
-                using (var input = thisAssembly.FindAndGetManifestResourceStream(typeof(Program), file))
+                using (var input = typeof(Program).FindAndGetManifestResourceStream(file))
                 using (var output = new FileStream(Path.Combine(outputPath, file), FileMode.Create, FileAccess.Write))
                 {
                     sectionParser.ParseSourceCodeFiles(input, output);


[lucenenet] 04/35: BREAKING: Lucene.Net.Support.Threading: Deleted unused ThreadLock class

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit 933e3459425382c31edd968f785eae77d0e18e1d
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Thu Feb 6 20:18:10 2020 +0700

    BREAKING: Lucene.Net.Support.Threading: Deleted unused ThreadLock class
---
 src/Lucene.Net/Support/Threading/ThreadLock.cs | 83 --------------------------
 1 file changed, 83 deletions(-)

diff --git a/src/Lucene.Net/Support/Threading/ThreadLock.cs b/src/Lucene.Net/Support/Threading/ThreadLock.cs
deleted file mode 100644
index d3b725c..0000000
--- a/src/Lucene.Net/Support/Threading/ThreadLock.cs
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-using System.Threading;
-
-namespace Lucene.Net.Support.Threading
-{
-    /// <summary>
-    /// Abstract base class that provides a synchronization interface
-    /// for derived lock types
-    /// </summary>
-    public abstract class ThreadLock
-    {
-        public abstract void Enter(object obj);
-
-        public abstract void Exit(object obj);
-
-        private static readonly ThreadLock _nullLock = new NullThreadLock();
-        private static readonly ThreadLock _monitorLock = new MonitorThreadLock();
-
-        /// <summary>
-        /// A ThreadLock class that actually does no locking
-        /// Used in ParallelMultiSearcher/MultiSearcher
-        /// </summary>
-        public static ThreadLock NullLock
-        {
-            get { return _nullLock; }
-        }
-
-        /// <summary>
-        /// Wrapper class for the Monitor Enter/Exit methods
-        /// using the <see cref="ThreadLock"/> interface
-        /// </summary>
-        public static ThreadLock MonitorLock
-        {
-            get { return _monitorLock; }
-        }
-
-        private sealed class NullThreadLock : ThreadLock
-        {
-            public override void Enter(object obj)
-            {
-                // Do nothing
-            }
-
-            public override void Exit(object obj)
-            {
-                // Do nothing
-            }
-        }
-
-        private sealed class MonitorThreadLock : ThreadLock
-        {
-            public override void Enter(object obj)
-            {
-                Monitor.Enter(obj);
-            }
-
-            public override void Exit(object obj)
-            {
-                Monitor.Exit(obj);
-            }
-        }
-    }
-}
\ No newline at end of file


[lucenenet] 18/35: BREAKING: Lucene.Net.Support.IO: Marked BinaryReaderDataInput, BinaryReaderDataOutput and ByteArrayOutputStream internal

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit d8edac296b8cbebf8b7aebeff18ac4a6a86f263a
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Fri Feb 7 10:05:11 2020 +0700

    BREAKING: Lucene.Net.Support.IO: Marked BinaryReaderDataInput, BinaryReaderDataOutput and ByteArrayOutputStream internal
---
 .../Serialized/SerializedDVStrategy.cs             |  3 +-
 src/Lucene.Net/Properties/AssemblyInfo.cs          |  1 +
 src/Lucene.Net/Support/IO/BinaryReaderDataInput.cs | 32 +++++++++++-----------
 .../Support/IO/BinaryWriterDataOutput.cs           | 32 +++++++++++-----------
 src/Lucene.Net/Support/IO/ByteArrayOutputStream.cs | 32 +++++++++++-----------
 5 files changed, 50 insertions(+), 50 deletions(-)

diff --git a/src/Lucene.Net.Spatial/Serialized/SerializedDVStrategy.cs b/src/Lucene.Net.Spatial/Serialized/SerializedDVStrategy.cs
index e18669b..935b7e7 100644
--- a/src/Lucene.Net.Spatial/Serialized/SerializedDVStrategy.cs
+++ b/src/Lucene.Net.Spatial/Serialized/SerializedDVStrategy.cs
@@ -4,7 +4,6 @@ using Lucene.Net.Queries.Function;
 using Lucene.Net.Search;
 using Lucene.Net.Spatial.Queries;
 using Lucene.Net.Spatial.Util;
-using Lucene.Net.Support.IO;
 using Lucene.Net.Util;
 using Spatial4n.Core.Context;
 using Spatial4n.Core.IO;
@@ -61,7 +60,7 @@ namespace Lucene.Net.Spatial.Serialized
         public override Field[] CreateIndexableFields(IShape shape)
         {
             int bufSize = Math.Max(128, (int)(this.indexLastBufSize * 1.5));//50% headroom over last
-            ByteArrayOutputStream byteStream = new ByteArrayOutputStream(bufSize);
+            MemoryStream byteStream = new MemoryStream(bufSize);
             BytesRef bytesRef = new BytesRef();//receiver of byteStream's bytes
             try
             {
diff --git a/src/Lucene.Net/Properties/AssemblyInfo.cs b/src/Lucene.Net/Properties/AssemblyInfo.cs
index b3d4cca..82f12d2 100644
--- a/src/Lucene.Net/Properties/AssemblyInfo.cs
+++ b/src/Lucene.Net/Properties/AssemblyInfo.cs
@@ -70,6 +70,7 @@ using System.Runtime.CompilerServices;
 [assembly: InternalsVisibleTo("Lucene.Net.Tests.Analysis.Common, PublicKey=" + AssemblyKeys.PublicKey)]
 [assembly: InternalsVisibleTo("Lucene.Net.Tests.Analysis.Kuromoji, PublicKey=" + AssemblyKeys.PublicKey)]
 [assembly: InternalsVisibleTo("Lucene.Net.Tests.Analysis.Phonetic, PublicKey=" + AssemblyKeys.PublicKey)]
+[assembly: InternalsVisibleTo("Lucene.Net.Tests.Benchmark, PublicKey=" + AssemblyKeys.PublicKey)]
 [assembly: InternalsVisibleTo("Lucene.Net.Tests.Expressions, PublicKey=" + AssemblyKeys.PublicKey)]
 [assembly: InternalsVisibleTo("Lucene.Net.Tests.Facet, PublicKey=" + AssemblyKeys.PublicKey)]
 [assembly: InternalsVisibleTo("Lucene.Net.Tests.Grouping, PublicKey=" + AssemblyKeys.PublicKey)]
diff --git a/src/Lucene.Net/Support/IO/BinaryReaderDataInput.cs b/src/Lucene.Net/Support/IO/BinaryReaderDataInput.cs
index 0fff4d7..1109784 100644
--- a/src/Lucene.Net/Support/IO/BinaryReaderDataInput.cs
+++ b/src/Lucene.Net/Support/IO/BinaryReaderDataInput.cs
@@ -5,22 +5,22 @@ using System.IO;
 namespace Lucene.Net.Support.IO
 {
     /*
-	 * Licensed to the Apache Software Foundation (ASF) under one or more
-	 * contributor license agreements.  See the NOTICE file distributed with
-	 * this work for additional information regarding copyright ownership.
-	 * The ASF licenses this file to You under the Apache License, Version 2.0
-	 * (the "License"); you may not use this file except in compliance with
-	 * the License.  You may obtain a copy of the License at
-	 *
-	 *     http://www.apache.org/licenses/LICENSE-2.0
-	 *
-	 * Unless required by applicable law or agreed to in writing, software
-	 * distributed under the License is distributed on an "AS IS" BASIS,
-	 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-	 * See the License for the specific language governing permissions and
-	 * limitations under the License.
-	 */
-    public class BinaryReaderDataInput : DataInput, IDisposable
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+    internal sealed class BinaryReaderDataInput : DataInput, IDisposable
     {
         private readonly BinaryReader br;
         public BinaryReaderDataInput(BinaryReader br)
diff --git a/src/Lucene.Net/Support/IO/BinaryWriterDataOutput.cs b/src/Lucene.Net/Support/IO/BinaryWriterDataOutput.cs
index 98c5b7b..255788e 100644
--- a/src/Lucene.Net/Support/IO/BinaryWriterDataOutput.cs
+++ b/src/Lucene.Net/Support/IO/BinaryWriterDataOutput.cs
@@ -5,22 +5,22 @@ using Lucene.Net.Store;
 namespace Lucene.Net.Support.IO
 {
     /*
-	 * Licensed to the Apache Software Foundation (ASF) under one or more
-	 * contributor license agreements.  See the NOTICE file distributed with
-	 * this work for additional information regarding copyright ownership.
-	 * The ASF licenses this file to You under the Apache License, Version 2.0
-	 * (the "License"); you may not use this file except in compliance with
-	 * the License.  You may obtain a copy of the License at
-	 *
-	 *     http://www.apache.org/licenses/LICENSE-2.0
-	 *
-	 * Unless required by applicable law or agreed to in writing, software
-	 * distributed under the License is distributed on an "AS IS" BASIS,
-	 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-	 * See the License for the specific language governing permissions and
-	 * limitations under the License.
-	 */
-    public class BinaryWriterDataOutput : DataOutput, IDisposable
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+    internal sealed class BinaryWriterDataOutput : DataOutput, IDisposable
     {
         private readonly BinaryWriter bw;
 
diff --git a/src/Lucene.Net/Support/IO/ByteArrayOutputStream.cs b/src/Lucene.Net/Support/IO/ByteArrayOutputStream.cs
index 09122ed..1bdb4fc 100644
--- a/src/Lucene.Net/Support/IO/ByteArrayOutputStream.cs
+++ b/src/Lucene.Net/Support/IO/ByteArrayOutputStream.cs
@@ -4,24 +4,24 @@ using System.Text;
 namespace Lucene.Net.Support.IO
 {
     /*
-	 * Licensed to the Apache Software Foundation (ASF) under one or more
-	 * contributor license agreements.  See the NOTICE file distributed with
-	 * this work for additional information regarding copyright ownership.
-	 * The ASF licenses this file to You under the Apache License, Version 2.0
-	 * (the "License"); you may not use this file except in compliance with
-	 * the License.  You may obtain a copy of the License at
-	 *
-	 *     http://www.apache.org/licenses/LICENSE-2.0
-	 *
-	 * Unless required by applicable law or agreed to in writing, software
-	 * distributed under the License is distributed on an "AS IS" BASIS,
-	 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-	 * See the License for the specific language governing permissions and
-	 * limitations under the License.
-	 */
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
 
     // Used to wrap Java's ByteArrayOutputStream's ToString() method, as MemoryStream uses default impl
-    public class ByteArrayOutputStream : MemoryStream
+    internal class ByteArrayOutputStream : MemoryStream
     {
         public ByteArrayOutputStream()
         {


[lucenenet] 35/35: BUG: Lucene.Net.Search.BooleanClause::Equals(BooleanClause): Fixed potential null reference exception when Query is set to null

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit f9e8fc0c8f71448927f91b015d3582d7b6675fd1
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Sat Feb 8 19:42:53 2020 +0700

    BUG: Lucene.Net.Search.BooleanClause::Equals(BooleanClause): Fixed potential null reference exception when Query is set to null
---
 src/Lucene.Net/Search/BooleanClause.cs | 61 +++++++++++-----------------------
 1 file changed, 19 insertions(+), 42 deletions(-)

diff --git a/src/Lucene.Net/Search/BooleanClause.cs b/src/Lucene.Net/Search/BooleanClause.cs
index cd81e97..fff6043 100644
--- a/src/Lucene.Net/Search/BooleanClause.cs
+++ b/src/Lucene.Net/Search/BooleanClause.cs
@@ -65,50 +65,27 @@ namespace Lucene.Net.Search
 
         public virtual Occur Occur
         {
-            get
-            {
-                return occur;
-            }
-            set
-            {
-                occur = value;
-            }
+            get => occur;
+            set => occur = value;
         }
 
         public virtual Query Query
         {
-            get
-            {
-                return query;
-            }
-            set
-            {
-                query = value;
-            }
+            get => query;
+            set => query = value;
         }
 
-        public virtual bool IsProhibited
-        {
-            get
-            {
-                return Occur.MUST_NOT == occur;
-            }
-        }
+        public virtual bool IsProhibited => Occur.MUST_NOT == occur;
 
-        public virtual bool IsRequired
-        {
-            get
-            {
-                return Occur.MUST == occur;
-            }
-        }
+        public virtual bool IsRequired => Occur.MUST == occur;
 
         /// <summary>
         /// Returns <c>true</c> if <paramref name="o"/> is equal to this. </summary>
         public override bool Equals(object o)
         {
-            BooleanClause bc = o as BooleanClause;
-            return this.Equals(bc);
+            if (o is BooleanClause other)
+                return this.Equals(other);
+            return false;
         }
 
         /// <summary>
@@ -123,16 +100,16 @@ namespace Lucene.Net.Search
         // LUCENENET specific
         public bool Equals(BooleanClause other)
         {
-            bool success = true;
-            if (object.ReferenceEquals(null, other))
-            {
-                return object.ReferenceEquals(null, this); // LUCENENET TODO: This can never happen - revert to original code
-            }
-            if (query == null)
-            {
-                success &= other.Query == null;
-            }
-            return success && this.query.Equals(other.query) && this.occur == other.occur;
+            if (null == other)
+                return false;
+
+            bool success;
+            if (query is null)
+                success = other.Query is null;
+            else
+                success = query.Equals(other.query);
+
+            return success && this.occur == other.occur;
         }
 
         public override string ToString()


[lucenenet] 22/35: BREAKING: Moved Lucene.Net.Support.SystemConsole to Lucene.Net.Util namespace

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit 06a327ff64cfd6ac626b84b098d94b7ad1fcb55d
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Fri Feb 7 10:40:25 2020 +0700

    BREAKING: Moved Lucene.Net.Support.SystemConsole to Lucene.Net.Util namespace
---
 src/Lucene.Net.Analysis.Kuromoji/JapaneseTokenizer.cs               | 2 +-
 src/Lucene.Net.Analysis.Kuromoji/Tools/DictionaryBuilder.cs         | 2 +-
 .../Tools/TokenInfoDictionaryBuilder.cs                             | 2 +-
 src/Lucene.Net.Analysis.Stempel/Egothor.Stemmer/Compile.cs          | 2 +-
 src/Lucene.Net.Analysis.Stempel/Egothor.Stemmer/DiffIt.cs           | 2 +-
 src/Lucene.Net.Benchmark/ByTask/Benchmark.cs                        | 2 +-
 src/Lucene.Net.Benchmark/ByTask/Feeds/ContentItemsSource.cs         | 2 +-
 src/Lucene.Net.Benchmark/ByTask/Feeds/EnwikiQueryMaker.cs           | 2 +-
 src/Lucene.Net.Benchmark/ByTask/Feeds/FileBasedQueryMaker.cs        | 2 +-
 src/Lucene.Net.Benchmark/ByTask/Feeds/ReutersQueryMaker.cs          | 2 +-
 src/Lucene.Net.Benchmark/ByTask/Feeds/SpatialDocMaker.cs            | 2 +-
 src/Lucene.Net.Benchmark/ByTask/Feeds/TrecContentSource.cs          | 2 +-
 src/Lucene.Net.Benchmark/ByTask/PerfRunData.cs                      | 2 +-
 src/Lucene.Net.Benchmark/ByTask/Programmatic/Sample.cs              | 2 +-
 src/Lucene.Net.Benchmark/ByTask/Tasks/CloseReaderTask.cs            | 2 +-
 src/Lucene.Net.Benchmark/ByTask/Tasks/CloseTaxonomyReaderTask.cs    | 2 +-
 src/Lucene.Net.Benchmark/ByTask/Tasks/CreateIndexTask.cs            | 2 +-
 src/Lucene.Net.Benchmark/ByTask/Tasks/NearRealtimeReaderTask.cs     | 2 +-
 src/Lucene.Net.Benchmark/ByTask/Tasks/NewCollationAnalyzerTask.cs   | 2 +-
 src/Lucene.Net.Benchmark/ByTask/Tasks/NewLocaleTask.cs              | 2 +-
 src/Lucene.Net.Benchmark/ByTask/Tasks/PerfTask.cs                   | 2 +-
 src/Lucene.Net.Benchmark/ByTask/Tasks/PrintReaderTask.cs            | 2 +-
 src/Lucene.Net.Benchmark/ByTask/Tasks/ReadTask.cs                   | 2 +-
 src/Lucene.Net.Benchmark/ByTask/Tasks/RepAllTask.cs                 | 2 +-
 src/Lucene.Net.Benchmark/ByTask/Tasks/RepSelectByPrefTask.cs        | 2 +-
 src/Lucene.Net.Benchmark/ByTask/Tasks/RepSumByNameRoundTask.cs      | 2 +-
 src/Lucene.Net.Benchmark/ByTask/Tasks/RepSumByNameTask.cs           | 2 +-
 src/Lucene.Net.Benchmark/ByTask/Tasks/RepSumByPrefRoundTask.cs      | 2 +-
 src/Lucene.Net.Benchmark/ByTask/Tasks/RepSumByPrefTask.cs           | 2 +-
 src/Lucene.Net.Benchmark/ByTask/Utils/Config.cs                     | 2 +-
 src/Lucene.Net.Benchmark/Quality/Trec/QueryDriver.cs                | 2 +-
 src/Lucene.Net.Benchmark/Quality/Utils/QualityQueriesFinder.cs      | 2 +-
 src/Lucene.Net.Benchmark/Utils/ExtractReuters.cs                    | 2 +-
 src/Lucene.Net.Benchmark/Utils/ExtractWikipedia.cs                  | 2 +-
 src/Lucene.Net.Misc/Index/CompoundFileExtractor.cs                  | 2 +-
 src/Lucene.Net.Misc/Index/IndexSplitter.cs                          | 2 +-
 src/Lucene.Net.Misc/Index/MultiPassIndexSplitter.cs                 | 2 +-
 src/Lucene.Net.Misc/Misc/GetTermInfo.cs                             | 2 +-
 src/Lucene.Net.Misc/Misc/HighFreqTerms.cs                           | 2 +-
 src/Lucene.Net.Misc/Misc/IndexMergeTool.cs                          | 2 +-
 src/Lucene.Net.QueryParser/Classic/FastCharStream.cs                | 2 +-
 .../Flexible/Standard/Parser/StandardSyntaxParserTokenManager.cs    | 2 +-
 src/Lucene.Net.QueryParser/Surround/Parser/FastCharStream.cs        | 2 +-
 src/Lucene.Net.TestFramework/Analysis/BaseTokenStreamTestCase.cs    | 5 ++---
 src/Lucene.Net.TestFramework/Analysis/LookaheadTokenFilter.cs       | 2 +-
 src/Lucene.Net.TestFramework/Analysis/MockAnalyzer.cs               | 2 +-
 src/Lucene.Net.TestFramework/Analysis/MockGraphTokenFilter.cs       | 2 +-
 .../Analysis/MockRandomLookaheadTokenFilter.cs                      | 2 +-
 src/Lucene.Net.TestFramework/Analysis/TokenStreamToDot.cs           | 2 +-
 .../Codecs/Lucene3x/PreFlexRWPostingsFormat.cs                      | 2 +-
 .../Codecs/MockRandom/MockRandomPostingsFormat.cs                   | 2 +-
 src/Lucene.Net.TestFramework/Index/BasePostingsFormatTestCase.cs    | 2 +-
 .../Index/BaseStoredFieldsFormatTestCase.cs                         | 2 +-
 src/Lucene.Net.TestFramework/Index/RandomCodec.cs                   | 2 +-
 src/Lucene.Net.TestFramework/Index/RandomIndexWriter.cs             | 2 +-
 .../Index/ThreadedIndexingAndSearchingTestCase.cs                   | 2 +-
 src/Lucene.Net.TestFramework/Search/ShardSearchingTestBase.cs       | 2 +-
 src/Lucene.Net.TestFramework/Store/MockDirectoryWrapper.cs          | 2 +-
 src/Lucene.Net.TestFramework/Store/MockIndexOutputWrapper.cs        | 2 +-
 src/Lucene.Net.TestFramework/Support/ApiScanTestBase.cs             | 2 +-
 .../Support/JavaCompatibility/SystemTypesHelpers.cs                 | 2 +-
 src/Lucene.Net.TestFramework/Util/Fst/FSTTester.cs                  | 2 +-
 src/Lucene.Net.TestFramework/Util/LineFileDocs.cs                   | 2 +-
 src/Lucene.Net.TestFramework/Util/LuceneTestCase.cs                 | 2 +-
 src/Lucene.Net.TestFramework/Util/RunListenerPrintReproduceInfo.cs  | 2 +-
 src/Lucene.Net.TestFramework/Util/TestRuleAssertionsRequired.cs     | 2 +-
 .../Util/TestRuleSetupAndRestoreClassEnv.cs                         | 2 +-
 src/Lucene.Net.TestFramework/Util/TestUtil.cs                       | 2 +-
 .../Analysis/CharFilters/TestMappingCharFilter.cs                   | 2 +-
 .../Analysis/Core/TestBugInSomething.cs                             | 2 +-
 .../Analysis/Core/TestRandomChains.cs                               | 5 +++--
 .../Analysis/Core/TestStopFilter.cs                                 | 2 +-
 .../Analysis/Core/TestTypeTokenFilter.cs                            | 2 +-
 .../Analysis/Hunspell/TestAllDictionaries.cs                        | 2 +-
 .../Analysis/Hunspell/TestAllDictionaries2.cs                       | 2 +-
 .../Analysis/Pattern/TestPatternReplaceCharFilter.cs                | 2 +-
 .../Analysis/Sinks/TestTeeSinkTokenFilter.cs                        | 2 +-
 .../Analysis/Snowball/TestSnowballVocab.cs                          | 2 +-
 .../Analysis/Synonym/TestSynonymMapFilter.cs                        | 2 +-
 .../Analysis/Util/TestRollingCharBuffer.cs                          | 2 +-
 .../Analysis/Icu/Segmentation/TestICUTokenizer.cs                   | 1 +
 .../Dict/TestTokenInfoDictionary.cs                                 | 2 +-
 src/Lucene.Net.Tests.Analysis.Kuromoji/TestJapaneseTokenizer.cs     | 2 +-
 src/Lucene.Net.Tests.Analysis.Kuromoji/TestSearchMode.cs            | 2 +-
 .../Language/Bm/CacheSubSequencePerformanceTest.cs                  | 2 +-
 .../Language/Bm/PhoneticEnginePerformanceTest.cs                    | 2 +-
 src/Lucene.Net.Tests.Benchmark/BenchmarkTestCase.cs                 | 2 +-
 src/Lucene.Net.Tests.Benchmark/ByTask/Tasks/CreateIndexTaskTest.cs  | 2 +-
 src/Lucene.Net.Tests.Facet/FacetTestCase.cs                         | 2 +-
 src/Lucene.Net.Tests.Facet/Range/TestRangeFacetCounts.cs            | 2 +-
 .../SortedSet/TestSortedSetDocValuesFacets.cs                       | 2 +-
 .../Taxonomy/Directory/TestConcurrentFacetedIndexing.cs             | 2 +-
 .../Taxonomy/Directory/TestDirectoryTaxonomyWriter.cs               | 3 +--
 src/Lucene.Net.Tests.Facet/Taxonomy/TestSearcherTaxonomyManager.cs  | 2 +-
 src/Lucene.Net.Tests.Facet/Taxonomy/TestTaxonomyFacetCounts.cs      | 2 +-
 .../Taxonomy/TestTaxonomyFacetSumValueSource.cs                     | 2 +-
 .../Taxonomy/WriterCache/TestCompactLabelToOrdinal.cs               | 2 +-
 src/Lucene.Net.Tests.Facet/TestDrillSideways.cs                     | 2 +-
 src/Lucene.Net.Tests.Grouping/AllGroupHeadsCollectorTest.cs         | 2 +-
 src/Lucene.Net.Tests.Grouping/AllGroupsCollectorTest.cs             | 2 +-
 src/Lucene.Net.Tests.Grouping/DistinctValuesCollectorTest.cs        | 2 +-
 src/Lucene.Net.Tests.Grouping/GroupFacetCollectorTest.cs            | 2 +-
 src/Lucene.Net.Tests.Grouping/TestGrouping.cs                       | 2 +-
 .../Highlight/Custom/HighlightCustomQueryTest.cs                    | 2 +-
 src/Lucene.Net.Tests.Highlighter/Highlight/HighlighterTest.cs       | 2 +-
 .../VectorHighlight/SimpleFragListBuilderTest.cs                    | 2 +-
 src/Lucene.Net.Tests.Join/TestBlockJoin.cs                          | 2 +-
 src/Lucene.Net.Tests.Join/TestJoinUtil.cs                           | 2 +-
 src/Lucene.Net.Tests.Memory/Index/Memory/MemoryIndexTest.cs         | 2 +-
 src/Lucene.Net.Tests.Misc/Document/TestLazyDocument.cs              | 2 +-
 src/Lucene.Net.Tests.Misc/Index/Sorter/IndexSortingTest.cs          | 2 +-
 src/Lucene.Net.Tests.Misc/Index/Sorter/SorterTestBase.cs            | 2 +-
 src/Lucene.Net.Tests.Misc/Index/Sorter/SortingAtomicReaderTest.cs   | 2 +-
 src/Lucene.Net.Tests.Misc/Util/Fst/TestFSTsMisc.cs                  | 2 +-
 src/Lucene.Net.Tests.Queries/Function/FunctionTestSetup.cs          | 2 +-
 .../Flexible/Spans/TestSpanQueryParserSimpleSample.cs               | 2 +-
 .../Flexible/Standard/TestNumericQueryParser.cs                     | 2 +-
 src/Lucene.Net.Tests.QueryParser/Flexible/Standard/TestQPHelper.cs  | 2 +-
 src/Lucene.Net.Tests.QueryParser/Surround/Query/BooleanQueryTst.cs  | 2 +-
 .../Surround/Query/ExceptionQueryTst.cs                             | 2 +-
 src/Lucene.Net.Tests.QueryParser/Util/QueryParserTestBase.cs        | 2 +-
 src/Lucene.Net.Tests.QueryParser/Xml/TestParser.cs                  | 2 +-
 .../IndexAndTaxonomyReplicationClientTest.cs                        | 2 +-
 src/Lucene.Net.Tests.Replicator/IndexReplicationClientTest.cs       | 2 +-
 src/Lucene.Net.Tests.Sandbox/Queries/TestSlowFuzzyQuery2.cs         | 2 +-
 src/Lucene.Net.Tests.Spatial/Prefix/NtsPolygonTest.cs               | 2 +-
 .../Prefix/SpatialOpRecursivePrefixTreeTest.cs                      | 2 +-
 src/Lucene.Net.Tests.Spatial/Prefix/Tree/SpatialPrefixTreeTest.cs   | 2 +-
 .../Suggest/Analyzing/AnalyzingInfixSuggesterTest.cs                | 2 +-
 .../Suggest/Analyzing/AnalyzingSuggesterTest.cs                     | 6 +++---
 .../Suggest/Analyzing/BlendedInfixSuggesterTest.cs                  | 2 +-
 .../Suggest/Analyzing/FuzzySuggesterTest.cs                         | 2 +-
 .../Suggest/Analyzing/TestFreeTextSuggester.cs                      | 2 +-
 src/Lucene.Net.Tests.Suggest/Suggest/Fst/FSTCompletionTest.cs       | 2 +-
 src/Lucene.Net.Tests.Suggest/Suggest/Fst/LargeInputFST.cs           | 2 +-
 src/Lucene.Net.Tests.Suggest/Suggest/LookupBenchmarkTest.cs         | 2 +-
 src/Lucene.Net.Tests/Analysis/TestGraphTokenizers.cs                | 2 +-
 src/Lucene.Net.Tests/Codecs/Lucene3x/TestSurrogates.cs              | 2 +-
 src/Lucene.Net.Tests/Codecs/PerField/TestPerFieldPostingsFormat2.cs | 2 +-
 src/Lucene.Net.Tests/Index/Test2BBinaryDocValues.cs                 | 2 +-
 src/Lucene.Net.Tests/Index/Test2BNumericDocValues.cs                | 2 +-
 src/Lucene.Net.Tests/Index/Test2BPositions.cs                       | 2 +-
 src/Lucene.Net.Tests/Index/Test2BPostings.cs                        | 2 +-
 src/Lucene.Net.Tests/Index/Test2BSortedDocValues.cs                 | 2 +-
 src/Lucene.Net.Tests/Index/Test2BTerms.cs                           | 2 +-
 src/Lucene.Net.Tests/Index/Test4GBStoredFields.cs                   | 2 +-
 src/Lucene.Net.Tests/Index/TestAddIndexes.cs                        | 2 +-
 src/Lucene.Net.Tests/Index/TestAtomicUpdate.cs                      | 2 +-
 src/Lucene.Net.Tests/Index/TestBackwardsCompatibility.cs            | 2 +-
 src/Lucene.Net.Tests/Index/TestBackwardsCompatibility3x.cs          | 2 +-
 src/Lucene.Net.Tests/Index/TestBagOfPositions.cs                    | 2 +-
 src/Lucene.Net.Tests/Index/TestBagOfPostings.cs                     | 2 +-
 src/Lucene.Net.Tests/Index/TestBinaryDocValuesUpdates.cs            | 2 +-
 src/Lucene.Net.Tests/Index/TestByteSlices.cs                        | 2 +-
 src/Lucene.Net.Tests/Index/TestCheckIndex.cs                        | 2 +-
 src/Lucene.Net.Tests/Index/TestCodecs.cs                            | 2 +-
 src/Lucene.Net.Tests/Index/TestConcurrentMergeScheduler.cs          | 2 +-
 src/Lucene.Net.Tests/Index/TestCrash.cs                             | 2 +-
 src/Lucene.Net.Tests/Index/TestCrashCausesCorruptIndex.cs           | 2 +-
 src/Lucene.Net.Tests/Index/TestDeletionPolicy.cs                    | 2 +-
 src/Lucene.Net.Tests/Index/TestDirectoryReader.cs                   | 2 +-
 src/Lucene.Net.Tests/Index/TestDirectoryReaderReopen.cs             | 2 +-
 src/Lucene.Net.Tests/Index/TestDoc.cs                               | 2 +-
 src/Lucene.Net.Tests/Index/TestDocTermOrds.cs                       | 2 +-
 src/Lucene.Net.Tests/Index/TestDocValuesWithThreads.cs              | 2 +-
 src/Lucene.Net.Tests/Index/TestDocumentsWriterStallControl.cs       | 2 +-
 src/Lucene.Net.Tests/Index/TestFlushByRamOrCountsPolicy.cs          | 2 +-
 src/Lucene.Net.Tests/Index/TestForceMergeForever.cs                 | 2 +-
 src/Lucene.Net.Tests/Index/TestIndexWriter.cs                       | 2 +-
 src/Lucene.Net.Tests/Index/TestIndexWriterCommit.cs                 | 2 +-
 src/Lucene.Net.Tests/Index/TestIndexWriterDelete.cs                 | 2 +-
 src/Lucene.Net.Tests/Index/TestIndexWriterExceptions.cs             | 2 +-
 src/Lucene.Net.Tests/Index/TestIndexWriterForceMerge.cs             | 2 +-
 src/Lucene.Net.Tests/Index/TestIndexWriterMerging.cs                | 2 +-
 src/Lucene.Net.Tests/Index/TestIndexWriterNRTIsCurrent.cs           | 2 +-
 src/Lucene.Net.Tests/Index/TestIndexWriterOnDiskFull.cs             | 2 +-
 src/Lucene.Net.Tests/Index/TestIndexWriterOnJRECrash.cs             | 2 +-
 src/Lucene.Net.Tests/Index/TestIndexWriterOutOfFileDescriptors.cs   | 2 +-
 src/Lucene.Net.Tests/Index/TestIndexWriterReader.cs                 | 2 +-
 src/Lucene.Net.Tests/Index/TestIndexWriterWithThreads.cs            | 2 +-
 src/Lucene.Net.Tests/Index/TestIndexableField.cs                    | 2 +-
 src/Lucene.Net.Tests/Index/TestLongPostings.cs                      | 2 +-
 src/Lucene.Net.Tests/Index/TestMixedCodecs.cs                       | 2 +-
 src/Lucene.Net.Tests/Index/TestMultiFields.cs                       | 2 +-
 src/Lucene.Net.Tests/Index/TestNRTReaderWithThreads.cs              | 2 +-
 src/Lucene.Net.Tests/Index/TestNRTThreads.cs                        | 2 +-
 src/Lucene.Net.Tests/Index/TestNeverDelete.cs                       | 2 +-
 src/Lucene.Net.Tests/Index/TestParallelReaderEmptyIndex.cs          | 2 +-
 src/Lucene.Net.Tests/Index/TestPayloads.cs                          | 2 +-
 src/Lucene.Net.Tests/Index/TestPerSegmentDeletes.cs                 | 2 +-
 src/Lucene.Net.Tests/Index/TestRollingUpdates.cs                    | 2 +-
 src/Lucene.Net.Tests/Index/TestSnapshotDeletionPolicy.cs            | 2 +-
 src/Lucene.Net.Tests/Index/TestStressAdvance.cs                     | 2 +-
 src/Lucene.Net.Tests/Index/TestStressIndexing.cs                    | 2 +-
 src/Lucene.Net.Tests/Index/TestStressIndexing2.cs                   | 2 +-
 src/Lucene.Net.Tests/Index/TestStressNRT.cs                         | 2 +-
 src/Lucene.Net.Tests/Index/TestSumDocFreq.cs                        | 2 +-
 src/Lucene.Net.Tests/Index/TestTermdocPerf.cs                       | 2 +-
 src/Lucene.Net.Tests/Index/TestTermsEnum.cs                         | 2 +-
 src/Lucene.Net.Tests/Index/TestThreadedForceMerge.cs                | 2 +-
 src/Lucene.Net.Tests/Index/TestTieredMergePolicy.cs                 | 2 +-
 src/Lucene.Net.Tests/Index/TestTransactions.cs                      | 2 +-
 src/Lucene.Net.Tests/Search/Payloads/TestPayloadNearQuery.cs        | 2 +-
 src/Lucene.Net.Tests/Search/Spans/TestPayloadSpans.cs               | 2 +-
 src/Lucene.Net.Tests/Search/Spans/TestSpansAdvanced.cs              | 2 +-
 src/Lucene.Net.Tests/Search/TestAutomatonQuery.cs                   | 2 +-
 src/Lucene.Net.Tests/Search/TestBoolean2.cs                         | 2 +-
 src/Lucene.Net.Tests/Search/TestBooleanMinShouldMatch.cs            | 2 +-
 src/Lucene.Net.Tests/Search/TestBooleanQuery.cs                     | 2 +-
 src/Lucene.Net.Tests/Search/TestControlledRealTimeReopenThread.cs   | 2 +-
 src/Lucene.Net.Tests/Search/TestCustomSearcherSort.cs               | 2 +-
 src/Lucene.Net.Tests/Search/TestDisjunctionMaxQuery.cs              | 2 +-
 src/Lucene.Net.Tests/Search/TestDocBoost.cs                         | 2 +-
 src/Lucene.Net.Tests/Search/TestDocIdSet.cs                         | 2 +-
 src/Lucene.Net.Tests/Search/TestDocTermOrdsRangeFilter.cs           | 2 +-
 src/Lucene.Net.Tests/Search/TestDocTermOrdsRewriteMethod.cs         | 2 +-
 src/Lucene.Net.Tests/Search/TestFieldCache.cs                       | 2 +-
 src/Lucene.Net.Tests/Search/TestLiveFieldValues.cs                  | 2 +-
 src/Lucene.Net.Tests/Search/TestMultiPhraseQuery.cs                 | 2 +-
 src/Lucene.Net.Tests/Search/TestMultiTermConstantScore.cs           | 2 +-
 src/Lucene.Net.Tests/Search/TestMultiTermQueryRewrites.cs           | 2 +-
 src/Lucene.Net.Tests/Search/TestMultiThreadTermVectors.cs           | 2 +-
 src/Lucene.Net.Tests/Search/TestNumericRangeQuery32.cs              | 2 +-
 src/Lucene.Net.Tests/Search/TestNumericRangeQuery64.cs              | 2 +-
 src/Lucene.Net.Tests/Search/TestPositionIncrement.cs                | 2 +-
 src/Lucene.Net.Tests/Search/TestRegexpRandom2.cs                    | 2 +-
 src/Lucene.Net.Tests/Search/TestScorerPerf.cs                       | 2 +-
 src/Lucene.Net.Tests/Search/TestSearchAfter.cs                      | 2 +-
 src/Lucene.Net.Tests/Search/TestSearchWithThreads.cs                | 2 +-
 src/Lucene.Net.Tests/Search/TestSearcherManager.cs                  | 2 +-
 src/Lucene.Net.Tests/Search/TestShardSearching.cs                   | 2 +-
 src/Lucene.Net.Tests/Search/TestSortRandom.cs                       | 2 +-
 src/Lucene.Net.Tests/Search/TestTimeLimitingCollector.cs            | 2 +-
 src/Lucene.Net.Tests/Search/TestTopDocsMerge.cs                     | 2 +-
 src/Lucene.Net.Tests/Search/TestWildcard.cs                         | 2 +-
 src/Lucene.Net.Tests/Search/TestWildcardRandom.cs                   | 2 +-
 src/Lucene.Net.Tests/Store/TestCopyBytes.cs                         | 2 +-
 src/Lucene.Net.Tests/Store/TestDirectory.cs                         | 2 +-
 src/Lucene.Net.Tests/Store/TestLockFactory.cs                       | 2 +-
 src/Lucene.Net.Tests/Store/TestNRTCachingDirectory.cs               | 2 +-
 src/Lucene.Net.Tests/Support/Index/TestTaskMergeScheduler.cs        | 2 +-
 src/Lucene.Net.Tests/TestExternalCodecs.cs                          | 2 +-
 src/Lucene.Net.Tests/TestMergeSchedulerExternal.cs                  | 2 +-
 src/Lucene.Net.Tests/TestSearch.cs                                  | 2 +-
 src/Lucene.Net.Tests/TestSearchForDuplicates.cs                     | 2 +-
 src/Lucene.Net.Tests/TestWorstCaseTestBehavior.cs                   | 2 +-
 src/Lucene.Net.Tests/Util/Automaton/TestBasicOperations.cs          | 2 +-
 src/Lucene.Net.Tests/Util/Automaton/TestCompiledAutomaton.cs        | 2 +-
 src/Lucene.Net.Tests/Util/Automaton/TestMinimize.cs                 | 2 +-
 src/Lucene.Net.Tests/Util/Automaton/TestUTF32ToUTF8.cs              | 2 +-
 src/Lucene.Net.Tests/Util/Fst/Test2BFST.cs                          | 2 +-
 src/Lucene.Net.Tests/Util/Fst/TestBytesStore.cs                     | 2 +-
 src/Lucene.Net.Tests/Util/Fst/TestFSTs.cs                           | 2 +-
 src/Lucene.Net.Tests/Util/Packed/TestPackedInts.cs                  | 2 +-
 src/Lucene.Net.Tests/Util/StressRamUsageEstimator.cs                | 2 +-
 src/Lucene.Net.Tests/Util/TestArrayUtil.cs                          | 2 +-
 src/Lucene.Net.Tests/Util/TestConstants.cs                          | 2 +-
 src/Lucene.Net.Tests/Util/TestFieldCacheSanityChecker.cs            | 2 +-
 src/Lucene.Net.Tests/Util/TestPriorityQueue.cs                      | 2 +-
 src/Lucene.Net.Tests/Util/TestRollingBuffer.cs                      | 2 +-
 src/Lucene.Net.Tests/Util/TestUnicodeUtil.cs                        | 2 +-
 src/Lucene.Net/Codecs/Lucene3x/Lucene3xFields.cs                    | 2 +-
 src/Lucene.Net/Index/CheckIndex.cs                                  | 2 +-
 src/Lucene.Net/Index/IndexUpgrader.cs                               | 2 +-
 src/Lucene.Net/Store/LockStressTest.cs                              | 2 +-
 src/Lucene.Net/Store/LockVerifyServer.cs                            | 2 +-
 src/Lucene.Net/Store/NRTCachingDirectory.cs                         | 2 +-
 src/Lucene.Net/Support/{ => Util}/SystemConsole.cs                  | 2 +-
 src/Lucene.Net/Util/PrintStreamInfoStream.cs                        | 2 +-
 src/dotnet/tools/lucene-cli/CommandLine/CommandLineApplication.cs   | 2 +-
 270 files changed, 275 insertions(+), 275 deletions(-)

diff --git a/src/Lucene.Net.Analysis.Kuromoji/JapaneseTokenizer.cs b/src/Lucene.Net.Analysis.Kuromoji/JapaneseTokenizer.cs
index b035a3f..94ac0f0 100644
--- a/src/Lucene.Net.Analysis.Kuromoji/JapaneseTokenizer.cs
+++ b/src/Lucene.Net.Analysis.Kuromoji/JapaneseTokenizer.cs
@@ -13,7 +13,7 @@ using System.Globalization;
 using System.IO;
 using System.Linq;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Analysis.Ja
 {
diff --git a/src/Lucene.Net.Analysis.Kuromoji/Tools/DictionaryBuilder.cs b/src/Lucene.Net.Analysis.Kuromoji/Tools/DictionaryBuilder.cs
index 09fdc43..12f848e 100644
--- a/src/Lucene.Net.Analysis.Kuromoji/Tools/DictionaryBuilder.cs
+++ b/src/Lucene.Net.Analysis.Kuromoji/Tools/DictionaryBuilder.cs
@@ -1,5 +1,5 @@
 using System;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Analysis.Ja.Util
 {
diff --git a/src/Lucene.Net.Analysis.Kuromoji/Tools/TokenInfoDictionaryBuilder.cs b/src/Lucene.Net.Analysis.Kuromoji/Tools/TokenInfoDictionaryBuilder.cs
index 6127ca0..5c5e62e 100644
--- a/src/Lucene.Net.Analysis.Kuromoji/Tools/TokenInfoDictionaryBuilder.cs
+++ b/src/Lucene.Net.Analysis.Kuromoji/Tools/TokenInfoDictionaryBuilder.cs
@@ -7,7 +7,7 @@ using System;
 using System.Collections.Generic;
 using System.IO;
 using System.Text;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Analysis.Ja.Util
 {
diff --git a/src/Lucene.Net.Analysis.Stempel/Egothor.Stemmer/Compile.cs b/src/Lucene.Net.Analysis.Stempel/Egothor.Stemmer/Compile.cs
index 413279b..08d88fb 100644
--- a/src/Lucene.Net.Analysis.Stempel/Egothor.Stemmer/Compile.cs
+++ b/src/Lucene.Net.Analysis.Stempel/Egothor.Stemmer/Compile.cs
@@ -5,7 +5,7 @@ using System;
 using System.Collections.Generic;
 using System.IO;
 using System.Text;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 /*
                     Egothor Software License version 1.00
diff --git a/src/Lucene.Net.Analysis.Stempel/Egothor.Stemmer/DiffIt.cs b/src/Lucene.Net.Analysis.Stempel/Egothor.Stemmer/DiffIt.cs
index 3ddc015..97bbe40 100644
--- a/src/Lucene.Net.Analysis.Stempel/Egothor.Stemmer/DiffIt.cs
+++ b/src/Lucene.Net.Analysis.Stempel/Egothor.Stemmer/DiffIt.cs
@@ -5,7 +5,7 @@ using System.Collections.Generic;
 using System.Globalization;
 using System.IO;
 using System.Text;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 /*
                     Egothor Software License version 1.00
diff --git a/src/Lucene.Net.Benchmark/ByTask/Benchmark.cs b/src/Lucene.Net.Benchmark/ByTask/Benchmark.cs
index 151b9c9..6199bd5 100644
--- a/src/Lucene.Net.Benchmark/ByTask/Benchmark.cs
+++ b/src/Lucene.Net.Benchmark/ByTask/Benchmark.cs
@@ -3,7 +3,7 @@ using Lucene.Net.Util;
 using System;
 using System.IO;
 using System.Text;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Benchmarks.ByTask
 {
diff --git a/src/Lucene.Net.Benchmark/ByTask/Feeds/ContentItemsSource.cs b/src/Lucene.Net.Benchmark/ByTask/Feeds/ContentItemsSource.cs
index f6e7de5..77550e2 100644
--- a/src/Lucene.Net.Benchmark/ByTask/Feeds/ContentItemsSource.cs
+++ b/src/Lucene.Net.Benchmark/ByTask/Feeds/ContentItemsSource.cs
@@ -6,7 +6,7 @@ using System.Collections.Generic;
 using System.IO;
 using System.Reflection;
 using System.Text;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Benchmarks.ByTask.Feeds
 {
diff --git a/src/Lucene.Net.Benchmark/ByTask/Feeds/EnwikiQueryMaker.cs b/src/Lucene.Net.Benchmark/ByTask/Feeds/EnwikiQueryMaker.cs
index da37e5a..1527ce7 100644
--- a/src/Lucene.Net.Benchmark/ByTask/Feeds/EnwikiQueryMaker.cs
+++ b/src/Lucene.Net.Benchmark/ByTask/Feeds/EnwikiQueryMaker.cs
@@ -9,7 +9,7 @@ using Lucene.Net.Util;
 using System;
 using System.Collections.Generic;
 using System.Linq;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Benchmarks.ByTask.Feeds
 {
diff --git a/src/Lucene.Net.Benchmark/ByTask/Feeds/FileBasedQueryMaker.cs b/src/Lucene.Net.Benchmark/ByTask/Feeds/FileBasedQueryMaker.cs
index 206fff9..a97ebf6 100644
--- a/src/Lucene.Net.Benchmark/ByTask/Feeds/FileBasedQueryMaker.cs
+++ b/src/Lucene.Net.Benchmark/ByTask/Feeds/FileBasedQueryMaker.cs
@@ -8,7 +8,7 @@ using System;
 using System.Collections.Generic;
 using System.IO;
 using System.Text;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Benchmarks.ByTask.Feeds
 {
diff --git a/src/Lucene.Net.Benchmark/ByTask/Feeds/ReutersQueryMaker.cs b/src/Lucene.Net.Benchmark/ByTask/Feeds/ReutersQueryMaker.cs
index c833b88..63ba165 100644
--- a/src/Lucene.Net.Benchmark/ByTask/Feeds/ReutersQueryMaker.cs
+++ b/src/Lucene.Net.Benchmark/ByTask/Feeds/ReutersQueryMaker.cs
@@ -8,7 +8,7 @@ using Lucene.Net.Support;
 using Lucene.Net.Util;
 using System;
 using System.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Benchmarks.ByTask.Feeds
 {
diff --git a/src/Lucene.Net.Benchmark/ByTask/Feeds/SpatialDocMaker.cs b/src/Lucene.Net.Benchmark/ByTask/Feeds/SpatialDocMaker.cs
index f829ef1..a6a0c48 100644
--- a/src/Lucene.Net.Benchmark/ByTask/Feeds/SpatialDocMaker.cs
+++ b/src/Lucene.Net.Benchmark/ByTask/Feeds/SpatialDocMaker.cs
@@ -7,7 +7,7 @@ using Spatial4n.Core.Context;
 using Spatial4n.Core.Shapes;
 using System;
 using System.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Benchmarks.ByTask.Feeds
 {
diff --git a/src/Lucene.Net.Benchmark/ByTask/Feeds/TrecContentSource.cs b/src/Lucene.Net.Benchmark/ByTask/Feeds/TrecContentSource.cs
index 324cf48..29da476 100644
--- a/src/Lucene.Net.Benchmark/ByTask/Feeds/TrecContentSource.cs
+++ b/src/Lucene.Net.Benchmark/ByTask/Feeds/TrecContentSource.cs
@@ -6,7 +6,7 @@ using System.Globalization;
 using System.IO;
 using System.Text;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Benchmarks.ByTask.Feeds
 {
diff --git a/src/Lucene.Net.Benchmark/ByTask/PerfRunData.cs b/src/Lucene.Net.Benchmark/ByTask/PerfRunData.cs
index a0c5bc4..583c459 100644
--- a/src/Lucene.Net.Benchmark/ByTask/PerfRunData.cs
+++ b/src/Lucene.Net.Benchmark/ByTask/PerfRunData.cs
@@ -12,7 +12,7 @@ using System;
 using System.Collections.Generic;
 using System.Globalization;
 using System.IO;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Benchmarks.ByTask
 {
diff --git a/src/Lucene.Net.Benchmark/ByTask/Programmatic/Sample.cs b/src/Lucene.Net.Benchmark/ByTask/Programmatic/Sample.cs
index 116de87..11f2a30 100644
--- a/src/Lucene.Net.Benchmark/ByTask/Programmatic/Sample.cs
+++ b/src/Lucene.Net.Benchmark/ByTask/Programmatic/Sample.cs
@@ -1,7 +1,7 @@
 using Lucene.Net.Benchmarks.ByTask.Tasks;
 using Lucene.Net.Benchmarks.ByTask.Utils;
 using System.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Benchmarks.ByTask.Programmatic
 {
diff --git a/src/Lucene.Net.Benchmark/ByTask/Tasks/CloseReaderTask.cs b/src/Lucene.Net.Benchmark/ByTask/Tasks/CloseReaderTask.cs
index f2d0b4d..3d7e104 100644
--- a/src/Lucene.Net.Benchmark/ByTask/Tasks/CloseReaderTask.cs
+++ b/src/Lucene.Net.Benchmark/ByTask/Tasks/CloseReaderTask.cs
@@ -1,5 +1,5 @@
 using Lucene.Net.Index;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Benchmarks.ByTask.Tasks
 {
diff --git a/src/Lucene.Net.Benchmark/ByTask/Tasks/CloseTaxonomyReaderTask.cs b/src/Lucene.Net.Benchmark/ByTask/Tasks/CloseTaxonomyReaderTask.cs
index b5e714a..7e8c98f 100644
--- a/src/Lucene.Net.Benchmark/ByTask/Tasks/CloseTaxonomyReaderTask.cs
+++ b/src/Lucene.Net.Benchmark/ByTask/Tasks/CloseTaxonomyReaderTask.cs
@@ -1,5 +1,5 @@
 using Lucene.Net.Facet.Taxonomy;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Benchmarks.ByTask.Tasks
 {
diff --git a/src/Lucene.Net.Benchmark/ByTask/Tasks/CreateIndexTask.cs b/src/Lucene.Net.Benchmark/ByTask/Tasks/CreateIndexTask.cs
index 9d62e47..470fbb3 100644
--- a/src/Lucene.Net.Benchmark/ByTask/Tasks/CreateIndexTask.cs
+++ b/src/Lucene.Net.Benchmark/ByTask/Tasks/CreateIndexTask.cs
@@ -6,7 +6,7 @@ using Lucene.Net.Util;
 using System;
 using System.IO;
 using System.Text;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Benchmarks.ByTask.Tasks
 {
diff --git a/src/Lucene.Net.Benchmark/ByTask/Tasks/NearRealtimeReaderTask.cs b/src/Lucene.Net.Benchmark/ByTask/Tasks/NearRealtimeReaderTask.cs
index 1e3dd08..d91a898 100644
--- a/src/Lucene.Net.Benchmark/ByTask/Tasks/NearRealtimeReaderTask.cs
+++ b/src/Lucene.Net.Benchmark/ByTask/Tasks/NearRealtimeReaderTask.cs
@@ -3,7 +3,7 @@ using Lucene.Net.Util;
 using System;
 using System.Globalization;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Benchmarks.ByTask.Tasks
 {
diff --git a/src/Lucene.Net.Benchmark/ByTask/Tasks/NewCollationAnalyzerTask.cs b/src/Lucene.Net.Benchmark/ByTask/Tasks/NewCollationAnalyzerTask.cs
index 99de09f..8f7865c 100644
--- a/src/Lucene.Net.Benchmark/ByTask/Tasks/NewCollationAnalyzerTask.cs
+++ b/src/Lucene.Net.Benchmark/ByTask/Tasks/NewCollationAnalyzerTask.cs
@@ -4,7 +4,7 @@ using Lucene.Net.Analysis;
 using Lucene.Net.Util;
 using System;
 using System.Globalization;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Benchmarks.ByTask.Tasks
 {
diff --git a/src/Lucene.Net.Benchmark/ByTask/Tasks/NewLocaleTask.cs b/src/Lucene.Net.Benchmark/ByTask/Tasks/NewLocaleTask.cs
index 67031bc..d6b8492 100644
--- a/src/Lucene.Net.Benchmark/ByTask/Tasks/NewLocaleTask.cs
+++ b/src/Lucene.Net.Benchmark/ByTask/Tasks/NewLocaleTask.cs
@@ -1,7 +1,7 @@
 using J2N.Text;
 using System;
 using System.Globalization;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Benchmarks.ByTask.Tasks
 {
diff --git a/src/Lucene.Net.Benchmark/ByTask/Tasks/PerfTask.cs b/src/Lucene.Net.Benchmark/ByTask/Tasks/PerfTask.cs
index b2c9043..34a693a 100644
--- a/src/Lucene.Net.Benchmark/ByTask/Tasks/PerfTask.cs
+++ b/src/Lucene.Net.Benchmark/ByTask/Tasks/PerfTask.cs
@@ -5,7 +5,7 @@ using System.Diagnostics;
 using System.Globalization;
 using System.Text;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Benchmarks.ByTask.Tasks
 {
diff --git a/src/Lucene.Net.Benchmark/ByTask/Tasks/PrintReaderTask.cs b/src/Lucene.Net.Benchmark/ByTask/Tasks/PrintReaderTask.cs
index a82e0af..fe82c42 100644
--- a/src/Lucene.Net.Benchmark/ByTask/Tasks/PrintReaderTask.cs
+++ b/src/Lucene.Net.Benchmark/ByTask/Tasks/PrintReaderTask.cs
@@ -1,6 +1,6 @@
 using Lucene.Net.Index;
 using Lucene.Net.Store;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Benchmarks.ByTask.Tasks
 {
diff --git a/src/Lucene.Net.Benchmark/ByTask/Tasks/ReadTask.cs b/src/Lucene.Net.Benchmark/ByTask/Tasks/ReadTask.cs
index 1e95fa1..a8df06c 100644
--- a/src/Lucene.Net.Benchmark/ByTask/Tasks/ReadTask.cs
+++ b/src/Lucene.Net.Benchmark/ByTask/Tasks/ReadTask.cs
@@ -8,7 +8,7 @@ using Lucene.Net.Util;
 using System;
 using System.Collections.Generic;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Benchmarks.ByTask.Tasks
 {
diff --git a/src/Lucene.Net.Benchmark/ByTask/Tasks/RepAllTask.cs b/src/Lucene.Net.Benchmark/ByTask/Tasks/RepAllTask.cs
index 15453c2..7fe436c 100644
--- a/src/Lucene.Net.Benchmark/ByTask/Tasks/RepAllTask.cs
+++ b/src/Lucene.Net.Benchmark/ByTask/Tasks/RepAllTask.cs
@@ -1,7 +1,7 @@
 using Lucene.Net.Benchmarks.ByTask.Stats;
 using System.Collections.Generic;
 using System.Text;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Benchmarks.ByTask.Tasks
 {
diff --git a/src/Lucene.Net.Benchmark/ByTask/Tasks/RepSelectByPrefTask.cs b/src/Lucene.Net.Benchmark/ByTask/Tasks/RepSelectByPrefTask.cs
index 855ac56..f9ec882 100644
--- a/src/Lucene.Net.Benchmark/ByTask/Tasks/RepSelectByPrefTask.cs
+++ b/src/Lucene.Net.Benchmark/ByTask/Tasks/RepSelectByPrefTask.cs
@@ -2,7 +2,7 @@
 using System;
 using System.Collections.Generic;
 using System.Text;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Benchmarks.ByTask.Tasks
 {
diff --git a/src/Lucene.Net.Benchmark/ByTask/Tasks/RepSumByNameRoundTask.cs b/src/Lucene.Net.Benchmark/ByTask/Tasks/RepSumByNameRoundTask.cs
index 68901bd..b551bf6 100644
--- a/src/Lucene.Net.Benchmark/ByTask/Tasks/RepSumByNameRoundTask.cs
+++ b/src/Lucene.Net.Benchmark/ByTask/Tasks/RepSumByNameRoundTask.cs
@@ -1,6 +1,6 @@
 using Lucene.Net.Benchmarks.ByTask.Stats;
 using System.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 using JCG = J2N.Collections.Generic;
 
 namespace Lucene.Net.Benchmarks.ByTask.Tasks
diff --git a/src/Lucene.Net.Benchmark/ByTask/Tasks/RepSumByNameTask.cs b/src/Lucene.Net.Benchmark/ByTask/Tasks/RepSumByNameTask.cs
index 1817539..cb710b8 100644
--- a/src/Lucene.Net.Benchmark/ByTask/Tasks/RepSumByNameTask.cs
+++ b/src/Lucene.Net.Benchmark/ByTask/Tasks/RepSumByNameTask.cs
@@ -1,6 +1,6 @@
 using Lucene.Net.Benchmarks.ByTask.Stats;
 using System.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 using JCG = J2N.Collections.Generic;
 
 namespace Lucene.Net.Benchmarks.ByTask.Tasks
diff --git a/src/Lucene.Net.Benchmark/ByTask/Tasks/RepSumByPrefRoundTask.cs b/src/Lucene.Net.Benchmark/ByTask/Tasks/RepSumByPrefRoundTask.cs
index 1d2dac0..7b0d260 100644
--- a/src/Lucene.Net.Benchmark/ByTask/Tasks/RepSumByPrefRoundTask.cs
+++ b/src/Lucene.Net.Benchmark/ByTask/Tasks/RepSumByPrefRoundTask.cs
@@ -1,7 +1,7 @@
 using Lucene.Net.Benchmarks.ByTask.Stats;
 using System;
 using System.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 using JCG = J2N.Collections.Generic;
 
 namespace Lucene.Net.Benchmarks.ByTask.Tasks
diff --git a/src/Lucene.Net.Benchmark/ByTask/Tasks/RepSumByPrefTask.cs b/src/Lucene.Net.Benchmark/ByTask/Tasks/RepSumByPrefTask.cs
index 02d3077..ca3a6ec 100644
--- a/src/Lucene.Net.Benchmark/ByTask/Tasks/RepSumByPrefTask.cs
+++ b/src/Lucene.Net.Benchmark/ByTask/Tasks/RepSumByPrefTask.cs
@@ -1,7 +1,7 @@
 using Lucene.Net.Benchmarks.ByTask.Stats;
 using System;
 using System.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 using JCG = J2N.Collections.Generic;
 
 namespace Lucene.Net.Benchmarks.ByTask.Tasks
diff --git a/src/Lucene.Net.Benchmark/ByTask/Utils/Config.cs b/src/Lucene.Net.Benchmark/ByTask/Utils/Config.cs
index 297e601..ce5f890 100644
--- a/src/Lucene.Net.Benchmark/ByTask/Utils/Config.cs
+++ b/src/Lucene.Net.Benchmark/ByTask/Utils/Config.cs
@@ -6,7 +6,7 @@ using System.Collections.Generic;
 using System.Globalization;
 using System.IO;
 using System.Text;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Benchmarks.ByTask.Utils
 {
diff --git a/src/Lucene.Net.Benchmark/Quality/Trec/QueryDriver.cs b/src/Lucene.Net.Benchmark/Quality/Trec/QueryDriver.cs
index 124b76e..5c5d024 100644
--- a/src/Lucene.Net.Benchmark/Quality/Trec/QueryDriver.cs
+++ b/src/Lucene.Net.Benchmark/Quality/Trec/QueryDriver.cs
@@ -8,7 +8,7 @@ using System.IO;
 using System.Linq;
 using System.Text;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Benchmarks.Quality.Trec
 {
diff --git a/src/Lucene.Net.Benchmark/Quality/Utils/QualityQueriesFinder.cs b/src/Lucene.Net.Benchmark/Quality/Utils/QualityQueriesFinder.cs
index 3e204ff..fc96fc3 100644
--- a/src/Lucene.Net.Benchmark/Quality/Utils/QualityQueriesFinder.cs
+++ b/src/Lucene.Net.Benchmark/Quality/Utils/QualityQueriesFinder.cs
@@ -2,7 +2,7 @@
 using Lucene.Net.Store;
 using System;
 using System.IO;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Benchmarks.Quality.Utils
 {
diff --git a/src/Lucene.Net.Benchmark/Utils/ExtractReuters.cs b/src/Lucene.Net.Benchmark/Utils/ExtractReuters.cs
index a9e06b9..b7630da 100644
--- a/src/Lucene.Net.Benchmark/Utils/ExtractReuters.cs
+++ b/src/Lucene.Net.Benchmark/Utils/ExtractReuters.cs
@@ -2,7 +2,7 @@
 using System.IO;
 using System.Text;
 using System.Text.RegularExpressions;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Benchmarks.Utils
 {
diff --git a/src/Lucene.Net.Benchmark/Utils/ExtractWikipedia.cs b/src/Lucene.Net.Benchmark/Utils/ExtractWikipedia.cs
index 775d14f..01828f4 100644
--- a/src/Lucene.Net.Benchmark/Utils/ExtractWikipedia.cs
+++ b/src/Lucene.Net.Benchmark/Utils/ExtractWikipedia.cs
@@ -6,7 +6,7 @@ using System.Collections.Generic;
 using System.Globalization;
 using System.IO;
 using System.Text;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Benchmarks.Utils
 {
diff --git a/src/Lucene.Net.Misc/Index/CompoundFileExtractor.cs b/src/Lucene.Net.Misc/Index/CompoundFileExtractor.cs
index 7905791..a89ed24 100644
--- a/src/Lucene.Net.Misc/Index/CompoundFileExtractor.cs
+++ b/src/Lucene.Net.Misc/Index/CompoundFileExtractor.cs
@@ -2,7 +2,7 @@
 using Lucene.Net.Util;
 using System;
 using System.IO;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Misc/Index/IndexSplitter.cs b/src/Lucene.Net.Misc/Index/IndexSplitter.cs
index ecb8842..e9a9d6b 100644
--- a/src/Lucene.Net.Misc/Index/IndexSplitter.cs
+++ b/src/Lucene.Net.Misc/Index/IndexSplitter.cs
@@ -4,7 +4,7 @@ using System.Collections.Generic;
 using System.Globalization;
 using System.IO;
 using System.Linq;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Misc/Index/MultiPassIndexSplitter.cs b/src/Lucene.Net.Misc/Index/MultiPassIndexSplitter.cs
index 2f2b608..3b672a8 100644
--- a/src/Lucene.Net.Misc/Index/MultiPassIndexSplitter.cs
+++ b/src/Lucene.Net.Misc/Index/MultiPassIndexSplitter.cs
@@ -6,7 +6,7 @@ using System.Diagnostics;
 using System.Globalization;
 using System.IO;
 using System.Linq;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Misc/Misc/GetTermInfo.cs b/src/Lucene.Net.Misc/Misc/GetTermInfo.cs
index 0bdb873..055598e 100644
--- a/src/Lucene.Net.Misc/Misc/GetTermInfo.cs
+++ b/src/Lucene.Net.Misc/Misc/GetTermInfo.cs
@@ -2,7 +2,7 @@
 using Lucene.Net.Store;
 using System;
 using System.IO;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Misc
 {
diff --git a/src/Lucene.Net.Misc/Misc/HighFreqTerms.cs b/src/Lucene.Net.Misc/Misc/HighFreqTerms.cs
index d1387fc..8c09126 100644
--- a/src/Lucene.Net.Misc/Misc/HighFreqTerms.cs
+++ b/src/Lucene.Net.Misc/Misc/HighFreqTerms.cs
@@ -6,7 +6,7 @@ using System;
 using System.Collections.Generic;
 using System.Globalization;
 using System.IO;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Misc
 {
diff --git a/src/Lucene.Net.Misc/Misc/IndexMergeTool.cs b/src/Lucene.Net.Misc/Misc/IndexMergeTool.cs
index d4c93f4..d9c6a4f 100644
--- a/src/Lucene.Net.Misc/Misc/IndexMergeTool.cs
+++ b/src/Lucene.Net.Misc/Misc/IndexMergeTool.cs
@@ -2,7 +2,7 @@
 using Lucene.Net.Store;
 using Lucene.Net.Util;
 using System;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Misc
 {
diff --git a/src/Lucene.Net.QueryParser/Classic/FastCharStream.cs b/src/Lucene.Net.QueryParser/Classic/FastCharStream.cs
index 0e9c670..abfdd3a 100644
--- a/src/Lucene.Net.QueryParser/Classic/FastCharStream.cs
+++ b/src/Lucene.Net.QueryParser/Classic/FastCharStream.cs
@@ -1,5 +1,5 @@
 using System;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.QueryParsers.Classic
 {
diff --git a/src/Lucene.Net.QueryParser/Flexible/Standard/Parser/StandardSyntaxParserTokenManager.cs b/src/Lucene.Net.QueryParser/Flexible/Standard/Parser/StandardSyntaxParserTokenManager.cs
index 582cd24..c70d65e 100644
--- a/src/Lucene.Net.QueryParser/Flexible/Standard/Parser/StandardSyntaxParserTokenManager.cs
+++ b/src/Lucene.Net.QueryParser/Flexible/Standard/Parser/StandardSyntaxParserTokenManager.cs
@@ -1,6 +1,6 @@
 using Lucene.Net.Support.IO;
 using System.IO;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.QueryParsers.Flexible.Standard.Parser
 {
diff --git a/src/Lucene.Net.QueryParser/Surround/Parser/FastCharStream.cs b/src/Lucene.Net.QueryParser/Surround/Parser/FastCharStream.cs
index 70d694d1..0f7e3ad 100644
--- a/src/Lucene.Net.QueryParser/Surround/Parser/FastCharStream.cs
+++ b/src/Lucene.Net.QueryParser/Surround/Parser/FastCharStream.cs
@@ -1,5 +1,5 @@
 using System;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.QueryParsers.Surround.Parser
 {
diff --git a/src/Lucene.Net.TestFramework/Analysis/BaseTokenStreamTestCase.cs b/src/Lucene.Net.TestFramework/Analysis/BaseTokenStreamTestCase.cs
index d9cba86..e0f2eb0 100644
--- a/src/Lucene.Net.TestFramework/Analysis/BaseTokenStreamTestCase.cs
+++ b/src/Lucene.Net.TestFramework/Analysis/BaseTokenStreamTestCase.cs
@@ -3,7 +3,6 @@ using Lucene.Net.Analysis.TokenAttributes;
 using Lucene.Net.Documents;
 using Lucene.Net.Index;
 using Lucene.Net.Support;
-using Lucene.Net.TestFramework;
 using Lucene.Net.Util;
 using System;
 using System.Collections.Generic;
@@ -12,12 +11,12 @@ using System.IO;
 using System.Linq;
 using System.Text;
 using System.Threading;
-using AttributeFactory = Lucene.Net.Util.AttributeSource.AttributeFactory;
 using Assert = Lucene.Net.TestFramework.Assert;
 using AssertionError = Lucene.Net.Diagnostics.AssertionException;
 using Attribute = Lucene.Net.Util.Attribute;
+using AttributeFactory = Lucene.Net.Util.AttributeSource.AttributeFactory;
+using Console = Lucene.Net.Util.SystemConsole;
 using Directory = Lucene.Net.Store.Directory;
-using Console = Lucene.Net.Support.SystemConsole;
 
 namespace Lucene.Net.Analysis
 {
diff --git a/src/Lucene.Net.TestFramework/Analysis/LookaheadTokenFilter.cs b/src/Lucene.Net.TestFramework/Analysis/LookaheadTokenFilter.cs
index 7cb04ea..262356c 100644
--- a/src/Lucene.Net.TestFramework/Analysis/LookaheadTokenFilter.cs
+++ b/src/Lucene.Net.TestFramework/Analysis/LookaheadTokenFilter.cs
@@ -1,7 +1,7 @@
 using Lucene.Net.Analysis.TokenAttributes;
 using Lucene.Net.Util;
 using System.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 using Debug = Lucene.Net.Diagnostics.Debug; // LUCENENET NOTE: We cannot use System.Diagnostics.Debug because those calls will be optimized out of the release!
 
 namespace Lucene.Net.Analysis
diff --git a/src/Lucene.Net.TestFramework/Analysis/MockAnalyzer.cs b/src/Lucene.Net.TestFramework/Analysis/MockAnalyzer.cs
index e8fd350..499c8de 100644
--- a/src/Lucene.Net.TestFramework/Analysis/MockAnalyzer.cs
+++ b/src/Lucene.Net.TestFramework/Analysis/MockAnalyzer.cs
@@ -3,7 +3,7 @@ using Lucene.Net.Util.Automaton;
 using System;
 using System.Collections.Generic;
 using System.IO;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Analysis
 {
diff --git a/src/Lucene.Net.TestFramework/Analysis/MockGraphTokenFilter.cs b/src/Lucene.Net.TestFramework/Analysis/MockGraphTokenFilter.cs
index 5dc238a..1dd914c 100644
--- a/src/Lucene.Net.TestFramework/Analysis/MockGraphTokenFilter.cs
+++ b/src/Lucene.Net.TestFramework/Analysis/MockGraphTokenFilter.cs
@@ -2,7 +2,7 @@ using Lucene.Net.Analysis.TokenAttributes;
 using Lucene.Net.Util;
 using System;
 using AssertionError = Lucene.Net.Diagnostics.AssertionException;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Analysis
 {
diff --git a/src/Lucene.Net.TestFramework/Analysis/MockRandomLookaheadTokenFilter.cs b/src/Lucene.Net.TestFramework/Analysis/MockRandomLookaheadTokenFilter.cs
index fc52246..3aa0339 100644
--- a/src/Lucene.Net.TestFramework/Analysis/MockRandomLookaheadTokenFilter.cs
+++ b/src/Lucene.Net.TestFramework/Analysis/MockRandomLookaheadTokenFilter.cs
@@ -1,7 +1,7 @@
 using Lucene.Net.Analysis.TokenAttributes;
 using System;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Analysis
 {
diff --git a/src/Lucene.Net.TestFramework/Analysis/TokenStreamToDot.cs b/src/Lucene.Net.TestFramework/Analysis/TokenStreamToDot.cs
index 5827927..8ba16d9 100644
--- a/src/Lucene.Net.TestFramework/Analysis/TokenStreamToDot.cs
+++ b/src/Lucene.Net.TestFramework/Analysis/TokenStreamToDot.cs
@@ -1,7 +1,7 @@
 using Lucene.Net.Analysis.TokenAttributes;
 using System;
 using System.IO;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Analysis
 {
diff --git a/src/Lucene.Net.TestFramework/Codecs/Lucene3x/PreFlexRWPostingsFormat.cs b/src/Lucene.Net.TestFramework/Codecs/Lucene3x/PreFlexRWPostingsFormat.cs
index 400b299..0e992d6 100644
--- a/src/Lucene.Net.TestFramework/Codecs/Lucene3x/PreFlexRWPostingsFormat.cs
+++ b/src/Lucene.Net.TestFramework/Codecs/Lucene3x/PreFlexRWPostingsFormat.cs
@@ -1,6 +1,6 @@
 using Lucene.Net.Index;
 using Lucene.Net.Util;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Codecs.Lucene3x
 {
diff --git a/src/Lucene.Net.TestFramework/Codecs/MockRandom/MockRandomPostingsFormat.cs b/src/Lucene.Net.TestFramework/Codecs/MockRandom/MockRandomPostingsFormat.cs
index ec17761..8122618 100644
--- a/src/Lucene.Net.TestFramework/Codecs/MockRandom/MockRandomPostingsFormat.cs
+++ b/src/Lucene.Net.TestFramework/Codecs/MockRandom/MockRandomPostingsFormat.cs
@@ -10,7 +10,7 @@ using Lucene.Net.Store;
 using Lucene.Net.Util;
 using System;
 using System.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 using Debug = Lucene.Net.Diagnostics.Debug; // LUCENENET NOTE: We cannot use System.Diagnostics.Debug because those calls will be optimized out of the release!
 
 namespace Lucene.Net.Codecs.MockRandom
diff --git a/src/Lucene.Net.TestFramework/Index/BasePostingsFormatTestCase.cs b/src/Lucene.Net.TestFramework/Index/BasePostingsFormatTestCase.cs
index 6c56568..4a8bcbf 100644
--- a/src/Lucene.Net.TestFramework/Index/BasePostingsFormatTestCase.cs
+++ b/src/Lucene.Net.TestFramework/Index/BasePostingsFormatTestCase.cs
@@ -9,7 +9,7 @@ using System.Collections.Generic;
 using System.IO;
 using System.Linq;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 using Debug = Lucene.Net.Diagnostics.Debug; // LUCENENET NOTE: We cannot use System.Diagnostics.Debug because those calls will be optimized out of the release!
 using Assert = Lucene.Net.TestFramework.Assert;
 using Directory = Lucene.Net.Store.Directory;
diff --git a/src/Lucene.Net.TestFramework/Index/BaseStoredFieldsFormatTestCase.cs b/src/Lucene.Net.TestFramework/Index/BaseStoredFieldsFormatTestCase.cs
index c76abaf..7a7d31c 100644
--- a/src/Lucene.Net.TestFramework/Index/BaseStoredFieldsFormatTestCase.cs
+++ b/src/Lucene.Net.TestFramework/Index/BaseStoredFieldsFormatTestCase.cs
@@ -20,7 +20,7 @@ using System.Globalization;
 using System.Linq;
 using System.Text;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 using Assert = Lucene.Net.TestFramework.Assert;
 
 #if TESTFRAMEWORK_MSTEST
diff --git a/src/Lucene.Net.TestFramework/Index/RandomCodec.cs b/src/Lucene.Net.TestFramework/Index/RandomCodec.cs
index 64f0484..7a4ecd5 100644
--- a/src/Lucene.Net.TestFramework/Index/RandomCodec.cs
+++ b/src/Lucene.Net.TestFramework/Index/RandomCodec.cs
@@ -19,7 +19,7 @@ using System;
 using System.Collections.Concurrent;
 using System.Collections.Generic;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 using Debug = Lucene.Net.Diagnostics.Debug; // LUCENENET NOTE: We cannot use System.Diagnostics.Debug because those calls will be optimized out of the release!
 using J2N.Collections.Generic.Extensions;
 
diff --git a/src/Lucene.Net.TestFramework/Index/RandomIndexWriter.cs b/src/Lucene.Net.TestFramework/Index/RandomIndexWriter.cs
index 5b8045c..1a54d79 100644
--- a/src/Lucene.Net.TestFramework/Index/RandomIndexWriter.cs
+++ b/src/Lucene.Net.TestFramework/Index/RandomIndexWriter.cs
@@ -6,7 +6,7 @@ using Lucene.Net.Util;
 using System;
 using System.Collections;
 using System.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 using Debug = Lucene.Net.Diagnostics.Debug; // LUCENENET NOTE: We cannot use System.Diagnostics.Debug because those calls will be optimized out of the release!
 
 namespace Lucene.Net.Index
diff --git a/src/Lucene.Net.TestFramework/Index/ThreadedIndexingAndSearchingTestCase.cs b/src/Lucene.Net.TestFramework/Index/ThreadedIndexingAndSearchingTestCase.cs
index bade91d..c2700a5 100644
--- a/src/Lucene.Net.TestFramework/Index/ThreadedIndexingAndSearchingTestCase.cs
+++ b/src/Lucene.Net.TestFramework/Index/ThreadedIndexingAndSearchingTestCase.cs
@@ -17,7 +17,7 @@ using System.Runtime.CompilerServices;
 using System.Threading;
 using System.Threading.Tasks;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 using Debug = Lucene.Net.Diagnostics.Debug; // LUCENENET NOTE: We cannot use System.Diagnostics.Debug because those calls will be optimized out of the release!
 using Directory = Lucene.Net.Store.Directory;
 
diff --git a/src/Lucene.Net.TestFramework/Search/ShardSearchingTestBase.cs b/src/Lucene.Net.TestFramework/Search/ShardSearchingTestBase.cs
index 1bcca89..4da7acb 100644
--- a/src/Lucene.Net.TestFramework/Search/ShardSearchingTestBase.cs
+++ b/src/Lucene.Net.TestFramework/Search/ShardSearchingTestBase.cs
@@ -10,7 +10,7 @@ using System.Collections.Concurrent;
 using System.Collections.Generic;
 using System.Linq;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 using Debug = Lucene.Net.Diagnostics.Debug; // LUCENENET NOTE: We cannot use System.Diagnostics.Debug because those calls will be optimized out of the release!
 #if FEATURE_SERIALIZABLE_EXCEPTIONS
 using System.Runtime.Serialization;
diff --git a/src/Lucene.Net.TestFramework/Store/MockDirectoryWrapper.cs b/src/Lucene.Net.TestFramework/Store/MockDirectoryWrapper.cs
index 53c1696..4897708 100644
--- a/src/Lucene.Net.TestFramework/Store/MockDirectoryWrapper.cs
+++ b/src/Lucene.Net.TestFramework/Store/MockDirectoryWrapper.cs
@@ -12,7 +12,7 @@ using System.Runtime.CompilerServices;
 using System.Threading;
 using JCG = J2N.Collections.Generic;
 using AssertionError = Lucene.Net.Diagnostics.AssertionException;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 using Debug = Lucene.Net.Diagnostics.Debug; // LUCENENET NOTE: We cannot use System.Diagnostics.Debug because those calls will be optimized out of the release!
 using J2N.Runtime.CompilerServices;
 #if FEATURE_SERIALIZABLE_EXCEPTIONS
diff --git a/src/Lucene.Net.TestFramework/Store/MockIndexOutputWrapper.cs b/src/Lucene.Net.TestFramework/Store/MockIndexOutputWrapper.cs
index 2709c3b..c1c5c04 100644
--- a/src/Lucene.Net.TestFramework/Store/MockIndexOutputWrapper.cs
+++ b/src/Lucene.Net.TestFramework/Store/MockIndexOutputWrapper.cs
@@ -1,6 +1,6 @@
 using System;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Store
 {
diff --git a/src/Lucene.Net.TestFramework/Support/ApiScanTestBase.cs b/src/Lucene.Net.TestFramework/Support/ApiScanTestBase.cs
index 6b55fd5..35ed0d2 100644
--- a/src/Lucene.Net.TestFramework/Support/ApiScanTestBase.cs
+++ b/src/Lucene.Net.TestFramework/Support/ApiScanTestBase.cs
@@ -6,7 +6,7 @@ using System.Reflection;
 using System.Text;
 using System.Text.RegularExpressions;
 using Assert = Lucene.Net.TestFramework.Assert;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Support
 {
diff --git a/src/Lucene.Net.TestFramework/Support/JavaCompatibility/SystemTypesHelpers.cs b/src/Lucene.Net.TestFramework/Support/JavaCompatibility/SystemTypesHelpers.cs
index 4b7e152..5a1d897 100644
--- a/src/Lucene.Net.TestFramework/Support/JavaCompatibility/SystemTypesHelpers.cs
+++ b/src/Lucene.Net.TestFramework/Support/JavaCompatibility/SystemTypesHelpers.cs
@@ -7,7 +7,7 @@ using System.IO;
 using System.Linq;
 using System.Text;
 using System.Text.RegularExpressions;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net
 {
diff --git a/src/Lucene.Net.TestFramework/Util/Fst/FSTTester.cs b/src/Lucene.Net.TestFramework/Util/Fst/FSTTester.cs
index 8350485..2c817b6 100644
--- a/src/Lucene.Net.TestFramework/Util/Fst/FSTTester.cs
+++ b/src/Lucene.Net.TestFramework/Util/Fst/FSTTester.cs
@@ -10,7 +10,7 @@ using System.IO;
 using System.Linq;
 using System.Text;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 using Debug = Lucene.Net.Diagnostics.Debug; // LUCENENET NOTE: We cannot use System.Diagnostics.Debug because those calls will be optimized out of the release!
 using Assert = Lucene.Net.TestFramework.Assert;
 using Directory = Lucene.Net.Store.Directory;
diff --git a/src/Lucene.Net.TestFramework/Util/LineFileDocs.cs b/src/Lucene.Net.TestFramework/Util/LineFileDocs.cs
index 4857d4d..8ded83c 100644
--- a/src/Lucene.Net.TestFramework/Util/LineFileDocs.cs
+++ b/src/Lucene.Net.TestFramework/Util/LineFileDocs.cs
@@ -6,7 +6,7 @@ using System.IO;
 using System.IO.Compression;
 using System.Text;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Util
 {
diff --git a/src/Lucene.Net.TestFramework/Util/LuceneTestCase.cs b/src/Lucene.Net.TestFramework/Util/LuceneTestCase.cs
index d3b3b26..ff36d6e 100644
--- a/src/Lucene.Net.TestFramework/Util/LuceneTestCase.cs
+++ b/src/Lucene.Net.TestFramework/Util/LuceneTestCase.cs
@@ -25,7 +25,7 @@ using System.Runtime.CompilerServices;
 using System.Threading.Tasks;
 using System.Text.RegularExpressions;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 using Debug = Lucene.Net.Diagnostics.Debug; // LUCENENET NOTE: We cannot use System.Diagnostics.Debug because those calls will be optimized out of the release!
 using Assert = Lucene.Net.TestFramework.Assert;
 using Directory = Lucene.Net.Store.Directory;
diff --git a/src/Lucene.Net.TestFramework/Util/RunListenerPrintReproduceInfo.cs b/src/Lucene.Net.TestFramework/Util/RunListenerPrintReproduceInfo.cs
index ed9f387..a74ba72 100644
--- a/src/Lucene.Net.TestFramework/Util/RunListenerPrintReproduceInfo.cs
+++ b/src/Lucene.Net.TestFramework/Util/RunListenerPrintReproduceInfo.cs
@@ -4,7 +4,7 @@ using System;
 using System.Collections.Generic;
 using System.Text;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Util
 {
diff --git a/src/Lucene.Net.TestFramework/Util/TestRuleAssertionsRequired.cs b/src/Lucene.Net.TestFramework/Util/TestRuleAssertionsRequired.cs
index 0999b13..fe08c3e 100644
--- a/src/Lucene.Net.TestFramework/Util/TestRuleAssertionsRequired.cs
+++ b/src/Lucene.Net.TestFramework/Util/TestRuleAssertionsRequired.cs
@@ -2,7 +2,7 @@
 // LUCENENET NOTE: This is incomplete
 using System;
 using System.Diagnostics;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Util
 {
diff --git a/src/Lucene.Net.TestFramework/Util/TestRuleSetupAndRestoreClassEnv.cs b/src/Lucene.Net.TestFramework/Util/TestRuleSetupAndRestoreClassEnv.cs
index 303ac66..101e078 100644
--- a/src/Lucene.Net.TestFramework/Util/TestRuleSetupAndRestoreClassEnv.cs
+++ b/src/Lucene.Net.TestFramework/Util/TestRuleSetupAndRestoreClassEnv.cs
@@ -22,7 +22,7 @@ using System.Linq;
 using System.Reflection;
 using System.Threading;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 using Debug = Lucene.Net.Diagnostics.Debug;
 
 // LUCENENET NOTE: These are primarily here because they are referred to
diff --git a/src/Lucene.Net.TestFramework/Util/TestUtil.cs b/src/Lucene.Net.TestFramework/Util/TestUtil.cs
index f68c34d..d54c2df 100644
--- a/src/Lucene.Net.TestFramework/Util/TestUtil.cs
+++ b/src/Lucene.Net.TestFramework/Util/TestUtil.cs
@@ -17,7 +17,7 @@ using System.Numerics;
 using System.Text;
 using System.Text.RegularExpressions;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 using Assert = Lucene.Net.TestFramework.Assert;
 using Directory = Lucene.Net.Store.Directory;
 
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/CharFilters/TestMappingCharFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/CharFilters/TestMappingCharFilter.cs
index 7c2e877..97aa117 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/CharFilters/TestMappingCharFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/CharFilters/TestMappingCharFilter.cs
@@ -7,7 +7,7 @@ using System.Diagnostics;
 using System.IO;
 using System.Text;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Analysis.CharFilters
 {
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestBugInSomething.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestBugInSomething.cs
index cb26701..3ac49a7 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestBugInSomething.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestBugInSomething.cs
@@ -9,7 +9,7 @@ using Lucene.Net.Attributes;
 using NUnit.Framework;
 using System;
 using System.IO;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 using JCG = J2N.Collections.Generic;
 
 namespace Lucene.Net.Analysis.Core
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestRandomChains.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestRandomChains.cs
index 586c11d..3e529e5 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestRandomChains.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestRandomChains.cs
@@ -1,4 +1,5 @@
-using J2N.Text;
+
+using J2N.Text;
 using Lucene.Net.Analysis.CharFilters;
 using Lucene.Net.Analysis.Cjk;
 using Lucene.Net.Analysis.CommonGrams;
@@ -32,7 +33,7 @@ using System.Reflection;
 using System.Text;
 using System.Text.RegularExpressions;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 using J2N.Runtime.CompilerServices;
 
 namespace Lucene.Net.Analysis.Core
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestStopFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestStopFilter.cs
index 00e2549..592ad68 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestStopFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestStopFilter.cs
@@ -6,7 +6,7 @@ using System;
 using System.Collections.Generic;
 using System.IO;
 using System.Text;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 using Version = Lucene.Net.Util.LuceneVersion;
 
 namespace Lucene.Net.Analysis.Core
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestTypeTokenFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestTypeTokenFilter.cs
index 39b1d28..e53b1f0 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestTypeTokenFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestTypeTokenFilter.cs
@@ -6,7 +6,7 @@ using System.Collections.Generic;
 using System.IO;
 using System.Text;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Analysis.Core
 {
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Hunspell/TestAllDictionaries.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Hunspell/TestAllDictionaries.cs
index c1a1b97..3cd3001 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Hunspell/TestAllDictionaries.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Hunspell/TestAllDictionaries.cs
@@ -6,7 +6,7 @@ using System.IO;
 using System.IO.Compression;
 using System.Reflection;
 using System.Text;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Analysis.Hunspell
 {
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Hunspell/TestAllDictionaries2.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Hunspell/TestAllDictionaries2.cs
index 018dc7a..d16d07a 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Hunspell/TestAllDictionaries2.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Hunspell/TestAllDictionaries2.cs
@@ -6,7 +6,7 @@ using System.IO;
 using System.IO.Compression;
 using System.Reflection;
 using System.Text;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Analysis.Hunspell
 {
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pattern/TestPatternReplaceCharFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pattern/TestPatternReplaceCharFilter.cs
index 402f11d..860ebf2 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pattern/TestPatternReplaceCharFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pattern/TestPatternReplaceCharFilter.cs
@@ -5,7 +5,7 @@ using System;
 using System.IO;
 using System.Text;
 using System.Text.RegularExpressions;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Analysis.Pattern
 {
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Sinks/TestTeeSinkTokenFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Sinks/TestTeeSinkTokenFilter.cs
index b30f24f..4eb9504 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Sinks/TestTeeSinkTokenFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Sinks/TestTeeSinkTokenFilter.cs
@@ -11,7 +11,7 @@ using System.IO;
 using Lucene.Net.Search;
 using System.Globalization;
 using Lucene.Net.Analysis.Standard;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Analysis.Sinks
 {
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Snowball/TestSnowballVocab.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Snowball/TestSnowballVocab.cs
index a7ddcc5..05eb4c2 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Snowball/TestSnowballVocab.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Snowball/TestSnowballVocab.cs
@@ -4,7 +4,7 @@ using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 using System.IO;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Analysis.Snowball
 {
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestSynonymMapFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestSynonymMapFilter.cs
index 8fe021a..5947262 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestSynonymMapFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestSynonymMapFilter.cs
@@ -12,7 +12,7 @@ using System.IO;
 using System.Text;
 using System.Text.RegularExpressions;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Analysis.Synonym
 {
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestRollingCharBuffer.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestRollingCharBuffer.cs
index 8f2bbe5..bdcb48a 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestRollingCharBuffer.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestRollingCharBuffer.cs
@@ -5,7 +5,7 @@ using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 using System.IO;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Analysis.Util
 {
diff --git a/src/Lucene.Net.Tests.Analysis.ICU/Analysis/Icu/Segmentation/TestICUTokenizer.cs b/src/Lucene.Net.Tests.Analysis.ICU/Analysis/Icu/Segmentation/TestICUTokenizer.cs
index 5debea3..a6e5451 100644
--- a/src/Lucene.Net.Tests.Analysis.ICU/Analysis/Icu/Segmentation/TestICUTokenizer.cs
+++ b/src/Lucene.Net.Tests.Analysis.ICU/Analysis/Icu/Segmentation/TestICUTokenizer.cs
@@ -3,6 +3,7 @@ using ICU4N.Globalization;
 using J2N.Threading;
 using Lucene.Net.Analysis.Icu.TokenAttributes;
 using Lucene.Net.Support;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 using System.IO;
diff --git a/src/Lucene.Net.Tests.Analysis.Kuromoji/Dict/TestTokenInfoDictionary.cs b/src/Lucene.Net.Tests.Analysis.Kuromoji/Dict/TestTokenInfoDictionary.cs
index 3eb5cd2..c4b853d 100644
--- a/src/Lucene.Net.Tests.Analysis.Kuromoji/Dict/TestTokenInfoDictionary.cs
+++ b/src/Lucene.Net.Tests.Analysis.Kuromoji/Dict/TestTokenInfoDictionary.cs
@@ -3,7 +3,7 @@ using Lucene.Net.Util;
 using Lucene.Net.Util.Fst;
 using NUnit.Framework;
 using System;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Analysis.Ja.Dict
 {
diff --git a/src/Lucene.Net.Tests.Analysis.Kuromoji/TestJapaneseTokenizer.cs b/src/Lucene.Net.Tests.Analysis.Kuromoji/TestJapaneseTokenizer.cs
index e5ead75..cf2351e 100644
--- a/src/Lucene.Net.Tests.Analysis.Kuromoji/TestJapaneseTokenizer.cs
+++ b/src/Lucene.Net.Tests.Analysis.Kuromoji/TestJapaneseTokenizer.cs
@@ -9,7 +9,7 @@ using System;
 using System.IO;
 using System.Text;
 using System.Text.RegularExpressions;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Analysis.Ja
 {
diff --git a/src/Lucene.Net.Tests.Analysis.Kuromoji/TestSearchMode.cs b/src/Lucene.Net.Tests.Analysis.Kuromoji/TestSearchMode.cs
index 40194a7..6d69f49 100644
--- a/src/Lucene.Net.Tests.Analysis.Kuromoji/TestSearchMode.cs
+++ b/src/Lucene.Net.Tests.Analysis.Kuromoji/TestSearchMode.cs
@@ -4,7 +4,7 @@ using System;
 using System.IO;
 using System.Text;
 using System.Text.RegularExpressions;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Analysis.Ja
 {
diff --git a/src/Lucene.Net.Tests.Analysis.Phonetic/Language/Bm/CacheSubSequencePerformanceTest.cs b/src/Lucene.Net.Tests.Analysis.Phonetic/Language/Bm/CacheSubSequencePerformanceTest.cs
index 0d71add..db4b8f0 100644
--- a/src/Lucene.Net.Tests.Analysis.Phonetic/Language/Bm/CacheSubSequencePerformanceTest.cs
+++ b/src/Lucene.Net.Tests.Analysis.Phonetic/Language/Bm/CacheSubSequencePerformanceTest.cs
@@ -3,7 +3,7 @@ using Lucene.Net.Attributes;
 using NUnit.Framework;
 using System;
 using System.Text;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Analysis.Phonetic.Language.Bm
 {
diff --git a/src/Lucene.Net.Tests.Analysis.Phonetic/Language/Bm/PhoneticEnginePerformanceTest.cs b/src/Lucene.Net.Tests.Analysis.Phonetic/Language/Bm/PhoneticEnginePerformanceTest.cs
index ad0cef3..fee2990 100644
--- a/src/Lucene.Net.Tests.Analysis.Phonetic/Language/Bm/PhoneticEnginePerformanceTest.cs
+++ b/src/Lucene.Net.Tests.Analysis.Phonetic/Language/Bm/PhoneticEnginePerformanceTest.cs
@@ -1,7 +1,7 @@
 using Lucene.Net.Attributes;
 using NUnit.Framework;
 using System;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Analysis.Phonetic.Language.Bm
 {
diff --git a/src/Lucene.Net.Tests.Benchmark/BenchmarkTestCase.cs b/src/Lucene.Net.Tests.Benchmark/BenchmarkTestCase.cs
index c77c228..8ebd8ad 100644
--- a/src/Lucene.Net.Tests.Benchmark/BenchmarkTestCase.cs
+++ b/src/Lucene.Net.Tests.Benchmark/BenchmarkTestCase.cs
@@ -3,7 +3,7 @@ using Lucene.Net.Util;
 using System;
 using System.IO;
 using System.Text;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Benchmarks
 {
diff --git a/src/Lucene.Net.Tests.Benchmark/ByTask/Tasks/CreateIndexTaskTest.cs b/src/Lucene.Net.Tests.Benchmark/ByTask/Tasks/CreateIndexTaskTest.cs
index a5969a0..00f8510 100644
--- a/src/Lucene.Net.Tests.Benchmark/ByTask/Tasks/CreateIndexTaskTest.cs
+++ b/src/Lucene.Net.Tests.Benchmark/ByTask/Tasks/CreateIndexTaskTest.cs
@@ -7,7 +7,7 @@ using System;
 using System.Collections.Generic;
 using System.IO;
 using System.Text;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Benchmarks.ByTask.Tasks
 {
diff --git a/src/Lucene.Net.Tests.Facet/FacetTestCase.cs b/src/Lucene.Net.Tests.Facet/FacetTestCase.cs
index 4e76df0..f077a4a 100644
--- a/src/Lucene.Net.Tests.Facet/FacetTestCase.cs
+++ b/src/Lucene.Net.Tests.Facet/FacetTestCase.cs
@@ -3,7 +3,7 @@ using NUnit.Framework;
 using System;
 using System.Collections.Generic;
 using System.Diagnostics;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Facet
 {
diff --git a/src/Lucene.Net.Tests.Facet/Range/TestRangeFacetCounts.cs b/src/Lucene.Net.Tests.Facet/Range/TestRangeFacetCounts.cs
index d37fffa..3a17613 100644
--- a/src/Lucene.Net.Tests.Facet/Range/TestRangeFacetCounts.cs
+++ b/src/Lucene.Net.Tests.Facet/Range/TestRangeFacetCounts.cs
@@ -4,7 +4,7 @@ using System.Diagnostics;
 using System.Collections;
 using System.Collections.Generic;
 using NUnit.Framework;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Facet.Range
 {
diff --git a/src/Lucene.Net.Tests.Facet/SortedSet/TestSortedSetDocValuesFacets.cs b/src/Lucene.Net.Tests.Facet/SortedSet/TestSortedSetDocValuesFacets.cs
index ee3c3cf..3c17a44 100644
--- a/src/Lucene.Net.Tests.Facet/SortedSet/TestSortedSetDocValuesFacets.cs
+++ b/src/Lucene.Net.Tests.Facet/SortedSet/TestSortedSetDocValuesFacets.cs
@@ -5,7 +5,7 @@ using System.Linq;
 using Lucene.Net.Randomized;
 using Lucene.Net.Randomized.Generators;
 using NUnit.Framework;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Facet.SortedSet
 {
diff --git a/src/Lucene.Net.Tests.Facet/Taxonomy/Directory/TestConcurrentFacetedIndexing.cs b/src/Lucene.Net.Tests.Facet/Taxonomy/Directory/TestConcurrentFacetedIndexing.cs
index 8277407..59a9076 100644
--- a/src/Lucene.Net.Tests.Facet/Taxonomy/Directory/TestConcurrentFacetedIndexing.cs
+++ b/src/Lucene.Net.Tests.Facet/Taxonomy/Directory/TestConcurrentFacetedIndexing.cs
@@ -3,7 +3,7 @@ using System;
 using System.Collections.Concurrent;
 using System.IO;
 using NUnit.Framework;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 using J2N.Threading;
 
 namespace Lucene.Net.Facet.Taxonomy.Directory
diff --git a/src/Lucene.Net.Tests.Facet/Taxonomy/Directory/TestDirectoryTaxonomyWriter.cs b/src/Lucene.Net.Tests.Facet/Taxonomy/Directory/TestDirectoryTaxonomyWriter.cs
index dfbbce1..b1eaa3e 100644
--- a/src/Lucene.Net.Tests.Facet/Taxonomy/Directory/TestDirectoryTaxonomyWriter.cs
+++ b/src/Lucene.Net.Tests.Facet/Taxonomy/Directory/TestDirectoryTaxonomyWriter.cs
@@ -5,8 +5,7 @@ using System;
 using System.Collections.Concurrent;
 using System.Collections.Generic;
 using System.IO;
-using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Facet.Taxonomy.Directory
 {
diff --git a/src/Lucene.Net.Tests.Facet/Taxonomy/TestSearcherTaxonomyManager.cs b/src/Lucene.Net.Tests.Facet/Taxonomy/TestSearcherTaxonomyManager.cs
index f094fb9..9e848a2 100644
--- a/src/Lucene.Net.Tests.Facet/Taxonomy/TestSearcherTaxonomyManager.cs
+++ b/src/Lucene.Net.Tests.Facet/Taxonomy/TestSearcherTaxonomyManager.cs
@@ -9,7 +9,7 @@ using System.Collections.Generic;
 using System.IO;
 using System.Threading;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Facet.Taxonomy
 {
diff --git a/src/Lucene.Net.Tests.Facet/Taxonomy/TestTaxonomyFacetCounts.cs b/src/Lucene.Net.Tests.Facet/Taxonomy/TestTaxonomyFacetCounts.cs
index 354f07d..59f1b1b 100644
--- a/src/Lucene.Net.Tests.Facet/Taxonomy/TestTaxonomyFacetCounts.cs
+++ b/src/Lucene.Net.Tests.Facet/Taxonomy/TestTaxonomyFacetCounts.cs
@@ -4,7 +4,7 @@ using NUnit.Framework;
 using System;
 using System.Collections.Generic;
 using System.IO;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 using JCG = J2N.Collections.Generic;
 
 namespace Lucene.Net.Facet.Taxonomy
diff --git a/src/Lucene.Net.Tests.Facet/Taxonomy/TestTaxonomyFacetSumValueSource.cs b/src/Lucene.Net.Tests.Facet/Taxonomy/TestTaxonomyFacetSumValueSource.cs
index 39d3822..319d61a 100644
--- a/src/Lucene.Net.Tests.Facet/Taxonomy/TestTaxonomyFacetSumValueSource.cs
+++ b/src/Lucene.Net.Tests.Facet/Taxonomy/TestTaxonomyFacetSumValueSource.cs
@@ -5,7 +5,7 @@ using System.Collections.Generic;
 using System.IO;
 using System.Linq;
 using Lucene.Net.Randomized.Generators;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Facet.Taxonomy
 {
diff --git a/src/Lucene.Net.Tests.Facet/Taxonomy/WriterCache/TestCompactLabelToOrdinal.cs b/src/Lucene.Net.Tests.Facet/Taxonomy/WriterCache/TestCompactLabelToOrdinal.cs
index 05e7afb..c4ce0a0 100644
--- a/src/Lucene.Net.Tests.Facet/Taxonomy/WriterCache/TestCompactLabelToOrdinal.cs
+++ b/src/Lucene.Net.Tests.Facet/Taxonomy/WriterCache/TestCompactLabelToOrdinal.cs
@@ -4,7 +4,7 @@ using System.Collections.Generic;
 using System.IO;
 using System.Text;
 using System.Text.RegularExpressions;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Facet.Taxonomy.WriterCache
 {
diff --git a/src/Lucene.Net.Tests.Facet/TestDrillSideways.cs b/src/Lucene.Net.Tests.Facet/TestDrillSideways.cs
index e4413a2..8ea3ad9 100644
--- a/src/Lucene.Net.Tests.Facet/TestDrillSideways.cs
+++ b/src/Lucene.Net.Tests.Facet/TestDrillSideways.cs
@@ -5,7 +5,7 @@ using System.Diagnostics;
 using System.Collections.Generic;
 using System.Linq;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Facet
 {
diff --git a/src/Lucene.Net.Tests.Grouping/AllGroupHeadsCollectorTest.cs b/src/Lucene.Net.Tests.Grouping/AllGroupHeadsCollectorTest.cs
index e23123a..5c69335 100644
--- a/src/Lucene.Net.Tests.Grouping/AllGroupHeadsCollectorTest.cs
+++ b/src/Lucene.Net.Tests.Grouping/AllGroupHeadsCollectorTest.cs
@@ -15,7 +15,7 @@ using System.Collections.Generic;
 using System.Globalization;
 using System.Reflection;
 using System.Text;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 using JCG = J2N.Collections.Generic;
 
 namespace Lucene.Net.Search.Grouping
diff --git a/src/Lucene.Net.Tests.Grouping/AllGroupsCollectorTest.cs b/src/Lucene.Net.Tests.Grouping/AllGroupsCollectorTest.cs
index 1d70a3c..ec5a873 100644
--- a/src/Lucene.Net.Tests.Grouping/AllGroupsCollectorTest.cs
+++ b/src/Lucene.Net.Tests.Grouping/AllGroupsCollectorTest.cs
@@ -11,7 +11,7 @@ using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 using System.Collections;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search.Grouping
 {
diff --git a/src/Lucene.Net.Tests.Grouping/DistinctValuesCollectorTest.cs b/src/Lucene.Net.Tests.Grouping/DistinctValuesCollectorTest.cs
index bc01b59..23755c9 100644
--- a/src/Lucene.Net.Tests.Grouping/DistinctValuesCollectorTest.cs
+++ b/src/Lucene.Net.Tests.Grouping/DistinctValuesCollectorTest.cs
@@ -14,7 +14,7 @@ using System.Collections;
 using System.Collections.Generic;
 using System.Globalization;
 using System.Linq;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 using JCG = J2N.Collections.Generic;
 
 namespace Lucene.Net.Search.Grouping
diff --git a/src/Lucene.Net.Tests.Grouping/GroupFacetCollectorTest.cs b/src/Lucene.Net.Tests.Grouping/GroupFacetCollectorTest.cs
index 8c5fbcb..eaca33d 100644
--- a/src/Lucene.Net.Tests.Grouping/GroupFacetCollectorTest.cs
+++ b/src/Lucene.Net.Tests.Grouping/GroupFacetCollectorTest.cs
@@ -15,7 +15,7 @@ using System.Globalization;
 using System.Linq;
 using JCG = J2N.Collections.Generic;
 using Collections = Lucene.Net.Support.Collections;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 
 namespace Lucene.Net.Search.Grouping
diff --git a/src/Lucene.Net.Tests.Grouping/TestGrouping.cs b/src/Lucene.Net.Tests.Grouping/TestGrouping.cs
index c856a8f..bbf320d 100644
--- a/src/Lucene.Net.Tests.Grouping/TestGrouping.cs
+++ b/src/Lucene.Net.Tests.Grouping/TestGrouping.cs
@@ -39,7 +39,7 @@ using System.Collections.Generic;
 using System.Globalization;
 using System.Linq;
 using System.Text;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 using JCG = J2N.Collections.Generic;
 
 namespace Lucene.Net.Search.Grouping
diff --git a/src/Lucene.Net.Tests.Highlighter/Highlight/Custom/HighlightCustomQueryTest.cs b/src/Lucene.Net.Tests.Highlighter/Highlight/Custom/HighlightCustomQueryTest.cs
index 1bf3aa8..5a1ac37 100644
--- a/src/Lucene.Net.Tests.Highlighter/Highlight/Custom/HighlightCustomQueryTest.cs
+++ b/src/Lucene.Net.Tests.Highlighter/Highlight/Custom/HighlightCustomQueryTest.cs
@@ -4,7 +4,7 @@ using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 using System.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search.Highlight.Custom
 {
diff --git a/src/Lucene.Net.Tests.Highlighter/Highlight/HighlighterTest.cs b/src/Lucene.Net.Tests.Highlighter/Highlight/HighlighterTest.cs
index 6ddccf4..00e5274 100644
--- a/src/Lucene.Net.Tests.Highlighter/Highlight/HighlighterTest.cs
+++ b/src/Lucene.Net.Tests.Highlighter/Highlight/HighlighterTest.cs
@@ -18,7 +18,7 @@ using System.IO;
 using System.Text;
 using System.Xml;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search.Highlight
 {
diff --git a/src/Lucene.Net.Tests.Highlighter/VectorHighlight/SimpleFragListBuilderTest.cs b/src/Lucene.Net.Tests.Highlighter/VectorHighlight/SimpleFragListBuilderTest.cs
index a7c89bb..f96b765 100644
--- a/src/Lucene.Net.Tests.Highlighter/VectorHighlight/SimpleFragListBuilderTest.cs
+++ b/src/Lucene.Net.Tests.Highlighter/VectorHighlight/SimpleFragListBuilderTest.cs
@@ -1,7 +1,7 @@
 using Lucene.Net.Index;
 using NUnit.Framework;
 using System;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search.VectorHighlight
 {
diff --git a/src/Lucene.Net.Tests.Join/TestBlockJoin.cs b/src/Lucene.Net.Tests.Join/TestBlockJoin.cs
index 677574c..0a8159d 100644
--- a/src/Lucene.Net.Tests.Join/TestBlockJoin.cs
+++ b/src/Lucene.Net.Tests.Join/TestBlockJoin.cs
@@ -14,7 +14,7 @@ using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 using J2N.Collections.Generic.Extensions;
 
 namespace Lucene.Net.Tests.Join
diff --git a/src/Lucene.Net.Tests.Join/TestJoinUtil.cs b/src/Lucene.Net.Tests.Join/TestJoinUtil.cs
index b035a23..a8bd445 100644
--- a/src/Lucene.Net.Tests.Join/TestJoinUtil.cs
+++ b/src/Lucene.Net.Tests.Join/TestJoinUtil.cs
@@ -11,7 +11,7 @@ using NUnit.Framework;
 using System;
 using System.Collections.Generic;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Tests.Join
 {
diff --git a/src/Lucene.Net.Tests.Memory/Index/Memory/MemoryIndexTest.cs b/src/Lucene.Net.Tests.Memory/Index/Memory/MemoryIndexTest.cs
index 7f94f94..bc31493 100644
--- a/src/Lucene.Net.Tests.Memory/Index/Memory/MemoryIndexTest.cs
+++ b/src/Lucene.Net.Tests.Memory/Index/Memory/MemoryIndexTest.cs
@@ -36,7 +36,7 @@ using System.Globalization;
 using System.IO;
 using System.Text;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index.Memory
 {
diff --git a/src/Lucene.Net.Tests.Misc/Document/TestLazyDocument.cs b/src/Lucene.Net.Tests.Misc/Document/TestLazyDocument.cs
index 7d4f3c9..64ea0d9 100644
--- a/src/Lucene.Net.Tests.Misc/Document/TestLazyDocument.cs
+++ b/src/Lucene.Net.Tests.Misc/Document/TestLazyDocument.cs
@@ -29,7 +29,7 @@ using NUnit.Framework;
 using System;
 using System.Collections.Generic;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Documents
 {
diff --git a/src/Lucene.Net.Tests.Misc/Index/Sorter/IndexSortingTest.cs b/src/Lucene.Net.Tests.Misc/Index/Sorter/IndexSortingTest.cs
index 2ac30c8..d57bd0b 100644
--- a/src/Lucene.Net.Tests.Misc/Index/Sorter/IndexSortingTest.cs
+++ b/src/Lucene.Net.Tests.Misc/Index/Sorter/IndexSortingTest.cs
@@ -5,7 +5,7 @@ using NUnit.Framework;
 using System;
 using System.Collections.Generic;
 using System.Globalization;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index.Sorter
 {
diff --git a/src/Lucene.Net.Tests.Misc/Index/Sorter/SorterTestBase.cs b/src/Lucene.Net.Tests.Misc/Index/Sorter/SorterTestBase.cs
index c36a3c8..d63b643 100644
--- a/src/Lucene.Net.Tests.Misc/Index/Sorter/SorterTestBase.cs
+++ b/src/Lucene.Net.Tests.Misc/Index/Sorter/SorterTestBase.cs
@@ -13,7 +13,7 @@ using System;
 using System.Collections.Generic;
 using System.Globalization;
 using System.Linq;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index.Sorter
 {
diff --git a/src/Lucene.Net.Tests.Misc/Index/Sorter/SortingAtomicReaderTest.cs b/src/Lucene.Net.Tests.Misc/Index/Sorter/SortingAtomicReaderTest.cs
index 6301e57..17ff558 100644
--- a/src/Lucene.Net.Tests.Misc/Index/Sorter/SortingAtomicReaderTest.cs
+++ b/src/Lucene.Net.Tests.Misc/Index/Sorter/SortingAtomicReaderTest.cs
@@ -3,7 +3,7 @@ using Lucene.Net.Support;
 using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index.Sorter
 {
diff --git a/src/Lucene.Net.Tests.Misc/Util/Fst/TestFSTsMisc.cs b/src/Lucene.Net.Tests.Misc/Util/Fst/TestFSTsMisc.cs
index 7e45523..f468ef0 100644
--- a/src/Lucene.Net.Tests.Misc/Util/Fst/TestFSTsMisc.cs
+++ b/src/Lucene.Net.Tests.Misc/Util/Fst/TestFSTsMisc.cs
@@ -25,7 +25,7 @@ using System;
 using System.Collections.Generic;
 using System.Linq;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Util.Fst
 {
diff --git a/src/Lucene.Net.Tests.Queries/Function/FunctionTestSetup.cs b/src/Lucene.Net.Tests.Queries/Function/FunctionTestSetup.cs
index 2f4d44b..82b3170 100644
--- a/src/Lucene.Net.Tests.Queries/Function/FunctionTestSetup.cs
+++ b/src/Lucene.Net.Tests.Queries/Function/FunctionTestSetup.cs
@@ -29,7 +29,7 @@ using Lucene.Net.Queries.Function.ValueSources;
 using Lucene.Net.Store;
 using Lucene.Net.Util;
 using NUnit.Framework;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Tests.Queries.Function
 {
diff --git a/src/Lucene.Net.Tests.QueryParser/Flexible/Spans/TestSpanQueryParserSimpleSample.cs b/src/Lucene.Net.Tests.QueryParser/Flexible/Spans/TestSpanQueryParserSimpleSample.cs
index affe62c..ef3c22d 100644
--- a/src/Lucene.Net.Tests.QueryParser/Flexible/Spans/TestSpanQueryParserSimpleSample.cs
+++ b/src/Lucene.Net.Tests.QueryParser/Flexible/Spans/TestSpanQueryParserSimpleSample.cs
@@ -7,7 +7,7 @@ using Lucene.Net.Search.Spans;
 using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.QueryParsers.Flexible.Spans
 {
diff --git a/src/Lucene.Net.Tests.QueryParser/Flexible/Standard/TestNumericQueryParser.cs b/src/Lucene.Net.Tests.QueryParser/Flexible/Standard/TestNumericQueryParser.cs
index 5b616f1..a48fd2f 100644
--- a/src/Lucene.Net.Tests.QueryParser/Flexible/Standard/TestNumericQueryParser.cs
+++ b/src/Lucene.Net.Tests.QueryParser/Flexible/Standard/TestNumericQueryParser.cs
@@ -14,7 +14,7 @@ using System;
 using System.Collections.Generic;
 using System.Globalization;
 using System.Text;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 using JCG = J2N.Collections.Generic;
 
 namespace Lucene.Net.QueryParsers.Flexible.Standard
diff --git a/src/Lucene.Net.Tests.QueryParser/Flexible/Standard/TestQPHelper.cs b/src/Lucene.Net.Tests.QueryParser/Flexible/Standard/TestQPHelper.cs
index 6462812..3408c97 100644
--- a/src/Lucene.Net.Tests.QueryParser/Flexible/Standard/TestQPHelper.cs
+++ b/src/Lucene.Net.Tests.QueryParser/Flexible/Standard/TestQPHelper.cs
@@ -18,7 +18,7 @@ using System;
 using System.Collections.Generic;
 using System.Globalization;
 using System.IO;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.QueryParsers.Flexible.Standard
 {
diff --git a/src/Lucene.Net.Tests.QueryParser/Surround/Query/BooleanQueryTst.cs b/src/Lucene.Net.Tests.QueryParser/Surround/Query/BooleanQueryTst.cs
index a651843..bfd1950 100644
--- a/src/Lucene.Net.Tests.QueryParser/Surround/Query/BooleanQueryTst.cs
+++ b/src/Lucene.Net.Tests.QueryParser/Surround/Query/BooleanQueryTst.cs
@@ -2,7 +2,7 @@
 using Lucene.Net.Search;
 using NUnit.Framework;
 using System;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.QueryParsers.Surround.Query
 {
diff --git a/src/Lucene.Net.Tests.QueryParser/Surround/Query/ExceptionQueryTst.cs b/src/Lucene.Net.Tests.QueryParser/Surround/Query/ExceptionQueryTst.cs
index 3f333a1..9309995 100644
--- a/src/Lucene.Net.Tests.QueryParser/Surround/Query/ExceptionQueryTst.cs
+++ b/src/Lucene.Net.Tests.QueryParser/Surround/Query/ExceptionQueryTst.cs
@@ -1,7 +1,7 @@
 using Lucene.Net.QueryParsers.Surround.Parser;
 using System;
 using System.Text;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.QueryParsers.Surround.Query
 {
diff --git a/src/Lucene.Net.Tests.QueryParser/Util/QueryParserTestBase.cs b/src/Lucene.Net.Tests.QueryParser/Util/QueryParserTestBase.cs
index a04cad1..0b259a2 100644
--- a/src/Lucene.Net.Tests.QueryParser/Util/QueryParserTestBase.cs
+++ b/src/Lucene.Net.Tests.QueryParser/Util/QueryParserTestBase.cs
@@ -33,7 +33,7 @@ using Lucene.Net.Util.Automaton;
 using NUnit.Framework;
 using System;
 using System.Globalization;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.QueryParsers.Util
 {
diff --git a/src/Lucene.Net.Tests.QueryParser/Xml/TestParser.cs b/src/Lucene.Net.Tests.QueryParser/Xml/TestParser.cs
index cb0aa44..3a3c535 100644
--- a/src/Lucene.Net.Tests.QueryParser/Xml/TestParser.cs
+++ b/src/Lucene.Net.Tests.QueryParser/Xml/TestParser.cs
@@ -9,7 +9,7 @@ using System.Collections.Generic;
 using System.IO;
 using System.Reflection;
 using System.Text;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.QueryParsers.Xml
 {
diff --git a/src/Lucene.Net.Tests.Replicator/IndexAndTaxonomyReplicationClientTest.cs b/src/Lucene.Net.Tests.Replicator/IndexAndTaxonomyReplicationClientTest.cs
index 877f5af..7df8c9f 100644
--- a/src/Lucene.Net.Tests.Replicator/IndexAndTaxonomyReplicationClientTest.cs
+++ b/src/Lucene.Net.Tests.Replicator/IndexAndTaxonomyReplicationClientTest.cs
@@ -14,7 +14,7 @@ using System.Diagnostics;
 using System.Globalization;
 using System.IO;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 using Directory = Lucene.Net.Store.Directory;
 
 namespace Lucene.Net.Replicator
diff --git a/src/Lucene.Net.Tests.Replicator/IndexReplicationClientTest.cs b/src/Lucene.Net.Tests.Replicator/IndexReplicationClientTest.cs
index cf11de9..1d54a37 100644
--- a/src/Lucene.Net.Tests.Replicator/IndexReplicationClientTest.cs
+++ b/src/Lucene.Net.Tests.Replicator/IndexReplicationClientTest.cs
@@ -10,7 +10,7 @@ using System.Diagnostics;
 using System.Globalization;
 using System.IO;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 using Directory = Lucene.Net.Store.Directory;
 
 namespace Lucene.Net.Replicator
diff --git a/src/Lucene.Net.Tests.Sandbox/Queries/TestSlowFuzzyQuery2.cs b/src/Lucene.Net.Tests.Sandbox/Queries/TestSlowFuzzyQuery2.cs
index affaba5..c359dc1 100644
--- a/src/Lucene.Net.Tests.Sandbox/Queries/TestSlowFuzzyQuery2.cs
+++ b/src/Lucene.Net.Tests.Sandbox/Queries/TestSlowFuzzyQuery2.cs
@@ -14,7 +14,7 @@ using System.IO;
 using System.Linq;
 using System.Reflection;
 using System.Text;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Sandbox.Queries
 {
diff --git a/src/Lucene.Net.Tests.Spatial/Prefix/NtsPolygonTest.cs b/src/Lucene.Net.Tests.Spatial/Prefix/NtsPolygonTest.cs
index 89ce65d..47a514a 100644
--- a/src/Lucene.Net.Tests.Spatial/Prefix/NtsPolygonTest.cs
+++ b/src/Lucene.Net.Tests.Spatial/Prefix/NtsPolygonTest.cs
@@ -8,7 +8,7 @@ using Spatial4n.Core.Context;
 using Spatial4n.Core.Shapes;
 using System;
 using System.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Spatial.Prefix
 {
diff --git a/src/Lucene.Net.Tests.Spatial/Prefix/SpatialOpRecursivePrefixTreeTest.cs b/src/Lucene.Net.Tests.Spatial/Prefix/SpatialOpRecursivePrefixTreeTest.cs
index c1282d7..e679e68 100644
--- a/src/Lucene.Net.Tests.Spatial/Prefix/SpatialOpRecursivePrefixTreeTest.cs
+++ b/src/Lucene.Net.Tests.Spatial/Prefix/SpatialOpRecursivePrefixTreeTest.cs
@@ -11,7 +11,7 @@ using System;
 using System.Collections.Generic;
 using System.Linq;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Spatial.Prefix
 {
diff --git a/src/Lucene.Net.Tests.Spatial/Prefix/Tree/SpatialPrefixTreeTest.cs b/src/Lucene.Net.Tests.Spatial/Prefix/Tree/SpatialPrefixTreeTest.cs
index 604a971..0d31ac7 100644
--- a/src/Lucene.Net.Tests.Spatial/Prefix/Tree/SpatialPrefixTreeTest.cs
+++ b/src/Lucene.Net.Tests.Spatial/Prefix/Tree/SpatialPrefixTreeTest.cs
@@ -5,7 +5,7 @@ using NUnit.Framework;
 using Spatial4n.Core.Context;
 using Spatial4n.Core.Shapes;
 using System;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Spatial.Prefix.Tree
 {
diff --git a/src/Lucene.Net.Tests.Suggest/Suggest/Analyzing/AnalyzingInfixSuggesterTest.cs b/src/Lucene.Net.Tests.Suggest/Suggest/Analyzing/AnalyzingInfixSuggesterTest.cs
index bcd2b64..60b625f 100644
--- a/src/Lucene.Net.Tests.Suggest/Suggest/Analyzing/AnalyzingInfixSuggesterTest.cs
+++ b/src/Lucene.Net.Tests.Suggest/Suggest/Analyzing/AnalyzingInfixSuggesterTest.cs
@@ -15,7 +15,7 @@ using System.Linq;
 using System.Text;
 using System.Text.RegularExpressions;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 using JCG = J2N.Collections.Generic;
 
 namespace Lucene.Net.Search.Suggest.Analyzing
diff --git a/src/Lucene.Net.Tests.Suggest/Suggest/Analyzing/AnalyzingSuggesterTest.cs b/src/Lucene.Net.Tests.Suggest/Suggest/Analyzing/AnalyzingSuggesterTest.cs
index 744e365..248f489 100644
--- a/src/Lucene.Net.Tests.Suggest/Suggest/Analyzing/AnalyzingSuggesterTest.cs
+++ b/src/Lucene.Net.Tests.Suggest/Suggest/Analyzing/AnalyzingSuggesterTest.cs
@@ -1,4 +1,5 @@
-using J2N.Text;
+using J2N.Collections.Generic.Extensions;
+using J2N.Text;
 using Lucene.Net.Analysis;
 using Lucene.Net.Analysis.TokenAttributes;
 using Lucene.Net.Documents;
@@ -12,8 +13,7 @@ using System.Linq;
 using System.Text;
 using System.Text.RegularExpressions;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
-using J2N.Collections.Generic.Extensions;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search.Suggest.Analyzing
 {
diff --git a/src/Lucene.Net.Tests.Suggest/Suggest/Analyzing/BlendedInfixSuggesterTest.cs b/src/Lucene.Net.Tests.Suggest/Suggest/Analyzing/BlendedInfixSuggesterTest.cs
index 70cf7a6..aa1393b 100644
--- a/src/Lucene.Net.Tests.Suggest/Suggest/Analyzing/BlendedInfixSuggesterTest.cs
+++ b/src/Lucene.Net.Tests.Suggest/Suggest/Analyzing/BlendedInfixSuggesterTest.cs
@@ -6,7 +6,7 @@ using NUnit.Framework;
 using System;
 using System.Collections.Generic;
 using System.IO;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search.Suggest.Analyzing
 {
diff --git a/src/Lucene.Net.Tests.Suggest/Suggest/Analyzing/FuzzySuggesterTest.cs b/src/Lucene.Net.Tests.Suggest/Suggest/Analyzing/FuzzySuggesterTest.cs
index d1db892..c960f6d 100644
--- a/src/Lucene.Net.Tests.Suggest/Suggest/Analyzing/FuzzySuggesterTest.cs
+++ b/src/Lucene.Net.Tests.Suggest/Suggest/Analyzing/FuzzySuggesterTest.cs
@@ -16,7 +16,7 @@ using System.Linq;
 using System.Text;
 using System.Text.RegularExpressions;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search.Suggest.Analyzing
 {
diff --git a/src/Lucene.Net.Tests.Suggest/Suggest/Analyzing/TestFreeTextSuggester.cs b/src/Lucene.Net.Tests.Suggest/Suggest/Analyzing/TestFreeTextSuggester.cs
index a956ece..a20d975 100644
--- a/src/Lucene.Net.Tests.Suggest/Suggest/Analyzing/TestFreeTextSuggester.cs
+++ b/src/Lucene.Net.Tests.Suggest/Suggest/Analyzing/TestFreeTextSuggester.cs
@@ -13,7 +13,7 @@ using System.Globalization;
 using System.IO;
 using System.Text;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search.Suggest.Analyzing
 {
diff --git a/src/Lucene.Net.Tests.Suggest/Suggest/Fst/FSTCompletionTest.cs b/src/Lucene.Net.Tests.Suggest/Suggest/Fst/FSTCompletionTest.cs
index 4590e11..afa82dd 100644
--- a/src/Lucene.Net.Tests.Suggest/Suggest/Fst/FSTCompletionTest.cs
+++ b/src/Lucene.Net.Tests.Suggest/Suggest/Fst/FSTCompletionTest.cs
@@ -8,7 +8,7 @@ using System.Globalization;
 using System.Linq;
 using System.Text;
 using System.Text.RegularExpressions;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search.Suggest.Fst
 {
diff --git a/src/Lucene.Net.Tests.Suggest/Suggest/Fst/LargeInputFST.cs b/src/Lucene.Net.Tests.Suggest/Suggest/Fst/LargeInputFST.cs
index a3f8113..f686a61 100644
--- a/src/Lucene.Net.Tests.Suggest/Suggest/Fst/LargeInputFST.cs
+++ b/src/Lucene.Net.Tests.Suggest/Suggest/Fst/LargeInputFST.cs
@@ -2,7 +2,7 @@
 using System;
 using System.IO;
 using System.Text;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search.Suggest.Fst
 {
diff --git a/src/Lucene.Net.Tests.Suggest/Suggest/LookupBenchmarkTest.cs b/src/Lucene.Net.Tests.Suggest/Suggest/LookupBenchmarkTest.cs
index 92a48fe..175d5fa 100644
--- a/src/Lucene.Net.Tests.Suggest/Suggest/LookupBenchmarkTest.cs
+++ b/src/Lucene.Net.Tests.Suggest/Suggest/LookupBenchmarkTest.cs
@@ -17,7 +17,7 @@ using System.IO;
 using System.Linq;
 using System.Reflection;
 using System.Text;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search.Suggest
 {
diff --git a/src/Lucene.Net.Tests/Analysis/TestGraphTokenizers.cs b/src/Lucene.Net.Tests/Analysis/TestGraphTokenizers.cs
index 5689842..ced4500 100644
--- a/src/Lucene.Net.Tests/Analysis/TestGraphTokenizers.cs
+++ b/src/Lucene.Net.Tests/Analysis/TestGraphTokenizers.cs
@@ -7,7 +7,7 @@ using System.Collections.Generic;
 using System.Diagnostics;
 using System.IO;
 using System.Text;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Analysis
 {
diff --git a/src/Lucene.Net.Tests/Codecs/Lucene3x/TestSurrogates.cs b/src/Lucene.Net.Tests/Codecs/Lucene3x/TestSurrogates.cs
index 32816d8..0720f56 100644
--- a/src/Lucene.Net.Tests/Codecs/Lucene3x/TestSurrogates.cs
+++ b/src/Lucene.Net.Tests/Codecs/Lucene3x/TestSurrogates.cs
@@ -8,7 +8,7 @@ using NUnit.Framework;
 using System;
 using System.Collections.Generic;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Codecs.Lucene3x
 {
diff --git a/src/Lucene.Net.Tests/Codecs/PerField/TestPerFieldPostingsFormat2.cs b/src/Lucene.Net.Tests/Codecs/PerField/TestPerFieldPostingsFormat2.cs
index 229b93f..e3316e2 100644
--- a/src/Lucene.Net.Tests/Codecs/PerField/TestPerFieldPostingsFormat2.cs
+++ b/src/Lucene.Net.Tests/Codecs/PerField/TestPerFieldPostingsFormat2.cs
@@ -12,7 +12,7 @@ using Lucene.Net.Store;
 using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Codecs.PerField
 {
diff --git a/src/Lucene.Net.Tests/Index/Test2BBinaryDocValues.cs b/src/Lucene.Net.Tests/Index/Test2BBinaryDocValues.cs
index 9d7263a..73e5e67 100644
--- a/src/Lucene.Net.Tests/Index/Test2BBinaryDocValues.cs
+++ b/src/Lucene.Net.Tests/Index/Test2BBinaryDocValues.cs
@@ -3,7 +3,7 @@ using Lucene.Net.Index.Extensions;
 using Lucene.Net.Store;
 using NUnit.Framework;
 using System;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/Test2BNumericDocValues.cs b/src/Lucene.Net.Tests/Index/Test2BNumericDocValues.cs
index 077a871..63787e7 100644
--- a/src/Lucene.Net.Tests/Index/Test2BNumericDocValues.cs
+++ b/src/Lucene.Net.Tests/Index/Test2BNumericDocValues.cs
@@ -3,7 +3,7 @@ using Lucene.Net.Index.Extensions;
 using Lucene.Net.Store;
 using NUnit.Framework;
 using System;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/Test2BPositions.cs b/src/Lucene.Net.Tests/Index/Test2BPositions.cs
index 551a59f..47601c0 100644
--- a/src/Lucene.Net.Tests/Index/Test2BPositions.cs
+++ b/src/Lucene.Net.Tests/Index/Test2BPositions.cs
@@ -4,7 +4,7 @@ using Lucene.Net.Index.Extensions;
 using Lucene.Net.Store;
 using NUnit.Framework;
 using System;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/Test2BPostings.cs b/src/Lucene.Net.Tests/Index/Test2BPostings.cs
index 6b3355f..1f16d56 100644
--- a/src/Lucene.Net.Tests/Index/Test2BPostings.cs
+++ b/src/Lucene.Net.Tests/Index/Test2BPostings.cs
@@ -4,7 +4,7 @@ using Lucene.Net.Index.Extensions;
 using Lucene.Net.Store;
 using NUnit.Framework;
 using System;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/Test2BSortedDocValues.cs b/src/Lucene.Net.Tests/Index/Test2BSortedDocValues.cs
index cf4602e..79978f3 100644
--- a/src/Lucene.Net.Tests/Index/Test2BSortedDocValues.cs
+++ b/src/Lucene.Net.Tests/Index/Test2BSortedDocValues.cs
@@ -3,7 +3,7 @@ using Lucene.Net.Index.Extensions;
 using Lucene.Net.Store;
 using NUnit.Framework;
 using System;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/Test2BTerms.cs b/src/Lucene.Net.Tests/Index/Test2BTerms.cs
index 88cc23c..e1f09a2 100644
--- a/src/Lucene.Net.Tests/Index/Test2BTerms.cs
+++ b/src/Lucene.Net.Tests/Index/Test2BTerms.cs
@@ -12,7 +12,7 @@ using System;
 using System.Collections.Generic;
 using System.Reflection;
 using System.Runtime.CompilerServices;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/Test4GBStoredFields.cs b/src/Lucene.Net.Tests/Index/Test4GBStoredFields.cs
index 9ad7f11..3c99a3f 100644
--- a/src/Lucene.Net.Tests/Index/Test4GBStoredFields.cs
+++ b/src/Lucene.Net.Tests/Index/Test4GBStoredFields.cs
@@ -4,7 +4,7 @@ using Lucene.Net.Index.Extensions;
 using Lucene.Net.Randomized.Generators;
 using Lucene.Net.Store;
 using NUnit.Framework;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestAddIndexes.cs b/src/Lucene.Net.Tests/Index/TestAddIndexes.cs
index 8327c0e..ac00ff1 100644
--- a/src/Lucene.Net.Tests/Index/TestAddIndexes.cs
+++ b/src/Lucene.Net.Tests/Index/TestAddIndexes.cs
@@ -9,7 +9,7 @@ using System.Collections.Generic;
 using System.IO;
 using System.Linq;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestAtomicUpdate.cs b/src/Lucene.Net.Tests/Index/TestAtomicUpdate.cs
index 62b614d..150ec05 100644
--- a/src/Lucene.Net.Tests/Index/TestAtomicUpdate.cs
+++ b/src/Lucene.Net.Tests/Index/TestAtomicUpdate.cs
@@ -6,7 +6,7 @@ using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestBackwardsCompatibility.cs b/src/Lucene.Net.Tests/Index/TestBackwardsCompatibility.cs
index f0dba16..e18d217 100644
--- a/src/Lucene.Net.Tests/Index/TestBackwardsCompatibility.cs
+++ b/src/Lucene.Net.Tests/Index/TestBackwardsCompatibility.cs
@@ -9,7 +9,7 @@ using System.Diagnostics;
 using System.IO;
 using System.Linq;
 using System.Text;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestBackwardsCompatibility3x.cs b/src/Lucene.Net.Tests/Index/TestBackwardsCompatibility3x.cs
index 95bf649..35812e1 100644
--- a/src/Lucene.Net.Tests/Index/TestBackwardsCompatibility3x.cs
+++ b/src/Lucene.Net.Tests/Index/TestBackwardsCompatibility3x.cs
@@ -7,7 +7,7 @@ using System.Collections.Generic;
 using System.Diagnostics;
 using System.IO;
 using System.Text;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestBagOfPositions.cs b/src/Lucene.Net.Tests/Index/TestBagOfPositions.cs
index fb7aa82..901229b 100644
--- a/src/Lucene.Net.Tests/Index/TestBagOfPositions.cs
+++ b/src/Lucene.Net.Tests/Index/TestBagOfPositions.cs
@@ -8,7 +8,7 @@ using System.Collections.Concurrent;
 using System.Collections.Generic;
 using System.Text;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestBagOfPostings.cs b/src/Lucene.Net.Tests/Index/TestBagOfPostings.cs
index 85eb990..3dd9274 100644
--- a/src/Lucene.Net.Tests/Index/TestBagOfPostings.cs
+++ b/src/Lucene.Net.Tests/Index/TestBagOfPostings.cs
@@ -8,7 +8,7 @@ using System.Collections.Generic;
 using System.Text;
 using System.Threading;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 using J2N.Collections.Generic.Extensions;
 
 namespace Lucene.Net.Index
diff --git a/src/Lucene.Net.Tests/Index/TestBinaryDocValuesUpdates.cs b/src/Lucene.Net.Tests/Index/TestBinaryDocValuesUpdates.cs
index 0165d3d..d128a24 100644
--- a/src/Lucene.Net.Tests/Index/TestBinaryDocValuesUpdates.cs
+++ b/src/Lucene.Net.Tests/Index/TestBinaryDocValuesUpdates.cs
@@ -16,7 +16,7 @@ using System;
 using System.Collections.Generic;
 using System.IO;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 using JCG = J2N.Collections.Generic;
 
 namespace Lucene.Net.Index
diff --git a/src/Lucene.Net.Tests/Index/TestByteSlices.cs b/src/Lucene.Net.Tests/Index/TestByteSlices.cs
index a948c6a..5a8fc3e 100644
--- a/src/Lucene.Net.Tests/Index/TestByteSlices.cs
+++ b/src/Lucene.Net.Tests/Index/TestByteSlices.cs
@@ -2,7 +2,7 @@ using Lucene.Net.Attributes;
 using Lucene.Net.Randomized.Generators;
 using NUnit.Framework;
 using System;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestCheckIndex.cs b/src/Lucene.Net.Tests/Index/TestCheckIndex.cs
index 8ad2933..04b7a90 100644
--- a/src/Lucene.Net.Tests/Index/TestCheckIndex.cs
+++ b/src/Lucene.Net.Tests/Index/TestCheckIndex.cs
@@ -5,7 +5,7 @@ using NUnit.Framework;
 using System.Collections.Generic;
 using System.IO;
 using System.Text;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestCodecs.cs b/src/Lucene.Net.Tests/Index/TestCodecs.cs
index eac4d8c..46571db 100644
--- a/src/Lucene.Net.Tests/Index/TestCodecs.cs
+++ b/src/Lucene.Net.Tests/Index/TestCodecs.cs
@@ -10,7 +10,7 @@ using System.Collections.Generic;
 using System.Diagnostics;
 using System.Threading;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestConcurrentMergeScheduler.cs b/src/Lucene.Net.Tests/Index/TestConcurrentMergeScheduler.cs
index 0728104..be9454f 100644
--- a/src/Lucene.Net.Tests/Index/TestConcurrentMergeScheduler.cs
+++ b/src/Lucene.Net.Tests/Index/TestConcurrentMergeScheduler.cs
@@ -9,7 +9,7 @@ using NUnit.Framework;
 using System;
 using System.IO;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestCrash.cs b/src/Lucene.Net.Tests/Index/TestCrash.cs
index 03b0db5..2976a80 100644
--- a/src/Lucene.Net.Tests/Index/TestCrash.cs
+++ b/src/Lucene.Net.Tests/Index/TestCrash.cs
@@ -2,7 +2,7 @@ using Lucene.Net.Documents;
 using Lucene.Net.Index.Extensions;
 using NUnit.Framework;
 using System;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestCrashCausesCorruptIndex.cs b/src/Lucene.Net.Tests/Index/TestCrashCausesCorruptIndex.cs
index 7fa87fc..978f086 100644
--- a/src/Lucene.Net.Tests/Index/TestCrashCausesCorruptIndex.cs
+++ b/src/Lucene.Net.Tests/Index/TestCrashCausesCorruptIndex.cs
@@ -2,7 +2,7 @@ using Lucene.Net.Documents;
 using NUnit.Framework;
 using System;
 using System.IO;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestDeletionPolicy.cs b/src/Lucene.Net.Tests/Index/TestDeletionPolicy.cs
index c1174db..a6e3aca 100644
--- a/src/Lucene.Net.Tests/Index/TestDeletionPolicy.cs
+++ b/src/Lucene.Net.Tests/Index/TestDeletionPolicy.cs
@@ -6,7 +6,7 @@ using System.Collections.Generic;
 using System.IO;
 using System.Threading;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestDirectoryReader.cs b/src/Lucene.Net.Tests/Index/TestDirectoryReader.cs
index 18fccde..be74c4d 100644
--- a/src/Lucene.Net.Tests/Index/TestDirectoryReader.cs
+++ b/src/Lucene.Net.Tests/Index/TestDirectoryReader.cs
@@ -8,7 +8,7 @@ using System.Collections.Generic;
 using System.IO;
 using System.Threading;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestDirectoryReaderReopen.cs b/src/Lucene.Net.Tests/Index/TestDirectoryReaderReopen.cs
index aef6aac..df1542b 100644
--- a/src/Lucene.Net.Tests/Index/TestDirectoryReaderReopen.cs
+++ b/src/Lucene.Net.Tests/Index/TestDirectoryReaderReopen.cs
@@ -8,7 +8,7 @@ using System.Collections.Generic;
 using System.Text;
 using System.Threading;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestDoc.cs b/src/Lucene.Net.Tests/Index/TestDoc.cs
index 6ab5f1e..a596e44 100644
--- a/src/Lucene.Net.Tests/Index/TestDoc.cs
+++ b/src/Lucene.Net.Tests/Index/TestDoc.cs
@@ -6,7 +6,7 @@ using System;
 using System.Collections.Generic;
 using System.IO;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestDocTermOrds.cs b/src/Lucene.Net.Tests/Index/TestDocTermOrds.cs
index 6341ff7..504c4df 100644
--- a/src/Lucene.Net.Tests/Index/TestDocTermOrds.cs
+++ b/src/Lucene.Net.Tests/Index/TestDocTermOrds.cs
@@ -6,7 +6,7 @@ using System;
 using System.Collections.Generic;
 using System.Linq;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestDocValuesWithThreads.cs b/src/Lucene.Net.Tests/Index/TestDocValuesWithThreads.cs
index 680792f..d9ab4ad 100644
--- a/src/Lucene.Net.Tests/Index/TestDocValuesWithThreads.cs
+++ b/src/Lucene.Net.Tests/Index/TestDocValuesWithThreads.cs
@@ -8,7 +8,7 @@ using System.Collections.Generic;
 using System.IO;
 using System.Threading;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestDocumentsWriterStallControl.cs b/src/Lucene.Net.Tests/Index/TestDocumentsWriterStallControl.cs
index 8f9115b..9767a87 100644
--- a/src/Lucene.Net.Tests/Index/TestDocumentsWriterStallControl.cs
+++ b/src/Lucene.Net.Tests/Index/TestDocumentsWriterStallControl.cs
@@ -4,7 +4,7 @@ using NUnit.Framework;
 using System;
 using System.Collections.Generic;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestFlushByRamOrCountsPolicy.cs b/src/Lucene.Net.Tests/Index/TestFlushByRamOrCountsPolicy.cs
index 329170c..bfb6bd9 100644
--- a/src/Lucene.Net.Tests/Index/TestFlushByRamOrCountsPolicy.cs
+++ b/src/Lucene.Net.Tests/Index/TestFlushByRamOrCountsPolicy.cs
@@ -5,7 +5,7 @@ using Lucene.Net.Store;
 using NUnit.Framework;
 using System;
 using System.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestForceMergeForever.cs b/src/Lucene.Net.Tests/Index/TestForceMergeForever.cs
index a9a298a..a860093 100644
--- a/src/Lucene.Net.Tests/Index/TestForceMergeForever.cs
+++ b/src/Lucene.Net.Tests/Index/TestForceMergeForever.cs
@@ -3,7 +3,7 @@ using J2N.Threading.Atomic;
 using Lucene.Net.Index.Extensions;
 using NUnit.Framework;
 using System;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestIndexWriter.cs b/src/Lucene.Net.Tests/Index/TestIndexWriter.cs
index acc5032..844c2b8 100644
--- a/src/Lucene.Net.Tests/Index/TestIndexWriter.cs
+++ b/src/Lucene.Net.Tests/Index/TestIndexWriter.cs
@@ -19,7 +19,7 @@ using System.IO;
 using System.Text;
 using System.Threading;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestIndexWriterCommit.cs b/src/Lucene.Net.Tests/Index/TestIndexWriterCommit.cs
index 636f5ad..df20d4d 100644
--- a/src/Lucene.Net.Tests/Index/TestIndexWriterCommit.cs
+++ b/src/Lucene.Net.Tests/Index/TestIndexWriterCommit.cs
@@ -7,7 +7,7 @@ using NUnit.Framework;
 using System;
 using System.Collections.Generic;
 using System.IO;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestIndexWriterDelete.cs b/src/Lucene.Net.Tests/Index/TestIndexWriterDelete.cs
index e8da46f..e9586cc 100644
--- a/src/Lucene.Net.Tests/Index/TestIndexWriterDelete.cs
+++ b/src/Lucene.Net.Tests/Index/TestIndexWriterDelete.cs
@@ -16,7 +16,7 @@ using System.Diagnostics;
 using System.IO;
 using System.Text;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestIndexWriterExceptions.cs b/src/Lucene.Net.Tests/Index/TestIndexWriterExceptions.cs
index ca18efc..ca1d449 100644
--- a/src/Lucene.Net.Tests/Index/TestIndexWriterExceptions.cs
+++ b/src/Lucene.Net.Tests/Index/TestIndexWriterExceptions.cs
@@ -13,7 +13,7 @@ using System.Collections.Generic;
 using System.Diagnostics;
 using System.IO;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestIndexWriterForceMerge.cs b/src/Lucene.Net.Tests/Index/TestIndexWriterForceMerge.cs
index a124345..0763274 100644
--- a/src/Lucene.Net.Tests/Index/TestIndexWriterForceMerge.cs
+++ b/src/Lucene.Net.Tests/Index/TestIndexWriterForceMerge.cs
@@ -2,7 +2,7 @@ using Lucene.Net.Documents;
 using Lucene.Net.Index.Extensions;
 using NUnit.Framework;
 using System;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestIndexWriterMerging.cs b/src/Lucene.Net.Tests/Index/TestIndexWriterMerging.cs
index f550c9d..29816ce 100644
--- a/src/Lucene.Net.Tests/Index/TestIndexWriterMerging.cs
+++ b/src/Lucene.Net.Tests/Index/TestIndexWriterMerging.cs
@@ -7,7 +7,7 @@ using System;
 using System.Collections.Generic;
 using System.Diagnostics;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestIndexWriterNRTIsCurrent.cs b/src/Lucene.Net.Tests/Index/TestIndexWriterNRTIsCurrent.cs
index b738b6c..9a21549 100644
--- a/src/Lucene.Net.Tests/Index/TestIndexWriterNRTIsCurrent.cs
+++ b/src/Lucene.Net.Tests/Index/TestIndexWriterNRTIsCurrent.cs
@@ -4,7 +4,7 @@ using NUnit.Framework;
 using System;
 using System.IO;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestIndexWriterOnDiskFull.cs b/src/Lucene.Net.Tests/Index/TestIndexWriterOnDiskFull.cs
index a99ccce..3e7ac16 100644
--- a/src/Lucene.Net.Tests/Index/TestIndexWriterOnDiskFull.cs
+++ b/src/Lucene.Net.Tests/Index/TestIndexWriterOnDiskFull.cs
@@ -6,7 +6,7 @@ using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 using System.IO;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestIndexWriterOnJRECrash.cs b/src/Lucene.Net.Tests/Index/TestIndexWriterOnJRECrash.cs
index 0212d3c..a08308a 100644
--- a/src/Lucene.Net.Tests/Index/TestIndexWriterOnJRECrash.cs
+++ b/src/Lucene.Net.Tests/Index/TestIndexWriterOnJRECrash.cs
@@ -6,7 +6,7 @@
 //using System.Threading;
 //using Lucene.Net.Randomized;
 //using Lucene.Net.Randomized.Generators;
-//using Console = Lucene.Net.Support.SystemConsole;
+//using Console = Lucene.Net.Util.SystemConsole;
 
 //namespace Lucene.Net.Index
 //{
diff --git a/src/Lucene.Net.Tests/Index/TestIndexWriterOutOfFileDescriptors.cs b/src/Lucene.Net.Tests/Index/TestIndexWriterOutOfFileDescriptors.cs
index 87ee580..05d222a 100644
--- a/src/Lucene.Net.Tests/Index/TestIndexWriterOutOfFileDescriptors.cs
+++ b/src/Lucene.Net.Tests/Index/TestIndexWriterOutOfFileDescriptors.cs
@@ -3,7 +3,7 @@ using System.Collections.Generic;
 using System.IO;
 using NUnit.Framework;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestIndexWriterReader.cs b/src/Lucene.Net.Tests/Index/TestIndexWriterReader.cs
index 1dd24ec..ca387c0 100644
--- a/src/Lucene.Net.Tests/Index/TestIndexWriterReader.cs
+++ b/src/Lucene.Net.Tests/Index/TestIndexWriterReader.cs
@@ -11,7 +11,7 @@ using System;
 using System.Collections.Concurrent;
 using System.Collections.Generic;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestIndexWriterWithThreads.cs b/src/Lucene.Net.Tests/Index/TestIndexWriterWithThreads.cs
index 9d8ac4b..2659bd3 100644
--- a/src/Lucene.Net.Tests/Index/TestIndexWriterWithThreads.cs
+++ b/src/Lucene.Net.Tests/Index/TestIndexWriterWithThreads.cs
@@ -9,7 +9,7 @@ using NUnit.Framework;
 using System;
 using System.IO;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestIndexableField.cs b/src/Lucene.Net.Tests/Index/TestIndexableField.cs
index 563e852..ea00518 100644
--- a/src/Lucene.Net.Tests/Index/TestIndexableField.cs
+++ b/src/Lucene.Net.Tests/Index/TestIndexableField.cs
@@ -4,7 +4,7 @@ using System;
 using System.Collections.Generic;
 using System.Diagnostics;
 using System.IO;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestLongPostings.cs b/src/Lucene.Net.Tests/Index/TestLongPostings.cs
index 8f13ff4..df04d2c 100644
--- a/src/Lucene.Net.Tests/Index/TestLongPostings.cs
+++ b/src/Lucene.Net.Tests/Index/TestLongPostings.cs
@@ -5,7 +5,7 @@ using NUnit.Framework;
 using System;
 using System.Diagnostics;
 using System.IO;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestMixedCodecs.cs b/src/Lucene.Net.Tests/Index/TestMixedCodecs.cs
index d9f5a51..759cbe7 100644
--- a/src/Lucene.Net.Tests/Index/TestMixedCodecs.cs
+++ b/src/Lucene.Net.Tests/Index/TestMixedCodecs.cs
@@ -4,7 +4,7 @@ using NUnit.Framework;
 using System;
 using System.Collections.Generic;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestMultiFields.cs b/src/Lucene.Net.Tests/Index/TestMultiFields.cs
index afc1a73..24fa07a 100644
--- a/src/Lucene.Net.Tests/Index/TestMultiFields.cs
+++ b/src/Lucene.Net.Tests/Index/TestMultiFields.cs
@@ -7,7 +7,7 @@ using NUnit.Framework;
 using System;
 using System.Collections.Generic;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestNRTReaderWithThreads.cs b/src/Lucene.Net.Tests/Index/TestNRTReaderWithThreads.cs
index 7320b6d..e5eadb3 100644
--- a/src/Lucene.Net.Tests/Index/TestNRTReaderWithThreads.cs
+++ b/src/Lucene.Net.Tests/Index/TestNRTReaderWithThreads.cs
@@ -5,7 +5,7 @@ using Lucene.Net.Attributes;
 using Lucene.Net.Index.Extensions;
 using System;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestNRTThreads.cs b/src/Lucene.Net.Tests/Index/TestNRTThreads.cs
index d47b246..841f5bc 100644
--- a/src/Lucene.Net.Tests/Index/TestNRTThreads.cs
+++ b/src/Lucene.Net.Tests/Index/TestNRTThreads.cs
@@ -4,7 +4,7 @@ using System;
 using System.Collections.Generic;
 using System.Diagnostics;
 using System.Threading.Tasks;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestNeverDelete.cs b/src/Lucene.Net.Tests/Index/TestNeverDelete.cs
index 9b2c4f8..3b0bf26 100644
--- a/src/Lucene.Net.Tests/Index/TestNeverDelete.cs
+++ b/src/Lucene.Net.Tests/Index/TestNeverDelete.cs
@@ -7,7 +7,7 @@ using System.Collections.Generic;
 using System.IO;
 using System.Threading;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestParallelReaderEmptyIndex.cs b/src/Lucene.Net.Tests/Index/TestParallelReaderEmptyIndex.cs
index 95b28f0..7e9ad21 100644
--- a/src/Lucene.Net.Tests/Index/TestParallelReaderEmptyIndex.cs
+++ b/src/Lucene.Net.Tests/Index/TestParallelReaderEmptyIndex.cs
@@ -1,7 +1,7 @@
 using Lucene.Net.Documents;
 using Lucene.Net.Index.Extensions;
 using NUnit.Framework;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestPayloads.cs b/src/Lucene.Net.Tests/Index/TestPayloads.cs
index 69651e5..0fd2251 100644
--- a/src/Lucene.Net.Tests/Index/TestPayloads.cs
+++ b/src/Lucene.Net.Tests/Index/TestPayloads.cs
@@ -11,7 +11,7 @@ using System.Collections.Generic;
 using System.Diagnostics;
 using System.IO;
 using System.Text;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestPerSegmentDeletes.cs b/src/Lucene.Net.Tests/Index/TestPerSegmentDeletes.cs
index 9e77f8b..c2f1993 100644
--- a/src/Lucene.Net.Tests/Index/TestPerSegmentDeletes.cs
+++ b/src/Lucene.Net.Tests/Index/TestPerSegmentDeletes.cs
@@ -3,7 +3,7 @@ using Lucene.Net.Support;
 using NUnit.Framework;
 using System;
 using System.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestRollingUpdates.cs b/src/Lucene.Net.Tests/Index/TestRollingUpdates.cs
index b7fc739..aeaf635 100644
--- a/src/Lucene.Net.Tests/Index/TestRollingUpdates.cs
+++ b/src/Lucene.Net.Tests/Index/TestRollingUpdates.cs
@@ -6,7 +6,7 @@ using Lucene.Net.Store;
 using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestSnapshotDeletionPolicy.cs b/src/Lucene.Net.Tests/Index/TestSnapshotDeletionPolicy.cs
index b9d9d7a..a2490f3 100644
--- a/src/Lucene.Net.Tests/Index/TestSnapshotDeletionPolicy.cs
+++ b/src/Lucene.Net.Tests/Index/TestSnapshotDeletionPolicy.cs
@@ -5,7 +5,7 @@ using NUnit.Framework;
 using System;
 using System.Collections.Generic;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestStressAdvance.cs b/src/Lucene.Net.Tests/Index/TestStressAdvance.cs
index b22883a..974978e 100644
--- a/src/Lucene.Net.Tests/Index/TestStressAdvance.cs
+++ b/src/Lucene.Net.Tests/Index/TestStressAdvance.cs
@@ -2,7 +2,7 @@ using System;
 using System.Collections.Generic;
 using Lucene.Net.Documents;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestStressIndexing.cs b/src/Lucene.Net.Tests/Index/TestStressIndexing.cs
index 7930063..9714d71 100644
--- a/src/Lucene.Net.Tests/Index/TestStressIndexing.cs
+++ b/src/Lucene.Net.Tests/Index/TestStressIndexing.cs
@@ -8,7 +8,7 @@ using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestStressIndexing2.cs b/src/Lucene.Net.Tests/Index/TestStressIndexing2.cs
index 6295ddb..5e48048 100644
--- a/src/Lucene.Net.Tests/Index/TestStressIndexing2.cs
+++ b/src/Lucene.Net.Tests/Index/TestStressIndexing2.cs
@@ -11,7 +11,7 @@ using System;
 using System.Collections.Generic;
 using System.Diagnostics;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestStressNRT.cs b/src/Lucene.Net.Tests/Index/TestStressNRT.cs
index 804cca8..c66fc1d 100644
--- a/src/Lucene.Net.Tests/Index/TestStressNRT.cs
+++ b/src/Lucene.Net.Tests/Index/TestStressNRT.cs
@@ -9,7 +9,7 @@ using System.Collections.Concurrent;
 using System.Collections.Generic;
 using System.Diagnostics;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestSumDocFreq.cs b/src/Lucene.Net.Tests/Index/TestSumDocFreq.cs
index fc4d908..d92299f 100644
--- a/src/Lucene.Net.Tests/Index/TestSumDocFreq.cs
+++ b/src/Lucene.Net.Tests/Index/TestSumDocFreq.cs
@@ -1,7 +1,7 @@
 using System;
 using Lucene.Net.Documents;
 using NUnit.Framework;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestTermdocPerf.cs b/src/Lucene.Net.Tests/Index/TestTermdocPerf.cs
index 957e6d8..6d2ae74c 100644
--- a/src/Lucene.Net.Tests/Index/TestTermdocPerf.cs
+++ b/src/Lucene.Net.Tests/Index/TestTermdocPerf.cs
@@ -6,7 +6,7 @@ using Lucene.Net.Index.Extensions;
 using NUnit.Framework;
 using System;
 using System.IO;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestTermsEnum.cs b/src/Lucene.Net.Tests/Index/TestTermsEnum.cs
index 6f8af19..47f9a6f 100644
--- a/src/Lucene.Net.Tests/Index/TestTermsEnum.cs
+++ b/src/Lucene.Net.Tests/Index/TestTermsEnum.cs
@@ -7,7 +7,7 @@ using System;
 using System.Collections.Generic;
 using System.Diagnostics;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestThreadedForceMerge.cs b/src/Lucene.Net.Tests/Index/TestThreadedForceMerge.cs
index a92cad9..0c7fead 100644
--- a/src/Lucene.Net.Tests/Index/TestThreadedForceMerge.cs
+++ b/src/Lucene.Net.Tests/Index/TestThreadedForceMerge.cs
@@ -4,7 +4,7 @@ using Lucene.Net.Index.Extensions;
 using NUnit.Framework;
 using System;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestTieredMergePolicy.cs b/src/Lucene.Net.Tests/Index/TestTieredMergePolicy.cs
index e535da3..1767a59 100644
--- a/src/Lucene.Net.Tests/Index/TestTieredMergePolicy.cs
+++ b/src/Lucene.Net.Tests/Index/TestTieredMergePolicy.cs
@@ -4,7 +4,7 @@ using Lucene.Net.Index.Extensions;
 using Lucene.Net.Store;
 using NUnit.Framework;
 using System;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Index/TestTransactions.cs b/src/Lucene.Net.Tests/Index/TestTransactions.cs
index 0d05f1d..56a2d0f 100644
--- a/src/Lucene.Net.Tests/Index/TestTransactions.cs
+++ b/src/Lucene.Net.Tests/Index/TestTransactions.cs
@@ -6,7 +6,7 @@ using NUnit.Framework;
 using System;
 using System.IO;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/Search/Payloads/TestPayloadNearQuery.cs b/src/Lucene.Net.Tests/Search/Payloads/TestPayloadNearQuery.cs
index 9df03d2..f9d5f70 100644
--- a/src/Lucene.Net.Tests/Search/Payloads/TestPayloadNearQuery.cs
+++ b/src/Lucene.Net.Tests/Search/Payloads/TestPayloadNearQuery.cs
@@ -7,7 +7,7 @@ using NUnit.Framework;
 using System;
 using System.IO;
 using System.Text.RegularExpressions;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search.Payloads
 {
diff --git a/src/Lucene.Net.Tests/Search/Spans/TestPayloadSpans.cs b/src/Lucene.Net.Tests/Search/Spans/TestPayloadSpans.cs
index 59eec07..f89a80f 100644
--- a/src/Lucene.Net.Tests/Search/Spans/TestPayloadSpans.cs
+++ b/src/Lucene.Net.Tests/Search/Spans/TestPayloadSpans.cs
@@ -8,7 +8,7 @@ using Lucene.Net.Documents;
 using NUnit.Framework;
 using System.IO;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search.Spans
 {
diff --git a/src/Lucene.Net.Tests/Search/Spans/TestSpansAdvanced.cs b/src/Lucene.Net.Tests/Search/Spans/TestSpansAdvanced.cs
index 476524e..7b958d0 100644
--- a/src/Lucene.Net.Tests/Search/Spans/TestSpansAdvanced.cs
+++ b/src/Lucene.Net.Tests/Search/Spans/TestSpansAdvanced.cs
@@ -2,7 +2,7 @@ using Lucene.Net.Documents;
 using Lucene.Net.Index.Extensions;
 using NUnit.Framework;
 using System;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search.Spans
 {
diff --git a/src/Lucene.Net.Tests/Search/TestAutomatonQuery.cs b/src/Lucene.Net.Tests/Search/TestAutomatonQuery.cs
index 2c01728..d97a7ad 100644
--- a/src/Lucene.Net.Tests/Search/TestAutomatonQuery.cs
+++ b/src/Lucene.Net.Tests/Search/TestAutomatonQuery.cs
@@ -4,7 +4,7 @@ using Lucene.Net.Documents;
 using NUnit.Framework;
 using System;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search
 {
diff --git a/src/Lucene.Net.Tests/Search/TestBoolean2.cs b/src/Lucene.Net.Tests/Search/TestBoolean2.cs
index b20f4e9..8ea259f 100644
--- a/src/Lucene.Net.Tests/Search/TestBoolean2.cs
+++ b/src/Lucene.Net.Tests/Search/TestBoolean2.cs
@@ -2,7 +2,7 @@ using Lucene.Net.Documents;
 using Lucene.Net.Index.Extensions;
 using NUnit.Framework;
 using System;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search
 {
diff --git a/src/Lucene.Net.Tests/Search/TestBooleanMinShouldMatch.cs b/src/Lucene.Net.Tests/Search/TestBooleanMinShouldMatch.cs
index 2a94300..4387716 100644
--- a/src/Lucene.Net.Tests/Search/TestBooleanMinShouldMatch.cs
+++ b/src/Lucene.Net.Tests/Search/TestBooleanMinShouldMatch.cs
@@ -1,7 +1,7 @@
 using System;
 using System.Globalization;
 using Lucene.Net.Documents;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search
 {
diff --git a/src/Lucene.Net.Tests/Search/TestBooleanQuery.cs b/src/Lucene.Net.Tests/Search/TestBooleanQuery.cs
index c6e2a0f..aaea68a 100644
--- a/src/Lucene.Net.Tests/Search/TestBooleanQuery.cs
+++ b/src/Lucene.Net.Tests/Search/TestBooleanQuery.cs
@@ -1,7 +1,7 @@
 using System;
 using System.Collections.Generic;
 using Lucene.Net.Documents;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search
 {
diff --git a/src/Lucene.Net.Tests/Search/TestControlledRealTimeReopenThread.cs b/src/Lucene.Net.Tests/Search/TestControlledRealTimeReopenThread.cs
index 8362b13..07ef56d 100644
--- a/src/Lucene.Net.Tests/Search/TestControlledRealTimeReopenThread.cs
+++ b/src/Lucene.Net.Tests/Search/TestControlledRealTimeReopenThread.cs
@@ -9,7 +9,7 @@ using System.Linq;
 using System.Text;
 using System.Threading;
 using System.Threading.Tasks;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search
 {
diff --git a/src/Lucene.Net.Tests/Search/TestCustomSearcherSort.cs b/src/Lucene.Net.Tests/Search/TestCustomSearcherSort.cs
index f38a453..25af02b 100644
--- a/src/Lucene.Net.Tests/Search/TestCustomSearcherSort.cs
+++ b/src/Lucene.Net.Tests/Search/TestCustomSearcherSort.cs
@@ -4,7 +4,7 @@ using System.Collections.Generic;
 using System.Text;
 using Lucene.Net.Documents;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search
 {
diff --git a/src/Lucene.Net.Tests/Search/TestDisjunctionMaxQuery.cs b/src/Lucene.Net.Tests/Search/TestDisjunctionMaxQuery.cs
index ee6af75..298d087 100644
--- a/src/Lucene.Net.Tests/Search/TestDisjunctionMaxQuery.cs
+++ b/src/Lucene.Net.Tests/Search/TestDisjunctionMaxQuery.cs
@@ -3,7 +3,7 @@ using System.Globalization;
 using Lucene.Net.Documents;
 using Lucene.Net.Index.Extensions;
 using NUnit.Framework;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search
 {
diff --git a/src/Lucene.Net.Tests/Search/TestDocBoost.cs b/src/Lucene.Net.Tests/Search/TestDocBoost.cs
index d1a7112..00b2774 100644
--- a/src/Lucene.Net.Tests/Search/TestDocBoost.cs
+++ b/src/Lucene.Net.Tests/Search/TestDocBoost.cs
@@ -1,7 +1,7 @@
 using Lucene.Net.Documents;
 using Lucene.Net.Index.Extensions;
 using NUnit.Framework;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search
 {
diff --git a/src/Lucene.Net.Tests/Search/TestDocIdSet.cs b/src/Lucene.Net.Tests/Search/TestDocIdSet.cs
index bedc550..101bd59 100644
--- a/src/Lucene.Net.Tests/Search/TestDocIdSet.cs
+++ b/src/Lucene.Net.Tests/Search/TestDocIdSet.cs
@@ -1,7 +1,7 @@
 using System;
 using System.Collections.Generic;
 using Lucene.Net.Documents;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search
 {
diff --git a/src/Lucene.Net.Tests/Search/TestDocTermOrdsRangeFilter.cs b/src/Lucene.Net.Tests/Search/TestDocTermOrdsRangeFilter.cs
index 7c2fd80..a2949f7 100644
--- a/src/Lucene.Net.Tests/Search/TestDocTermOrdsRangeFilter.cs
+++ b/src/Lucene.Net.Tests/Search/TestDocTermOrdsRangeFilter.cs
@@ -3,7 +3,7 @@ using Lucene.Net.Index.Extensions;
 using NUnit.Framework;
 using System;
 using System.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search
 {
diff --git a/src/Lucene.Net.Tests/Search/TestDocTermOrdsRewriteMethod.cs b/src/Lucene.Net.Tests/Search/TestDocTermOrdsRewriteMethod.cs
index ff6cde3..5caba8b 100644
--- a/src/Lucene.Net.Tests/Search/TestDocTermOrdsRewriteMethod.cs
+++ b/src/Lucene.Net.Tests/Search/TestDocTermOrdsRewriteMethod.cs
@@ -4,7 +4,7 @@ using Lucene.Net.Util.Automaton;
 using NUnit.Framework;
 using System;
 using System.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search
 {
diff --git a/src/Lucene.Net.Tests/Search/TestFieldCache.cs b/src/Lucene.Net.Tests/Search/TestFieldCache.cs
index f2e2dd0..1666206 100644
--- a/src/Lucene.Net.Tests/Search/TestFieldCache.cs
+++ b/src/Lucene.Net.Tests/Search/TestFieldCache.cs
@@ -11,7 +11,7 @@ using System.Globalization;
 using System.IO;
 using System.Text;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 using System.Linq;
 
 namespace Lucene.Net.Search
diff --git a/src/Lucene.Net.Tests/Search/TestLiveFieldValues.cs b/src/Lucene.Net.Tests/Search/TestLiveFieldValues.cs
index 7d6cbf3..9686e1a 100644
--- a/src/Lucene.Net.Tests/Search/TestLiveFieldValues.cs
+++ b/src/Lucene.Net.Tests/Search/TestLiveFieldValues.cs
@@ -6,7 +6,7 @@ using System;
 using System.Collections.Generic;
 using System.Globalization;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search
 {
diff --git a/src/Lucene.Net.Tests/Search/TestMultiPhraseQuery.cs b/src/Lucene.Net.Tests/Search/TestMultiPhraseQuery.cs
index 4a8d3b1..567ef03 100644
--- a/src/Lucene.Net.Tests/Search/TestMultiPhraseQuery.cs
+++ b/src/Lucene.Net.Tests/Search/TestMultiPhraseQuery.cs
@@ -3,7 +3,7 @@ using System.Collections.Generic;
 using System.Linq;
 using Lucene.Net.Documents;
 using NUnit.Framework;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search
 {
diff --git a/src/Lucene.Net.Tests/Search/TestMultiTermConstantScore.cs b/src/Lucene.Net.Tests/Search/TestMultiTermConstantScore.cs
index 738bef1..3742e07 100644
--- a/src/Lucene.Net.Tests/Search/TestMultiTermConstantScore.cs
+++ b/src/Lucene.Net.Tests/Search/TestMultiTermConstantScore.cs
@@ -2,7 +2,7 @@ using Lucene.Net.Documents;
 using Lucene.Net.Index.Extensions;
 using NUnit.Framework;
 using System;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search
 {
diff --git a/src/Lucene.Net.Tests/Search/TestMultiTermQueryRewrites.cs b/src/Lucene.Net.Tests/Search/TestMultiTermQueryRewrites.cs
index 47fe922..a53b1ce 100644
--- a/src/Lucene.Net.Tests/Search/TestMultiTermQueryRewrites.cs
+++ b/src/Lucene.Net.Tests/Search/TestMultiTermQueryRewrites.cs
@@ -1,7 +1,7 @@
 using System;
 using System.Diagnostics;
 using Lucene.Net.Documents;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search
 {
diff --git a/src/Lucene.Net.Tests/Search/TestMultiThreadTermVectors.cs b/src/Lucene.Net.Tests/Search/TestMultiThreadTermVectors.cs
index b70f09a..0062bf8 100644
--- a/src/Lucene.Net.Tests/Search/TestMultiThreadTermVectors.cs
+++ b/src/Lucene.Net.Tests/Search/TestMultiThreadTermVectors.cs
@@ -7,7 +7,7 @@ using System.Diagnostics;
 using System.IO;
 using System.Text;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search
 {
diff --git a/src/Lucene.Net.Tests/Search/TestNumericRangeQuery32.cs b/src/Lucene.Net.Tests/Search/TestNumericRangeQuery32.cs
index 0e9efe6..4140353 100644
--- a/src/Lucene.Net.Tests/Search/TestNumericRangeQuery32.cs
+++ b/src/Lucene.Net.Tests/Search/TestNumericRangeQuery32.cs
@@ -3,7 +3,7 @@ using Lucene.Net.Index.Extensions;
 using NUnit.Framework;
 using System;
 using System.Diagnostics;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search
 {
diff --git a/src/Lucene.Net.Tests/Search/TestNumericRangeQuery64.cs b/src/Lucene.Net.Tests/Search/TestNumericRangeQuery64.cs
index affef00..c1482e8 100644
--- a/src/Lucene.Net.Tests/Search/TestNumericRangeQuery64.cs
+++ b/src/Lucene.Net.Tests/Search/TestNumericRangeQuery64.cs
@@ -3,7 +3,7 @@ using Lucene.Net.Index.Extensions;
 using NUnit.Framework;
 using System;
 using System.Diagnostics;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search
 {
diff --git a/src/Lucene.Net.Tests/Search/TestPositionIncrement.cs b/src/Lucene.Net.Tests/Search/TestPositionIncrement.cs
index 117dfb0..ce05331 100644
--- a/src/Lucene.Net.Tests/Search/TestPositionIncrement.cs
+++ b/src/Lucene.Net.Tests/Search/TestPositionIncrement.cs
@@ -3,7 +3,7 @@ using System;
 using System.Collections.Generic;
 using System.Text;
 using Lucene.Net.Documents;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search
 {
diff --git a/src/Lucene.Net.Tests/Search/TestRegexpRandom2.cs b/src/Lucene.Net.Tests/Search/TestRegexpRandom2.cs
index b0b9d22..14a68f4 100644
--- a/src/Lucene.Net.Tests/Search/TestRegexpRandom2.cs
+++ b/src/Lucene.Net.Tests/Search/TestRegexpRandom2.cs
@@ -4,7 +4,7 @@ using Lucene.Net.Util.Automaton;
 using NUnit.Framework;
 using System;
 using System.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search
 {
diff --git a/src/Lucene.Net.Tests/Search/TestScorerPerf.cs b/src/Lucene.Net.Tests/Search/TestScorerPerf.cs
index cdf6e51..347fc86 100644
--- a/src/Lucene.Net.Tests/Search/TestScorerPerf.cs
+++ b/src/Lucene.Net.Tests/Search/TestScorerPerf.cs
@@ -4,7 +4,7 @@ using Lucene.Net.Index.Extensions;
 using Lucene.Net.Support;
 using System;
 using System.Collections;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search
 {
diff --git a/src/Lucene.Net.Tests/Search/TestSearchAfter.cs b/src/Lucene.Net.Tests/Search/TestSearchAfter.cs
index bb434fa..630c173 100644
--- a/src/Lucene.Net.Tests/Search/TestSearchAfter.cs
+++ b/src/Lucene.Net.Tests/Search/TestSearchAfter.cs
@@ -7,7 +7,7 @@ using Lucene.Net.Randomized.Generators;
 using Lucene.Net.Support;
 using Lucene.Net.Util;
 using NUnit.Framework;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search
 {
diff --git a/src/Lucene.Net.Tests/Search/TestSearchWithThreads.cs b/src/Lucene.Net.Tests/Search/TestSearchWithThreads.cs
index 433d127..568ef69 100644
--- a/src/Lucene.Net.Tests/Search/TestSearchWithThreads.cs
+++ b/src/Lucene.Net.Tests/Search/TestSearchWithThreads.cs
@@ -4,7 +4,7 @@ using Lucene.Net.Documents;
 using NUnit.Framework;
 using System;
 using System.Text;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search
 {
diff --git a/src/Lucene.Net.Tests/Search/TestSearcherManager.cs b/src/Lucene.Net.Tests/Search/TestSearcherManager.cs
index 2d6d21a..b97fadb 100644
--- a/src/Lucene.Net.Tests/Search/TestSearcherManager.cs
+++ b/src/Lucene.Net.Tests/Search/TestSearcherManager.cs
@@ -8,7 +8,7 @@ using System;
 using System.Collections.Generic;
 using System.Threading;
 using System.Threading.Tasks;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 
 namespace Lucene.Net.Search
diff --git a/src/Lucene.Net.Tests/Search/TestShardSearching.cs b/src/Lucene.Net.Tests/Search/TestShardSearching.cs
index 4e4e301..50385b9 100644
--- a/src/Lucene.Net.Tests/Search/TestShardSearching.cs
+++ b/src/Lucene.Net.Tests/Search/TestShardSearching.cs
@@ -4,7 +4,7 @@ using Lucene.Net.Support;
 using NUnit.Framework;
 using System;
 using System.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search
 {
diff --git a/src/Lucene.Net.Tests/Search/TestSortRandom.cs b/src/Lucene.Net.Tests/Search/TestSortRandom.cs
index 1f127eb..cea0598 100644
--- a/src/Lucene.Net.Tests/Search/TestSortRandom.cs
+++ b/src/Lucene.Net.Tests/Search/TestSortRandom.cs
@@ -5,7 +5,7 @@ using System;
 using System.Collections.Generic;
 using System.Linq;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search
 {
diff --git a/src/Lucene.Net.Tests/Search/TestTimeLimitingCollector.cs b/src/Lucene.Net.Tests/Search/TestTimeLimitingCollector.cs
index 078fe9f..9a05ee7 100644
--- a/src/Lucene.Net.Tests/Search/TestTimeLimitingCollector.cs
+++ b/src/Lucene.Net.Tests/Search/TestTimeLimitingCollector.cs
@@ -10,7 +10,7 @@ using NUnit.Framework;
 using System;
 using System.Diagnostics;
 using System.Text.RegularExpressions;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search
 {
diff --git a/src/Lucene.Net.Tests/Search/TestTopDocsMerge.cs b/src/Lucene.Net.Tests/Search/TestTopDocsMerge.cs
index 41e0cc0..e39a948 100644
--- a/src/Lucene.Net.Tests/Search/TestTopDocsMerge.cs
+++ b/src/Lucene.Net.Tests/Search/TestTopDocsMerge.cs
@@ -3,7 +3,7 @@ using System.Collections.Generic;
 using System.Text;
 using Lucene.Net.Documents;
 using Lucene.Net.Util;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search
 {
diff --git a/src/Lucene.Net.Tests/Search/TestWildcard.cs b/src/Lucene.Net.Tests/Search/TestWildcard.cs
index 8684ada..b5ed723 100644
--- a/src/Lucene.Net.Tests/Search/TestWildcard.cs
+++ b/src/Lucene.Net.Tests/Search/TestWildcard.cs
@@ -1,7 +1,7 @@
 using Lucene.Net.Documents;
 using Lucene.Net.Index.Extensions;
 using NUnit.Framework;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search
 {
diff --git a/src/Lucene.Net.Tests/Search/TestWildcardRandom.cs b/src/Lucene.Net.Tests/Search/TestWildcardRandom.cs
index e3e5e5b..4080e15 100644
--- a/src/Lucene.Net.Tests/Search/TestWildcardRandom.cs
+++ b/src/Lucene.Net.Tests/Search/TestWildcardRandom.cs
@@ -3,7 +3,7 @@ using Lucene.Net.Index.Extensions;
 using NUnit.Framework;
 using System;
 using System.Text;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Search
 {
diff --git a/src/Lucene.Net.Tests/Store/TestCopyBytes.cs b/src/Lucene.Net.Tests/Store/TestCopyBytes.cs
index 230b81f..c538c50 100644
--- a/src/Lucene.Net.Tests/Store/TestCopyBytes.cs
+++ b/src/Lucene.Net.Tests/Store/TestCopyBytes.cs
@@ -3,7 +3,7 @@ using Lucene.Net.Attributes;
 using NUnit.Framework;
 using System;
 using System.IO;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Store
 {
diff --git a/src/Lucene.Net.Tests/Store/TestDirectory.cs b/src/Lucene.Net.Tests/Store/TestDirectory.cs
index a1b606e..3127296 100644
--- a/src/Lucene.Net.Tests/Store/TestDirectory.cs
+++ b/src/Lucene.Net.Tests/Store/TestDirectory.cs
@@ -7,7 +7,7 @@ using NUnit.Framework;
 using System;
 using System.IO;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Store
 {
diff --git a/src/Lucene.Net.Tests/Store/TestLockFactory.cs b/src/Lucene.Net.Tests/Store/TestLockFactory.cs
index 012c95f..6b01ab9 100644
--- a/src/Lucene.Net.Tests/Store/TestLockFactory.cs
+++ b/src/Lucene.Net.Tests/Store/TestLockFactory.cs
@@ -7,7 +7,7 @@ using System;
 using System.Collections.Generic;
 using System.IO;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Store
 {
diff --git a/src/Lucene.Net.Tests/Store/TestNRTCachingDirectory.cs b/src/Lucene.Net.Tests/Store/TestNRTCachingDirectory.cs
index ab8b910..b72fc69 100644
--- a/src/Lucene.Net.Tests/Store/TestNRTCachingDirectory.cs
+++ b/src/Lucene.Net.Tests/Store/TestNRTCachingDirectory.cs
@@ -3,7 +3,7 @@ using NUnit.Framework;
 using System;
 using System.Collections.Generic;
 using System.IO;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Store
 {
diff --git a/src/Lucene.Net.Tests/Support/Index/TestTaskMergeScheduler.cs b/src/Lucene.Net.Tests/Support/Index/TestTaskMergeScheduler.cs
index 0b28e46..31f06cd 100644
--- a/src/Lucene.Net.Tests/Support/Index/TestTaskMergeScheduler.cs
+++ b/src/Lucene.Net.Tests/Support/Index/TestTaskMergeScheduler.cs
@@ -6,7 +6,7 @@ using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 using System.IO;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net.Tests/TestExternalCodecs.cs b/src/Lucene.Net.Tests/TestExternalCodecs.cs
index 7d0bb60..52b27d4 100644
--- a/src/Lucene.Net.Tests/TestExternalCodecs.cs
+++ b/src/Lucene.Net.Tests/TestExternalCodecs.cs
@@ -1,7 +1,7 @@
 using Lucene.Net.Index.Extensions;
 using NUnit.Framework;
 using System;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net
 {
diff --git a/src/Lucene.Net.Tests/TestMergeSchedulerExternal.cs b/src/Lucene.Net.Tests/TestMergeSchedulerExternal.cs
index 9066507..513661f 100644
--- a/src/Lucene.Net.Tests/TestMergeSchedulerExternal.cs
+++ b/src/Lucene.Net.Tests/TestMergeSchedulerExternal.cs
@@ -6,7 +6,7 @@ using NUnit.Framework;
 using System;
 using System.IO;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net
 {
diff --git a/src/Lucene.Net.Tests/TestSearch.cs b/src/Lucene.Net.Tests/TestSearch.cs
index e258134..ca9cb15 100644
--- a/src/Lucene.Net.Tests/TestSearch.cs
+++ b/src/Lucene.Net.Tests/TestSearch.cs
@@ -7,7 +7,7 @@ using NUnit.Framework;
 using System;
 using System.Collections.Generic;
 using System.IO;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 using Occur = Lucene.Net.Search.Occur;
 
 namespace Lucene.Net
diff --git a/src/Lucene.Net.Tests/TestSearchForDuplicates.cs b/src/Lucene.Net.Tests/TestSearchForDuplicates.cs
index 7736866..fef0d22 100644
--- a/src/Lucene.Net.Tests/TestSearchForDuplicates.cs
+++ b/src/Lucene.Net.Tests/TestSearchForDuplicates.cs
@@ -6,7 +6,7 @@ using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 using System.IO;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net
 {
diff --git a/src/Lucene.Net.Tests/TestWorstCaseTestBehavior.cs b/src/Lucene.Net.Tests/TestWorstCaseTestBehavior.cs
index efa06dc..5c21baa 100644
--- a/src/Lucene.Net.Tests/TestWorstCaseTestBehavior.cs
+++ b/src/Lucene.Net.Tests/TestWorstCaseTestBehavior.cs
@@ -4,7 +4,7 @@ using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net
 {
diff --git a/src/Lucene.Net.Tests/Util/Automaton/TestBasicOperations.cs b/src/Lucene.Net.Tests/Util/Automaton/TestBasicOperations.cs
index 6f353b0..b582bc7 100644
--- a/src/Lucene.Net.Tests/Util/Automaton/TestBasicOperations.cs
+++ b/src/Lucene.Net.Tests/Util/Automaton/TestBasicOperations.cs
@@ -2,7 +2,7 @@ using Lucene.Net.Randomized.Generators;
 using NUnit.Framework;
 using System;
 using System.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Util.Automaton
 {
diff --git a/src/Lucene.Net.Tests/Util/Automaton/TestCompiledAutomaton.cs b/src/Lucene.Net.Tests/Util/Automaton/TestCompiledAutomaton.cs
index d9ef384..349befe 100644
--- a/src/Lucene.Net.Tests/Util/Automaton/TestCompiledAutomaton.cs
+++ b/src/Lucene.Net.Tests/Util/Automaton/TestCompiledAutomaton.cs
@@ -3,7 +3,7 @@ using System;
 using System.Collections.Generic;
 using System.Linq;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Util.Automaton
 {
diff --git a/src/Lucene.Net.Tests/Util/Automaton/TestMinimize.cs b/src/Lucene.Net.Tests/Util/Automaton/TestMinimize.cs
index 20f30b8..5c0a922 100644
--- a/src/Lucene.Net.Tests/Util/Automaton/TestMinimize.cs
+++ b/src/Lucene.Net.Tests/Util/Automaton/TestMinimize.cs
@@ -1,5 +1,5 @@
 using NUnit.Framework;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Util.Automaton
 {
diff --git a/src/Lucene.Net.Tests/Util/Automaton/TestUTF32ToUTF8.cs b/src/Lucene.Net.Tests/Util/Automaton/TestUTF32ToUTF8.cs
index 4559a2d..f8b0ce0 100644
--- a/src/Lucene.Net.Tests/Util/Automaton/TestUTF32ToUTF8.cs
+++ b/src/Lucene.Net.Tests/Util/Automaton/TestUTF32ToUTF8.cs
@@ -4,7 +4,7 @@ using NUnit.Framework;
 using System;
 using System.Diagnostics;
 using System.Text;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Util.Automaton
 {
diff --git a/src/Lucene.Net.Tests/Util/Fst/Test2BFST.cs b/src/Lucene.Net.Tests/Util/Fst/Test2BFST.cs
index a6ddb60..c2f824b 100644
--- a/src/Lucene.Net.Tests/Util/Fst/Test2BFST.cs
+++ b/src/Lucene.Net.Tests/Util/Fst/Test2BFST.cs
@@ -1,7 +1,7 @@
 using Lucene.Net.Support;
 using NUnit.Framework;
 using System;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Util.Fst
 {
diff --git a/src/Lucene.Net.Tests/Util/Fst/TestBytesStore.cs b/src/Lucene.Net.Tests/Util/Fst/TestBytesStore.cs
index 40f6f3e..7ab90b1 100644
--- a/src/Lucene.Net.Tests/Util/Fst/TestBytesStore.cs
+++ b/src/Lucene.Net.Tests/Util/Fst/TestBytesStore.cs
@@ -1,7 +1,7 @@
 using System;
 using Lucene.Net.Randomized.Generators;
 using NUnit.Framework;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Util.Fst
 {
diff --git a/src/Lucene.Net.Tests/Util/Fst/TestFSTs.cs b/src/Lucene.Net.Tests/Util/Fst/TestFSTs.cs
index 2f8b7ce..d5efc6f 100644
--- a/src/Lucene.Net.Tests/Util/Fst/TestFSTs.cs
+++ b/src/Lucene.Net.Tests/Util/Fst/TestFSTs.cs
@@ -12,7 +12,7 @@ using System.IO;
 using System.Linq;
 using System.Text;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 using J2N.Collections.Generic.Extensions;
 
 namespace Lucene.Net.Util.Fst
diff --git a/src/Lucene.Net.Tests/Util/Packed/TestPackedInts.cs b/src/Lucene.Net.Tests/Util/Packed/TestPackedInts.cs
index 28b4fd3..b3b6ad0 100644
--- a/src/Lucene.Net.Tests/Util/Packed/TestPackedInts.cs
+++ b/src/Lucene.Net.Tests/Util/Packed/TestPackedInts.cs
@@ -7,7 +7,7 @@ using System.Collections.Generic;
 using System.Globalization;
 using System.IO;
 
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Util.Packed
 {
diff --git a/src/Lucene.Net.Tests/Util/StressRamUsageEstimator.cs b/src/Lucene.Net.Tests/Util/StressRamUsageEstimator.cs
index 8c2c269..58d3a19 100644
--- a/src/Lucene.Net.Tests/Util/StressRamUsageEstimator.cs
+++ b/src/Lucene.Net.Tests/Util/StressRamUsageEstimator.cs
@@ -3,7 +3,7 @@ using Lucene.Net.Support;
 using NUnit.Framework;
 using System;
 using System.Globalization;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Util
 {
diff --git a/src/Lucene.Net.Tests/Util/TestArrayUtil.cs b/src/Lucene.Net.Tests/Util/TestArrayUtil.cs
index 0c9f32b..6e7e9cd 100644
--- a/src/Lucene.Net.Tests/Util/TestArrayUtil.cs
+++ b/src/Lucene.Net.Tests/Util/TestArrayUtil.cs
@@ -2,7 +2,7 @@ using Lucene.Net.Randomized.Generators;
 using Lucene.Net.Support;
 using NUnit.Framework;
 using System;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Util
 {
diff --git a/src/Lucene.Net.Tests/Util/TestConstants.cs b/src/Lucene.Net.Tests/Util/TestConstants.cs
index 20a0e3e..13e57c4 100644
--- a/src/Lucene.Net.Tests/Util/TestConstants.cs
+++ b/src/Lucene.Net.Tests/Util/TestConstants.cs
@@ -2,7 +2,7 @@ using System;
 using Lucene.Net.Support;
 using NUnit.Framework;
 using System.Text.RegularExpressions;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Util
 {
diff --git a/src/Lucene.Net.Tests/Util/TestFieldCacheSanityChecker.cs b/src/Lucene.Net.Tests/Util/TestFieldCacheSanityChecker.cs
index 8c92310..0222663 100644
--- a/src/Lucene.Net.Tests/Util/TestFieldCacheSanityChecker.cs
+++ b/src/Lucene.Net.Tests/Util/TestFieldCacheSanityChecker.cs
@@ -4,7 +4,7 @@ using NUnit.Framework;
 using System;
 using System.Globalization;
 using System.IO;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Util
 {
diff --git a/src/Lucene.Net.Tests/Util/TestPriorityQueue.cs b/src/Lucene.Net.Tests/Util/TestPriorityQueue.cs
index f861d28..7a5c69c 100644
--- a/src/Lucene.Net.Tests/Util/TestPriorityQueue.cs
+++ b/src/Lucene.Net.Tests/Util/TestPriorityQueue.cs
@@ -2,7 +2,7 @@ using Lucene.Net.Attributes;
 using NUnit.Framework;
 using System;
 using System.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Util
 {
diff --git a/src/Lucene.Net.Tests/Util/TestRollingBuffer.cs b/src/Lucene.Net.Tests/Util/TestRollingBuffer.cs
index 57c201a..05d7ebb 100644
--- a/src/Lucene.Net.Tests/Util/TestRollingBuffer.cs
+++ b/src/Lucene.Net.Tests/Util/TestRollingBuffer.cs
@@ -1,6 +1,6 @@
 using NUnit.Framework;
 using System;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Util
 {
diff --git a/src/Lucene.Net.Tests/Util/TestUnicodeUtil.cs b/src/Lucene.Net.Tests/Util/TestUnicodeUtil.cs
index 4e2508c..849f60d 100644
--- a/src/Lucene.Net.Tests/Util/TestUnicodeUtil.cs
+++ b/src/Lucene.Net.Tests/Util/TestUnicodeUtil.cs
@@ -1,7 +1,7 @@
 using J2N;
 using NUnit.Framework;
 using System;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Util
 {
diff --git a/src/Lucene.Net/Codecs/Lucene3x/Lucene3xFields.cs b/src/Lucene.Net/Codecs/Lucene3x/Lucene3xFields.cs
index 100a5c3..3cd8505 100644
--- a/src/Lucene.Net/Codecs/Lucene3x/Lucene3xFields.cs
+++ b/src/Lucene.Net/Codecs/Lucene3x/Lucene3xFields.cs
@@ -4,7 +4,7 @@ using System;
 using System.Collections.Generic;
 using System.Diagnostics;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Codecs.Lucene3x
 {
diff --git a/src/Lucene.Net/Index/CheckIndex.cs b/src/Lucene.Net/Index/CheckIndex.cs
index 4fc75bb..a77b4e1 100644
--- a/src/Lucene.Net/Index/CheckIndex.cs
+++ b/src/Lucene.Net/Index/CheckIndex.cs
@@ -9,7 +9,7 @@ using System.Diagnostics;
 using System.Globalization;
 using System.IO;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net/Index/IndexUpgrader.cs b/src/Lucene.Net/Index/IndexUpgrader.cs
index 0e7ad2f..80e0bcf 100644
--- a/src/Lucene.Net/Index/IndexUpgrader.cs
+++ b/src/Lucene.Net/Index/IndexUpgrader.cs
@@ -2,7 +2,7 @@ using Lucene.Net.Util;
 using System;
 using System.Collections.Generic;
 using System.IO;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Index
 {
diff --git a/src/Lucene.Net/Store/LockStressTest.cs b/src/Lucene.Net/Store/LockStressTest.cs
index 1eab4c7..3913d41 100644
--- a/src/Lucene.Net/Store/LockStressTest.cs
+++ b/src/Lucene.Net/Store/LockStressTest.cs
@@ -5,7 +5,7 @@ using System.Linq;
 using System.Net;
 using System.Net.Sockets;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Store
 {
diff --git a/src/Lucene.Net/Store/LockVerifyServer.cs b/src/Lucene.Net/Store/LockVerifyServer.cs
index 0f7a2da..2ebf4a4 100644
--- a/src/Lucene.Net/Store/LockVerifyServer.cs
+++ b/src/Lucene.Net/Store/LockVerifyServer.cs
@@ -6,7 +6,7 @@ using System.IO;
 using System.Net;
 using System.Net.Sockets;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Store
 {
diff --git a/src/Lucene.Net/Store/NRTCachingDirectory.cs b/src/Lucene.Net/Store/NRTCachingDirectory.cs
index 65b6345..4522ade 100644
--- a/src/Lucene.Net/Store/NRTCachingDirectory.cs
+++ b/src/Lucene.Net/Store/NRTCachingDirectory.cs
@@ -3,7 +3,7 @@ using System.Collections.Generic;
 using System.IO;
 using System.Linq;
 using JCG = J2N.Collections.Generic;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Store
 {
diff --git a/src/Lucene.Net/Support/SystemConsole.cs b/src/Lucene.Net/Support/Util/SystemConsole.cs
similarity index 99%
rename from src/Lucene.Net/Support/SystemConsole.cs
rename to src/Lucene.Net/Support/Util/SystemConsole.cs
index dd25756..07b6e32 100644
--- a/src/Lucene.Net/Support/SystemConsole.cs
+++ b/src/Lucene.Net/Support/Util/SystemConsole.cs
@@ -5,7 +5,7 @@ using System.Runtime.CompilerServices;
 using System.Security.Permissions;
 #endif
 
-namespace Lucene.Net.Support
+namespace Lucene.Net.Util
 {
     /*
      * Licensed to the Apache Software Foundation (ASF) under one or more
diff --git a/src/Lucene.Net/Util/PrintStreamInfoStream.cs b/src/Lucene.Net/Util/PrintStreamInfoStream.cs
index 950dd32..435477c 100644
--- a/src/Lucene.Net/Util/PrintStreamInfoStream.cs
+++ b/src/Lucene.Net/Util/PrintStreamInfoStream.cs
@@ -4,7 +4,7 @@ using System;
 using System.IO;
 using System.Reflection;
 using System.Threading;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Util
 {
diff --git a/src/dotnet/tools/lucene-cli/CommandLine/CommandLineApplication.cs b/src/dotnet/tools/lucene-cli/CommandLine/CommandLineApplication.cs
index e3e5a3a..fa287c2 100644
--- a/src/dotnet/tools/lucene-cli/CommandLine/CommandLineApplication.cs
+++ b/src/dotnet/tools/lucene-cli/CommandLine/CommandLineApplication.cs
@@ -8,7 +8,7 @@ using System.IO;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
-using Console = Lucene.Net.Support.SystemConsole;
+using Console = Lucene.Net.Util.SystemConsole;
 
 namespace Lucene.Net.Cli.CommandLine
 {


[lucenenet] 28/35: BREAKING: Lucene.Net.TestFramework.Support.JavaCompatibility.AbstractBeforeAfterRule: Moved from Lucene.Net.Support namespace to Lucene.Net.Util

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit 86d16944d56a0804a841b39e023c1c131f267701
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Sat Feb 8 17:39:00 2020 +0700

    BREAKING: Lucene.Net.TestFramework.Support.JavaCompatibility.AbstractBeforeAfterRule: Moved from Lucene.Net.Support namespace to Lucene.Net.Util
---
 .../JavaCompatibility/AbstractBeforeAfterRule.cs   |  36 ------
 .../Util/AbstractBeforeAfterRule.cs                | 123 ++++++---------------
 2 files changed, 31 insertions(+), 128 deletions(-)

diff --git a/src/Lucene.Net.TestFramework/Support/JavaCompatibility/AbstractBeforeAfterRule.cs b/src/Lucene.Net.TestFramework/Support/JavaCompatibility/AbstractBeforeAfterRule.cs
deleted file mode 100644
index d7133b4..0000000
--- a/src/Lucene.Net.TestFramework/Support/JavaCompatibility/AbstractBeforeAfterRule.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using Lucene.Net.Util;
-
-namespace Lucene.Net.Support
-{
-    /*
-     * Licensed to the Apache Software Foundation (ASF) under one or more
-     * contributor license agreements.  See the NOTICE file distributed with
-     * this work for additional information regarding copyright ownership.
-     * The ASF licenses this file to You under the Apache License, Version 2.0
-     * (the "License"); you may not use this file except in compliance with
-     * the License.  You may obtain a copy of the License at
-     *
-     *     http://www.apache.org/licenses/LICENSE-2.0
-     *
-     * Unless required by applicable law or agreed to in writing, software
-     * distributed under the License is distributed on an "AS IS" BASIS,
-     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     * See the License for the specific language governing permissions and
-     * limitations under the License.
-     */
-
-    /// <summary>
-    /// LUCENENET specific for mimicking the JUnit rule functionality.
-    /// We simplify things by just running the rules inside LuceneTestCase.
-    /// </summary>
-    public abstract class AbstractBeforeAfterRule
-    {
-        public virtual void Before(LuceneTestCase testInstance)
-        {
-        }
-
-        public virtual void After(LuceneTestCase testInstance)
-        {
-        }
-    }
-}
diff --git a/src/Lucene.Net.TestFramework/Util/AbstractBeforeAfterRule.cs b/src/Lucene.Net.TestFramework/Util/AbstractBeforeAfterRule.cs
index 26f7eb2..5fe37d8 100644
--- a/src/Lucene.Net.TestFramework/Util/AbstractBeforeAfterRule.cs
+++ b/src/Lucene.Net.TestFramework/Util/AbstractBeforeAfterRule.cs
@@ -1,95 +1,34 @@
-#if TESTFRAMEWORK
-// LUCENENET NOTE: This is incomplete
-using System;
-using System.Collections.Generic;
-
 namespace Lucene.Net.Util
 {
-
-	/*using After = org.junit.After;
-	using AfterClass = org.junit.AfterClass;
-	using RuleChain = org.junit.rules.RuleChain;
-	using TestRule = org.junit.rules.TestRule;
-	using Description = org.junit.runner.Description;
-	using MultipleFailureException = org.junit.runners.model.MultipleFailureException;
-	using Statement = org.junit.runners.model.Statement;*/
-
-	/*
-	 * Licensed to the Apache Software Foundation (ASF) under one or more
-	 * contributor license agreements.  See the NOTICE file distributed with
-	 * this work for additional information regarding copyright ownership.
-	 * The ASF licenses this file to You under the Apache License, Version 2.0
-	 * (the "License"); you may not use this file except in compliance with
-	 * the License.  You may obtain a copy of the License at
-	 *
-	 *     http://www.apache.org/licenses/LICENSE-2.0
-	 *
-	 * Unless required by applicable law or agreed to in writing, software
-	 * distributed under the License is distributed on an "AS IS" BASIS,
-	 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-	 * See the License for the specific language governing permissions and
-	 * limitations under the License.
-	 */
-
-	/// <summary>
-	/// A <seealso cref="TestRule"/> that guarantees the execution of <seealso cref="#after"/> even
-	/// if an exception has been thrown from delegate <seealso cref="Statement"/>. this is much
-	/// like <seealso cref="AfterClass"/> or <seealso cref="After"/> annotations but can be used with
-	/// <seealso cref="RuleChain"/> to guarantee the order of execution.
-	/// </summary>
-	internal abstract class AbstractBeforeAfterRule : TestRule
-	{
-	  public override Statement Apply(Statement s, Description d)
-	  {
-		return new StatementAnonymousInnerClassHelper(this, s);
-	  }
-
-	  private class StatementAnonymousInnerClassHelper : Statement
-	  {
-		  private readonly AbstractBeforeAfterRule OuterInstance;
-
-		  private Statement s;
-
-		  public StatementAnonymousInnerClassHelper(AbstractBeforeAfterRule outerInstance, Statement s)
-		  {
-			  this.OuterInstance = outerInstance;
-			  this.s = s;
-		  }
-
-		  public override void Evaluate()
-		  {
-			List<Exception> errors = new List<Exception>();
-
-			try
-			{
-			  OuterInstance.Before();
-			  s.evaluate();
-			}
-			catch (Exception t)
-			{
-			  errors.Add(t);
-			}
-
-			try
-			{
-                OuterInstance.After();
-			}
-			catch (Exception t)
-			{
-			  errors.Add(t);
-			}
-
-			MultipleFailureException.assertEmpty(errors);
-		  }
-	  }
-
-	  protected internal virtual void Before()
-	  {
-	  }
-	  protected internal virtual void After()
-	  {
-	  }
-	}
-
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+
+    /// <summary>
+    /// LUCENENET specific for mimicking the JUnit rule functionality.
+    /// We simplify things by just running the rules inside LuceneTestCase.
+    /// </summary>
+    public abstract class AbstractBeforeAfterRule
+    {
+        public virtual void Before(LuceneTestCase testInstance)
+        {
+        }
+
+        public virtual void After(LuceneTestCase testInstance)
+        {
+        }
+    }
 }
-#endif
\ No newline at end of file


[lucenenet] 13/35: BREAKING: Lucene.Net.Support: Marked BitArrayExtensions internal

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit 9c867a128e9e1701e15cb692b3ed61cc1a8d6f05
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Thu Feb 6 23:34:53 2020 +0700

    BREAKING: Lucene.Net.Support: Marked BitArrayExtensions internal
---
 src/Lucene.Net/Support/BitArrayExtensions.cs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/Lucene.Net/Support/BitArrayExtensions.cs b/src/Lucene.Net/Support/BitArrayExtensions.cs
index e9c36c1..2639bfa 100644
--- a/src/Lucene.Net/Support/BitArrayExtensions.cs
+++ b/src/Lucene.Net/Support/BitArrayExtensions.cs
@@ -29,7 +29,7 @@ namespace Lucene.Net.Support
     /// This class provides supporting methods of java.util.BitSet
     /// that are not present in System.Collections.BitArray.
     /// </summary>
-    public static class BitArrayExtensions
+    internal static class BitArrayExtensions
     {
         /// <summary>
         /// Returns the next set bit at or after index, or -1 if no such bit exists.


[lucenenet] 07/35: BREAKING: Lucene.Net.Support.Threading: Marked ReentrantLock internal

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit e29dc7cafb8f70e629cfc50f52c672e8aff776ae
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Thu Feb 6 20:35:04 2020 +0700

    BREAKING: Lucene.Net.Support.Threading: Marked ReentrantLock internal
---
 src/Lucene.Net/Support/Threading/ReentrantLock.cs | 32 +++++++++++------------
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/src/Lucene.Net/Support/Threading/ReentrantLock.cs b/src/Lucene.Net/Support/Threading/ReentrantLock.cs
index 7e4eea3..e4ce29a 100644
--- a/src/Lucene.Net/Support/Threading/ReentrantLock.cs
+++ b/src/Lucene.Net/Support/Threading/ReentrantLock.cs
@@ -3,23 +3,23 @@
 namespace Lucene.Net.Support.Threading
 {
     /*
-	 * Licensed to the Apache Software Foundation (ASF) under one or more
-	 * contributor license agreements.  See the NOTICE file distributed with
-	 * this work for additional information regarding copyright ownership.
-	 * The ASF licenses this file to You under the Apache License, Version 2.0
-	 * (the "License"); you may not use this file except in compliance with
-	 * the License.  You may obtain a copy of the License at
-	 *
-	 *     http://www.apache.org/licenses/LICENSE-2.0
-	 *
-	 * Unless required by applicable law or agreed to in writing, software
-	 * distributed under the License is distributed on an "AS IS" BASIS,
-	 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-	 * See the License for the specific language governing permissions and
-	 * limitations under the License.
-	 */
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
 
-    public class ReentrantLock
+    internal class ReentrantLock
     {
         // .NET Port: lock object used to emulate ReentrantLock
         private readonly object _lock = new object();


[lucenenet] 08/35: BREAKING: Lucene.Net.Support.Threading: Marked LimitedConcurrencyLevelTaskScheduler internal

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit de0f1491b55f0b84a681cd0c07d3dfd23549b132
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Thu Feb 6 20:37:07 2020 +0700

    BREAKING: Lucene.Net.Support.Threading: Marked LimitedConcurrencyLevelTaskScheduler internal
---
 .../Support/Threading/LimitedConcurrencyLevelTaskScheduler.cs           | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/Lucene.Net/Support/Threading/LimitedConcurrencyLevelTaskScheduler.cs b/src/Lucene.Net/Support/Threading/LimitedConcurrencyLevelTaskScheduler.cs
index 71671af..787dabf 100644
--- a/src/Lucene.Net/Support/Threading/LimitedConcurrencyLevelTaskScheduler.cs
+++ b/src/Lucene.Net/Support/Threading/LimitedConcurrencyLevelTaskScheduler.cs
@@ -61,7 +61,7 @@ namespace Lucene.Net.Support.Threading
     /// 
     /// Source: https://msdn.microsoft.com/en-us/library/system.threading.tasks.taskscheduler(v=vs.110).aspx
     /// </summary>
-    public class LimitedConcurrencyLevelTaskScheduler : TaskScheduler
+    internal class LimitedConcurrencyLevelTaskScheduler : TaskScheduler
     {
         // Indicates whether the current thread is processing work items.
         [ThreadStatic]


[lucenenet] 14/35: BREAKING: Lucene.Net.Support: Marked DictionaryExtensions, EnumerableExtensions, and SetExtensions internal

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit 22d52a9ab0b947f42a818193af00c805f53515eb
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Thu Feb 6 23:45:53 2020 +0700

    BREAKING: Lucene.Net.Support: Marked DictionaryExtensions, EnumerableExtensions, and SetExtensions internal
---
 .../Highlight/HighlighterTest.cs                   |  2 +-
 .../Highlight/OffsetLimitTokenFilterTest.cs        |  2 +-
 .../VectorHighlight/AbstractTestCase.cs            |  2 +-
 .../VectorHighlight/IndexTimeSynonymTest.cs        |  2 +-
 src/Lucene.Net/Properties/AssemblyInfo.cs          |  3 ++
 src/Lucene.Net/Support/DictionaryExtensions.cs     |  2 +-
 src/Lucene.Net/Support/EnumerableExtensions.cs     | 32 +++++++++++-----------
 src/Lucene.Net/Support/SetExtensions.cs            |  2 +-
 8 files changed, 25 insertions(+), 22 deletions(-)

diff --git a/src/Lucene.Net.Tests.Highlighter/Highlight/HighlighterTest.cs b/src/Lucene.Net.Tests.Highlighter/Highlight/HighlighterTest.cs
index f6ddcdb..6ddccf4 100644
--- a/src/Lucene.Net.Tests.Highlighter/Highlight/HighlighterTest.cs
+++ b/src/Lucene.Net.Tests.Highlighter/Highlight/HighlighterTest.cs
@@ -2064,7 +2064,7 @@ namespace Lucene.Net.Search.Highlight
          *      java.io.Reader)
          */
 
-        protected override TokenStreamComponents CreateComponents(String arg0, TextReader arg1)
+        protected internal override TokenStreamComponents CreateComponents(String arg0, TextReader arg1)
         {
             Tokenizer stream = new MockTokenizer(arg1, MockTokenizer.SIMPLE, true);
             stream.AddAttribute<ICharTermAttribute>();
diff --git a/src/Lucene.Net.Tests.Highlighter/Highlight/OffsetLimitTokenFilterTest.cs b/src/Lucene.Net.Tests.Highlighter/Highlight/OffsetLimitTokenFilterTest.cs
index 0e0d585..c7a19cc 100644
--- a/src/Lucene.Net.Tests.Highlighter/Highlight/OffsetLimitTokenFilterTest.cs
+++ b/src/Lucene.Net.Tests.Highlighter/Highlight/OffsetLimitTokenFilterTest.cs
@@ -56,7 +56,7 @@ namespace Lucene.Net.Search.Highlight
 
         internal class AnalyzerAnonymousHelper : Analyzer
         {
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 MockTokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 tokenizer.EnableChecks = (false);
diff --git a/src/Lucene.Net.Tests.Highlighter/VectorHighlight/AbstractTestCase.cs b/src/Lucene.Net.Tests.Highlighter/VectorHighlight/AbstractTestCase.cs
index 1e84a3d..4159eb2 100644
--- a/src/Lucene.Net.Tests.Highlighter/VectorHighlight/AbstractTestCase.cs
+++ b/src/Lucene.Net.Tests.Highlighter/VectorHighlight/AbstractTestCase.cs
@@ -209,7 +209,7 @@ namespace Lucene.Net.Search.VectorHighlight
 
         internal sealed class BigramAnalyzer : Analyzer
         {
-            protected override TokenStreamComponents CreateComponents(String fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(String fieldName, TextReader reader)
             {
                 return new TokenStreamComponents(new BasicNGramTokenizer(reader));
             }
diff --git a/src/Lucene.Net.Tests.Highlighter/VectorHighlight/IndexTimeSynonymTest.cs b/src/Lucene.Net.Tests.Highlighter/VectorHighlight/IndexTimeSynonymTest.cs
index 7620a60..231da1f 100644
--- a/src/Lucene.Net.Tests.Highlighter/VectorHighlight/IndexTimeSynonymTest.cs
+++ b/src/Lucene.Net.Tests.Highlighter/VectorHighlight/IndexTimeSynonymTest.cs
@@ -366,7 +366,7 @@ namespace Lucene.Net.Search.VectorHighlight
                 this.tokens = tokens;
             }
 
-            protected override TokenStreamComponents CreateComponents(String fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(String fieldName, TextReader reader)
             {
                 Tokenizer ts = new TokenizerAnonymousHelper(Token.TOKEN_ATTRIBUTE_FACTORY, reader, tokens);
                 return new TokenStreamComponents(ts);
diff --git a/src/Lucene.Net/Properties/AssemblyInfo.cs b/src/Lucene.Net/Properties/AssemblyInfo.cs
index db154e2..b3d4cca 100644
--- a/src/Lucene.Net/Properties/AssemblyInfo.cs
+++ b/src/Lucene.Net/Properties/AssemblyInfo.cs
@@ -68,9 +68,12 @@ using System.Runtime.CompilerServices;
 [assembly: InternalsVisibleTo("Lucene.Net.TestFramework.NUnit, PublicKey=" + AssemblyKeys.PublicKey)]
 [assembly: InternalsVisibleTo("Lucene.Net.TestFramework.xUnit, PublicKey=" + AssemblyKeys.PublicKey)]
 [assembly: InternalsVisibleTo("Lucene.Net.Tests.Analysis.Common, PublicKey=" + AssemblyKeys.PublicKey)]
+[assembly: InternalsVisibleTo("Lucene.Net.Tests.Analysis.Kuromoji, PublicKey=" + AssemblyKeys.PublicKey)]
+[assembly: InternalsVisibleTo("Lucene.Net.Tests.Analysis.Phonetic, PublicKey=" + AssemblyKeys.PublicKey)]
 [assembly: InternalsVisibleTo("Lucene.Net.Tests.Expressions, PublicKey=" + AssemblyKeys.PublicKey)]
 [assembly: InternalsVisibleTo("Lucene.Net.Tests.Facet, PublicKey=" + AssemblyKeys.PublicKey)]
 [assembly: InternalsVisibleTo("Lucene.Net.Tests.Grouping, PublicKey=" + AssemblyKeys.PublicKey)]
+[assembly: InternalsVisibleTo("Lucene.Net.Tests.Highlighter, PublicKey=" + AssemblyKeys.PublicKey)]
 [assembly: InternalsVisibleTo("Lucene.Net.Tests.ICU, PublicKey=" + AssemblyKeys.PublicKey)] // For Analysis.Util.TestSegmentingTokenizerBase
 [assembly: InternalsVisibleTo("Lucene.Net.Tests.Misc, PublicKey=" + AssemblyKeys.PublicKey)]
 [assembly: InternalsVisibleTo("Lucene.Net.Tests.QueryParser, PublicKey=" + AssemblyKeys.PublicKey)]
diff --git a/src/Lucene.Net/Support/DictionaryExtensions.cs b/src/Lucene.Net/Support/DictionaryExtensions.cs
index ea67408..8b22c1f 100644
--- a/src/Lucene.Net/Support/DictionaryExtensions.cs
+++ b/src/Lucene.Net/Support/DictionaryExtensions.cs
@@ -20,7 +20,7 @@ namespace Lucene.Net.Support
      * limitations under the License.
      */
 
-    public static class DictionaryExtensions
+    internal static class DictionaryExtensions
     {
         public static void PutAll<TKey, TValue>(this IDictionary<TKey, TValue> dict, IEnumerable<KeyValuePair<TKey, TValue>> kvps)
         {
diff --git a/src/Lucene.Net/Support/EnumerableExtensions.cs b/src/Lucene.Net/Support/EnumerableExtensions.cs
index 546ffe0..3c9d472 100644
--- a/src/Lucene.Net/Support/EnumerableExtensions.cs
+++ b/src/Lucene.Net/Support/EnumerableExtensions.cs
@@ -4,27 +4,27 @@ using System.Collections.Generic;
 namespace Lucene.Net.Support
 {
     /*
-	 * Licensed to the Apache Software Foundation (ASF) under one or more
-	 * contributor license agreements.  See the NOTICE file distributed with
-	 * this work for additional information regarding copyright ownership.
-	 * The ASF licenses this file to You under the Apache License, Version 2.0
-	 * (the "License"); you may not use this file except in compliance with
-	 * the License.  You may obtain a copy of the License at
-	 *
-	 *     http://www.apache.org/licenses/LICENSE-2.0
-	 *
-	 * Unless required by applicable law or agreed to in writing, software
-	 * distributed under the License is distributed on an "AS IS" BASIS,
-	 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-	 * See the License for the specific language governing permissions and
-	 * limitations under the License.
-	 */
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
 
     /// <summary>
     /// .NET Specific Helper Extensions for IEnumerable
     /// </summary>
     //Note: LUCENENET specific
-    public static class EnumerableExtensions
+    internal static class EnumerableExtensions
     {
         /// <summary>
         /// Enumerates a sequence in pairs  
diff --git a/src/Lucene.Net/Support/SetExtensions.cs b/src/Lucene.Net/Support/SetExtensions.cs
index 130010a..4ab38e9 100644
--- a/src/Lucene.Net/Support/SetExtensions.cs
+++ b/src/Lucene.Net/Support/SetExtensions.cs
@@ -22,7 +22,7 @@ namespace Lucene.Net.Support
      * limitations under the License.
      */
 
-    public static class SetExtensions
+    internal static class SetExtensions
     {
         [DebuggerStepThrough]
         public static void RemoveAll<T>(this ICollection<T> theSet, IEnumerable<T> removeList)


[lucenenet] 26/35: BREAKING: Lucene.Net.Support.ListExtensions: Moved AddRange, Sort, TimSort, and IntroSort extension methods to Lucene.Net.Util.ListExtensions. Marked Lucene.Net.Support.ListExtensions internal.

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit 2632993dbabc4ffe1edcca8bbe0f2e718e3ec32a
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Sat Feb 8 15:08:44 2020 +0700

    BREAKING: Lucene.Net.Support.ListExtensions: Moved AddRange, Sort, TimSort, and IntroSort extension methods to Lucene.Net.Util.ListExtensions. Marked Lucene.Net.Support.ListExtensions internal.
---
 .../CharFilter/MappingCharFilterFactory.cs         |   6 +-
 .../Language/Bm/PhoneticEngine.cs                  |  48 ++---
 .../Language/Bm/Rule.cs                            |  52 ++----
 .../Language/DaitchMokotoffSoundex.cs              |  23 +--
 .../ByTask/Feeds/ContentItemsSource.cs             |   2 +-
 .../RemoveEmptyNonLeafQueryNodeProcessor.cs        |   2 +-
 .../CommonTermsQueryTest.cs                        |   4 +-
 .../Index/TestBackwardsCompatibility.cs            |   4 +-
 .../Index/TestBackwardsCompatibility3x.cs          |   4 +-
 src/Lucene.Net.Tests/Search/TestMinShouldMatch2.cs |   1 +
 src/Lucene.Net.Tests/Search/TestSort.cs            |   3 +-
 src/Lucene.Net/Properties/AssemblyInfo.cs          |   1 +
 src/Lucene.Net/Search/DisjunctionMaxQuery.cs       |   2 +-
 src/Lucene.Net/Search/Spans/NearSpansOrdered.cs    |   8 +-
 src/Lucene.Net/Support/ListExtensions.cs           | 198 +++------------------
 src/Lucene.Net/Support/Util/ListExtensions.cs      | 160 +++++++++++++++++
 16 files changed, 238 insertions(+), 280 deletions(-)

diff --git a/src/Lucene.Net.Analysis.Common/Analysis/CharFilter/MappingCharFilterFactory.cs b/src/Lucene.Net.Analysis.Common/Analysis/CharFilter/MappingCharFilterFactory.cs
index 7d47f76..13dd334 100644
--- a/src/Lucene.Net.Analysis.Common/Analysis/CharFilter/MappingCharFilterFactory.cs
+++ b/src/Lucene.Net.Analysis.Common/Analysis/CharFilter/MappingCharFilterFactory.cs
@@ -1,5 +1,5 @@
 using Lucene.Net.Analysis.Util;
-using Lucene.Net.Support;
+using Lucene.Net.Util;
 using System.Collections.Generic;
 using System.IO;
 using System.Text.RegularExpressions;
@@ -57,7 +57,7 @@ namespace Lucene.Net.Analysis.CharFilters
         {
             if (mapping != null)
             {
-                IList<string> wlist = null;
+                IList<string> wlist;
                 if (File.Exists(mapping))
                 {
                     wlist = new List<string>(GetLines(loader, mapping));
@@ -92,7 +92,7 @@ namespace Lucene.Net.Analysis.CharFilters
         }
 
         // "source" => "target"
-        private static Regex p = new Regex(@"\""(.*)\""\s*=>\s*\""(.*)\""\s*$", RegexOptions.Compiled);
+        private static readonly Regex p = new Regex(@"\""(.*)\""\s*=>\s*\""(.*)\""\s*$", RegexOptions.Compiled);
 
         protected virtual void ParseRules(IList<string> rules, NormalizeCharMap.Builder builder)
         {
diff --git a/src/Lucene.Net.Analysis.Phonetic/Language/Bm/PhoneticEngine.cs b/src/Lucene.Net.Analysis.Phonetic/Language/Bm/PhoneticEngine.cs
index 8223c86..283f1d5 100644
--- a/src/Lucene.Net.Analysis.Phonetic/Language/Bm/PhoneticEngine.cs
+++ b/src/Lucene.Net.Analysis.Phonetic/Language/Bm/PhoneticEngine.cs
@@ -2,6 +2,7 @@
 using J2N.Collections.Generic.Extensions;
 using J2N.Text;
 using Lucene.Net.Support;
+using Lucene.Net.Util;
 using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -166,10 +167,7 @@ namespace Lucene.Net.Analysis.Phonetic.Language.Bm
             /// <summary>
             /// Gets underlying phoneme set. Please don't mutate.
             /// </summary>
-            public IList<Phoneme> Phonemes
-            {
-                get { return this.phonemes; }
-            }
+            public IList<Phoneme> Phonemes => phonemes;
 
             /// <summary>
             /// Stringifies the phoneme set. This produces a single string of the strings of each phoneme,
@@ -231,15 +229,9 @@ namespace Lucene.Net.Analysis.Phonetic.Language.Bm
                 this.maxPhonemes = maxPhonemes;
             }
 
-            public int I
-            {
-                get { return this.i; }
-            }
+            public int I => i;
 
-            public PhonemeBuilder PhonemeBuilder
-            {
-                get { return this.phonemeBuilder; }
-            }
+            public PhonemeBuilder PhonemeBuilder => phonemeBuilder;
 
             /// <summary>
             /// Invokes the rules. Loops over the rules list, stopping at the first one that has a matching context
@@ -276,10 +268,7 @@ namespace Lucene.Net.Analysis.Phonetic.Language.Bm
                 return this;
             }
 
-            public bool IsFound
-            {
-                get { return this.found; }
-            }
+            public bool IsFound => found;
         }
 
         private static readonly IDictionary<NameType, ISet<string>> NAME_PREFIXES = LoadNamePrefixes();
@@ -319,7 +308,7 @@ namespace Lucene.Net.Analysis.Phonetic.Language.Bm
             return sb.ToString();
         }
 
-        private static readonly int DEFAULT_MAX_PHONEMES = 20;
+        private const int DEFAULT_MAX_PHONEMES = 20;
 
         private readonly Lang lang;
 
@@ -534,44 +523,29 @@ namespace Lucene.Net.Analysis.Phonetic.Language.Bm
         /// <summary>
         /// Gets the Lang language guessing rules being used.
         /// </summary>
-        public virtual Lang Lang
-        {
-            get { return this.lang; }
-        }
+        public virtual Lang Lang => lang;
 
         /// <summary>
         /// Gets the <see cref="Bm.NameType"/> being used.
         /// </summary>
-        public virtual NameType NameType
-        {
-            get { return this.nameType; }
-        }
+        public virtual NameType NameType => nameType;
 
         /// <summary>
         /// Gets the <see cref="Bm.RuleType"/> being used.
         /// </summary>
-        public virtual RuleType RuleType
-        {
-            get { return this.ruleType; }
-        }
+        public virtual RuleType RuleType => ruleType;
 
         /// <summary>
         /// Gets if multiple phonetic encodings are concatenated or if just the first one is kept.
         /// Returns <c>true</c> if multiple phonetic encodings are returned, <c>false</c> if just the first is.
         /// </summary>
-        public virtual bool IsConcat
-        {
-            get { return this.concat; }
-        }
+        public virtual bool IsConcat => concat;
 
         /// <summary>
         /// Gets the maximum number of phonemes the engine will calculate for a given input.
         /// <para/>
         /// since 1.7
         /// </summary>
-        public virtual int MaxPhonemes
-        {
-            get { return this.maxPhonemes; }
-        }
+        public virtual int MaxPhonemes => maxPhonemes;
     }
 }
diff --git a/src/Lucene.Net.Analysis.Phonetic/Language/Bm/Rule.cs b/src/Lucene.Net.Analysis.Phonetic/Language/Bm/Rule.cs
index 7b0d413..b93d980 100644
--- a/src/Lucene.Net.Analysis.Phonetic/Language/Bm/Rule.cs
+++ b/src/Lucene.Net.Analysis.Phonetic/Language/Bm/Rule.cs
@@ -3,6 +3,7 @@ using J2N;
 using J2N.Collections.Generic.Extensions;
 using J2N.Text;
 using Lucene.Net.Support;
+using Lucene.Net.Util;
 using System;
 using System.Collections.Generic;
 using System.IO;
@@ -87,9 +88,9 @@ namespace Lucene.Net.Analysis.Phonetic.Language.Bm
     /// </remarks>
     public class Rule
     {
-        private static Regex PIPE = new Regex("[|]", RegexOptions.Compiled);
-        private static Regex WHITESPACE = new Regex("\\s+", RegexOptions.Compiled);
-        private static Regex PLUS = new Regex("[+]", RegexOptions.Compiled);
+        private static readonly Regex PIPE = new Regex("[|]", RegexOptions.Compiled);
+        private static readonly Regex WHITESPACE = new Regex("\\s+", RegexOptions.Compiled);
+        private static readonly Regex PLUS = new Regex("[+]", RegexOptions.Compiled);
 
         private class AllStringsRMatcher : IRPattern
         {
@@ -112,11 +113,11 @@ namespace Lucene.Net.Analysis.Phonetic.Language.Bm
         public static readonly IRPattern ALL_STRINGS_RMATCHER = new AllStringsRMatcher();
 
 
-        public static readonly string ALL = "ALL";
+        public const string ALL = "ALL";
 
-        private static readonly string DOUBLE_QUOTE = "\"";
+        private const string DOUBLE_QUOTE = "\"";
 
-        private static readonly string HASH_INCLUDE = "#include";
+        private const string HASH_INCLUDE = "#include";
 
         private static readonly IDictionary<NameType, IDictionary<RuleType, IDictionary<string, IDictionary<string, IList<Rule>>>>> RULES = LoadRules();
 
@@ -806,34 +807,22 @@ namespace Lucene.Net.Analysis.Phonetic.Language.Bm
         /// <summary>
         /// Gets the left context pattern. This is a regular expression that must match to the left of the pattern.
         /// </summary>
-        public virtual IRPattern LContext
-        {
-            get { return this.lContext; }
-        }
+        public virtual IRPattern LContext => lContext;
 
         /// <summary>
         /// Gets the pattern. This is a string-literal that must exactly match.
         /// </summary>
-        public virtual string Pattern
-        {
-            get { return this.pattern; }
-        }
+        public virtual string Pattern => pattern;
 
         /// <summary>
         /// Gets the phoneme. If the rule matches, this is the phoneme associated with the pattern match.
         /// </summary>
-        public virtual IPhonemeExpr Phoneme
-        {
-            get { return this.phoneme; }
-        }
+        public virtual IPhonemeExpr Phoneme => phoneme;
 
         /// <summary>
         /// Gets the right context pattern. This is a regular expression that must match to the right of the pattern.
         /// </summary>
-        public virtual IRPattern RContext
-        {
-            get { return this.rContext; }
-        }
+        public virtual IRPattern RContext => rContext;
 
         /// <summary>
         /// Decides if the pattern and context match the input starting at a position. It is a match if the
@@ -1018,15 +1007,9 @@ namespace Lucene.Net.Analysis.Phonetic.Language.Bm
             return this;
         }
 
-        public LanguageSet Languages
-        {
-            get { return this.languages; }
-        }
+        public LanguageSet Languages => languages;
 
-        public IList<Phoneme> Phonemes
-        {
-            get { return new Phoneme[] { this }; }
-        }
+        public IList<Phoneme> Phonemes => new Phoneme[] { this };
 
         public string GetPhonemeText()
         {
@@ -1048,17 +1031,12 @@ namespace Lucene.Net.Analysis.Phonetic.Language.Bm
 
     public sealed class PhonemeList : IPhonemeExpr
     {
-        private readonly IList<Phoneme> phonemes;
-
         public PhonemeList(IList<Phoneme> phonemes)
         {
-            this.phonemes = phonemes;
+            this.Phonemes = phonemes;
         }
 
-        public IList<Phoneme> Phonemes
-        {
-            get { return this.phonemes; }
-        }
+        public IList<Phoneme> Phonemes { get; private set; }
     }
 
     /// <summary>
diff --git a/src/Lucene.Net.Analysis.Phonetic/Language/DaitchMokotoffSoundex.cs b/src/Lucene.Net.Analysis.Phonetic/Language/DaitchMokotoffSoundex.cs
index 9c61e45..872b46c 100644
--- a/src/Lucene.Net.Analysis.Phonetic/Language/DaitchMokotoffSoundex.cs
+++ b/src/Lucene.Net.Analysis.Phonetic/Language/DaitchMokotoffSoundex.cs
@@ -2,6 +2,7 @@
 using J2N;
 using J2N.Text;
 using Lucene.Net.Support;
+using Lucene.Net.Util;
 using System;
 using System.Collections.Generic;
 using System.IO;
@@ -178,15 +179,9 @@ namespace Lucene.Net.Analysis.Phonetic.Language
             }
 
             // LUCENENET specific - need read access to pattern
-            public string Pattern
-            {
-                get { return pattern; }
-            }
+            public string Pattern => pattern;
 
-            public int PatternLength
-            {
-                get { return pattern.Length; }
-            }
+            public int PatternLength => pattern.Length;
 
             public string[] GetReplacements(string context, bool atStart)
             {
@@ -222,18 +217,18 @@ namespace Lucene.Net.Analysis.Phonetic.Language
             }
         }
 
-        private static readonly string COMMENT = "//";
-        private static readonly string DOUBLE_QUOTE = "\"";
+        private const string COMMENT = "//";
+        private const string DOUBLE_QUOTE = "\"";
 
-        private static readonly string MULTILINE_COMMENT_END = "*/";
+        private const string MULTILINE_COMMENT_END = "*/";
 
-        private static readonly string MULTILINE_COMMENT_START = "/*";
+        private const string MULTILINE_COMMENT_START = "/*";
 
         /// <summary>The resource file containing the replacement and folding rules</summary>
-        private static readonly string RESOURCE_FILE = "dmrules.txt";
+        private const string RESOURCE_FILE = "dmrules.txt";
 
         /// <summary>The code length of a DM soundex value.</summary>
-        private static readonly int MAX_LENGTH = 6;
+        private const int MAX_LENGTH = 6;
 
         /// <summary>Transformation rules indexed by the first character of their pattern.</summary>
         private static readonly IDictionary<char, IList<Rule>> RULES = new Dictionary<char, IList<Rule>>();
diff --git a/src/Lucene.Net.Benchmark/ByTask/Feeds/ContentItemsSource.cs b/src/Lucene.Net.Benchmark/ByTask/Feeds/ContentItemsSource.cs
index 77550e2..ef9db09 100644
--- a/src/Lucene.Net.Benchmark/ByTask/Feeds/ContentItemsSource.cs
+++ b/src/Lucene.Net.Benchmark/ByTask/Feeds/ContentItemsSource.cs
@@ -1,6 +1,6 @@
 using J2N.Text;
 using Lucene.Net.Benchmarks.ByTask.Utils;
-using Lucene.Net.Support;
+using Lucene.Net.Util;
 using System;
 using System.Collections.Generic;
 using System.IO;
diff --git a/src/Lucene.Net.QueryParser/Flexible/Standard/Processors/RemoveEmptyNonLeafQueryNodeProcessor.cs b/src/Lucene.Net.QueryParser/Flexible/Standard/Processors/RemoveEmptyNonLeafQueryNodeProcessor.cs
index 5b71204..a403f8c 100644
--- a/src/Lucene.Net.QueryParser/Flexible/Standard/Processors/RemoveEmptyNonLeafQueryNodeProcessor.cs
+++ b/src/Lucene.Net.QueryParser/Flexible/Standard/Processors/RemoveEmptyNonLeafQueryNodeProcessor.cs
@@ -1,6 +1,6 @@
 using Lucene.Net.QueryParsers.Flexible.Core.Nodes;
 using Lucene.Net.QueryParsers.Flexible.Core.Processors;
-using Lucene.Net.Support;
+using Lucene.Net.Util;
 using System.Collections.Generic;
 
 namespace Lucene.Net.QueryParsers.Flexible.Standard.Processors
diff --git a/src/Lucene.Net.Tests.Queries/CommonTermsQueryTest.cs b/src/Lucene.Net.Tests.Queries/CommonTermsQueryTest.cs
index dc46477..d705ff5 100644
--- a/src/Lucene.Net.Tests.Queries/CommonTermsQueryTest.cs
+++ b/src/Lucene.Net.Tests.Queries/CommonTermsQueryTest.cs
@@ -503,7 +503,7 @@ namespace Lucene.Net.Tests.Queries
             }
 
             private readonly CommonTermsQueryTest parent;
-            protected override bool LessThan(TermAndFreq a, TermAndFreq b)
+            protected internal override bool LessThan(TermAndFreq a, TermAndFreq b)
             {
                 return a.freq > b.freq;
             }
@@ -518,7 +518,7 @@ namespace Lucene.Net.Tests.Queries
             }
 
             private readonly CommonTermsQueryTest parent;
-            protected override bool LessThan(TermAndFreq a, TermAndFreq b)
+            protected internal override bool LessThan(TermAndFreq a, TermAndFreq b)
             {
                 return a.freq < b.freq;
             }
diff --git a/src/Lucene.Net.Tests/Index/TestBackwardsCompatibility.cs b/src/Lucene.Net.Tests/Index/TestBackwardsCompatibility.cs
index e18d217..1e7f83f 100644
--- a/src/Lucene.Net.Tests/Index/TestBackwardsCompatibility.cs
+++ b/src/Lucene.Net.Tests/Index/TestBackwardsCompatibility.cs
@@ -202,7 +202,7 @@ namespace Lucene.Net.Index
             base.BeforeClass();
 
             Assert.IsFalse(OldFormatImpersonationIsActive, "test infra is broken!");
-            IList<string> names = new List<string>(OldNames.Length + OldSingleSegmentNames.Length);
+            List<string> names = new List<string>(OldNames.Length + OldSingleSegmentNames.Length);
             names.AddRange(OldNames);
             names.AddRange(OldSingleSegmentNames);
             OldIndexDirs = new Dictionary<string, Directory>();
@@ -927,7 +927,7 @@ namespace Lucene.Net.Index
         [Test]
         public virtual void TestUpgradeOldIndex()
         {
-            IList<string> names = new List<string>(OldNames.Length + OldSingleSegmentNames.Length);
+            List<string> names = new List<string>(OldNames.Length + OldSingleSegmentNames.Length);
             names.AddRange(OldNames);
             names.AddRange(OldSingleSegmentNames);
             foreach (string name in names)
diff --git a/src/Lucene.Net.Tests/Index/TestBackwardsCompatibility3x.cs b/src/Lucene.Net.Tests/Index/TestBackwardsCompatibility3x.cs
index 35812e1..013fdee 100644
--- a/src/Lucene.Net.Tests/Index/TestBackwardsCompatibility3x.cs
+++ b/src/Lucene.Net.Tests/Index/TestBackwardsCompatibility3x.cs
@@ -134,7 +134,7 @@ namespace Lucene.Net.Index
             base.BeforeClass();
 
             assertFalse("test infra is broken!", OldFormatImpersonationIsActive);
-            IList<string> names = new List<string>(OldNames.Length + OldSingleSegmentNames.Length);
+            List<string> names = new List<string>(OldNames.Length + OldSingleSegmentNames.Length);
             names.AddRange(OldNames);
             names.AddRange(OldSingleSegmentNames);
             OldIndexDirs = new Dictionary<string, Directory>();
@@ -888,7 +888,7 @@ namespace Lucene.Net.Index
         [Test]
         public virtual void TestUpgradeOldIndex()
         {
-            IList<string> names = new List<string>(OldNames.Length + OldSingleSegmentNames.Length);
+            List<string> names = new List<string>(OldNames.Length + OldSingleSegmentNames.Length);
             names.AddRange(OldNames);
             names.AddRange(OldSingleSegmentNames);
             foreach (string name in names)
diff --git a/src/Lucene.Net.Tests/Search/TestMinShouldMatch2.cs b/src/Lucene.Net.Tests/Search/TestMinShouldMatch2.cs
index 09f6c4c..222073c 100644
--- a/src/Lucene.Net.Tests/Search/TestMinShouldMatch2.cs
+++ b/src/Lucene.Net.Tests/Search/TestMinShouldMatch2.cs
@@ -2,6 +2,7 @@ using System.Linq;
 using Lucene.Net.Documents;
 using Lucene.Net.Index;
 using Lucene.Net.Support;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System.Collections.Generic;
 using System.Diagnostics;
diff --git a/src/Lucene.Net.Tests/Search/TestSort.cs b/src/Lucene.Net.Tests/Search/TestSort.cs
index bb2b732..bc7cc65 100644
--- a/src/Lucene.Net.Tests/Search/TestSort.cs
+++ b/src/Lucene.Net.Tests/Search/TestSort.cs
@@ -1,8 +1,7 @@
 using J2N.Collections.Generic.Extensions;
 using Lucene.Net.Attributes;
 using Lucene.Net.Documents;
-using Lucene.Net.Randomized.Generators;
-using Lucene.Net.Support;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 using System.Collections.Generic;
diff --git a/src/Lucene.Net/Properties/AssemblyInfo.cs b/src/Lucene.Net/Properties/AssemblyInfo.cs
index 82f12d2..28f4861 100644
--- a/src/Lucene.Net/Properties/AssemblyInfo.cs
+++ b/src/Lucene.Net/Properties/AssemblyInfo.cs
@@ -77,6 +77,7 @@ using System.Runtime.CompilerServices;
 [assembly: InternalsVisibleTo("Lucene.Net.Tests.Highlighter, PublicKey=" + AssemblyKeys.PublicKey)]
 [assembly: InternalsVisibleTo("Lucene.Net.Tests.ICU, PublicKey=" + AssemblyKeys.PublicKey)] // For Analysis.Util.TestSegmentingTokenizerBase
 [assembly: InternalsVisibleTo("Lucene.Net.Tests.Misc, PublicKey=" + AssemblyKeys.PublicKey)]
+[assembly: InternalsVisibleTo("Lucene.Net.Tests.Queries, PublicKey=" + AssemblyKeys.PublicKey)]
 [assembly: InternalsVisibleTo("Lucene.Net.Tests.QueryParser, PublicKey=" + AssemblyKeys.PublicKey)]
 [assembly: InternalsVisibleTo("Lucene.Net.Tests.Cli, PublicKey=" + AssemblyKeys.PublicKey)] // For lucene-cli
 [assembly: InternalsVisibleTo("Lucene.Net.Tests.Replicator, PublicKey=" + AssemblyKeys.PublicKey)]
diff --git a/src/Lucene.Net/Search/DisjunctionMaxQuery.cs b/src/Lucene.Net/Search/DisjunctionMaxQuery.cs
index 70eaaa3..04184a5 100644
--- a/src/Lucene.Net/Search/DisjunctionMaxQuery.cs
+++ b/src/Lucene.Net/Search/DisjunctionMaxQuery.cs
@@ -1,4 +1,4 @@
-using Lucene.Net.Support;
+using Lucene.Net.Util;
 using System;
 using System.Collections;
 using System.Collections.Generic;
diff --git a/src/Lucene.Net/Search/Spans/NearSpansOrdered.cs b/src/Lucene.Net/Search/Spans/NearSpansOrdered.cs
index 2478444..04f4cf7 100644
--- a/src/Lucene.Net/Search/Spans/NearSpansOrdered.cs
+++ b/src/Lucene.Net/Search/Spans/NearSpansOrdered.cs
@@ -384,9 +384,7 @@ namespace Lucene.Net.Search.Spans
                 Spans prevSpans = subSpans[i];
                 if (collectPayloads && prevSpans.IsPayloadAvailable)
                 {
-                    var payload = prevSpans.GetPayload();
-                    possiblePayload = new List<byte[]>(payload.Count);
-                    possiblePayload.AddRange(payload);
+                    possiblePayload = new List<byte[]>(prevSpans.GetPayload()); // LUCENENET specific - using copy constructor instead of AddRange()
                 }
 
                 int prevStart = prevSpans.Start;
@@ -418,9 +416,7 @@ namespace Lucene.Net.Search.Spans
                             prevEnd = ppEnd;
                             if (collectPayloads && prevSpans.IsPayloadAvailable)
                             {
-                                var payload = prevSpans.GetPayload();
-                                possiblePayload = new List<byte[]>(payload.Count);
-                                possiblePayload.AddRange(payload);
+                                possiblePayload = new List<byte[]>(prevSpans.GetPayload()); // LUCENENET specific - using copy constructor instead of AddRange()
                             }
                         }
                     }
diff --git a/src/Lucene.Net/Support/ListExtensions.cs b/src/Lucene.Net/Support/ListExtensions.cs
index 9f1258e..158ef7d 100644
--- a/src/Lucene.Net/Support/ListExtensions.cs
+++ b/src/Lucene.Net/Support/ListExtensions.cs
@@ -4,39 +4,24 @@ using System.Collections.Generic;
 namespace Lucene.Net.Support
 {
     /*
-	 * Licensed to the Apache Software Foundation (ASF) under one or more
-	 * contributor license agreements.  See the NOTICE file distributed with
-	 * this work for additional information regarding copyright ownership.
-	 * The ASF licenses this file to You under the Apache License, Version 2.0
-	 * (the "License"); you may not use this file except in compliance with
-	 * the License.  You may obtain a copy of the License at
-	 *
-	 *     http://www.apache.org/licenses/LICENSE-2.0
-	 *
-	 * Unless required by applicable law or agreed to in writing, software
-	 * distributed under the License is distributed on an "AS IS" BASIS,
-	 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-	 * See the License for the specific language governing permissions and
-	 * limitations under the License.
-	 */
-
-    public static class ListExtensions
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+
+    internal static class ListExtensions
     {
-        public static void AddRange<T>(this IList<T> list, IEnumerable<T> values)
-        {
-            var lt = list as List<T>;
-
-            if (lt != null)
-                lt.AddRange(values);
-            else
-            {
-                foreach (var item in values)
-                {
-                    list.Add(item);
-                }
-            }
-        }
-
         /// <summary>
         /// Performs a binary search for the specified element in the specified
         /// sorted list. The list needs to be already sorted in natural sorting
@@ -44,24 +29,19 @@ namespace Lucene.Net.Support
         /// undefined which element is found if there are multiple occurrences of the
         /// same element.
         /// </summary>
-        /// <typeparam name="T">The element type.</typeparam>
+        /// <typeparam name="T">The element type. Must implement <see cref="IComparable{T}"/>"/>.</typeparam>
         /// <param name="list">The sorted list to search.</param>
         /// <param name="item">The element to find.</param>
         /// <returns>The non-negative index of the element, or a negative index which
         /// is the <c>-index - 1</c> where the element would be inserted.</returns>
-        /// <exception cref="InvalidCastException">
-        /// If an element in the List or the search element does not
-        /// implement <see cref="IComparable{T}"/>, or cannot be compared to each other.</exception>
+        /// <exception cref="ArgumentNullException"><paramref name="list"/> is <c>null</c>.</exception>
         public static int BinarySearch<T>(this IList<T> list, T item) where T : IComparable<T>
         {
             if (list == null)
-            {
                 throw new ArgumentNullException(nameof(list));
-            }
+
             if (list.Count == 0)
-            {
                 return -1;
-            }
 
             int low = 0, mid = list.Count, high = mid - 1, result = -1;
             while (low <= high)
@@ -84,22 +64,18 @@ namespace Lucene.Net.Support
         /// has an undefined result. It's also undefined which element is found if
         /// there are multiple occurrences of the same element.
         /// </summary>
-        /// <typeparam name="T">The element type.</typeparam>
+        /// <typeparam name="T">The element type. Must implement <see cref="IComparable{T}"/>"/>.</typeparam>
         /// <param name="list">The sorted <see cref="IList{T}"/> to search.</param>
         /// <param name="item">The element to find.</param>
         /// <param name="comparer">The comparer. If the comparer is <c>null</c> then the
         /// search uses the objects' natural ordering.</param>
         /// <returns>the non-negative index of the element, or a negative index which
         /// is the <c>-index - 1</c> where the element would be inserted.</returns>
-        /// <exception cref="InvalidCastException">
-        /// when an element in the list and the searched element cannot
-        /// be compared to each other using the comparer.</exception>
+        /// <exception cref="ArgumentNullException"><paramref name="list"/> is <c>null</c>.</exception>
         public static int BinarySearch<T>(this IList<T> list, T item, IComparer<T> comparer) where T : IComparable<T>
         {
             if (list == null)
-            {
                 throw new ArgumentNullException(nameof(list));
-            }
 
             if (comparer == null)
                 return BinarySearch(list, item);
@@ -130,128 +106,6 @@ namespace Lucene.Net.Support
 
             return new SubList<T>(list, fromIndex, toIndex);
         }
-
-        /// <summary>
-        /// If the underlying type is <see cref="List{T}"/>,
-        /// calls <see cref="List{T}.Sort()"/>. If not, 
-        /// uses <see cref="Util.CollectionUtil.TimSort{T}(IList{T})"/>
-        /// </summary>
-        /// <typeparam name="T"></typeparam>
-        /// <param name="list">this <see cref="IList{T}"/></param>
-        public static void Sort<T>(this IList<T> list)
-        {
-            if (list is List<T>)
-            {
-                ((List<T>)list).Sort();
-            }
-            else
-            {
-                Util.CollectionUtil.TimSort(list);
-            }
-        }
-
-        /// <summary>
-        /// If the underlying type is <see cref="List{T}"/>,
-        /// calls <see cref="List{T}.Sort(IComparer{T})"/>. If not, 
-        /// uses <see cref="Util.CollectionUtil.TimSort{T}(IList{T}, IComparer{T})"/>
-        /// </summary>
-        /// <typeparam name="T"></typeparam>
-        /// <param name="list">this <see cref="IList{T}"/></param>
-        /// <param name="comparer">the comparer to use for the sort</param>
-        public static void Sort<T>(this IList<T> list, IComparer<T> comparer)
-        {
-            if (list is List<T>)
-            {
-                ((List<T>)list).Sort(comparer);
-            }
-            else
-            {
-                Util.CollectionUtil.TimSort(list, comparer);
-            }
-        }
-
-        /// <summary>
-        /// If the underlying type is <see cref="List{T}"/>,
-        /// calls <see cref="List{T}.Sort(IComparer{T})"/>. If not, 
-        /// uses <see cref="Util.CollectionUtil.TimSort{T}(IList{T}, IComparer{T})"/>
-        /// </summary>
-        /// <typeparam name="T"></typeparam>
-        /// <param name="list">this <see cref="IList{T}"/></param>
-        /// <param name="comparison">the comparison function to use for the sort</param>
-        public static void Sort<T>(this IList<T> list, Comparison<T> comparison)
-        {
-            IComparer<T> comparer = new FunctorComparer<T>(comparison);
-            Sort(list, comparer);
-        }
-
-        /// <summary>
-        /// Sorts the given <see cref="IList{T}"/> using the <see cref="IComparer{T}"/>.
-        /// This method uses the Tim sort
-        /// algorithm, but falls back to binary sort for small lists.
-        /// </summary>
-        /// <typeparam name="T"></typeparam>
-        /// <param name="list">this <see cref="IList{T}"/></param>
-        public static void TimSort<T>(this IList<T> list)
-        {
-            Util.CollectionUtil.TimSort(list);
-        }
-
-        /// <summary>
-        /// Sorts the given <see cref="IList{T}"/> using the <see cref="IComparer{T}"/>.
-        /// This method uses the Tim sort
-        /// algorithm, but falls back to binary sort for small lists.
-        /// </summary>
-        /// <typeparam name="T"></typeparam>
-        /// <param name="list">this <see cref="IList{T}"/></param>
-        /// <param name="comparer">The <see cref="IComparer{T}"/> to use for the sort.</param>
-        public static void TimSort<T>(this IList<T> list, IComparer<T> comparer)
-        {
-            Util.CollectionUtil.TimSort(list, comparer);
-        }
-
-        /// <summary>
-        /// Sorts the given <see cref="IList{T}"/> using the <see cref="IComparer{T}"/>.
-        /// This method uses the intro sort
-        /// algorithm, but falls back to insertion sort for small lists. 
-        /// </summary>
-        /// <typeparam name="T"></typeparam>
-        /// <param name="list">this <see cref="IList{T}"/></param>
-        public static void IntroSort<T>(this IList<T> list)
-        {
-            Util.CollectionUtil.IntroSort(list);
-        }
-
-        /// <summary>
-        /// Sorts the given <see cref="IList{T}"/> using the <see cref="IComparer{T}"/>.
-        /// This method uses the intro sort
-        /// algorithm, but falls back to insertion sort for small lists. 
-        /// </summary>
-        /// <typeparam name="T"></typeparam>
-        /// <param name="list">this <see cref="IList{T}"/></param>
-        /// <param name="comparer">The <see cref="IComparer{T}"/> to use for the sort.</param>
-        public static void IntroSort<T>(this IList<T> list, IComparer<T> comparer)
-        {
-            Util.CollectionUtil.IntroSort(list, comparer);
-        }
-
-        #region Nested Type: FunctorComparer<T>
-
-        private sealed class FunctorComparer<T> : IComparer<T>
-        {
-            private Comparison<T> comparison;
-
-            public FunctorComparer(Comparison<T> comparison)
-            {
-                this.comparison = comparison;
-            }
-
-            public int Compare(T x, T y)
-            {
-                return this.comparison(x, y);
-            }
-        }
-
-        #endregion Nested Type: FunctorComparer<T>
     }
 
     #region SubList<T>
@@ -271,16 +125,16 @@ namespace Lucene.Net.Support
         public SubList(IList<T> list, int fromIndex, int toIndex)
         {
             if (fromIndex < 0)
-                throw new ArgumentOutOfRangeException("fromIndex");
+                throw new ArgumentOutOfRangeException(nameof(fromIndex));
 
             if (toIndex > list.Count)
-                throw new ArgumentOutOfRangeException("toIndex");
+                throw new ArgumentOutOfRangeException(nameof(toIndex));
 
             if (toIndex < fromIndex)
-                throw new ArgumentOutOfRangeException("toIndex");
+                throw new ArgumentOutOfRangeException(nameof(toIndex));
 
             if (list == null)
-                throw new ArgumentNullException("list");
+                throw new ArgumentNullException(nameof(list));
 
             this.list = list;
             this.fromIndex = fromIndex;
diff --git a/src/Lucene.Net/Support/Util/ListExtensions.cs b/src/Lucene.Net/Support/Util/ListExtensions.cs
new file mode 100644
index 0000000..d15693b
--- /dev/null
+++ b/src/Lucene.Net/Support/Util/ListExtensions.cs
@@ -0,0 +1,160 @@
+using System;
+using System.Collections.Generic;
+
+namespace Lucene.Net.Util
+{
+    /// <summary>
+    /// Extensions to <see cref="IList{T}"/>.
+    /// </summary>
+    public static class ListExtensions
+    {
+        /// <summary>
+        /// Adds the elements of the specified collection to the end of the <see cref="IList{T}"/>.
+        /// </summary>
+        /// <typeparam name="T">The element type.</typeparam>
+        /// <param name="list">The list to add to.</param>
+        /// <param name="collection">The collection whose elements should be added to the end of the <see cref="IList{T}"/>.
+        /// The collection itself cannot be <c>null</c>, but it can contain elements that are <c>null</c>, if type
+        /// <typeparamref name="T"/> is a reference type.</param>
+        /// <exception cref="ArgumentNullException"><paramref name="list"/> or <paramref name="collection"/> is <c>null</c>.</exception>
+        public static void AddRange<T>(this IList<T> list, IEnumerable<T> collection)
+        {
+            if (list == null)
+                throw new ArgumentNullException(nameof(list));
+            if (collection == null)
+                throw new ArgumentNullException(nameof(collection));
+
+            if (list is List<T> thisList)
+                thisList.AddRange(collection);
+            else
+            {
+                foreach (var item in collection)
+                {
+                    list.Add(item);
+                }
+            }
+        }
+
+        /// <summary>
+        /// If the underlying type is <see cref="List{T}"/>,
+        /// calls <see cref="List{T}.Sort()"/>. If not, 
+        /// uses <see cref="Util.CollectionUtil.TimSort{T}(IList{T})"/>
+        /// </summary>
+        /// <typeparam name="T"></typeparam>
+        /// <param name="list">this <see cref="IList{T}"/></param>
+        public static void Sort<T>(this IList<T> list)
+        {
+            if (list is List<T>)
+            {
+                ((List<T>)list).Sort();
+            }
+            else
+            {
+                CollectionUtil.TimSort(list);
+            }
+        }
+
+        /// <summary>
+        /// If the underlying type is <see cref="List{T}"/>,
+        /// calls <see cref="List{T}.Sort(IComparer{T})"/>. If not, 
+        /// uses <see cref="Util.CollectionUtil.TimSort{T}(IList{T}, IComparer{T})"/>
+        /// </summary>
+        /// <typeparam name="T"></typeparam>
+        /// <param name="list">this <see cref="IList{T}"/></param>
+        /// <param name="comparer">the comparer to use for the sort</param>
+        public static void Sort<T>(this IList<T> list, IComparer<T> comparer)
+        {
+            if (list is List<T>)
+            {
+                ((List<T>)list).Sort(comparer);
+            }
+            else
+            {
+                CollectionUtil.TimSort(list, comparer);
+            }
+        }
+
+        /// <summary>
+        /// If the underlying type is <see cref="List{T}"/>,
+        /// calls <see cref="List{T}.Sort(IComparer{T})"/>. If not, 
+        /// uses <see cref="Util.CollectionUtil.TimSort{T}(IList{T}, IComparer{T})"/>
+        /// </summary>
+        /// <typeparam name="T"></typeparam>
+        /// <param name="list">this <see cref="IList{T}"/></param>
+        /// <param name="comparison">the comparison function to use for the sort</param>
+        public static void Sort<T>(this IList<T> list, Comparison<T> comparison)
+        {
+            IComparer<T> comparer = new FunctorComparer<T>(comparison);
+            Sort(list, comparer);
+        }
+
+        /// <summary>
+        /// Sorts the given <see cref="IList{T}"/> using the <see cref="IComparer{T}"/>.
+        /// This method uses the Tim sort
+        /// algorithm, but falls back to binary sort for small lists.
+        /// </summary>
+        /// <typeparam name="T"></typeparam>
+        /// <param name="list">this <see cref="IList{T}"/></param>
+        public static void TimSort<T>(this IList<T> list)
+        {
+            CollectionUtil.TimSort(list);
+        }
+
+        /// <summary>
+        /// Sorts the given <see cref="IList{T}"/> using the <see cref="IComparer{T}"/>.
+        /// This method uses the Tim sort
+        /// algorithm, but falls back to binary sort for small lists.
+        /// </summary>
+        /// <typeparam name="T"></typeparam>
+        /// <param name="list">this <see cref="IList{T}"/></param>
+        /// <param name="comparer">The <see cref="IComparer{T}"/> to use for the sort.</param>
+        public static void TimSort<T>(this IList<T> list, IComparer<T> comparer)
+        {
+            CollectionUtil.TimSort(list, comparer);
+        }
+
+        /// <summary>
+        /// Sorts the given <see cref="IList{T}"/> using the <see cref="IComparer{T}"/>.
+        /// This method uses the intro sort
+        /// algorithm, but falls back to insertion sort for small lists. 
+        /// </summary>
+        /// <typeparam name="T"></typeparam>
+        /// <param name="list">this <see cref="IList{T}"/></param>
+        public static void IntroSort<T>(this IList<T> list)
+        {
+            CollectionUtil.IntroSort(list);
+        }
+
+        /// <summary>
+        /// Sorts the given <see cref="IList{T}"/> using the <see cref="IComparer{T}"/>.
+        /// This method uses the intro sort
+        /// algorithm, but falls back to insertion sort for small lists. 
+        /// </summary>
+        /// <typeparam name="T"></typeparam>
+        /// <param name="list">this <see cref="IList{T}"/></param>
+        /// <param name="comparer">The <see cref="IComparer{T}"/> to use for the sort.</param>
+        public static void IntroSort<T>(this IList<T> list, IComparer<T> comparer)
+        {
+            CollectionUtil.IntroSort(list, comparer);
+        }
+
+        #region Nested Type: FunctorComparer<T>
+
+        private sealed class FunctorComparer<T> : IComparer<T>
+        {
+            private Comparison<T> comparison;
+
+            public FunctorComparer(Comparison<T> comparison)
+            {
+                this.comparison = comparison;
+            }
+
+            public int Compare(T x, T y)
+            {
+                return this.comparison(x, y);
+            }
+        }
+
+        #endregion Nested Type: FunctorComparer<T>
+    }
+}


[lucenenet] 05/35: BREAKING: Lucene.Net.Support.Threading: Marked ICompletionService and TaskSchedulerCompletionService internal

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit 3eb9d39d62193ed81482601d74c08ebb8f69c62c
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Thu Feb 6 20:29:43 2020 +0700

    BREAKING: Lucene.Net.Support.Threading: Marked ICompletionService and TaskSchedulerCompletionService internal
---
 .../Support/Threading/ICompletionService.cs        | 32 +++++++++++-----------
 .../Threading/TaskSchedulerCompletionService.cs    | 32 +++++++++++-----------
 2 files changed, 32 insertions(+), 32 deletions(-)

diff --git a/src/Lucene.Net/Support/Threading/ICompletionService.cs b/src/Lucene.Net/Support/Threading/ICompletionService.cs
index 7de4e66..2a8e8a9 100644
--- a/src/Lucene.Net/Support/Threading/ICompletionService.cs
+++ b/src/Lucene.Net/Support/Threading/ICompletionService.cs
@@ -3,23 +3,23 @@
 namespace Lucene.Net.Support.Threading
 {
     /*
-	 * Licensed to the Apache Software Foundation (ASF) under one or more
-	 * contributor license agreements.  See the NOTICE file distributed with
-	 * this work for additional information regarding copyright ownership.
-	 * The ASF licenses this file to You under the Apache License, Version 2.0
-	 * (the "License"); you may not use this file except in compliance with
-	 * the License.  You may obtain a copy of the License at
-	 *
-	 *     http://www.apache.org/licenses/LICENSE-2.0
-	 *
-	 * Unless required by applicable law or agreed to in writing, software
-	 * distributed under the License is distributed on an "AS IS" BASIS,
-	 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-	 * See the License for the specific language governing permissions and
-	 * limitations under the License.
-	 */
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
 
-    public interface ICompletionService<V>
+    internal interface ICompletionService<V>
     {
         //Task<V> Poll();
 
diff --git a/src/Lucene.Net/Support/Threading/TaskSchedulerCompletionService.cs b/src/Lucene.Net/Support/Threading/TaskSchedulerCompletionService.cs
index fcc8605..abd1cfd 100644
--- a/src/Lucene.Net/Support/Threading/TaskSchedulerCompletionService.cs
+++ b/src/Lucene.Net/Support/Threading/TaskSchedulerCompletionService.cs
@@ -4,23 +4,23 @@ using System.Threading.Tasks;
 namespace Lucene.Net.Support.Threading
 {
     /*
-	 * Licensed to the Apache Software Foundation (ASF) under one or more
-	 * contributor license agreements.  See the NOTICE file distributed with
-	 * this work for additional information regarding copyright ownership.
-	 * The ASF licenses this file to You under the Apache License, Version 2.0
-	 * (the "License"); you may not use this file except in compliance with
-	 * the License.  You may obtain a copy of the License at
-	 *
-	 *     http://www.apache.org/licenses/LICENSE-2.0
-	 *
-	 * Unless required by applicable law or agreed to in writing, software
-	 * distributed under the License is distributed on an "AS IS" BASIS,
-	 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-	 * See the License for the specific language governing permissions and
-	 * limitations under the License.
-	 */
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
 
-    public class TaskSchedulerCompletionService<T> : ICompletionService<T>
+    internal class TaskSchedulerCompletionService<T> : ICompletionService<T>
     {
         private readonly TaskFactory<T> factory;
         private readonly Queue<Task<T>> taskQueue = new Queue<Task<T>>();


[lucenenet] 31/35: BREAKING: Lucene.Net.Support: Moved SystemProperties class to Lucene.Net.Util namespace

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit 79eeb85385820445b78e4c3a050da5f599b975c4
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Sat Feb 8 21:41:45 2020 +0700

    BREAKING: Lucene.Net.Support: Moved SystemProperties class to Lucene.Net.Util namespace
---
 src/Lucene.Net.Analysis.SmartCn/AnalyzerProfile.cs |  2 +-
 .../Egothor.Stemmer/Compile.cs                     |  2 +-
 .../Egothor.Stemmer/DiffIt.cs                      |  2 +-
 src/Lucene.Net.Benchmark/ByTask/Utils/Config.cs    | 10 +++---
 src/Lucene.Net/Store/LockVerifyServer.cs           |  2 +-
 .../Support/{ => Util}/SystemProperties.cs         | 42 ++++++++++------------
 6 files changed, 28 insertions(+), 32 deletions(-)

diff --git a/src/Lucene.Net.Analysis.SmartCn/AnalyzerProfile.cs b/src/Lucene.Net.Analysis.SmartCn/AnalyzerProfile.cs
index fd1f4b8..314ae62 100644
--- a/src/Lucene.Net.Analysis.SmartCn/AnalyzerProfile.cs
+++ b/src/Lucene.Net.Analysis.SmartCn/AnalyzerProfile.cs
@@ -1,8 +1,8 @@
 // lucene version compatibility level: 4.8.1
+using Lucene.Net.Util;
 using System;
 using System.IO;
 using System.Security;
-using Lucene.Net.Support;
 
 namespace Lucene.Net.Analysis.Cn.Smart
 {
diff --git a/src/Lucene.Net.Analysis.Stempel/Egothor.Stemmer/Compile.cs b/src/Lucene.Net.Analysis.Stempel/Egothor.Stemmer/Compile.cs
index 08d88fb..9c6767d 100644
--- a/src/Lucene.Net.Analysis.Stempel/Egothor.Stemmer/Compile.cs
+++ b/src/Lucene.Net.Analysis.Stempel/Egothor.Stemmer/Compile.cs
@@ -1,6 +1,6 @@
 using J2N.IO;
 using J2N.Text;
-using Lucene.Net.Support;
+using Lucene.Net.Util;
 using System;
 using System.Collections.Generic;
 using System.IO;
diff --git a/src/Lucene.Net.Analysis.Stempel/Egothor.Stemmer/DiffIt.cs b/src/Lucene.Net.Analysis.Stempel/Egothor.Stemmer/DiffIt.cs
index 97bbe40..005fc20 100644
--- a/src/Lucene.Net.Analysis.Stempel/Egothor.Stemmer/DiffIt.cs
+++ b/src/Lucene.Net.Analysis.Stempel/Egothor.Stemmer/DiffIt.cs
@@ -1,5 +1,5 @@
 using J2N.Text;
-using Lucene.Net.Support;
+using Lucene.Net.Util;
 using System;
 using System.Collections.Generic;
 using System.Globalization;
diff --git a/src/Lucene.Net.Benchmark/ByTask/Utils/Config.cs b/src/Lucene.Net.Benchmark/ByTask/Utils/Config.cs
index ce5f890..0755fea 100644
--- a/src/Lucene.Net.Benchmark/ByTask/Utils/Config.cs
+++ b/src/Lucene.Net.Benchmark/ByTask/Utils/Config.cs
@@ -1,6 +1,6 @@
 using J2N;
 using J2N.Text;
-using Lucene.Net.Support;
+using Lucene.Net.Util;
 using System;
 using System.Collections.Generic;
 using System.Globalization;
@@ -50,10 +50,10 @@ namespace Lucene.Net.Benchmarks.ByTask.Utils
         private static readonly string NEW_LINE = Environment.NewLine;
 
         private int roundNumber = 0;
-        private IDictionary<string, string> props;
-        private IDictionary<string, object> valByRound = new Dictionary<string, object>();
-        private IDictionary<string, string> colForValByRound = new Dictionary<string, string>();
-        private string algorithmText;
+        private readonly IDictionary<string, string> props;
+        private readonly IDictionary<string, object> valByRound = new Dictionary<string, object>();
+        private readonly IDictionary<string, string> colForValByRound = new Dictionary<string, string>();
+        private readonly string algorithmText;
 
         /// <summary>
         /// Read both algorithm and config properties.
diff --git a/src/Lucene.Net/Store/LockVerifyServer.cs b/src/Lucene.Net/Store/LockVerifyServer.cs
index 2ebf4a4..e6c8e22 100644
--- a/src/Lucene.Net/Store/LockVerifyServer.cs
+++ b/src/Lucene.Net/Store/LockVerifyServer.cs
@@ -1,5 +1,5 @@
 using J2N.Threading;
-using Lucene.Net.Support;
+using Lucene.Net.Util;
 using System;
 using System.Globalization;
 using System.IO;
diff --git a/src/Lucene.Net/Support/SystemProperties.cs b/src/Lucene.Net/Support/Util/SystemProperties.cs
similarity index 88%
rename from src/Lucene.Net/Support/SystemProperties.cs
rename to src/Lucene.Net/Support/Util/SystemProperties.cs
index 32e31c9..04c50d5 100644
--- a/src/Lucene.Net/Support/SystemProperties.cs
+++ b/src/Lucene.Net/Support/Util/SystemProperties.cs
@@ -1,29 +1,25 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-using System;
+using System;
 using System.Security;
 
-namespace Lucene.Net.Support
+namespace Lucene.Net.Util
 {
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+
     /// <summary>
     /// Helper for environment variables. This class helps to convert the environment
     /// variables to int or bool data types and also silently handles read permission


[lucenenet] 12/35: BREAKING: Lucene.Net.Support: Marked AssemblyUtils internal

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit d12e918ad5333fb8df019aff36785e9274f38f09
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Thu Feb 6 23:32:28 2020 +0700

    BREAKING: Lucene.Net.Support: Marked AssemblyUtils internal
---
 src/Lucene.Net/Support/AssemblyUtils.cs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/Lucene.Net/Support/AssemblyUtils.cs b/src/Lucene.Net/Support/AssemblyUtils.cs
index a864a68..917df0d 100644
--- a/src/Lucene.Net/Support/AssemblyUtils.cs
+++ b/src/Lucene.Net/Support/AssemblyUtils.cs
@@ -30,7 +30,7 @@ namespace Lucene.Net.Support
     /// <summary>
     /// Methods for working with Assemblies.
     /// </summary>
-    public class AssemblyUtils
+    internal class AssemblyUtils
     {
         /// <summary>
         /// Gets a list of the host assembly's referenced assemblies excluding 


[lucenenet] 32/35: BREAKING: Lucene.Net.Benchmark.Support: Moved EnglishNumberFormatExtensions to Lucene.Net.Util namespace

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit 67013f10205ac0f4ef0b4900647f19d4c89b0893
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Sat Feb 8 22:07:09 2020 +0700

    BREAKING: Lucene.Net.Benchmark.Support: Moved EnglishNumberFormatExtensions to Lucene.Net.Util namespace
---
 src/Lucene.Net.Benchmark/ByTask/Feeds/LongToEnglishContentSource.cs     | 2 +-
 .../Support/{ => Util}/EnglishNumberFormatExtensions.cs                 | 2 +-
 .../Support/TestEnglishNumberFormatExtensions.cs                        | 1 +
 3 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/Lucene.Net.Benchmark/ByTask/Feeds/LongToEnglishContentSource.cs b/src/Lucene.Net.Benchmark/ByTask/Feeds/LongToEnglishContentSource.cs
index 7c407a2..7b4ab5f 100644
--- a/src/Lucene.Net.Benchmark/ByTask/Feeds/LongToEnglishContentSource.cs
+++ b/src/Lucene.Net.Benchmark/ByTask/Feeds/LongToEnglishContentSource.cs
@@ -1,4 +1,4 @@
-using Lucene.Net.Support;
+using Lucene.Net.Util;
 using System;
 using System.Globalization;
 
diff --git a/src/Lucene.Net.Benchmark/Support/EnglishNumberFormatExtensions.cs b/src/Lucene.Net.Benchmark/Support/Util/EnglishNumberFormatExtensions.cs
similarity index 99%
rename from src/Lucene.Net.Benchmark/Support/EnglishNumberFormatExtensions.cs
rename to src/Lucene.Net.Benchmark/Support/Util/EnglishNumberFormatExtensions.cs
index 881f421..0a410f3 100644
--- a/src/Lucene.Net.Benchmark/Support/EnglishNumberFormatExtensions.cs
+++ b/src/Lucene.Net.Benchmark/Support/Util/EnglishNumberFormatExtensions.cs
@@ -1,7 +1,7 @@
 using System;
 using System.Text;
 
-namespace Lucene.Net.Support
+namespace Lucene.Net.Util
 {
     /*
      * Licensed to the Apache Software Foundation (ASF) under one or more
diff --git a/src/Lucene.Net.Tests.Benchmark/Support/TestEnglishNumberFormatExtensions.cs b/src/Lucene.Net.Tests.Benchmark/Support/TestEnglishNumberFormatExtensions.cs
index 68cc70a..ac1bdff 100644
--- a/src/Lucene.Net.Tests.Benchmark/Support/TestEnglishNumberFormatExtensions.cs
+++ b/src/Lucene.Net.Tests.Benchmark/Support/TestEnglishNumberFormatExtensions.cs
@@ -1,4 +1,5 @@
 using Lucene.Net.Attributes;
+using Lucene.Net.Util;
 using NUnit.Framework;
 
 namespace Lucene.Net.Support


[lucenenet] 29/35: BREAKING: Lucene.Net.TestFramework.Support: Changed namespace of ApiScanTestBase, CultureInfoSupport, and ExceptionSerializationTestBase to Lucene.Net.Util

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit 36abc9a832cf43b85c686061daaf00f92a4afba0
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Sat Feb 8 18:36:51 2020 +0700

    BREAKING: Lucene.Net.TestFramework.Support: Changed namespace of ApiScanTestBase, CultureInfoSupport, and ExceptionSerializationTestBase to Lucene.Net.Util
---
 .../Support/ApiScanTestBase.cs                     | 27 +++++++-------
 .../Support/CultureInfoSupport.cs                  |  2 +-
 .../Support/ExceptionSerializationTestBase.cs      |  4 +--
 .../Support/TestApiConsistency.cs                  | 40 ++++++++++-----------
 .../Support/TestExceptionSerialization.cs          |  1 +
 .../Support/TestApiConsistency.cs                  | 42 ++++++++++------------
 .../Support/TestExceptionSerialization.cs          |  1 +
 .../Support/TestApiConsistency.cs                  | 42 ++++++++++------------
 .../Support/TestExceptionSerialization.cs          |  1 +
 .../Support/TestApiConsistency.cs                  | 42 ++++++++++------------
 .../Support/TestExceptionSerialization.cs          |  1 +
 .../Support/TestApiConsistency.cs                  | 40 ++++++++++-----------
 .../Support/TestExceptionSerialization.cs          |  1 +
 .../Support/TestApiConsistency.cs                  | 42 ++++++++++------------
 .../Support/TestExceptionSerialization.cs          |  1 +
 .../Support/TestApiConsistency.cs                  | 40 ++++++++++-----------
 .../Support/TestExceptionSerialization.cs          |  1 +
 .../Support/TestApiConsistency.cs                  | 40 ++++++++++-----------
 .../Support/TestExceptionSerialization.cs          |  1 +
 .../Support/TestApiConsistency.cs                  | 32 ++++++++---------
 .../Support/TestExceptionSerialization.cs          |  1 +
 .../Support/TestApiConsistency.cs                  | 40 ++++++++++-----------
 .../Support/TestExceptionSerialization.cs          |  1 +
 .../Support/TestApiConsistency.cs                  | 40 ++++++++++-----------
 .../Support/TestExceptionSerialization.cs          |  1 +
 .../Support/TestApiConsistency.cs                  | 40 ++++++++++-----------
 .../Support/TestExceptionSerialization.cs          |  1 +
 .../Support/TestApiConsistency.cs                  | 40 ++++++++++-----------
 .../Support/TestExceptionSerialization.cs          |  1 +
 .../Support/TestApiConsistency.cs                  | 40 ++++++++++-----------
 .../Support/TestExceptionSerialization.cs          |  1 +
 .../Support/TestApiConsistency.cs                  | 40 ++++++++++-----------
 .../Support/TestExceptionSerialization.cs          |  1 +
 .../Support/TestApiConsistency.cs                  | 40 ++++++++++-----------
 .../Support/TestExceptionSerialization.cs          |  1 +
 .../Support/TestApiConsistency.cs                  | 40 ++++++++++-----------
 .../Support/TestExceptionSerialization.cs          |  1 +
 .../Support/TestApiConsistency.cs                  | 42 ++++++++++------------
 .../Support/TestExceptionSerialization.cs          |  1 +
 .../Support/TestApiConsistency.cs                  | 40 ++++++++++-----------
 .../Support/TestExceptionSerialization.cs          |  1 +
 .../Support/TestApiConsistency.cs                  | 40 ++++++++++-----------
 .../Support/TestExceptionSerialization.cs          |  1 +
 .../Support/TestApiConsistency.cs                  | 40 ++++++++++-----------
 .../Support/TestExceptionSerialization.cs          |  1 +
 .../Support/TestApiConsistency.cs                  | 41 ++++++++++-----------
 .../Support/TestExceptionSerialization.cs          |  1 +
 src/Lucene.Net.Tests/Support/TestApiConsistency.cs | 40 ++++++++++-----------
 .../Support/TestExceptionSerialization.cs          |  1 +
 .../Support/TestApiConsistency.cs                  | 39 ++++++++++----------
 .../Support/TestExceptionSerialization.cs          |  1 +
 51 files changed, 475 insertions(+), 544 deletions(-)

diff --git a/src/Lucene.Net.TestFramework/Support/ApiScanTestBase.cs b/src/Lucene.Net.TestFramework/Support/ApiScanTestBase.cs
index 35ed0d2..b0f6a1b 100644
--- a/src/Lucene.Net.TestFramework/Support/ApiScanTestBase.cs
+++ b/src/Lucene.Net.TestFramework/Support/ApiScanTestBase.cs
@@ -1,4 +1,4 @@
-using Lucene.Net.Util;
+using Lucene.Net.Support;
 using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -8,7 +8,7 @@ using System.Text.RegularExpressions;
 using Assert = Lucene.Net.TestFramework.Assert;
 using Console = Lucene.Net.Util.SystemConsole;
 
-namespace Lucene.Net.Support
+namespace Lucene.Net.Util
 {
     /*
      * Licensed to the Apache Software Foundation (ASF) under one or more
@@ -28,8 +28,9 @@ namespace Lucene.Net.Support
      */
 
     /// <summary>
-    /// LUCENENET specific - functionality for scanning the API to ensure 
-    /// naming and .NET conventions are followed consistently.
+    /// LUCENENET specific - functionality for scanning the API to ensure
+    /// naming and .NET conventions are followed consistently. Not for use
+    /// by end users.
     /// </summary>
     public abstract class ApiScanTestBase : LuceneTestCase
 #if TESTFRAMEWORK_XUNIT
@@ -49,52 +50,52 @@ namespace Lucene.Net.Support
         /// must be camelCase (optionally may be prefixed with underscore, 
         /// but it is preferred not to use the underscore to match Lucene).
         /// </summary>
-        private static Regex PrivateFieldName = new Regex("^_?[a-z][a-zA-Z0-9_]*$|^[A-Z0-9_]+$", RegexOptions.Compiled);
+        private static readonly Regex PrivateFieldName = new Regex("^_?[a-z][a-zA-Z0-9_]*$|^[A-Z0-9_]+$", RegexOptions.Compiled);
 
         /// <summary>
         /// Protected fields must either be upper case separated with underscores or
         /// must be prefixed with m_ (to avoid naming conflicts with properties).
         /// </summary>
-        private static Regex ProtectedFieldName = new Regex("^m_[a-z][a-zA-Z0-9_]*$|^[A-Z0-9_]+$", RegexOptions.Compiled);
+        private static readonly Regex ProtectedFieldName = new Regex("^m_[a-z][a-zA-Z0-9_]*$|^[A-Z0-9_]+$", RegexOptions.Compiled);
 
         /// <summary>
         /// Method parameters must be camelCase and not begin or end with underscore.
         /// </summary>
-        private static Regex MethodParameterName = new Regex("^[a-z](?:[a-zA-Z0-9_]*[a-zA-Z0-9])?$", RegexOptions.Compiled);
+        private static readonly Regex MethodParameterName = new Regex("^[a-z](?:[a-zA-Z0-9_]*[a-zA-Z0-9])?$", RegexOptions.Compiled);
 
         /// <summary>
         /// Interfaces must begin with "I" followed by another captial letter. Note this includes a
         /// fix for generic interface names, that end with `{number}.
         /// </summary>
-        private static Regex InterfaceName = new Regex("^I[A-Z][a-zA-Z0-9_]*(?:`\\d+)?$", RegexOptions.Compiled);
+        private static readonly Regex InterfaceName = new Regex("^I[A-Z][a-zA-Z0-9_]*(?:`\\d+)?$", RegexOptions.Compiled);
 
         /// <summary>
         /// Class names must be pascal case and not use the interface naming convention.
         /// </summary>
-        private static Regex ClassName = new Regex("^[A-Z][a-zA-Z0-9_]*(?:`\\d+)?$", RegexOptions.Compiled);
+        private static readonly Regex ClassName = new Regex("^[A-Z][a-zA-Z0-9_]*(?:`\\d+)?$", RegexOptions.Compiled);
 
         /// <summary>
         /// Public members should not contain the word "Comparer". In .NET, these should be named "Comparer".
         /// </summary>
-        private static Regex ContainsComparer = new Regex("[Cc]omparator", RegexOptions.Compiled);
+        private static readonly Regex ContainsComparer = new Regex("[Cc]omparator", RegexOptions.Compiled);
 
         /// <summary>
         /// Public methods and properties should not contain the word "Int" that is not followed by 16, 32, or 64,
         /// "Long", "Short", or "Float". These should be converted to their .NET names "Int32", "Int64", "Int16", and "Short".
         /// Note we need to ignore common words such as "point", "intern", and "intersect".
         /// </summary>
-        private static Regex ContainsNonNetNumeric = new Regex("(?<![Pp]o|[Pp]r|[Jj]o)[Ii]nt(?!16|32|64|er|eg|ro)|[Ll]ong(?!est|er)|[Ss]hort(?!est|er)|[Ff]loat", RegexOptions.Compiled);
+        private static readonly Regex ContainsNonNetNumeric = new Regex("(?<![Pp]o|[Pp]r|[Jj]o)[Ii]nt(?!16|32|64|er|eg|ro)|[Ll]ong(?!est|er)|[Ss]hort(?!est|er)|[Ff]loat", RegexOptions.Compiled);
 
         /// <summary>
         /// Constants should not contain the word INT that is not followed by 16, 32, or 64, LONG, SHORT, or FLOAT
         /// </summary>
-        private static Regex ConstContainsNonNetNumeric = new Regex("(?<!PO|PR|JO)INT(?!16|32|64|ER|EG|RO)|LONG(?!EST|ER)|SHORT(?!EST|ER)|FLOAT", RegexOptions.Compiled);
+        private static readonly Regex ConstContainsNonNetNumeric = new Regex("(?<!PO|PR|JO)INT(?!16|32|64|ER|EG|RO)|LONG(?!EST|ER)|SHORT(?!EST|ER)|FLOAT", RegexOptions.Compiled);
 
         /// <summary>
         /// Matches IL code pattern for a method body with only a return statement for a local variable.
         /// In this case, the array is writable by the consumer.
         /// </summary>
-        private static Regex MethodBodyReturnValueOnly = new Regex("\\0\\u0002\\{(?:.|\\\\u\\d\\d\\d\\d|\\0|\\[a-z]){3}\\u0004\\n\\+\\0\\u0006\\*", RegexOptions.Compiled);
+        private static readonly Regex MethodBodyReturnValueOnly = new Regex("\\0\\u0002\\{(?:.|\\\\u\\d\\d\\d\\d|\\0|\\[a-z]){3}\\u0004\\n\\+\\0\\u0006\\*", RegexOptions.Compiled);
 
 
         //[Test, LuceneNetSpecific]
diff --git a/src/Lucene.Net.TestFramework/Support/CultureInfoSupport.cs b/src/Lucene.Net.TestFramework/Support/CultureInfoSupport.cs
index 8ee8d6c..02dbdb3 100644
--- a/src/Lucene.Net.TestFramework/Support/CultureInfoSupport.cs
+++ b/src/Lucene.Net.TestFramework/Support/CultureInfoSupport.cs
@@ -1,6 +1,6 @@
 using System.Globalization;
 
-namespace Lucene.Net.Support
+namespace Lucene.Net.Util
 {
     /*
      * Licensed to the Apache Software Foundation (ASF) under one or more
diff --git a/src/Lucene.Net.TestFramework/Support/ExceptionSerializationTestBase.cs b/src/Lucene.Net.TestFramework/Support/ExceptionSerializationTestBase.cs
index ff2b154..65134a1 100644
--- a/src/Lucene.Net.TestFramework/Support/ExceptionSerializationTestBase.cs
+++ b/src/Lucene.Net.TestFramework/Support/ExceptionSerializationTestBase.cs
@@ -1,6 +1,4 @@
 #if FEATURE_SERIALIZABLE
-using Lucene.Net.TestFramework;
-using Lucene.Net.Util;
 using System;
 using System.Globalization;
 using System.IO;
@@ -9,7 +7,7 @@ using System.Runtime.Serialization;
 using System.Runtime.Serialization.Formatters.Binary;
 using Assert = Lucene.Net.TestFramework.Assert;
 
-namespace Lucene.Net.Support
+namespace Lucene.Net.Util
 {
     /*
      * Licensed to the Apache Software Foundation (ASF) under one or more
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Support/TestApiConsistency.cs b/src/Lucene.Net.Tests.Analysis.Common/Support/TestApiConsistency.cs
index d849a78..8ec72b6 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Support/TestApiConsistency.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Support/TestApiConsistency.cs
@@ -1,31 +1,27 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
 using Lucene.Net.Attributes;
-using Lucene.Net.Support;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 
 namespace Lucene.Net.Analysis
 {
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+
     /// <summary>
     /// LUCENENET specific tests for ensuring API conventions are followed
     /// </summary>
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Support/TestExceptionSerialization.cs b/src/Lucene.Net.Tests.Analysis.Common/Support/TestExceptionSerialization.cs
index de2fce9..55f5be0 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Support/TestExceptionSerialization.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Support/TestExceptionSerialization.cs
@@ -1,5 +1,6 @@
 #if FEATURE_SERIALIZABLE_EXCEPTIONS
 using Lucene.Net.Attributes;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 using System.Collections.Generic;
diff --git a/src/Lucene.Net.Tests.Analysis.Kuromoji/Support/TestApiConsistency.cs b/src/Lucene.Net.Tests.Analysis.Kuromoji/Support/TestApiConsistency.cs
index f21cbde..8985e94 100644
--- a/src/Lucene.Net.Tests.Analysis.Kuromoji/Support/TestApiConsistency.cs
+++ b/src/Lucene.Net.Tests.Analysis.Kuromoji/Support/TestApiConsistency.cs
@@ -1,31 +1,27 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-using Lucene.Net.Attributes;
-using Lucene.Net.Support;
+using Lucene.Net.Attributes;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 
 namespace Lucene.Net.Analysis.Ja.Support
 {
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+
     /// <summary>
     /// LUCENENET specific tests for ensuring API conventions are followed
     /// </summary>
diff --git a/src/Lucene.Net.Tests.Analysis.Kuromoji/Support/TestExceptionSerialization.cs b/src/Lucene.Net.Tests.Analysis.Kuromoji/Support/TestExceptionSerialization.cs
index 80d5b43..c116cd1 100644
--- a/src/Lucene.Net.Tests.Analysis.Kuromoji/Support/TestExceptionSerialization.cs
+++ b/src/Lucene.Net.Tests.Analysis.Kuromoji/Support/TestExceptionSerialization.cs
@@ -1,5 +1,6 @@
 #if FEATURE_SERIALIZABLE_EXCEPTIONS
 using Lucene.Net.Attributes;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 using System.Collections.Generic;
diff --git a/src/Lucene.Net.Tests.Analysis.Phonetic/Support/TestApiConsistency.cs b/src/Lucene.Net.Tests.Analysis.Phonetic/Support/TestApiConsistency.cs
index 542b8bb..d7bc47b 100644
--- a/src/Lucene.Net.Tests.Analysis.Phonetic/Support/TestApiConsistency.cs
+++ b/src/Lucene.Net.Tests.Analysis.Phonetic/Support/TestApiConsistency.cs
@@ -1,31 +1,27 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-using Lucene.Net.Attributes;
-using Lucene.Net.Support;
+using Lucene.Net.Attributes;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 
 namespace Lucene.Net.Analysis.Phonetic
 {
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+
     /// <summary>
     /// LUCENENET specific tests for ensuring API conventions are followed
     /// </summary>
diff --git a/src/Lucene.Net.Tests.Analysis.Phonetic/Support/TestExceptionSerialization.cs b/src/Lucene.Net.Tests.Analysis.Phonetic/Support/TestExceptionSerialization.cs
index 282daff..c7c454d 100644
--- a/src/Lucene.Net.Tests.Analysis.Phonetic/Support/TestExceptionSerialization.cs
+++ b/src/Lucene.Net.Tests.Analysis.Phonetic/Support/TestExceptionSerialization.cs
@@ -1,5 +1,6 @@
 #if FEATURE_SERIALIZABLE_EXCEPTIONS
 using Lucene.Net.Attributes;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 using System.Collections.Generic;
diff --git a/src/Lucene.Net.Tests.Analysis.SmartCn/Support/TestApiConsistency.cs b/src/Lucene.Net.Tests.Analysis.SmartCn/Support/TestApiConsistency.cs
index a0dcf4e..d049009 100644
--- a/src/Lucene.Net.Tests.Analysis.SmartCn/Support/TestApiConsistency.cs
+++ b/src/Lucene.Net.Tests.Analysis.SmartCn/Support/TestApiConsistency.cs
@@ -1,31 +1,27 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-using Lucene.Net.Attributes;
-using Lucene.Net.Support;
+using Lucene.Net.Attributes;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 
 namespace Lucene.Net.Analysis.Cn.Smart.Support
 {
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+
     /// <summary>
     /// LUCENENET specific tests for ensuring API conventions are followed
     /// </summary>
diff --git a/src/Lucene.Net.Tests.Analysis.SmartCn/Support/TestExceptionSerialization.cs b/src/Lucene.Net.Tests.Analysis.SmartCn/Support/TestExceptionSerialization.cs
index f01a3c3..ca73e99 100644
--- a/src/Lucene.Net.Tests.Analysis.SmartCn/Support/TestExceptionSerialization.cs
+++ b/src/Lucene.Net.Tests.Analysis.SmartCn/Support/TestExceptionSerialization.cs
@@ -1,5 +1,6 @@
 #if FEATURE_SERIALIZABLE_EXCEPTIONS
 using Lucene.Net.Attributes;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 using System.Collections.Generic;
diff --git a/src/Lucene.Net.Tests.Analysis.Stempel/Support/TestApiConsistency.cs b/src/Lucene.Net.Tests.Analysis.Stempel/Support/TestApiConsistency.cs
index eaf90be..ff371f1 100644
--- a/src/Lucene.Net.Tests.Analysis.Stempel/Support/TestApiConsistency.cs
+++ b/src/Lucene.Net.Tests.Analysis.Stempel/Support/TestApiConsistency.cs
@@ -1,31 +1,27 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
 using Lucene.Net.Attributes;
-using Lucene.Net.Support;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 
 namespace Lucene.Net.Analysis.Stempel
 {
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+
     /// <summary>
     /// LUCENENET specific tests for ensuring API conventions are followed
     /// </summary>
diff --git a/src/Lucene.Net.Tests.Analysis.Stempel/Support/TestExceptionSerialization.cs b/src/Lucene.Net.Tests.Analysis.Stempel/Support/TestExceptionSerialization.cs
index 4fc50cb..9e489bc 100644
--- a/src/Lucene.Net.Tests.Analysis.Stempel/Support/TestExceptionSerialization.cs
+++ b/src/Lucene.Net.Tests.Analysis.Stempel/Support/TestExceptionSerialization.cs
@@ -1,5 +1,6 @@
 #if FEATURE_SERIALIZABLE_EXCEPTIONS
 using Lucene.Net.Attributes;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 using System.Collections.Generic;
diff --git a/src/Lucene.Net.Tests.Benchmark/Support/TestApiConsistency.cs b/src/Lucene.Net.Tests.Benchmark/Support/TestApiConsistency.cs
index 49776c9..da035b0 100644
--- a/src/Lucene.Net.Tests.Benchmark/Support/TestApiConsistency.cs
+++ b/src/Lucene.Net.Tests.Benchmark/Support/TestApiConsistency.cs
@@ -1,31 +1,27 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-using Lucene.Net.Attributes;
-using Lucene.Net.Support;
+using Lucene.Net.Attributes;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 
 namespace Lucene.Net.Benchmarks.Support
 {
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+
     /// <summary>
     /// LUCENENET specific tests for ensuring API conventions are followed
     /// </summary>
diff --git a/src/Lucene.Net.Tests.Benchmark/Support/TestExceptionSerialization.cs b/src/Lucene.Net.Tests.Benchmark/Support/TestExceptionSerialization.cs
index 9e2933c..3025feb 100644
--- a/src/Lucene.Net.Tests.Benchmark/Support/TestExceptionSerialization.cs
+++ b/src/Lucene.Net.Tests.Benchmark/Support/TestExceptionSerialization.cs
@@ -1,5 +1,6 @@
 #if FEATURE_SERIALIZABLE_EXCEPTIONS
 using Lucene.Net.Attributes;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 using System.Collections.Generic;
diff --git a/src/Lucene.Net.Tests.Classification/Support/TestApiConsistency.cs b/src/Lucene.Net.Tests.Classification/Support/TestApiConsistency.cs
index def796f..75ec564 100644
--- a/src/Lucene.Net.Tests.Classification/Support/TestApiConsistency.cs
+++ b/src/Lucene.Net.Tests.Classification/Support/TestApiConsistency.cs
@@ -1,31 +1,27 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
 using Lucene.Net.Attributes;
-using Lucene.Net.Support;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 
 namespace Lucene.Net.Classification
 {
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+
     /// <summary>
     /// LUCENENET specific tests for ensuring API conventions are followed
     /// </summary>
diff --git a/src/Lucene.Net.Tests.Classification/Support/TestExceptionSerialization.cs b/src/Lucene.Net.Tests.Classification/Support/TestExceptionSerialization.cs
index 1f5e4d1..e17feff 100644
--- a/src/Lucene.Net.Tests.Classification/Support/TestExceptionSerialization.cs
+++ b/src/Lucene.Net.Tests.Classification/Support/TestExceptionSerialization.cs
@@ -1,5 +1,6 @@
 #if FEATURE_SERIALIZABLE_EXCEPTIONS
 using Lucene.Net.Attributes;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 using System.Collections.Generic;
diff --git a/src/Lucene.Net.Tests.Codecs/Support/TestApiConsistency.cs b/src/Lucene.Net.Tests.Codecs/Support/TestApiConsistency.cs
index 20d7784..e1cdb97 100644
--- a/src/Lucene.Net.Tests.Codecs/Support/TestApiConsistency.cs
+++ b/src/Lucene.Net.Tests.Codecs/Support/TestApiConsistency.cs
@@ -1,31 +1,27 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
 using Lucene.Net.Attributes;
-using Lucene.Net.Support;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 
 namespace Lucene.Net.Codecs.Tests
 {
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+
     /// <summary>
     /// LUCENENET specific tests for ensuring API conventions are followed
     /// </summary>
diff --git a/src/Lucene.Net.Tests.Codecs/Support/TestExceptionSerialization.cs b/src/Lucene.Net.Tests.Codecs/Support/TestExceptionSerialization.cs
index 293f3cc..c102597 100644
--- a/src/Lucene.Net.Tests.Codecs/Support/TestExceptionSerialization.cs
+++ b/src/Lucene.Net.Tests.Codecs/Support/TestExceptionSerialization.cs
@@ -1,5 +1,6 @@
 #if FEATURE_SERIALIZABLE_EXCEPTIONS
 using Lucene.Net.Attributes;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 using System.Collections.Generic;
diff --git a/src/Lucene.Net.Tests.Expressions/Support/TestApiConsistency.cs b/src/Lucene.Net.Tests.Expressions/Support/TestApiConsistency.cs
index c1eb4c4..e8b9448 100644
--- a/src/Lucene.Net.Tests.Expressions/Support/TestApiConsistency.cs
+++ b/src/Lucene.Net.Tests.Expressions/Support/TestApiConsistency.cs
@@ -1,26 +1,26 @@
 using Lucene.Net.Attributes;
-using Lucene.Net.Support;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 
 namespace Lucene.Net.Expressions
 {
     /*
-	 * Licensed to the Apache Software Foundation (ASF) under one or more
-	 * contributor license agreements.  See the NOTICE file distributed with
-	 * this work for additional information regarding copyright ownership.
-	 * The ASF licenses this file to You under the Apache License, Version 2.0
-	 * (the "License"); you may not use this file except in compliance with
-	 * the License.  You may obtain a copy of the License at
-	 *
-	 *     http://www.apache.org/licenses/LICENSE-2.0
-	 *
-	 * Unless required by applicable law or agreed to in writing, software
-	 * distributed under the License is distributed on an "AS IS" BASIS,
-	 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-	 * See the License for the specific language governing permissions and
-	 * limitations under the License.
-	 */
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
 
     /// <summary>
     /// LUCENENET specific tests for ensuring API conventions are followed
diff --git a/src/Lucene.Net.Tests.Expressions/Support/TestExceptionSerialization.cs b/src/Lucene.Net.Tests.Expressions/Support/TestExceptionSerialization.cs
index 37efac9..4823f9c 100644
--- a/src/Lucene.Net.Tests.Expressions/Support/TestExceptionSerialization.cs
+++ b/src/Lucene.Net.Tests.Expressions/Support/TestExceptionSerialization.cs
@@ -1,5 +1,6 @@
 #if FEATURE_SERIALIZABLE_EXCEPTIONS
 using Lucene.Net.Attributes;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 using System.Collections.Generic;
diff --git a/src/Lucene.Net.Tests.Facet/Support/TestApiConsistency.cs b/src/Lucene.Net.Tests.Facet/Support/TestApiConsistency.cs
index 5b9b189..50310b9 100644
--- a/src/Lucene.Net.Tests.Facet/Support/TestApiConsistency.cs
+++ b/src/Lucene.Net.Tests.Facet/Support/TestApiConsistency.cs
@@ -1,31 +1,27 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
 using Lucene.Net.Attributes;
-using Lucene.Net.Support;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 
 namespace Lucene.Net.Tests.Facet
 {
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+
     /// <summary>
     /// LUCENENET specific tests for ensuring API conventions are followed
     /// </summary>
diff --git a/src/Lucene.Net.Tests.Facet/Support/TestExceptionSerialization.cs b/src/Lucene.Net.Tests.Facet/Support/TestExceptionSerialization.cs
index 947e21a..b487317 100644
--- a/src/Lucene.Net.Tests.Facet/Support/TestExceptionSerialization.cs
+++ b/src/Lucene.Net.Tests.Facet/Support/TestExceptionSerialization.cs
@@ -1,5 +1,6 @@
 #if FEATURE_SERIALIZABLE_EXCEPTIONS
 using Lucene.Net.Attributes;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 using System.Collections.Generic;
diff --git a/src/Lucene.Net.Tests.Grouping/Support/TestApiConsistency.cs b/src/Lucene.Net.Tests.Grouping/Support/TestApiConsistency.cs
index bbbbea8..3d3c445 100644
--- a/src/Lucene.Net.Tests.Grouping/Support/TestApiConsistency.cs
+++ b/src/Lucene.Net.Tests.Grouping/Support/TestApiConsistency.cs
@@ -1,31 +1,27 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
 using Lucene.Net.Attributes;
-using Lucene.Net.Support;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 
 namespace Lucene.Net.Tests.Grouping
 {
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+
     /// <summary>
     /// LUCENENET specific tests for ensuring API conventions are followed
     /// </summary>
diff --git a/src/Lucene.Net.Tests.Grouping/Support/TestExceptionSerialization.cs b/src/Lucene.Net.Tests.Grouping/Support/TestExceptionSerialization.cs
index 6642c21..308eb4c 100644
--- a/src/Lucene.Net.Tests.Grouping/Support/TestExceptionSerialization.cs
+++ b/src/Lucene.Net.Tests.Grouping/Support/TestExceptionSerialization.cs
@@ -1,5 +1,6 @@
 #if FEATURE_SERIALIZABLE_EXCEPTIONS
 using Lucene.Net.Attributes;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 using System.Collections.Generic;
diff --git a/src/Lucene.Net.Tests.Highlighter/Support/TestApiConsistency.cs b/src/Lucene.Net.Tests.Highlighter/Support/TestApiConsistency.cs
index 098aeb1..82fb815 100644
--- a/src/Lucene.Net.Tests.Highlighter/Support/TestApiConsistency.cs
+++ b/src/Lucene.Net.Tests.Highlighter/Support/TestApiConsistency.cs
@@ -1,31 +1,27 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
 using Lucene.Net.Attributes;
-using Lucene.Net.Support;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 
 namespace Lucene.Net.Search
 {
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+
     /// <summary>
     /// LUCENENET specific tests for ensuring API conventions are followed
     /// </summary>
diff --git a/src/Lucene.Net.Tests.Highlighter/Support/TestExceptionSerialization.cs b/src/Lucene.Net.Tests.Highlighter/Support/TestExceptionSerialization.cs
index 4a11185..229c48a 100644
--- a/src/Lucene.Net.Tests.Highlighter/Support/TestExceptionSerialization.cs
+++ b/src/Lucene.Net.Tests.Highlighter/Support/TestExceptionSerialization.cs
@@ -1,5 +1,6 @@
 #if FEATURE_SERIALIZABLE_EXCEPTIONS
 using Lucene.Net.Attributes;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 using System.Collections.Generic;
diff --git a/src/Lucene.Net.Tests.Join/Support/TestApiConsistency.cs b/src/Lucene.Net.Tests.Join/Support/TestApiConsistency.cs
index feb4475..7ee5e8e 100644
--- a/src/Lucene.Net.Tests.Join/Support/TestApiConsistency.cs
+++ b/src/Lucene.Net.Tests.Join/Support/TestApiConsistency.cs
@@ -1,31 +1,27 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
 using Lucene.Net.Attributes;
-using Lucene.Net.Support;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 
 namespace Lucene.Net.Join
 {
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+
     /// <summary>
     /// LUCENENET specific tests for ensuring API conventions are followed
     /// </summary>
diff --git a/src/Lucene.Net.Tests.Join/Support/TestExceptionSerialization.cs b/src/Lucene.Net.Tests.Join/Support/TestExceptionSerialization.cs
index 5c7a668..099fcc1 100644
--- a/src/Lucene.Net.Tests.Join/Support/TestExceptionSerialization.cs
+++ b/src/Lucene.Net.Tests.Join/Support/TestExceptionSerialization.cs
@@ -1,5 +1,6 @@
 #if FEATURE_SERIALIZABLE_EXCEPTIONS
 using Lucene.Net.Attributes;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 using System.Collections.Generic;
diff --git a/src/Lucene.Net.Tests.Memory/Support/TestApiConsistency.cs b/src/Lucene.Net.Tests.Memory/Support/TestApiConsistency.cs
index 267fde1..c49cdc7 100644
--- a/src/Lucene.Net.Tests.Memory/Support/TestApiConsistency.cs
+++ b/src/Lucene.Net.Tests.Memory/Support/TestApiConsistency.cs
@@ -1,31 +1,27 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
 using Lucene.Net.Attributes;
-using Lucene.Net.Support;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 
 namespace Lucene.Net.Tests.Memory
 {
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+
     /// <summary>
     /// LUCENENET specific tests for ensuring API conventions are followed
     /// </summary>
diff --git a/src/Lucene.Net.Tests.Memory/Support/TestExceptionSerialization.cs b/src/Lucene.Net.Tests.Memory/Support/TestExceptionSerialization.cs
index 43ec27a..6689715 100644
--- a/src/Lucene.Net.Tests.Memory/Support/TestExceptionSerialization.cs
+++ b/src/Lucene.Net.Tests.Memory/Support/TestExceptionSerialization.cs
@@ -1,5 +1,6 @@
 #if FEATURE_SERIALIZABLE_EXCEPTIONS
 using Lucene.Net.Attributes;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 using System.Collections.Generic;
diff --git a/src/Lucene.Net.Tests.Misc/Support/TestApiConsistency.cs b/src/Lucene.Net.Tests.Misc/Support/TestApiConsistency.cs
index 9f92912..ee0cce6 100644
--- a/src/Lucene.Net.Tests.Misc/Support/TestApiConsistency.cs
+++ b/src/Lucene.Net.Tests.Misc/Support/TestApiConsistency.cs
@@ -1,31 +1,27 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
 using Lucene.Net.Attributes;
-using Lucene.Net.Support;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 
 namespace Lucene.Net.Tests.Misc
 {
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+
     /// <summary>
     /// LUCENENET specific tests for ensuring API conventions are followed
     /// </summary>
diff --git a/src/Lucene.Net.Tests.Misc/Support/TestExceptionSerialization.cs b/src/Lucene.Net.Tests.Misc/Support/TestExceptionSerialization.cs
index c92102e..67417b6 100644
--- a/src/Lucene.Net.Tests.Misc/Support/TestExceptionSerialization.cs
+++ b/src/Lucene.Net.Tests.Misc/Support/TestExceptionSerialization.cs
@@ -1,5 +1,6 @@
 #if FEATURE_SERIALIZABLE_EXCEPTIONS
 using Lucene.Net.Attributes;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 using System.Collections.Generic;
diff --git a/src/Lucene.Net.Tests.Queries/Support/TestApiConsistency.cs b/src/Lucene.Net.Tests.Queries/Support/TestApiConsistency.cs
index dfc6a00..687de61 100644
--- a/src/Lucene.Net.Tests.Queries/Support/TestApiConsistency.cs
+++ b/src/Lucene.Net.Tests.Queries/Support/TestApiConsistency.cs
@@ -1,31 +1,27 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
 using Lucene.Net.Attributes;
-using Lucene.Net.Support;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 
 namespace Lucene.Net.Tests.Queries
 {
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+
     /// <summary>
     /// LUCENENET specific tests for ensuring API conventions are followed
     /// </summary>
diff --git a/src/Lucene.Net.Tests.Queries/Support/TestExceptionSerialization.cs b/src/Lucene.Net.Tests.Queries/Support/TestExceptionSerialization.cs
index 7d8442e..7730181 100644
--- a/src/Lucene.Net.Tests.Queries/Support/TestExceptionSerialization.cs
+++ b/src/Lucene.Net.Tests.Queries/Support/TestExceptionSerialization.cs
@@ -1,5 +1,6 @@
 #if FEATURE_SERIALIZABLE_EXCEPTIONS
 using Lucene.Net.Attributes;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 using System.Collections.Generic;
diff --git a/src/Lucene.Net.Tests.QueryParser/Support/TestApiConsistency.cs b/src/Lucene.Net.Tests.QueryParser/Support/TestApiConsistency.cs
index 6710fb9..87b7a07 100644
--- a/src/Lucene.Net.Tests.QueryParser/Support/TestApiConsistency.cs
+++ b/src/Lucene.Net.Tests.QueryParser/Support/TestApiConsistency.cs
@@ -1,31 +1,27 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
 using Lucene.Net.Attributes;
-using Lucene.Net.Support;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 
 namespace Lucene.Net.QueryParsers
 {
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+
     /// <summary>
     /// LUCENENET specific tests for ensuring API conventions are followed
     /// </summary>
diff --git a/src/Lucene.Net.Tests.QueryParser/Support/TestExceptionSerialization.cs b/src/Lucene.Net.Tests.QueryParser/Support/TestExceptionSerialization.cs
index f448c95..db0a09c 100644
--- a/src/Lucene.Net.Tests.QueryParser/Support/TestExceptionSerialization.cs
+++ b/src/Lucene.Net.Tests.QueryParser/Support/TestExceptionSerialization.cs
@@ -1,5 +1,6 @@
 #if FEATURE_SERIALIZABLE_EXCEPTIONS
 using Lucene.Net.Attributes;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 using System.Collections.Generic;
diff --git a/src/Lucene.Net.Tests.Replicator/Support/TestApiConsistency.cs b/src/Lucene.Net.Tests.Replicator/Support/TestApiConsistency.cs
index 00e3763..624f28d 100644
--- a/src/Lucene.Net.Tests.Replicator/Support/TestApiConsistency.cs
+++ b/src/Lucene.Net.Tests.Replicator/Support/TestApiConsistency.cs
@@ -1,31 +1,27 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-using Lucene.Net.Attributes;
-using Lucene.Net.Support;
+using Lucene.Net.Attributes;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 
 namespace Lucene.Net.Replicator
 {
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+
     /// <summary>
     /// LUCENENET specific tests for ensuring API conventions are followed
     /// </summary>
diff --git a/src/Lucene.Net.Tests.Replicator/Support/TestExceptionSerialization.cs b/src/Lucene.Net.Tests.Replicator/Support/TestExceptionSerialization.cs
index 02b9665..153a69a 100644
--- a/src/Lucene.Net.Tests.Replicator/Support/TestExceptionSerialization.cs
+++ b/src/Lucene.Net.Tests.Replicator/Support/TestExceptionSerialization.cs
@@ -1,5 +1,6 @@
 #if FEATURE_SERIALIZABLE_EXCEPTIONS
 using Lucene.Net.Attributes;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 using System.Collections.Generic;
diff --git a/src/Lucene.Net.Tests.Sandbox/Support/TestApiConsistency.cs b/src/Lucene.Net.Tests.Sandbox/Support/TestApiConsistency.cs
index 4e45a0b..de53a4d 100644
--- a/src/Lucene.Net.Tests.Sandbox/Support/TestApiConsistency.cs
+++ b/src/Lucene.Net.Tests.Sandbox/Support/TestApiConsistency.cs
@@ -1,31 +1,27 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
 using Lucene.Net.Attributes;
-using Lucene.Net.Support;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 
 namespace Lucene.Net.Sandbox
 {
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+
     /// <summary>
     /// LUCENENET specific tests for ensuring API conventions are followed
     /// </summary>
diff --git a/src/Lucene.Net.Tests.Sandbox/Support/TestExceptionSerialization.cs b/src/Lucene.Net.Tests.Sandbox/Support/TestExceptionSerialization.cs
index 0b45e48..ba0c622 100644
--- a/src/Lucene.Net.Tests.Sandbox/Support/TestExceptionSerialization.cs
+++ b/src/Lucene.Net.Tests.Sandbox/Support/TestExceptionSerialization.cs
@@ -1,5 +1,6 @@
 #if FEATURE_SERIALIZABLE_EXCEPTIONS
 using Lucene.Net.Attributes;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 using System.Collections.Generic;
diff --git a/src/Lucene.Net.Tests.Spatial/Support/TestApiConsistency.cs b/src/Lucene.Net.Tests.Spatial/Support/TestApiConsistency.cs
index 1c92117..cdb6379 100644
--- a/src/Lucene.Net.Tests.Spatial/Support/TestApiConsistency.cs
+++ b/src/Lucene.Net.Tests.Spatial/Support/TestApiConsistency.cs
@@ -1,31 +1,27 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
 using Lucene.Net.Attributes;
-using Lucene.Net.Support;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 
 namespace Lucene.Net.Tests.Spatial
 {
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+
     /// <summary>
     /// LUCENENET specific tests for ensuring API conventions are followed
     /// </summary>
diff --git a/src/Lucene.Net.Tests.Spatial/Support/TestExceptionSerialization.cs b/src/Lucene.Net.Tests.Spatial/Support/TestExceptionSerialization.cs
index 9dd217d..88b2710 100644
--- a/src/Lucene.Net.Tests.Spatial/Support/TestExceptionSerialization.cs
+++ b/src/Lucene.Net.Tests.Spatial/Support/TestExceptionSerialization.cs
@@ -1,5 +1,6 @@
 #if FEATURE_SERIALIZABLE_EXCEPTIONS
 using Lucene.Net.Attributes;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 using System.Collections.Generic;
diff --git a/src/Lucene.Net.Tests.Suggest/Support/TestApiConsistency.cs b/src/Lucene.Net.Tests.Suggest/Support/TestApiConsistency.cs
index a0baff5..8a33bb7 100644
--- a/src/Lucene.Net.Tests.Suggest/Support/TestApiConsistency.cs
+++ b/src/Lucene.Net.Tests.Suggest/Support/TestApiConsistency.cs
@@ -1,31 +1,27 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
 using Lucene.Net.Attributes;
-using Lucene.Net.Support;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 
 namespace Lucene.Net.Tests.Suggest
 {
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+
     /// <summary>
     /// LUCENENET specific tests for ensuring API conventions are followed
     /// </summary>
diff --git a/src/Lucene.Net.Tests.Suggest/Support/TestExceptionSerialization.cs b/src/Lucene.Net.Tests.Suggest/Support/TestExceptionSerialization.cs
index 3fbf209..ae75a9b 100644
--- a/src/Lucene.Net.Tests.Suggest/Support/TestExceptionSerialization.cs
+++ b/src/Lucene.Net.Tests.Suggest/Support/TestExceptionSerialization.cs
@@ -1,5 +1,6 @@
 #if FEATURE_SERIALIZABLE_EXCEPTIONS
 using Lucene.Net.Attributes;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 using System.Collections.Generic;
diff --git a/src/Lucene.Net.Tests.TestFramework/Support/TestApiConsistency.cs b/src/Lucene.Net.Tests.TestFramework/Support/TestApiConsistency.cs
index acc357b..503aa6a 100644
--- a/src/Lucene.Net.Tests.TestFramework/Support/TestApiConsistency.cs
+++ b/src/Lucene.Net.Tests.TestFramework/Support/TestApiConsistency.cs
@@ -1,33 +1,28 @@
-// LUCENENET TODO: Get this working on all test frameworks
 #if TESTFRAMEWORK_NUNIT
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
 using Lucene.Net.Attributes;
-using Lucene.Net.Support;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 
 namespace Lucene.Net.Tests.TestFramework
 {
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+
     /// <summary>
     /// LUCENENET specific tests for ensuring API conventions are followed
     /// </summary>
diff --git a/src/Lucene.Net.Tests.TestFramework/Support/TestExceptionSerialization.cs b/src/Lucene.Net.Tests.TestFramework/Support/TestExceptionSerialization.cs
index 270e504..5ceea6d 100644
--- a/src/Lucene.Net.Tests.TestFramework/Support/TestExceptionSerialization.cs
+++ b/src/Lucene.Net.Tests.TestFramework/Support/TestExceptionSerialization.cs
@@ -2,6 +2,7 @@
 #if TESTFRAMEWORK_NUNIT
 #if FEATURE_SERIALIZABLE_EXCEPTIONS
 using Lucene.Net.Attributes;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 using System.Collections.Generic;
diff --git a/src/Lucene.Net.Tests/Support/TestApiConsistency.cs b/src/Lucene.Net.Tests/Support/TestApiConsistency.cs
index 990fac5..0580242 100644
--- a/src/Lucene.Net.Tests/Support/TestApiConsistency.cs
+++ b/src/Lucene.Net.Tests/Support/TestApiConsistency.cs
@@ -1,31 +1,27 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
 using Lucene.Net.Attributes;
-using Lucene.Net.Support;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 
 namespace Lucene.Net
 {
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+
     /// <summary>
     /// LUCENENET specific tests for ensuring API conventions are followed
     /// </summary>
diff --git a/src/Lucene.Net.Tests/Support/TestExceptionSerialization.cs b/src/Lucene.Net.Tests/Support/TestExceptionSerialization.cs
index 2c359b5..e3fadaa 100644
--- a/src/Lucene.Net.Tests/Support/TestExceptionSerialization.cs
+++ b/src/Lucene.Net.Tests/Support/TestExceptionSerialization.cs
@@ -1,5 +1,6 @@
 #if FEATURE_SERIALIZABLE_EXCEPTIONS
 using Lucene.Net.Attributes;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 using System.Collections.Generic;
diff --git a/src/dotnet/Lucene.Net.Tests.ICU/Support/TestApiConsistency.cs b/src/dotnet/Lucene.Net.Tests.ICU/Support/TestApiConsistency.cs
index 16bb2b8..63cf56e 100644
--- a/src/dotnet/Lucene.Net.Tests.ICU/Support/TestApiConsistency.cs
+++ b/src/dotnet/Lucene.Net.Tests.ICU/Support/TestApiConsistency.cs
@@ -1,30 +1,27 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
 using Lucene.Net.Attributes;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 
 namespace Lucene.Net.Support
 {
+    /*
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+
     /// <summary>
     /// LUCENENET specific tests for ensuring API conventions are followed
     /// </summary>
diff --git a/src/dotnet/Lucene.Net.Tests.ICU/Support/TestExceptionSerialization.cs b/src/dotnet/Lucene.Net.Tests.ICU/Support/TestExceptionSerialization.cs
index 4a11185..229c48a 100644
--- a/src/dotnet/Lucene.Net.Tests.ICU/Support/TestExceptionSerialization.cs
+++ b/src/dotnet/Lucene.Net.Tests.ICU/Support/TestExceptionSerialization.cs
@@ -1,5 +1,6 @@
 #if FEATURE_SERIALIZABLE_EXCEPTIONS
 using Lucene.Net.Attributes;
+using Lucene.Net.Util;
 using NUnit.Framework;
 using System;
 using System.Collections.Generic;


[lucenenet] 21/35: BREAKING: Lucene.Net.Support.IO: Marked FileSupport class internal

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit 7ae3267528f6a63c3609a662fdd6bdabb70d0e37
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Fri Feb 7 10:19:51 2020 +0700

    BREAKING: Lucene.Net.Support.IO: Marked FileSupport class internal
---
 src/Lucene.Net/Support/IO/FileSupport.cs | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/src/Lucene.Net/Support/IO/FileSupport.cs b/src/Lucene.Net/Support/IO/FileSupport.cs
index c988016..2fdaf9d 100644
--- a/src/Lucene.Net/Support/IO/FileSupport.cs
+++ b/src/Lucene.Net/Support/IO/FileSupport.cs
@@ -8,26 +8,26 @@ using System.Text;
 namespace Lucene.Net.Support.IO
 {
     /*
-	 * Licensed to the Apache Software Foundation (ASF) under one or more
-	 * contributor license agreements.  See the NOTICE file distributed with
-	 * this work for additional information regarding copyright ownership.
-	 * The ASF licenses this file to You under the Apache License, Version 2.0
-	 * (the "License"); you may not use this file except in compliance with
-	 * the License.  You may obtain a copy of the License at
-	 *
-	 *     http://www.apache.org/licenses/LICENSE-2.0
-	 *
-	 * Unless required by applicable law or agreed to in writing, software
-	 * distributed under the License is distributed on an "AS IS" BASIS,
-	 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-	 * See the License for the specific language governing permissions and
-	 * limitations under the License.
-	 */
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
 
     /// <summary>
     /// Represents the methods to support some operations over files.
     /// </summary>
-    public static class FileSupport
+    internal static class FileSupport
     {
         // LUCNENENET NOTE: Lookup the HResult value we are interested in for the current OS
         // by provoking the exception during initialization and caching its HResult value for later.


[lucenenet] 34/35: Upgraded Morfologik.Stemming to 2.1.6-beta-0004

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit 039f380b52da7ba136ba2343e70c351b96c9f5fd
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Sat Feb 8 01:50:16 2020 +0700

    Upgraded Morfologik.Stemming to 2.1.6-beta-0004
---
 build/Dependencies.props | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/build/Dependencies.props b/build/Dependencies.props
index c38309b..4849aa7 100644
--- a/build/Dependencies.props
+++ b/build/Dependencies.props
@@ -47,7 +47,7 @@
     <MicrosoftCSharpPackageVersion>4.4.0</MicrosoftCSharpPackageVersion>
     <MicrosoftExtensionsDependencyModelPackageVersion>2.0.0</MicrosoftExtensionsDependencyModelPackageVersion>
     <MicrosoftNETTestSdkPackageVersion>16.2.0</MicrosoftNETTestSdkPackageVersion>
-    <MorfologikFsaPackageVersion>2.1.6-beta-0002</MorfologikFsaPackageVersion>
+    <MorfologikFsaPackageVersion>2.1.6-beta-0004</MorfologikFsaPackageVersion>
     <MorfologikPolishPackageVersion>$(MorfologikFsaPackageVersion)</MorfologikPolishPackageVersion>
     <MorfologikStemmingPackageVersion>$(MorfologikFsaPackageVersion)</MorfologikStemmingPackageVersion>
     <MSTestTestFrameworkPackageVersion>2.0.0</MSTestTestFrameworkPackageVersion>


[lucenenet] 20/35: BREAKING: Lucene.Net.Support.IO: Marked SafeTextWriterWrapper internal

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit 6cd02b49524ae2a0e6b87076e5eefc914b29e061
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Fri Feb 7 10:15:07 2020 +0700

    BREAKING: Lucene.Net.Support.IO: Marked SafeTextWriterWrapper internal
---
 src/Lucene.Net/Support/IO/SafeTextWriterWrapper.cs | 47 ++++++++++------------
 1 file changed, 21 insertions(+), 26 deletions(-)

diff --git a/src/Lucene.Net/Support/IO/SafeTextWriterWrapper.cs b/src/Lucene.Net/Support/IO/SafeTextWriterWrapper.cs
index 7c78609..41176c1 100644
--- a/src/Lucene.Net/Support/IO/SafeTextWriterWrapper.cs
+++ b/src/Lucene.Net/Support/IO/SafeTextWriterWrapper.cs
@@ -10,21 +10,21 @@ using System.Threading.Tasks;
 namespace Lucene.Net.Support.IO
 {
     /*
-	 * Licensed to the Apache Software Foundation (ASF) under one or more
-	 * contributor license agreements.  See the NOTICE file distributed with
-	 * this work for additional information regarding copyright ownership.
-	 * The ASF licenses this file to You under the Apache License, Version 2.0
-	 * (the "License"); you may not use this file except in compliance with
-	 * the License.  You may obtain a copy of the License at
-	 *
-	 *     http://www.apache.org/licenses/LICENSE-2.0
-	 *
-	 * Unless required by applicable law or agreed to in writing, software
-	 * distributed under the License is distributed on an "AS IS" BASIS,
-	 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-	 * See the License for the specific language governing permissions and
-	 * limitations under the License.
-	 */
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
 
     /// <summary>
     /// Decorates a <see cref="TextWriter"/> instance and
@@ -41,19 +41,14 @@ namespace Lucene.Net.Support.IO
     /// non-disposable object can continue to make calls to the <see cref="TextWriter"/> without raising
     /// exceptions (it is presumed that the <see cref="TextWriter"/> functionality is optional).
     /// </summary>
-    public class SafeTextWriterWrapper : TextWriter
+    internal class SafeTextWriterWrapper : TextWriter
     {
         private readonly TextWriter textWriter;
         private bool isDisposed = false;
 
         public SafeTextWriterWrapper(TextWriter textWriter)
         {
-            if (textWriter == null)
-            {
-                throw new ArgumentNullException("textWriter");
-            }
-
-            this.textWriter = textWriter;
+            this.textWriter = textWriter ?? throw new ArgumentNullException(nameof(textWriter));
         }
 
         public override Encoding Encoding
@@ -206,13 +201,13 @@ namespace Lucene.Net.Support.IO
             Run(() => textWriter.Write(value));
         }
 
-        [CLSCompliant(false)]
+        //[CLSCompliant(false)]
         public override void Write(uint value)
         {
             Run(() => textWriter.Write(value));
         }
 
-        [CLSCompliant(false)]
+        //[CLSCompliant(false)]
         public override void Write(ulong value)
         {
             Run(() => textWriter.Write(value));
@@ -313,13 +308,13 @@ namespace Lucene.Net.Support.IO
             Run(() => textWriter.WriteLine(value));
         }
 
-        [CLSCompliant(false)]
+        //[CLSCompliant(false)]
         public override void WriteLine(uint value)
         {
             Run(() => textWriter.WriteLine(value));
         }
 
-        [CLSCompliant(false)]
+        //[CLSCompliant(false)]
         public override void WriteLine(ulong value)
         {
             Run(() => textWriter.WriteLine(value));


[lucenenet] 25/35: BREAKING: Lucene.Net.Support: Moved ExceptionExtensions to Lucene.Net.Util namespace

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit 6412f5d95e57c2f5f4f6fa652ecf2e37621ce2bb
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Sat Feb 8 14:49:53 2020 +0700

    BREAKING: Lucene.Net.Support: Moved ExceptionExtensions to Lucene.Net.Util namespace
---
 src/Lucene.Net/Index/IndexReader.cs                |  1 +
 .../Support/{ => Util}/ExceptionExtensions.cs      | 32 +++++++++++-----------
 src/Lucene.Net/Util/IOUtils.cs                     |  2 +-
 3 files changed, 18 insertions(+), 17 deletions(-)

diff --git a/src/Lucene.Net/Index/IndexReader.cs b/src/Lucene.Net/Index/IndexReader.cs
index 1ccbcb8..1ae639e 100644
--- a/src/Lucene.Net/Index/IndexReader.cs
+++ b/src/Lucene.Net/Index/IndexReader.cs
@@ -1,6 +1,7 @@
 using J2N.Threading.Atomic;
 using Lucene.Net.Documents;
 using Lucene.Net.Support;
+using Lucene.Net.Util;
 using System;
 using System.Collections;
 using System.Collections.Generic;
diff --git a/src/Lucene.Net/Support/ExceptionExtensions.cs b/src/Lucene.Net/Support/Util/ExceptionExtensions.cs
similarity index 57%
rename from src/Lucene.Net/Support/ExceptionExtensions.cs
rename to src/Lucene.Net/Support/Util/ExceptionExtensions.cs
index 1a722ee..bd38e59 100644
--- a/src/Lucene.Net/Support/ExceptionExtensions.cs
+++ b/src/Lucene.Net/Support/Util/ExceptionExtensions.cs
@@ -2,24 +2,24 @@
 using System.Collections.Generic;
 using System.Linq;
 
-namespace Lucene.Net.Support
+namespace Lucene.Net.Util
 {
     /*
-	 * Licensed to the Apache Software Foundation (ASF) under one or more
-	 * contributor license agreements.  See the NOTICE file distributed with
-	 * this work for additional information regarding copyright ownership.
-	 * The ASF licenses this file to You under the Apache License, Version 2.0
-	 * (the "License"); you may not use this file except in compliance with
-	 * the License.  You may obtain a copy of the License at
-	 *
-	 *     http://www.apache.org/licenses/LICENSE-2.0
-	 *
-	 * Unless required by applicable law or agreed to in writing, software
-	 * distributed under the License is distributed on an "AS IS" BASIS,
-	 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-	 * See the License for the specific language governing permissions and
-	 * limitations under the License.
-	 */
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
 
     /// <summary>
     /// Extensions to the <see cref="Exception"/> class to allow for
diff --git a/src/Lucene.Net/Util/IOUtils.cs b/src/Lucene.Net/Util/IOUtils.cs
index 65f4454..39aecdc 100644
--- a/src/Lucene.Net/Util/IOUtils.cs
+++ b/src/Lucene.Net/Util/IOUtils.cs
@@ -349,7 +349,7 @@ namespace Lucene.Net.Util
         /// <summary>
         /// Since there's no C# equivalent of Java's Exception.AddSuppressed, we add the
         /// suppressed exceptions to a data field via the 
-        /// <see cref="Support.ExceptionExtensions.AddSuppressed(Exception, Exception)"/> method.
+        /// <see cref="ExceptionExtensions.AddSuppressed(Exception, Exception)"/> method.
         /// <para/>
         /// The exceptions can be retrieved by calling <see cref="ExceptionExtensions.GetSuppressed(Exception)"/>
         /// or <see cref="ExceptionExtensions.GetSuppressedAsList(Exception)"/>.


[lucenenet] 27/35: BREAKING: Lucene.Net.Support.NumberFormat: Moved to Lucene.Net.Util namespace

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit f062c04891b997f392dd79e24cdcd91b5b0e1677
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Sat Feb 8 17:20:59 2020 +0700

    BREAKING: Lucene.Net.Support.NumberFormat: Moved to Lucene.Net.Util namespace
---
 Lucene.Net.sln                                     | 22 +--------
 .../Flexible/Standard/Config/NumberDateFormat.cs   |  2 +-
 .../Flexible/Standard/Config/NumericConfig.cs      | 34 +++++--------
 .../Flexible/Standard/Nodes/NumericQueryNode.cs    |  8 ++--
 .../Processors/NumericQueryNodeProcessor.cs        |  2 +-
 .../Processors/NumericRangeQueryNodeProcessor.cs   |  2 +-
 src/Lucene.Net/Support/{ => Util}/NumberFormat.cs  | 55 +++++++++++++---------
 7 files changed, 54 insertions(+), 71 deletions(-)

diff --git a/Lucene.Net.sln b/Lucene.Net.sln
index 54a2aa5..b19c811 100644
--- a/Lucene.Net.sln
+++ b/Lucene.Net.sln
@@ -1,24 +1,6 @@
 Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-# 
-#   http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-VisualStudioVersion = 15.0.26730.8
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.29728.190
 MinimumVisualStudioVersion = 15.0.26730.8
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "azure-templates", "azure-templates", "{05CE3A39-40D4-452D-AFE0-E57E536A08C6}"
 	ProjectSection(SolutionItems) = preProject
diff --git a/src/Lucene.Net.QueryParser/Flexible/Standard/Config/NumberDateFormat.cs b/src/Lucene.Net.QueryParser/Flexible/Standard/Config/NumberDateFormat.cs
index 149102e..60a592c 100644
--- a/src/Lucene.Net.QueryParser/Flexible/Standard/Config/NumberDateFormat.cs
+++ b/src/Lucene.Net.QueryParser/Flexible/Standard/Config/NumberDateFormat.cs
@@ -1,4 +1,4 @@
-using Lucene.Net.Support;
+using Lucene.Net.Util;
 using System;
 using System.Globalization;
 
diff --git a/src/Lucene.Net.QueryParser/Flexible/Standard/Config/NumericConfig.cs b/src/Lucene.Net.QueryParser/Flexible/Standard/Config/NumericConfig.cs
index 13d5938..67d842c 100644
--- a/src/Lucene.Net.QueryParser/Flexible/Standard/Config/NumericConfig.cs
+++ b/src/Lucene.Net.QueryParser/Flexible/Standard/Config/NumericConfig.cs
@@ -1,6 +1,6 @@
-using Lucene.Net.Support;
+using Lucene.Net.Documents;
+using Lucene.Net.Util;
 using System;
-using Lucene.Net.Documents;
 
 namespace Lucene.Net.QueryParsers.Flexible.Standard.Config
 {
@@ -26,13 +26,11 @@ namespace Lucene.Net.QueryParsers.Flexible.Standard.Config
     /// <see cref="Search.NumericRangeQuery"/>s.
     /// </summary>
     /// <seealso cref="Search.NumericRangeQuery"/>
-    /// <seealso cref="Support.NumberFormat"/>
+    /// <seealso cref="Util.NumberFormat"/>
     public class NumericConfig
     {
         private int precisionStep;
-
         private NumberFormat format;
-
         private NumericType type;
 
         /// <summary>
@@ -58,26 +56,18 @@ namespace Lucene.Net.QueryParsers.Flexible.Standard.Config
         /// <seealso cref="Search.NumericRangeQuery{T}.PrecisionStep"/>
         public virtual int PrecisionStep
         {
-            get { return precisionStep; }
-            set { precisionStep = value; }
+            get => precisionStep;
+            set => precisionStep = value;
         }
 
         /// <summary>
-        /// Gets or Sets the <seealso cref="Support.NumberFormat"/> used to parse a <see cref="string"/> to
+        /// Gets or Sets the <seealso cref="Util.NumberFormat"/> used to parse a <see cref="string"/> to
         /// <see cref="object"/> representing a .NET numeric type, cannot be <c>null</c>
         /// </summary>
         public virtual NumberFormat NumberFormat
         {
-            get { return format; }
-            set
-            {
-                if (value == null)
-                {
-                    throw new ArgumentException("format cannot be null!");
-                }
-
-                this.format = value;
-            }
+            get => format;
+            set => format = value ?? throw new ArgumentException("format cannot be null!");
         }
 
         /// <summary>
@@ -85,18 +75,16 @@ namespace Lucene.Net.QueryParsers.Flexible.Standard.Config
         /// </summary>
         public virtual NumericType Type
         {
-            get { return type; }
-            set { type = value; }
+            get => type;
+            set => type = value;
         }
 
         public override bool Equals(object obj)
         {
             if (obj == this) return true;
 
-            if (obj is NumericConfig)
+            if (obj is NumericConfig other)
             {
-                NumericConfig other = (NumericConfig)obj;
-
                 if (this.precisionStep == other.precisionStep
                     && this.type == other.type
                     && (this.format == other.format || (this.format.Equals(other.format))))
diff --git a/src/Lucene.Net.QueryParser/Flexible/Standard/Nodes/NumericQueryNode.cs b/src/Lucene.Net.QueryParser/Flexible/Standard/Nodes/NumericQueryNode.cs
index 4bcb813..e1165ed 100644
--- a/src/Lucene.Net.QueryParser/Flexible/Standard/Nodes/NumericQueryNode.cs
+++ b/src/Lucene.Net.QueryParser/Flexible/Standard/Nodes/NumericQueryNode.cs
@@ -1,6 +1,6 @@
 using Lucene.Net.QueryParsers.Flexible.Core.Nodes;
 using Lucene.Net.QueryParsers.Flexible.Core.Parser;
-using Lucene.Net.Support;
+using Lucene.Net.Util;
 using System.Globalization;
 
 namespace Lucene.Net.QueryParsers.Flexible.Standard.Nodes
@@ -38,12 +38,12 @@ namespace Lucene.Net.QueryParsers.Flexible.Standard.Nodes
 
         /// <summary>
         /// Creates a <see cref="NumericQueryNode"/> object using the given field,
-        /// <see cref="object"/> (representing a .NET numeric type) value and <see cref="Support.NumberFormat"/> used to convert the value to
+        /// <see cref="object"/> (representing a .NET numeric type) value and <see cref="Util.NumberFormat"/> used to convert the value to
         /// <see cref="string"/>.
         /// </summary>
         /// <param name="field">the field associated with this query node</param>
         /// <param name="value">the value hold by this node</param>
-        /// <param name="numberFormat">the <see cref="Support.NumberFormat"/> used to convert the value to <see cref="string"/></param>
+        /// <param name="numberFormat">the <see cref="Util.NumberFormat"/> used to convert the value to <see cref="string"/></param>
         public NumericQueryNode(string field, /*Number*/ object value,
             NumberFormat numberFormat)
             : base()
@@ -88,7 +88,7 @@ namespace Lucene.Net.QueryParsers.Flexible.Standard.Nodes
         }
 
         /// <summary>
-        /// Gets or Sets the <see cref="Support.NumberFormat"/> used to convert the value to <see cref="string"/>.
+        /// Gets or Sets the <see cref="Util.NumberFormat"/> used to convert the value to <see cref="string"/>.
         /// </summary>
         public virtual NumberFormat NumberFormat
         {
diff --git a/src/Lucene.Net.QueryParser/Flexible/Standard/Processors/NumericQueryNodeProcessor.cs b/src/Lucene.Net.QueryParser/Flexible/Standard/Processors/NumericQueryNodeProcessor.cs
index 1179035..d3bd06a 100644
--- a/src/Lucene.Net.QueryParser/Flexible/Standard/Processors/NumericQueryNodeProcessor.cs
+++ b/src/Lucene.Net.QueryParser/Flexible/Standard/Processors/NumericQueryNodeProcessor.cs
@@ -7,7 +7,7 @@ using Lucene.Net.QueryParsers.Flexible.Core.Processors;
 using Lucene.Net.QueryParsers.Flexible.Messages;
 using Lucene.Net.QueryParsers.Flexible.Standard.Config;
 using Lucene.Net.QueryParsers.Flexible.Standard.Nodes;
-using Lucene.Net.Support;
+using Lucene.Net.Util;
 using System;
 using System.Collections.Generic;
 
diff --git a/src/Lucene.Net.QueryParser/Flexible/Standard/Processors/NumericRangeQueryNodeProcessor.cs b/src/Lucene.Net.QueryParser/Flexible/Standard/Processors/NumericRangeQueryNodeProcessor.cs
index ebd53a8..154ef4e 100644
--- a/src/Lucene.Net.QueryParser/Flexible/Standard/Processors/NumericRangeQueryNodeProcessor.cs
+++ b/src/Lucene.Net.QueryParser/Flexible/Standard/Processors/NumericRangeQueryNodeProcessor.cs
@@ -8,7 +8,7 @@ using Lucene.Net.QueryParsers.Flexible.Core.Util;
 using Lucene.Net.QueryParsers.Flexible.Messages;
 using Lucene.Net.QueryParsers.Flexible.Standard.Config;
 using Lucene.Net.QueryParsers.Flexible.Standard.Nodes;
-using Lucene.Net.Support;
+using Lucene.Net.Util;
 using System;
 using System.Collections.Generic;
 
diff --git a/src/Lucene.Net/Support/NumberFormat.cs b/src/Lucene.Net/Support/Util/NumberFormat.cs
similarity index 66%
rename from src/Lucene.Net/Support/NumberFormat.cs
rename to src/Lucene.Net/Support/Util/NumberFormat.cs
index 9c9ec64..92b2e31 100644
--- a/src/Lucene.Net/Support/NumberFormat.cs
+++ b/src/Lucene.Net/Support/Util/NumberFormat.cs
@@ -1,29 +1,36 @@
 using System;
-using System.Collections.Generic;
 using System.Globalization;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
 
-namespace Lucene.Net.Support
+namespace Lucene.Net.Util
 {
     /*
-	 * Licensed to the Apache Software Foundation (ASF) under one or more
-	 * contributor license agreements.  See the NOTICE file distributed with
-	 * this work for additional information regarding copyright ownership.
-	 * The ASF licenses this file to You under the Apache License, Version 2.0
-	 * (the "License"); you may not use this file except in compliance with
-	 * the License.  You may obtain a copy of the License at
-	 *
-	 *     http://www.apache.org/licenses/LICENSE-2.0
-	 *
-	 * Unless required by applicable law or agreed to in writing, software
-	 * distributed under the License is distributed on an "AS IS" BASIS,
-	 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-	 * See the License for the specific language governing permissions and
-	 * limitations under the License.
-	 */
-
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
+
+    /// <summary>
+    /// A LUCENENET specific class that represents a numeric format. This class
+    /// mimicks the design of Java's NumberFormat class, which unlike the
+    /// <see cref="NumberFormatInfo"/> class in .NET, can be subclassed.
+    /// </summary>
+    // LUCENENET NOTE: Ideally, the design of Lucene.NET would be changed to accept a
+    // NumberFormatInfo object instead of using this, or better yet be changed to use IFormatProvider
+    // and/or ICustomFormatter, but since Lucene is using inheritance
+    // and passing this class around to different methods, that would require some major refactoring.
+    // We should probably look into doing that in vNext. We should also look into supporting all of .NET's numeric
+    // types instead of just the ones that Java supports, as well.
     public class NumberFormat
     {
         protected readonly CultureInfo locale;
@@ -82,6 +89,12 @@ namespace Lucene.Net.Support
             return number.ToString(format, locale);
         }
 
+        /// <summary>
+        /// When overridden in a subclass, provides the numeric format as a <see cref="string"/>.
+        /// Generally, this is the same format that is passed into the <see cref="M:string.Format(IFormatProvider, string, object)"/>
+        /// method.
+        /// </summary>
+        /// <returns>A numeric format string.</returns>
         protected virtual string GetNumberFormat()
         {
             return null;


[lucenenet] 11/35: BREAKING: Lucene.Net.Support: Marked Arrays and Collections classes internal

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit bb5d6bdfe12066233ebab4ae2633e5badb517d98
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Thu Feb 6 23:29:53 2020 +0700

    BREAKING: Lucene.Net.Support: Marked Arrays and Collections classes internal
---
 .../Analysis/Ar/TestArabicNormalizationFilter.cs   |  2 +-
 .../Analysis/Ar/TestArabicStemFilter.cs            |  2 +-
 .../Analysis/Bg/TestBulgarianStemmer.cs            |  2 +-
 .../Analysis/Br/TestBrazilianStemmer.cs            |  2 +-
 .../CharFilters/HTMLStripCharFilterTest.cs         |  4 +--
 .../Analysis/CharFilters/TestMappingCharFilter.cs  | 12 ++++----
 .../Analysis/Cjk/TestCJKAnalyzer.cs                |  8 +++---
 .../Analysis/Cjk/TestCJKBigramFilter.cs            | 10 +++----
 .../Analysis/Cjk/TestCJKWidthFilter.cs             |  4 +--
 .../Analysis/Ckb/TestSoraniNormalizationFilter.cs  |  2 +-
 .../Analysis/Ckb/TestSoraniStemFilter.cs           |  2 +-
 .../Analysis/Cn/TestChineseTokenizer.cs            |  4 +--
 .../Analysis/Commongrams/CommonGramsFilterTest.cs  |  8 +++---
 .../Compound/TestCompoundWordTokenFilter.cs        | 12 ++++----
 .../Analysis/Core/TestAnalyzers.cs                 |  4 +--
 .../Analysis/Core/TestBugInSomething.cs            |  8 +++---
 .../Analysis/Core/TestDuelingAnalyzers.cs          | 12 ++++----
 .../Analysis/Core/TestFactories.cs                 |  4 +--
 .../Analysis/Core/TestRandomChains.cs              |  4 +--
 .../Analysis/Core/TestStandardAnalyzer.cs          |  8 +++---
 .../Analysis/Core/TestStopFilter.cs                |  2 +-
 .../Analysis/Core/TestUAX29URLEmailTokenizer.cs    | 14 +++++-----
 .../Analysis/Cz/TestCzechStemmer.cs                |  2 +-
 .../Analysis/De/TestGermanLightStemFilter.cs       |  6 ++--
 .../Analysis/De/TestGermanMinimalStemFilter.cs     |  6 ++--
 .../Analysis/De/TestGermanNormalizationFilter.cs   |  4 +--
 .../Analysis/De/TestGermanStemFilter.cs            |  6 ++--
 .../Analysis/El/TestGreekStemmer.cs                |  2 +-
 .../Analysis/En/TestEnglishMinimalStemFilter.cs    |  4 +--
 .../Analysis/En/TestKStemmer.cs                    |  4 +--
 .../Analysis/En/TestPorterStemFilter.cs            |  4 +--
 .../Analysis/Es/TestSpanishLightStemFilter.cs      |  4 +--
 .../Analysis/Fa/TestPersianCharFilter.cs           |  4 +--
 .../Analysis/Fa/TestPersianNormalizationFilter.cs  |  2 +-
 .../Analysis/Fi/TestFinnishLightStemFilter.cs      |  6 ++--
 .../Analysis/Fr/TestFrenchLightStemFilter.cs       |  6 ++--
 .../Analysis/Fr/TestFrenchMinimalStemFilter.cs     |  6 ++--
 .../Analysis/Ga/TestIrishLowerCaseFilter.cs        |  2 +-
 .../Analysis/Gl/TestGalicianMinimalStemFilter.cs   |  6 ++--
 .../Analysis/Gl/TestGalicianStemFilter.cs          |  4 +--
 .../Analysis/Hi/TestHindiNormalizer.cs             |  2 +-
 .../Analysis/Hi/TestHindiStemmer.cs                |  2 +-
 .../Analysis/Hu/TestHungarianLightStemFilter.cs    |  6 ++--
 .../Analysis/Hunspell/TestHunspellStemFilter.cs    |  6 ++--
 .../Analysis/Id/TestIndonesianStemmer.cs           |  6 ++--
 .../Analysis/In/TestIndicNormalizer.cs             |  2 +-
 .../Analysis/It/TestItalianLightStemFilter.cs      |  4 +--
 .../Analysis/Lv/TestLatvianStemmer.cs              |  4 +--
 .../Miscellaneous/TestASCIIFoldingFilter.cs        |  4 +--
 .../Miscellaneous/TestCapitalizationFilter.cs      |  4 +--
 .../Miscellaneous/TestCodepointCountFilter.cs      |  2 +-
 .../Miscellaneous/TestHyphenatedWordsFilter.cs     |  4 +--
 .../Analysis/Miscellaneous/TestKeepWordFilter.cs   |  2 +-
 .../Analysis/Miscellaneous/TestLengthFilter.cs     |  2 +-
 .../Miscellaneous/TestLimitTokenPositionFilter.cs  |  2 +-
 .../TestLucene47WordDelimiterFilter.cs             | 10 +++----
 .../Miscellaneous/TestPerFieldAnalyzerWrapper.cs   |  4 +--
 .../TestRemoveDuplicatesTokenFilter.cs             |  4 +--
 .../Miscellaneous/TestScandinavianFoldingFilter.cs |  4 +--
 .../TestScandinavianNormalizationFilter.cs         |  4 +--
 .../Analysis/Miscellaneous/TestTrimFilter.cs       |  6 ++--
 .../Miscellaneous/TestWordDelimiterFilter.cs       | 16 +++++------
 .../Analysis/NGram/EdgeNGramTokenFilterTest.cs     | 10 +++----
 .../Analysis/NGram/EdgeNGramTokenizerTest.cs       |  4 +--
 .../Analysis/NGram/NGramTokenFilterTest.cs         |  6 ++--
 .../Analysis/NGram/NGramTokenizerTest.cs           |  2 +-
 .../Analysis/No/TestNorwegianLightStemFilter.cs    |  8 +++---
 .../Analysis/No/TestNorwegianMinimalStemFilter.cs  |  8 +++---
 .../Analysis/Path/TestPathHierarchyTokenizer.cs    |  4 +--
 .../Path/TestReversePathHierarchyTokenizer.cs      |  4 +--
 .../Pattern/TestPatternCaptureGroupTokenFilter.cs  |  2 +-
 .../Pattern/TestPatternReplaceCharFilter.cs        |  4 +--
 .../Analysis/Pattern/TestPatternReplaceFilter.cs   |  6 ++--
 .../Analysis/Pattern/TestPatternTokenizer.cs       |  4 +--
 .../Analysis/Pt/TestPortugueseLightStemFilter.cs   |  6 ++--
 .../Analysis/Pt/TestPortugueseMinimalStemFilter.cs |  6 ++--
 .../Analysis/Pt/TestPortugueseStemFilter.cs        |  6 ++--
 .../Analysis/Reverse/TestReverseStringFilter.cs    |  4 +--
 .../Analysis/Ru/TestRussianLightStemFilter.cs      |  6 ++--
 .../Analysis/Shingle/ShingleAnalyzerWrapperTest.cs |  2 +-
 .../Analysis/Shingle/ShingleFilterTest.cs          |  6 ++--
 .../Analysis/Snowball/TestSnowball.cs              |  4 +--
 .../Analysis/Snowball/TestSnowballVocab.cs         |  2 +-
 .../Analysis/Sv/TestSwedishLightStemFilter.cs      |  6 ++--
 .../Analysis/Synonym/TestSolrSynonymParser.cs      |  4 +--
 .../Analysis/Synonym/TestSynonymMapFilter.cs       | 32 +++++++++++-----------
 .../Analysis/Synonym/TestWordnetSynonymParser.cs   |  2 +-
 .../Analysis/Tr/TestTurkishLowerCaseFilter.cs      |  2 +-
 .../Analysis/Util/TestCharTokenizers.cs            |  6 ++--
 .../Analysis/Util/TestElision.cs                   |  2 +-
 .../Analysis/Wikipedia/WikipediaTokenizerTest.cs   |  4 +--
 .../Morfologik/TestMorfologikAnalyzer.cs           |  3 +-
 .../Morfologik/TestMorfologikFilterFactory.cs      |  2 +-
 .../Analyzing/AnalyzingInfixSuggesterTest.cs       |  4 +--
 .../Suggest/Analyzing/AnalyzingSuggesterTest.cs    | 30 ++++++++++----------
 .../Suggest/Analyzing/FuzzySuggesterTest.cs        | 14 +++++-----
 .../Suggest/Analyzing/TestFreeTextSuggester.cs     |  2 +-
 src/Lucene.Net/Properties/AssemblyInfo.cs          |  7 +++++
 src/Lucene.Net/Support/Arrays.cs                   | 32 +++++++++++-----------
 src/Lucene.Net/Support/Collections.cs              |  2 +-
 100 files changed, 287 insertions(+), 279 deletions(-)

diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ar/TestArabicNormalizationFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ar/TestArabicNormalizationFilter.cs
index a21aafd..3bda1ee 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ar/TestArabicNormalizationFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ar/TestArabicNormalizationFilter.cs
@@ -136,7 +136,7 @@ namespace Lucene.Net.Analysis.Ar
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new ArabicNormalizationFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ar/TestArabicStemFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ar/TestArabicStemFilter.cs
index 4223fb2..024430f 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ar/TestArabicStemFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ar/TestArabicStemFilter.cs
@@ -194,7 +194,7 @@ namespace Lucene.Net.Analysis.Ar
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new ArabicStemFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Bg/TestBulgarianStemmer.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Bg/TestBulgarianStemmer.cs
index 9374f71..8f4a4d6 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Bg/TestBulgarianStemmer.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Bg/TestBulgarianStemmer.cs
@@ -247,7 +247,7 @@ namespace Lucene.Net.Analysis.Bg
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new BulgarianStemFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Br/TestBrazilianStemmer.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Br/TestBrazilianStemmer.cs
index 213aef3..d61a6b1 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Br/TestBrazilianStemmer.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Br/TestBrazilianStemmer.cs
@@ -187,7 +187,7 @@ namespace Lucene.Net.Analysis.Br
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new BrazilianStemFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/CharFilters/HTMLStripCharFilterTest.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/CharFilters/HTMLStripCharFilterTest.cs
index 04877ee..7f5eef2 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/CharFilters/HTMLStripCharFilterTest.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/CharFilters/HTMLStripCharFilterTest.cs
@@ -41,13 +41,13 @@ namespace Lucene.Net.Analysis.CharFilters
             {
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(tokenizer, tokenizer);
             }
 
-            protected override TextReader InitReader(string fieldName, TextReader reader)
+            protected internal override TextReader InitReader(string fieldName, TextReader reader)
             {
                 return new HTMLStripCharFilter(reader);
             }
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/CharFilters/TestMappingCharFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/CharFilters/TestMappingCharFilter.cs
index 131eb3c..7c2e877 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/CharFilters/TestMappingCharFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/CharFilters/TestMappingCharFilter.cs
@@ -228,13 +228,13 @@ namespace Lucene.Net.Analysis.CharFilters
             }
 
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(tokenizer, tokenizer);
             }
 
-            protected override TextReader InitReader(string fieldName, TextReader reader)
+            protected internal override TextReader InitReader(string fieldName, TextReader reader)
             {
                 return new MappingCharFilter(outerInstance.normMap, reader);
             }
@@ -269,13 +269,13 @@ namespace Lucene.Net.Analysis.CharFilters
                 this.map = map;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(tokenizer, tokenizer);
             }
 
-            protected override TextReader InitReader(string fieldName, TextReader reader)
+            protected internal override TextReader InitReader(string fieldName, TextReader reader)
             {
                 return new MappingCharFilter(map, reader);
             }
@@ -307,13 +307,13 @@ namespace Lucene.Net.Analysis.CharFilters
                 this.map = map;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(tokenizer, tokenizer);
             }
 
-            protected override TextReader InitReader(string fieldName, TextReader reader)
+            protected internal override TextReader InitReader(string fieldName, TextReader reader)
             {
                 return new MappingCharFilter(map, reader);
             }
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Cjk/TestCJKAnalyzer.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Cjk/TestCJKAnalyzer.cs
index 0ed7077..e47344c 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Cjk/TestCJKAnalyzer.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Cjk/TestCJKAnalyzer.cs
@@ -157,13 +157,13 @@ namespace Lucene.Net.Analysis.Cjk
                 this.norm = norm;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new StandardTokenizer(TEST_VERSION_CURRENT, reader);
                 return new TokenStreamComponents(tokenizer, new CJKBigramFilter(tokenizer));
             }
 
-            protected override TextReader InitReader(string fieldName, TextReader reader)
+            protected internal override TextReader InitReader(string fieldName, TextReader reader)
             {
                 return new MappingCharFilter(norm, reader);
             }
@@ -211,7 +211,7 @@ namespace Lucene.Net.Analysis.Cjk
             }
 
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 TokenFilter filter = new FakeStandardTokenizer(tokenizer);
@@ -254,7 +254,7 @@ namespace Lucene.Net.Analysis.Cjk
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new CJKBigramFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Cjk/TestCJKBigramFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Cjk/TestCJKBigramFilter.cs
index da5662d..e40ee6e 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Cjk/TestCJKBigramFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Cjk/TestCJKBigramFilter.cs
@@ -32,7 +32,7 @@ namespace Lucene.Net.Analysis.Cjk
             {
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer t = new StandardTokenizer(TEST_VERSION_CURRENT, reader);
                 return new TokenStreamComponents(t, new CJKBigramFilter(t));
@@ -47,7 +47,7 @@ namespace Lucene.Net.Analysis.Cjk
             {
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer t = new StandardTokenizer(TEST_VERSION_CURRENT, reader);
                 return new TokenStreamComponents(t, new CJKBigramFilter(t, (CJKScript)0xff, true));
@@ -76,7 +76,7 @@ namespace Lucene.Net.Analysis.Cjk
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer t = new StandardTokenizer(TEST_VERSION_CURRENT, reader);
                 return new TokenStreamComponents(t, new CJKBigramFilter(t, CJKScript.HAN));
@@ -99,7 +99,7 @@ namespace Lucene.Net.Analysis.Cjk
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer t = new StandardTokenizer(TEST_VERSION_CURRENT, reader);
                 return new TokenStreamComponents(t, new CJKBigramFilter(t, (CJKScript)0xff, false));
@@ -128,7 +128,7 @@ namespace Lucene.Net.Analysis.Cjk
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer t = new StandardTokenizer(TEST_VERSION_CURRENT, reader);
                 return new TokenStreamComponents(t, new CJKBigramFilter(t, CJKScript.HAN, true));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Cjk/TestCJKWidthFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Cjk/TestCJKWidthFilter.cs
index 0164c58..9ef17fc 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Cjk/TestCJKWidthFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Cjk/TestCJKWidthFilter.cs
@@ -34,7 +34,7 @@ namespace Lucene.Net.Analysis.Cjk
             {
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer source = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(source, new CJKWidthFilter(source));
@@ -85,7 +85,7 @@ namespace Lucene.Net.Analysis.Cjk
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new CJKWidthFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ckb/TestSoraniNormalizationFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ckb/TestSoraniNormalizationFilter.cs
index 7256e7d..56fec10 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ckb/TestSoraniNormalizationFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ckb/TestSoraniNormalizationFilter.cs
@@ -34,7 +34,7 @@ namespace Lucene.Net.Analysis.Ckb
             {
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new SoraniNormalizationFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ckb/TestSoraniStemFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ckb/TestSoraniStemFilter.cs
index 3457947..b053b88 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ckb/TestSoraniStemFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ckb/TestSoraniStemFilter.cs
@@ -110,7 +110,7 @@ namespace Lucene.Net.Analysis.Ckb
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new SoraniStemFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Cn/TestChineseTokenizer.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Cn/TestChineseTokenizer.cs
index dca54c6..c70de77 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Cn/TestChineseTokenizer.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Cn/TestChineseTokenizer.cs
@@ -70,7 +70,7 @@ namespace Lucene.Net.Analysis.Cn
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 return new TokenStreamComponents(new ChineseTokenizer(reader));
             }
@@ -89,7 +89,7 @@ namespace Lucene.Net.Analysis.Cn
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new WhitespaceTokenizer(LuceneVersion.LUCENE_CURRENT, reader);
                 return new TokenStreamComponents(tokenizer, new ChineseFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Commongrams/CommonGramsFilterTest.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Commongrams/CommonGramsFilterTest.cs
index f69545f..f2c965c 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Commongrams/CommonGramsFilterTest.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Commongrams/CommonGramsFilterTest.cs
@@ -139,7 +139,7 @@ namespace Lucene.Net.Analysis.CommonGrams
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(tokenizer, new CommonGramsQueryFilter(new CommonGramsFilter(TEST_VERSION_CURRENT, tokenizer, commonWords)));
@@ -197,7 +197,7 @@ namespace Lucene.Net.Analysis.CommonGrams
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(tokenizer, new CommonGramsFilter(TEST_VERSION_CURRENT, tokenizer, commonWords));
@@ -305,7 +305,7 @@ namespace Lucene.Net.Analysis.CommonGrams
             }
 
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer t = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 CommonGramsFilter cgf = new CommonGramsFilter(TEST_VERSION_CURRENT, t, commonWords);
@@ -323,7 +323,7 @@ namespace Lucene.Net.Analysis.CommonGrams
             }
 
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer t = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 CommonGramsFilter cgf = new CommonGramsFilter(TEST_VERSION_CURRENT, t, commonWords);
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Compound/TestCompoundWordTokenFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Compound/TestCompoundWordTokenFilter.cs
index 30ee3a6..b13be6d 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Compound/TestCompoundWordTokenFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Compound/TestCompoundWordTokenFilter.cs
@@ -262,14 +262,14 @@ namespace Lucene.Net.Analysis.Compound
             }
 
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 TokenFilter filter = new DictionaryCompoundWordTokenFilter(TEST_VERSION_CURRENT, tokenizer, dict);
                 return new TokenStreamComponents(tokenizer, filter);
             }
 
-            protected override TextReader InitReader(string fieldName, TextReader reader)
+            protected internal override TextReader InitReader(string fieldName, TextReader reader)
             {
                 return new MappingCharFilter(normMap, reader);
             }
@@ -306,7 +306,7 @@ namespace Lucene.Net.Analysis.Compound
             }
 
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(tokenizer, new DictionaryCompoundWordTokenFilter(TEST_VERSION_CURRENT, tokenizer, dict));
@@ -326,7 +326,7 @@ namespace Lucene.Net.Analysis.Compound
             }
 
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 TokenFilter filter = new HyphenationCompoundWordTokenFilter(TEST_VERSION_CURRENT, tokenizer, hyphenator);
@@ -364,7 +364,7 @@ namespace Lucene.Net.Analysis.Compound
             }
 
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new DictionaryCompoundWordTokenFilter(TEST_VERSION_CURRENT, tokenizer, dict));
@@ -384,7 +384,7 @@ namespace Lucene.Net.Analysis.Compound
             }
 
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 TokenFilter filter = new HyphenationCompoundWordTokenFilter(TEST_VERSION_CURRENT, tokenizer, hyphenator);
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestAnalyzers.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestAnalyzers.cs
index a8ee1b1..b26f4b4 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestAnalyzers.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestAnalyzers.cs
@@ -115,7 +115,7 @@ namespace Lucene.Net.Analysis.Core
         private class LowerCaseWhitespaceAnalyzer : Analyzer
         {
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new WhitespaceTokenizer(TEST_VERSION_CURRENT, reader);
                 return new TokenStreamComponents(tokenizer, new LowerCaseFilter(TEST_VERSION_CURRENT, tokenizer));
@@ -126,7 +126,7 @@ namespace Lucene.Net.Analysis.Core
         private class UpperCaseWhitespaceAnalyzer : Analyzer
         {
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new WhitespaceTokenizer(TEST_VERSION_CURRENT, reader);
                 return new TokenStreamComponents(tokenizer, new UpperCaseFilter(TEST_VERSION_CURRENT, tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestBugInSomething.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestBugInSomething.cs
index 53f8267..cb26701 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestBugInSomething.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestBugInSomething.cs
@@ -66,14 +66,14 @@ namespace Lucene.Net.Analysis.Core
                 this.map = map;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer t = new MockTokenizer(new TestRandomChains.CheckThatYouDidntReadAnythingReaderWrapper(reader), MockTokenFilter.ENGLISH_STOPSET, false, -65);
                 TokenFilter f = new CommonGramsFilter(TEST_VERSION_CURRENT, t, cas);
                 return new TokenStreamComponents(t, f);
             }
 
-            protected override TextReader InitReader(string fieldName, TextReader reader)
+            protected internal override TextReader InitReader(string fieldName, TextReader reader)
             {
                 reader = new MockCharFilter(reader, 0);
                 reader = new MappingCharFilter(map, reader);
@@ -322,7 +322,7 @@ namespace Lucene.Net.Analysis.Core
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new EdgeNGramTokenizer(TEST_VERSION_CURRENT, reader, 2, 94);
                 //TokenStream stream = new SopTokenFilter(tokenizer);
@@ -357,7 +357,7 @@ namespace Lucene.Net.Analysis.Core
                 this.table = table;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new WikipediaTokenizer(reader);
                 TokenStream stream = new SopTokenFilter(tokenizer);
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestDuelingAnalyzers.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestDuelingAnalyzers.cs
index 350a826..34581a6 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestDuelingAnalyzers.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestDuelingAnalyzers.cs
@@ -78,7 +78,7 @@ namespace Lucene.Net.Analysis.Core
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new LetterTokenizer(TEST_VERSION_CURRENT, reader);
                 return new TokenStreamComponents(tokenizer, tokenizer);
@@ -111,7 +111,7 @@ namespace Lucene.Net.Analysis.Core
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new LetterTokenizer(TEST_VERSION_CURRENT, reader);
                 return new TokenStreamComponents(tokenizer, tokenizer);
@@ -140,7 +140,7 @@ namespace Lucene.Net.Analysis.Core
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new LetterTokenizer(TEST_VERSION_CURRENT, reader);
                 return new TokenStreamComponents(tokenizer, tokenizer);
@@ -172,7 +172,7 @@ namespace Lucene.Net.Analysis.Core
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new LetterTokenizer(TEST_VERSION_CURRENT, reader);
                 return new TokenStreamComponents(tokenizer, tokenizer);
@@ -201,7 +201,7 @@ namespace Lucene.Net.Analysis.Core
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new LetterTokenizer(TEST_VERSION_CURRENT, reader);
                 return new TokenStreamComponents(tokenizer, tokenizer);
@@ -233,7 +233,7 @@ namespace Lucene.Net.Analysis.Core
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new LetterTokenizer(TEST_VERSION_CURRENT, reader);
                 return new TokenStreamComponents(tokenizer, tokenizer);
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestFactories.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestFactories.cs
index 28a11dd..4b428c5 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestFactories.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestFactories.cs
@@ -212,7 +212,7 @@ namespace Lucene.Net.Analysis.Core
                 this.tokenfilter = tokenfilter;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tf = tokenizer.Create(reader);
                 if (tokenfilter != null)
@@ -226,7 +226,7 @@ namespace Lucene.Net.Analysis.Core
             }
 
 
-            protected override TextReader InitReader(string fieldName, TextReader reader)
+            protected internal override TextReader InitReader(string fieldName, TextReader reader)
             {
                 if (charFilter != null)
                 {
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestRandomChains.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestRandomChains.cs
index 14550a6..586c11d 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestRandomChains.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestRandomChains.cs
@@ -851,7 +851,7 @@ namespace Lucene.Net.Analysis.Core
                 }
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Random random = new Random(seed);
                 TokenizerSpec tokenizerSpec = NewTokenizer(random, reader);
@@ -861,7 +861,7 @@ namespace Lucene.Net.Analysis.Core
                 return new TokenStreamComponents(tokenizerSpec.tokenizer, filterSpec.stream);
             }
 
-            protected override TextReader InitReader(string fieldName, TextReader reader)
+            protected internal override TextReader InitReader(string fieldName, TextReader reader)
             {
                 Random random = new Random(seed);
                 CharFilterSpec charfilterspec = NewCharFilterChain(random, reader);
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestStandardAnalyzer.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestStandardAnalyzer.cs
index b4c2d54..8b6dca9 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestStandardAnalyzer.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestStandardAnalyzer.cs
@@ -49,7 +49,7 @@ namespace Lucene.Net.Analysis.Core
             {
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new StandardTokenizer(TEST_VERSION_CURRENT, reader);
                 return new TokenStreamComponents(tokenizer);
@@ -336,7 +336,7 @@ namespace Lucene.Net.Analysis.Core
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
 #pragma warning disable 612, 618
                 Tokenizer tokenizer = new StandardTokenizer(LuceneVersion.LUCENE_36, reader);
@@ -365,7 +365,7 @@ namespace Lucene.Net.Analysis.Core
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
 #pragma warning disable 612, 618
                 Tokenizer tokenizer = new StandardTokenizer(LuceneVersion.LUCENE_40, reader);
@@ -408,7 +408,7 @@ namespace Lucene.Net.Analysis.Core
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new StandardTokenizer(TEST_VERSION_CURRENT, reader);
                 TokenStream tokenStream = new MockGraphTokenFilter(Random, tokenizer);
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestStopFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestStopFilter.cs
index 8e10148..00e2549 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestStopFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestStopFilter.cs
@@ -226,7 +226,7 @@ namespace Lucene.Net.Analysis.Core
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 TokenFilter filter = new MockSynonymFilter(outerInstance, tokenizer);
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestUAX29URLEmailTokenizer.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestUAX29URLEmailTokenizer.cs
index 1b7c7c5..0e846b2 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestUAX29URLEmailTokenizer.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Core/TestUAX29URLEmailTokenizer.cs
@@ -52,7 +52,7 @@ namespace Lucene.Net.Analysis.Core
             {
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
 
                 Tokenizer tokenizer = new UAX29URLEmailTokenizer(TEST_VERSION_CURRENT, reader);
@@ -119,7 +119,7 @@ namespace Lucene.Net.Analysis.Core
             {
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 UAX29URLEmailTokenizer tokenizer = new UAX29URLEmailTokenizer(TEST_VERSION_CURRENT, reader);
                 tokenizer.MaxTokenLength = int.MaxValue; // Tokenize arbitrary length URLs
@@ -136,7 +136,7 @@ namespace Lucene.Net.Analysis.Core
             {
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 UAX29URLEmailTokenizer tokenizer = new UAX29URLEmailTokenizer(TEST_VERSION_CURRENT, reader);
                 TokenFilter filter = new EmailFilter(tokenizer);
@@ -587,7 +587,7 @@ namespace Lucene.Net.Analysis.Core
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
 #pragma warning disable 612, 618
                 Tokenizer tokenizer = new UAX29URLEmailTokenizer(LuceneVersion.LUCENE_31, reader);
@@ -615,7 +615,7 @@ namespace Lucene.Net.Analysis.Core
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
 #pragma warning disable 612, 618
                 Tokenizer tokenizer = new UAX29URLEmailTokenizer(LuceneVersion.LUCENE_34, reader);
@@ -642,7 +642,7 @@ namespace Lucene.Net.Analysis.Core
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
 #pragma warning disable 612, 618
                 Tokenizer tokenizer = new UAX29URLEmailTokenizer(LuceneVersion.LUCENE_36, reader);
@@ -671,7 +671,7 @@ namespace Lucene.Net.Analysis.Core
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
 #pragma warning disable 612, 618
                 Tokenizer tokenizer = new UAX29URLEmailTokenizer(LuceneVersion.LUCENE_40, reader);
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Cz/TestCzechStemmer.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Cz/TestCzechStemmer.cs
index 8a83dc0..2bc754a 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Cz/TestCzechStemmer.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Cz/TestCzechStemmer.cs
@@ -312,7 +312,7 @@ namespace Lucene.Net.Analysis.Cz
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new CzechStemFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/De/TestGermanLightStemFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/De/TestGermanLightStemFilter.cs
index 1bfe698..4f70192 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/De/TestGermanLightStemFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/De/TestGermanLightStemFilter.cs
@@ -36,7 +36,7 @@ namespace Lucene.Net.Analysis.De
             {
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer source = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(source, new GermanLightStemFilter(source));
@@ -71,7 +71,7 @@ namespace Lucene.Net.Analysis.De
                 this.exclusionSet = exclusionSet;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer source = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 TokenStream sink = new SetKeywordMarkerFilter(source, exclusionSet);
@@ -103,7 +103,7 @@ namespace Lucene.Net.Analysis.De
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new GermanLightStemFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/De/TestGermanMinimalStemFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/De/TestGermanMinimalStemFilter.cs
index fcb7077..ccac752 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/De/TestGermanMinimalStemFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/De/TestGermanMinimalStemFilter.cs
@@ -36,7 +36,7 @@ namespace Lucene.Net.Analysis.De
             {
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer source = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(source, new GermanMinimalStemFilter(source));
@@ -78,7 +78,7 @@ namespace Lucene.Net.Analysis.De
                 this.exclusionSet = exclusionSet;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer source = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 TokenStream sink = new SetKeywordMarkerFilter(source, exclusionSet);
@@ -118,7 +118,7 @@ namespace Lucene.Net.Analysis.De
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new GermanMinimalStemFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/De/TestGermanNormalizationFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/De/TestGermanNormalizationFilter.cs
index 4737fda..bbb74e4 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/De/TestGermanNormalizationFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/De/TestGermanNormalizationFilter.cs
@@ -34,7 +34,7 @@ namespace Lucene.Net.Analysis.De
             {
             }
 
-            protected override TokenStreamComponents CreateComponents(string field, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string field, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 TokenStream stream = new GermanNormalizationFilter(tokenizer);
@@ -94,7 +94,7 @@ namespace Lucene.Net.Analysis.De
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new GermanNormalizationFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/De/TestGermanStemFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/De/TestGermanStemFilter.cs
index 52b59d3..d9db6d4 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/De/TestGermanStemFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/De/TestGermanStemFilter.cs
@@ -39,7 +39,7 @@ namespace Lucene.Net.Analysis.De
             {
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer t = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(t, new GermanStemFilter(new LowerCaseFilter(TEST_VERSION_CURRENT, t)));
@@ -82,7 +82,7 @@ namespace Lucene.Net.Analysis.De
                 this.exclusionSet = exclusionSet;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer source = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 TokenStream sink = new SetKeywordMarkerFilter(source, exclusionSet);
@@ -114,7 +114,7 @@ namespace Lucene.Net.Analysis.De
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new GermanStemFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/El/TestGreekStemmer.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/El/TestGreekStemmer.cs
index 92df565..8127f55 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/El/TestGreekStemmer.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/El/TestGreekStemmer.cs
@@ -553,7 +553,7 @@ namespace Lucene.Net.Analysis.El
 			  this.outerInstance = outerInstance;
 		  }
 
-		  protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+		  protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
 		  {
 			Tokenizer tokenizer = new KeywordTokenizer(reader);
 			return new TokenStreamComponents(tokenizer, new GreekStemFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/En/TestEnglishMinimalStemFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/En/TestEnglishMinimalStemFilter.cs
index ec10c0d..2332cb4 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/En/TestEnglishMinimalStemFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/En/TestEnglishMinimalStemFilter.cs
@@ -34,7 +34,7 @@ namespace Lucene.Net.Analysis.En
             {
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer source = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(source, new EnglishMinimalStemFilter(source));
@@ -81,7 +81,7 @@ namespace Lucene.Net.Analysis.En
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new EnglishMinimalStemFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/En/TestKStemmer.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/En/TestKStemmer.cs
index 0752480..d3cf691 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/En/TestKStemmer.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/En/TestKStemmer.cs
@@ -34,7 +34,7 @@ namespace Lucene.Net.Analysis.En
             {
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, true);
                 return new TokenStreamComponents(tokenizer, new KStemFilter(tokenizer));
@@ -76,7 +76,7 @@ namespace Lucene.Net.Analysis.En
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new KStemFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/En/TestPorterStemFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/En/TestPorterStemFilter.cs
index 52f3067..b5bc842 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/En/TestPorterStemFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/En/TestPorterStemFilter.cs
@@ -35,7 +35,7 @@ namespace Lucene.Net.Analysis.En
             public AnalyzerAnonymousInnerClassHelper()
             {
             }
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer t = new MockTokenizer(reader, MockTokenizer.KEYWORD, false);
                 return new TokenStreamComponents(t, new PorterStemFilter(t));
@@ -79,7 +79,7 @@ namespace Lucene.Net.Analysis.En
 
         private class AnalyzerAnonymousInnerClassHelper2 : Analyzer
         {
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new PorterStemFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Es/TestSpanishLightStemFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Es/TestSpanishLightStemFilter.cs
index 5da6300..5e6c023 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Es/TestSpanishLightStemFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Es/TestSpanishLightStemFilter.cs
@@ -34,7 +34,7 @@ namespace Lucene.Net.Analysis.Es
             {
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer source = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(source, new SpanishLightStemFilter(source));
@@ -73,7 +73,7 @@ namespace Lucene.Net.Analysis.Es
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new SpanishLightStemFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Fa/TestPersianCharFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Fa/TestPersianCharFilter.cs
index d29ac6d..17a7828 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Fa/TestPersianCharFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Fa/TestPersianCharFilter.cs
@@ -30,12 +30,12 @@ namespace Lucene.Net.Analysis.Fa
             {
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 return new TokenStreamComponents(new MockTokenizer(reader));
             }
 
-            protected override TextReader InitReader(string fieldName, TextReader reader)
+            protected internal override TextReader InitReader(string fieldName, TextReader reader)
             {
                 return new PersianCharFilter(reader);
             }
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Fa/TestPersianNormalizationFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Fa/TestPersianNormalizationFilter.cs
index 99a9b13..8431df5 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Fa/TestPersianNormalizationFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Fa/TestPersianNormalizationFilter.cs
@@ -90,7 +90,7 @@ namespace Lucene.Net.Analysis.Fa
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new PersianNormalizationFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Fi/TestFinnishLightStemFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Fi/TestFinnishLightStemFilter.cs
index ddaba58..7e8f8dc 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Fi/TestFinnishLightStemFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Fi/TestFinnishLightStemFilter.cs
@@ -36,7 +36,7 @@ namespace Lucene.Net.Analysis.Fi
             {
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer source = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(source, new FinnishLightStemFilter(source));
@@ -71,7 +71,7 @@ namespace Lucene.Net.Analysis.Fi
                 this.exclusionSet = exclusionSet;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer source = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 TokenStream sink = new SetKeywordMarkerFilter(source, exclusionSet);
@@ -103,7 +103,7 @@ namespace Lucene.Net.Analysis.Fi
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new FinnishLightStemFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Fr/TestFrenchLightStemFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Fr/TestFrenchLightStemFilter.cs
index b437454..f474f01 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Fr/TestFrenchLightStemFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Fr/TestFrenchLightStemFilter.cs
@@ -36,7 +36,7 @@ namespace Lucene.Net.Analysis.Fr
             {
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer source = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(source, new FrenchLightStemFilter(source));
@@ -205,7 +205,7 @@ namespace Lucene.Net.Analysis.Fr
                 this.exclusionSet = exclusionSet;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer source = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 TokenStream sink = new SetKeywordMarkerFilter(source, exclusionSet);
@@ -237,7 +237,7 @@ namespace Lucene.Net.Analysis.Fr
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new FrenchLightStemFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Fr/TestFrenchMinimalStemFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Fr/TestFrenchMinimalStemFilter.cs
index 03be805..8b41071 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Fr/TestFrenchMinimalStemFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Fr/TestFrenchMinimalStemFilter.cs
@@ -36,7 +36,7 @@ namespace Lucene.Net.Analysis.Fr
             {
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer source = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(source, new FrenchMinimalStemFilter(source));
@@ -80,7 +80,7 @@ namespace Lucene.Net.Analysis.Fr
                 this.exclusionSet = exclusionSet;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer source = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 TokenStream sink = new SetKeywordMarkerFilter(source, exclusionSet);
@@ -120,7 +120,7 @@ namespace Lucene.Net.Analysis.Fr
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new FrenchMinimalStemFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ga/TestIrishLowerCaseFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ga/TestIrishLowerCaseFilter.cs
index c674f58..fb54eda 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ga/TestIrishLowerCaseFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ga/TestIrishLowerCaseFilter.cs
@@ -54,7 +54,7 @@ namespace Lucene.Net.Analysis.Ga
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new IrishLowerCaseFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Gl/TestGalicianMinimalStemFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Gl/TestGalicianMinimalStemFilter.cs
index a1e3de4..e675dc8 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Gl/TestGalicianMinimalStemFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Gl/TestGalicianMinimalStemFilter.cs
@@ -36,7 +36,7 @@ namespace Lucene.Net.Analysis.Gl
             {
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(tokenizer, new GalicianMinimalStemFilter(tokenizer));
@@ -79,7 +79,7 @@ namespace Lucene.Net.Analysis.Gl
                 this.exclusionSet = exclusionSet;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer source = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 TokenStream sink = new SetKeywordMarkerFilter(source, exclusionSet);
@@ -111,7 +111,7 @@ namespace Lucene.Net.Analysis.Gl
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new GalicianMinimalStemFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Gl/TestGalicianStemFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Gl/TestGalicianStemFilter.cs
index a867d8d..d70094c 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Gl/TestGalicianStemFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Gl/TestGalicianStemFilter.cs
@@ -35,7 +35,7 @@ namespace Lucene.Net.Analysis.Gl
             {
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer source = new StandardTokenizer(TEST_VERSION_CURRENT, reader);
                 TokenStream result = new LowerCaseFilter(TEST_VERSION_CURRENT, source);
@@ -68,7 +68,7 @@ namespace Lucene.Net.Analysis.Gl
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new GalicianStemFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Hi/TestHindiNormalizer.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Hi/TestHindiNormalizer.cs
index 5a4b59d..baf430c 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Hi/TestHindiNormalizer.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Hi/TestHindiNormalizer.cs
@@ -83,7 +83,7 @@ namespace Lucene.Net.Analysis.Hi
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new HindiNormalizationFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Hi/TestHindiStemmer.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Hi/TestHindiStemmer.cs
index 08cf43a..26b2990 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Hi/TestHindiStemmer.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Hi/TestHindiStemmer.cs
@@ -108,7 +108,7 @@ namespace Lucene.Net.Analysis.Hi
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new HindiStemFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Hu/TestHungarianLightStemFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Hu/TestHungarianLightStemFilter.cs
index 89ef132..eeeef95 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Hu/TestHungarianLightStemFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Hu/TestHungarianLightStemFilter.cs
@@ -36,7 +36,7 @@ namespace Lucene.Net.Analysis.Hu
             {
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer source = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(source, new HungarianLightStemFilter(source));
@@ -71,7 +71,7 @@ namespace Lucene.Net.Analysis.Hu
                 this.exclusionSet = exclusionSet;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer source = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 TokenStream sink = new SetKeywordMarkerFilter(source, exclusionSet);
@@ -95,7 +95,7 @@ namespace Lucene.Net.Analysis.Hu
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new HungarianLightStemFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Hunspell/TestHunspellStemFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Hunspell/TestHunspellStemFilter.cs
index 6144dea..6a310d5 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Hunspell/TestHunspellStemFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Hunspell/TestHunspellStemFilter.cs
@@ -98,7 +98,7 @@ namespace Lucene.Net.Analysis.Hunspell
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(tokenizer, new HunspellStemFilter(tokenizer, dictionary));
@@ -121,7 +121,7 @@ namespace Lucene.Net.Analysis.Hunspell
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new HunspellStemFilter(tokenizer, dictionary));
@@ -158,7 +158,7 @@ namespace Lucene.Net.Analysis.Hunspell
                 this.d = d;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new HunspellStemFilter(tokenizer, d));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Id/TestIndonesianStemmer.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Id/TestIndonesianStemmer.cs
index e55eff0..73857df 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Id/TestIndonesianStemmer.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Id/TestIndonesianStemmer.cs
@@ -35,7 +35,7 @@ namespace Lucene.Net.Analysis.Id
             {
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new IndonesianStemFilter(tokenizer));
@@ -129,7 +129,7 @@ namespace Lucene.Net.Analysis.Id
             {
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new IndonesianStemFilter(tokenizer, false));
@@ -171,7 +171,7 @@ namespace Lucene.Net.Analysis.Id
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new IndonesianStemFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/In/TestIndicNormalizer.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/In/TestIndicNormalizer.cs
index 47731bf..8294ffe 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/In/TestIndicNormalizer.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/In/TestIndicNormalizer.cs
@@ -65,7 +65,7 @@ namespace Lucene.Net.Analysis.In
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new IndicNormalizationFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/It/TestItalianLightStemFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/It/TestItalianLightStemFilter.cs
index d054687..b7c3e0f 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/It/TestItalianLightStemFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/It/TestItalianLightStemFilter.cs
@@ -34,7 +34,7 @@ namespace Lucene.Net.Analysis.It
             {
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer source = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(source, new ItalianLightStemFilter(source));
@@ -73,7 +73,7 @@ namespace Lucene.Net.Analysis.It
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new ItalianLightStemFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Lv/TestLatvianStemmer.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Lv/TestLatvianStemmer.cs
index 5192510..52adc34 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Lv/TestLatvianStemmer.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Lv/TestLatvianStemmer.cs
@@ -34,7 +34,7 @@ namespace Lucene.Net.Analysis.Lv
             {
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(tokenizer, new LatvianStemFilter(tokenizer));
@@ -307,7 +307,7 @@ namespace Lucene.Net.Analysis.Lv
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new LatvianStemFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestASCIIFoldingFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestASCIIFoldingFilter.cs
index e75bf23..727af62 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestASCIIFoldingFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestASCIIFoldingFilter.cs
@@ -243,7 +243,7 @@ namespace Lucene.Net.Analysis.Miscellaneous
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(tokenizer, new ASCIIFoldingFilter(tokenizer, Random.nextBoolean()));
@@ -266,7 +266,7 @@ namespace Lucene.Net.Analysis.Miscellaneous
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new ASCIIFoldingFilter(tokenizer, Random.nextBoolean()));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestCapitalizationFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestCapitalizationFilter.cs
index eb5bfdc..2786d9a 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestCapitalizationFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestCapitalizationFilter.cs
@@ -108,7 +108,7 @@ namespace Lucene.Net.Analysis.Miscellaneous
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(tokenizer, new CapitalizationFilter(tokenizer));
@@ -131,7 +131,7 @@ namespace Lucene.Net.Analysis.Miscellaneous
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new CapitalizationFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestCodepointCountFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestCodepointCountFilter.cs
index 56c9189..0903925 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestCodepointCountFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestCodepointCountFilter.cs
@@ -50,7 +50,7 @@ namespace Lucene.Net.Analysis.Miscellaneous
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new CodepointCountFilter(TEST_VERSION_CURRENT, tokenizer, 0, 5));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestHyphenatedWordsFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestHyphenatedWordsFilter.cs
index 59e2d59..d2cfd34 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestHyphenatedWordsFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestHyphenatedWordsFilter.cs
@@ -77,7 +77,7 @@ namespace Lucene.Net.Analysis.Miscellaneous
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(tokenizer, new HyphenatedWordsFilter(tokenizer));
@@ -100,7 +100,7 @@ namespace Lucene.Net.Analysis.Miscellaneous
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new HyphenatedWordsFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestKeepWordFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestKeepWordFilter.cs
index 98da330..9bebbe1 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestKeepWordFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestKeepWordFilter.cs
@@ -87,7 +87,7 @@ namespace Lucene.Net.Analysis.Miscellaneous
                 this.words = words;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 TokenStream stream = new KeepWordFilter(TEST_VERSION_CURRENT, tokenizer, new CharArraySet(TEST_VERSION_CURRENT, words, true));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestLengthFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestLengthFilter.cs
index 7180aed..3c55dc8 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestLengthFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestLengthFilter.cs
@@ -60,7 +60,7 @@ namespace Lucene.Net.Analysis.Miscellaneous
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new LengthFilter(TEST_VERSION_CURRENT, tokenizer, 0, 5));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestLimitTokenPositionFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestLimitTokenPositionFilter.cs
index c3afa22..3b4c014 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestLimitTokenPositionFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestLimitTokenPositionFilter.cs
@@ -55,7 +55,7 @@ namespace Lucene.Net.Analysis.Miscellaneous
                 this.consumeAll = consumeAll;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 MockTokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 // if we are consuming all tokens, we can use the checks, otherwise we can't
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestLucene47WordDelimiterFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestLucene47WordDelimiterFilter.cs
index 61909bf..9eb56a9 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestLucene47WordDelimiterFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestLucene47WordDelimiterFilter.cs
@@ -293,7 +293,7 @@ namespace Lucene.Net.Analysis.Miscellaneous
                 this.protWords = protWords;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(tokenizer, new Lucene47WordDelimiterFilter(tokenizer, flags, protWords));
@@ -314,7 +314,7 @@ namespace Lucene.Net.Analysis.Miscellaneous
                 this.protWords = protWords;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(tokenizer, new Lucene47WordDelimiterFilter(new LargePosIncTokenFilter(outerInstance, tokenizer), flags, protWords));
@@ -335,7 +335,7 @@ namespace Lucene.Net.Analysis.Miscellaneous
                 this.protWords = protWords;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 StopFilter filter = new StopFilter(TEST_VERSION_CURRENT, tokenizer, StandardAnalyzer.STOP_WORDS_SET);
@@ -381,7 +381,7 @@ namespace Lucene.Net.Analysis.Miscellaneous
                 this.protectedWords = protectedWords;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(tokenizer, new Lucene47WordDelimiterFilter(tokenizer, flags, protectedWords));
@@ -425,7 +425,7 @@ namespace Lucene.Net.Analysis.Miscellaneous
                 this.protectedWords = protectedWords;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new Lucene47WordDelimiterFilter(tokenizer, flags, protectedWords));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestPerFieldAnalyzerWrapper.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestPerFieldAnalyzerWrapper.cs
index 7cca581..4eb9ac1 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestPerFieldAnalyzerWrapper.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestPerFieldAnalyzerWrapper.cs
@@ -110,12 +110,12 @@ namespace Lucene.Net.Analysis.Miscellaneous
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 return new TokenStreamComponents(new MockTokenizer(reader));
             }
 
-            protected override TextReader InitReader(string fieldName, TextReader reader)
+            protected internal override TextReader InitReader(string fieldName, TextReader reader)
             {
                 return new MockCharFilter(reader, 7);
             }
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestRemoveDuplicatesTokenFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestRemoveDuplicatesTokenFilter.cs
index 7044c97..f0b4f67 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestRemoveDuplicatesTokenFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestRemoveDuplicatesTokenFilter.cs
@@ -170,7 +170,7 @@ namespace Lucene.Net.Analysis.Miscellaneous
                 this.ignoreCase = ignoreCase;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.SIMPLE, true);
                 TokenStream stream = new SynonymFilter(tokenizer, map, ignoreCase);
@@ -194,7 +194,7 @@ namespace Lucene.Net.Analysis.Miscellaneous
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new RemoveDuplicatesTokenFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestScandinavianFoldingFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestScandinavianFoldingFilter.cs
index e5cf9df..a1abfb6 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestScandinavianFoldingFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestScandinavianFoldingFilter.cs
@@ -31,7 +31,7 @@ namespace Lucene.Net.Analysis.Miscellaneous
             {
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 TokenStream stream = new ScandinavianFoldingFilter(tokenizer);
@@ -128,7 +128,7 @@ namespace Lucene.Net.Analysis.Miscellaneous
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new ScandinavianFoldingFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestScandinavianNormalizationFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestScandinavianNormalizationFilter.cs
index b7eda30..8843d06 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestScandinavianNormalizationFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestScandinavianNormalizationFilter.cs
@@ -33,7 +33,7 @@ namespace Lucene.Net.Analysis.Miscellaneous
             {
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 TokenStream stream = new ScandinavianNormalizationFilter(tokenizer);
@@ -128,7 +128,7 @@ namespace Lucene.Net.Analysis.Miscellaneous
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new ScandinavianNormalizationFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestTrimFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestTrimFilter.cs
index 9af849d..bd00b2d 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestTrimFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestTrimFilter.cs
@@ -125,7 +125,7 @@ namespace Lucene.Net.Analysis.Miscellaneous
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.KEYWORD, false);
                 return new TokenStreamComponents(tokenizer, new TrimFilter(LuceneVersion.LUCENE_43, tokenizer, true));
@@ -141,7 +141,7 @@ namespace Lucene.Net.Analysis.Miscellaneous
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.KEYWORD, false);
                 return new TokenStreamComponents(tokenizer, new TrimFilter(TEST_VERSION_CURRENT, tokenizer, false));
@@ -164,7 +164,7 @@ namespace Lucene.Net.Analysis.Miscellaneous
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 bool updateOffsets = Random.nextBoolean();
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestWordDelimiterFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestWordDelimiterFilter.cs
index 7325027..dd4942c 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestWordDelimiterFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Miscellaneous/TestWordDelimiterFilter.cs
@@ -288,7 +288,7 @@ namespace Lucene.Net.Analysis.Miscellaneous
                 this.protWords = protWords;
             }
 
-            protected override TokenStreamComponents CreateComponents(string field, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string field, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(tokenizer, new WordDelimiterFilter(TEST_VERSION_CURRENT, tokenizer, flags, protWords));
@@ -309,7 +309,7 @@ namespace Lucene.Net.Analysis.Miscellaneous
                 this.protWords = protWords;
             }
 
-            protected override TokenStreamComponents CreateComponents(string field, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string field, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(tokenizer, new WordDelimiterFilter(TEST_VERSION_CURRENT, new LargePosIncTokenFilter(outerInstance, tokenizer), flags, protWords));
@@ -330,7 +330,7 @@ namespace Lucene.Net.Analysis.Miscellaneous
                 this.protWords = protWords;
             }
 
-            protected override TokenStreamComponents CreateComponents(string field, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string field, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 StopFilter filter = new StopFilter(TEST_VERSION_CURRENT, tokenizer, StandardAnalyzer.STOP_WORDS_SET);
@@ -370,7 +370,7 @@ namespace Lucene.Net.Analysis.Miscellaneous
                 this.flags = flags;
             }
 
-            protected override TokenStreamComponents CreateComponents(string field, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string field, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(tokenizer, new WordDelimiterFilter(TEST_VERSION_CURRENT, tokenizer, flags, null));
@@ -410,7 +410,7 @@ namespace Lucene.Net.Analysis.Miscellaneous
                 this.flags = flags;
             }
 
-            protected override TokenStreamComponents CreateComponents(string field, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string field, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(tokenizer, new WordDelimiterFilter(TEST_VERSION_CURRENT, tokenizer, flags, null));
@@ -454,7 +454,7 @@ namespace Lucene.Net.Analysis.Miscellaneous
                 this.protectedWords = protectedWords;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(tokenizer, new WordDelimiterFilter(TEST_VERSION_CURRENT, tokenizer, flags, protectedWords));
@@ -500,7 +500,7 @@ namespace Lucene.Net.Analysis.Miscellaneous
             }
 
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(tokenizer, new WordDelimiterFilter(TEST_VERSION_CURRENT, tokenizer, flags, protectedWords));
@@ -544,7 +544,7 @@ namespace Lucene.Net.Analysis.Miscellaneous
                 this.protectedWords = protectedWords;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new WordDelimiterFilter(TEST_VERSION_CURRENT, tokenizer, flags, protectedWords));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/NGram/EdgeNGramTokenFilterTest.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/NGram/EdgeNGramTokenFilterTest.cs
index e037cd7..2ab3a03 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/NGram/EdgeNGramTokenFilterTest.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/NGram/EdgeNGramTokenFilterTest.cs
@@ -241,7 +241,7 @@ namespace Lucene.Net.Analysis.NGram
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 TokenFilter filters = new ASCIIFoldingFilter(tokenizer);
@@ -284,7 +284,7 @@ namespace Lucene.Net.Analysis.NGram
                 this.max = max;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(tokenizer, new EdgeNGramTokenFilter(TEST_VERSION_CURRENT, tokenizer, min, max));
@@ -300,7 +300,7 @@ namespace Lucene.Net.Analysis.NGram
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
 #pragma warning disable 612, 618
@@ -329,7 +329,7 @@ namespace Lucene.Net.Analysis.NGram
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
 #pragma warning disable 612, 618
@@ -347,7 +347,7 @@ namespace Lucene.Net.Analysis.NGram
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
 #pragma warning disable 612, 618
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/NGram/EdgeNGramTokenizerTest.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/NGram/EdgeNGramTokenizerTest.cs
index 662982e..db81493 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/NGram/EdgeNGramTokenizerTest.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/NGram/EdgeNGramTokenizerTest.cs
@@ -165,7 +165,7 @@ namespace Lucene.Net.Analysis.NGram
                 this.max = max;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, Reader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, Reader reader)
             {
                 Tokenizer tokenizer = new EdgeNGramTokenizer(TEST_VERSION_CURRENT, reader, min, max);
                 return new TokenStreamComponents(tokenizer, tokenizer);
@@ -181,7 +181,7 @@ namespace Lucene.Net.Analysis.NGram
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, Reader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, Reader reader)
             {
 #pragma warning disable 612, 618
                 Tokenizer tokenizer = new Lucene43EdgeNGramTokenizer(Version.LUCENE_43, reader, Lucene43EdgeNGramTokenizer.Side.BACK, 2, 4);
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/NGram/NGramTokenFilterTest.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/NGram/NGramTokenFilterTest.cs
index e3bd331..df00989 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/NGram/NGramTokenFilterTest.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/NGram/NGramTokenFilterTest.cs
@@ -143,7 +143,7 @@ namespace Lucene.Net.Analysis.NGram
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 TokenFilter filters = new ASCIIFoldingFilter(tokenizer);
@@ -180,7 +180,7 @@ namespace Lucene.Net.Analysis.NGram
                 this.max = max;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(tokenizer, new NGramTokenFilter(TEST_VERSION_CURRENT, tokenizer, min, max));
@@ -204,7 +204,7 @@ namespace Lucene.Net.Analysis.NGram
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new NGramTokenFilter(TEST_VERSION_CURRENT, tokenizer, 2, 15));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/NGram/NGramTokenizerTest.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/NGram/NGramTokenizerTest.cs
index b18a583..102e18c 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/NGram/NGramTokenizerTest.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/NGram/NGramTokenizerTest.cs
@@ -134,7 +134,7 @@ namespace Lucene.Net.Analysis.NGram
                 this.max = max;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new NGramTokenizer(TEST_VERSION_CURRENT, reader, min, max);
                 return new TokenStreamComponents(tokenizer, tokenizer);
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/No/TestNorwegianLightStemFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/No/TestNorwegianLightStemFilter.cs
index 6b2d382..8241dfe 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/No/TestNorwegianLightStemFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/No/TestNorwegianLightStemFilter.cs
@@ -37,7 +37,7 @@ namespace Lucene.Net.Analysis.No
             {
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer source = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(source, new NorwegianLightStemFilter(source, NorwegianStandard.BOKMAAL));
@@ -70,7 +70,7 @@ namespace Lucene.Net.Analysis.No
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer source = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(source, new NorwegianLightStemFilter(source, NorwegianStandard.NYNORSK));
@@ -97,7 +97,7 @@ namespace Lucene.Net.Analysis.No
                 this.exclusionSet = exclusionSet;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer source = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 TokenStream sink = new SetKeywordMarkerFilter(source, exclusionSet);
@@ -130,7 +130,7 @@ namespace Lucene.Net.Analysis.No
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new NorwegianLightStemFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/No/TestNorwegianMinimalStemFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/No/TestNorwegianMinimalStemFilter.cs
index d8a5a9e..7482f48 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/No/TestNorwegianMinimalStemFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/No/TestNorwegianMinimalStemFilter.cs
@@ -37,7 +37,7 @@ namespace Lucene.Net.Analysis.No
             {
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer source = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(source, new NorwegianMinimalStemFilter(source, NorwegianStandard.BOKMAAL));
@@ -70,7 +70,7 @@ namespace Lucene.Net.Analysis.No
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer source = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(source, new NorwegianMinimalStemFilter(source, NorwegianStandard.NYNORSK));
@@ -97,7 +97,7 @@ namespace Lucene.Net.Analysis.No
                 this.exclusionSet = exclusionSet;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer source = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 TokenStream sink = new SetKeywordMarkerFilter(source, exclusionSet);
@@ -130,7 +130,7 @@ namespace Lucene.Net.Analysis.No
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new NorwegianMinimalStemFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Path/TestPathHierarchyTokenizer.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Path/TestPathHierarchyTokenizer.cs
index 0345440..d71fe93 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Path/TestPathHierarchyTokenizer.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Path/TestPathHierarchyTokenizer.cs
@@ -168,7 +168,7 @@ namespace Lucene.Net.Analysis.Path
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new PathHierarchyTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, tokenizer);
@@ -194,7 +194,7 @@ namespace Lucene.Net.Analysis.Path
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new PathHierarchyTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, tokenizer);
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Path/TestReversePathHierarchyTokenizer.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Path/TestReversePathHierarchyTokenizer.cs
index 5de3e51..7bd28b6 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Path/TestReversePathHierarchyTokenizer.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Path/TestReversePathHierarchyTokenizer.cs
@@ -137,7 +137,7 @@ namespace Lucene.Net.Analysis.Path
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new ReversePathHierarchyTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, tokenizer);
@@ -163,7 +163,7 @@ namespace Lucene.Net.Analysis.Path
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new ReversePathHierarchyTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, tokenizer);
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pattern/TestPatternCaptureGroupTokenFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pattern/TestPatternCaptureGroupTokenFilter.cs
index 667daaa..23ee77b 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pattern/TestPatternCaptureGroupTokenFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pattern/TestPatternCaptureGroupTokenFilter.cs
@@ -192,7 +192,7 @@ namespace Lucene.Net.Analysis.Pattern
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(tokenizer, new PatternCaptureGroupTokenFilter(tokenizer, false, new Regex("((..)(..))", RegexOptions.Compiled)));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pattern/TestPatternReplaceCharFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pattern/TestPatternReplaceCharFilter.cs
index d025592..402f11d 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pattern/TestPatternReplaceCharFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pattern/TestPatternReplaceCharFilter.cs
@@ -282,12 +282,12 @@ namespace Lucene.Net.Analysis.Pattern
                 this.replacement = replacement;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(tokenizer, tokenizer);
             }
-            protected override TextReader InitReader(string fieldName, TextReader reader)
+            protected internal override TextReader InitReader(string fieldName, TextReader reader)
             {
                 return new PatternReplaceCharFilter(p, replacement, reader);
             }
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pattern/TestPatternReplaceFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pattern/TestPatternReplaceFilter.cs
index 8ac2195..f39cc33 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pattern/TestPatternReplaceFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pattern/TestPatternReplaceFilter.cs
@@ -87,7 +87,7 @@ namespace Lucene.Net.Analysis.Pattern
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 TokenStream filter = new PatternReplaceFilter(tokenizer, new Regex("a", RegexOptions.Compiled), "b", false);
@@ -104,7 +104,7 @@ namespace Lucene.Net.Analysis.Pattern
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 TokenStream filter = new PatternReplaceFilter(tokenizer, new Regex("a", RegexOptions.Compiled), "b", true);
@@ -128,7 +128,7 @@ namespace Lucene.Net.Analysis.Pattern
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new PatternReplaceFilter(tokenizer, new Regex("a", RegexOptions.Compiled), "b", true));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pattern/TestPatternTokenizer.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pattern/TestPatternTokenizer.cs
index a1c4ca1..48a82e0 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pattern/TestPatternTokenizer.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pattern/TestPatternTokenizer.cs
@@ -136,7 +136,7 @@ namespace Lucene.Net.Analysis.Pattern
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new PatternTokenizer(reader, new Regex("a", RegexOptions.Compiled), -1);
                 return new TokenStreamComponents(tokenizer);
@@ -152,7 +152,7 @@ namespace Lucene.Net.Analysis.Pattern
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new PatternTokenizer(reader, new Regex("a", RegexOptions.Compiled), 0);
                 return new TokenStreamComponents(tokenizer);
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pt/TestPortugueseLightStemFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pt/TestPortugueseLightStemFilter.cs
index f135370..f4ac8e7 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pt/TestPortugueseLightStemFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pt/TestPortugueseLightStemFilter.cs
@@ -37,7 +37,7 @@ namespace Lucene.Net.Analysis.Pt
             {
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer source = new StandardTokenizer(TEST_VERSION_CURRENT, reader);
                 TokenStream result = new LowerCaseFilter(TEST_VERSION_CURRENT, source);
@@ -111,7 +111,7 @@ namespace Lucene.Net.Analysis.Pt
                 this.exclusionSet = exclusionSet;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer source = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 TokenStream sink = new SetKeywordMarkerFilter(source, exclusionSet);
@@ -143,7 +143,7 @@ namespace Lucene.Net.Analysis.Pt
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new PortugueseLightStemFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pt/TestPortugueseMinimalStemFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pt/TestPortugueseMinimalStemFilter.cs
index 542f427..a7a8069 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pt/TestPortugueseMinimalStemFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pt/TestPortugueseMinimalStemFilter.cs
@@ -37,7 +37,7 @@ namespace Lucene.Net.Analysis.Pt
             {
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer source = new StandardTokenizer(TEST_VERSION_CURRENT, reader);
                 TokenStream result = new LowerCaseFilter(TEST_VERSION_CURRENT, source);
@@ -83,7 +83,7 @@ namespace Lucene.Net.Analysis.Pt
                 this.exclusionSet = exclusionSet;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer source = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 TokenStream sink = new SetKeywordMarkerFilter(source, exclusionSet);
@@ -115,7 +115,7 @@ namespace Lucene.Net.Analysis.Pt
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new PortugueseMinimalStemFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pt/TestPortugueseStemFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pt/TestPortugueseStemFilter.cs
index c384343..a64070e 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pt/TestPortugueseStemFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Pt/TestPortugueseStemFilter.cs
@@ -37,7 +37,7 @@ namespace Lucene.Net.Analysis.Pt
             {
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer source = new StandardTokenizer(TEST_VERSION_CURRENT, reader);
                 TokenStream result = new LowerCaseFilter(TEST_VERSION_CURRENT, source);
@@ -83,7 +83,7 @@ namespace Lucene.Net.Analysis.Pt
                 this.exclusionSet = exclusionSet;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer source = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 TokenStream sink = new SetKeywordMarkerFilter(source, exclusionSet);
@@ -115,7 +115,7 @@ namespace Lucene.Net.Analysis.Pt
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new PortugueseStemFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Reverse/TestReverseStringFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Reverse/TestReverseStringFilter.cs
index 40943d3..da8ed49 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Reverse/TestReverseStringFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Reverse/TestReverseStringFilter.cs
@@ -125,7 +125,7 @@ namespace Lucene.Net.Analysis.Reverse
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(tokenizer, new ReverseStringFilter(TEST_VERSION_CURRENT, tokenizer));
@@ -148,7 +148,7 @@ namespace Lucene.Net.Analysis.Reverse
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new ReverseStringFilter(TEST_VERSION_CURRENT, tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ru/TestRussianLightStemFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ru/TestRussianLightStemFilter.cs
index dc8b045..535d398 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ru/TestRussianLightStemFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Ru/TestRussianLightStemFilter.cs
@@ -36,7 +36,7 @@ namespace Lucene.Net.Analysis.Ru
             {
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer source = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(source, new RussianLightStemFilter(source));
@@ -71,7 +71,7 @@ namespace Lucene.Net.Analysis.Ru
                 this.exclusionSet = exclusionSet;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer source = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 TokenStream sink = new SetKeywordMarkerFilter(source, exclusionSet);
@@ -103,7 +103,7 @@ namespace Lucene.Net.Analysis.Ru
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new RussianLightStemFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Shingle/ShingleAnalyzerWrapperTest.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Shingle/ShingleAnalyzerWrapperTest.cs
index 9e1fee8..9803346 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Shingle/ShingleAnalyzerWrapperTest.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Shingle/ShingleAnalyzerWrapperTest.cs
@@ -233,7 +233,7 @@ namespace Lucene.Net.Analysis.Shingle
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 CharArraySet stopSet = StopFilter.MakeStopSet(TEST_VERSION_CURRENT, "into");
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Shingle/ShingleFilterTest.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Shingle/ShingleFilterTest.cs
index 1b0f419..14a2231 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Shingle/ShingleFilterTest.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Shingle/ShingleFilterTest.cs
@@ -524,7 +524,7 @@ namespace Lucene.Net.Analysis.Shingle
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(tokenizer, new ShingleFilter(tokenizer));
@@ -550,7 +550,7 @@ namespace Lucene.Net.Analysis.Shingle
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(tokenizer, new ShingleFilter(tokenizer));
@@ -573,7 +573,7 @@ namespace Lucene.Net.Analysis.Shingle
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new ShingleFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Snowball/TestSnowball.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Snowball/TestSnowball.cs
index be3a7e0..c6c2981 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Snowball/TestSnowball.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Snowball/TestSnowball.cs
@@ -186,7 +186,7 @@ namespace Lucene.Net.Analysis.Snowball
                 this.lang = lang;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new SnowballFilter(tokenizer, lang));
@@ -220,7 +220,7 @@ namespace Lucene.Net.Analysis.Snowball
                 this.snowballLanguage = snowballLanguage;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer t = new MockTokenizer(reader);
                 return new TokenStreamComponents(t, new SnowballFilter(t, snowballLanguage));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Snowball/TestSnowballVocab.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Snowball/TestSnowballVocab.cs
index c86297b..a7ddcc5 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Snowball/TestSnowballVocab.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Snowball/TestSnowballVocab.cs
@@ -89,7 +89,7 @@ namespace Lucene.Net.Analysis.Snowball
                 this.snowballLanguage = snowballLanguage;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer t = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(t, new SnowballFilter(t, snowballLanguage));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Sv/TestSwedishLightStemFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Sv/TestSwedishLightStemFilter.cs
index d50df88..5e92996 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Sv/TestSwedishLightStemFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Sv/TestSwedishLightStemFilter.cs
@@ -36,7 +36,7 @@ namespace Lucene.Net.Analysis.Sv
             {
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer source = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(source, new SwedishLightStemFilter(source));
@@ -71,7 +71,7 @@ namespace Lucene.Net.Analysis.Sv
                 this.exclusionSet = exclusionSet;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer source = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 TokenStream sink = new SetKeywordMarkerFilter(source, exclusionSet);
@@ -103,7 +103,7 @@ namespace Lucene.Net.Analysis.Sv
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new SwedishLightStemFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestSolrSynonymParser.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestSolrSynonymParser.cs
index ea87286..9a5155e 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestSolrSynonymParser.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestSolrSynonymParser.cs
@@ -63,7 +63,7 @@ namespace Lucene.Net.Analysis.Synonym
                 this.map = map;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, true);
                 return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, true));
@@ -150,7 +150,7 @@ namespace Lucene.Net.Analysis.Synonym
                 this.map = map;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.KEYWORD, false);
                 return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, false));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestSynonymMapFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestSynonymMapFilter.cs
index 0975a51..8fe021a 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestSynonymMapFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestSynonymMapFilter.cs
@@ -188,7 +188,7 @@ namespace Lucene.Net.Analysis.Synonym
                 this.map = map;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.SIMPLE, true);
                 return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, false));
@@ -228,7 +228,7 @@ namespace Lucene.Net.Analysis.Synonym
                 this.map = map;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.SIMPLE, true);
                 return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, false));
@@ -607,7 +607,7 @@ namespace Lucene.Net.Analysis.Synonym
                 this.ignoreCase = ignoreCase;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.SIMPLE, true);
                 return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, ignoreCase));
@@ -682,7 +682,7 @@ namespace Lucene.Net.Analysis.Synonym
                 this.ignoreCase = ignoreCase;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.SIMPLE, true);
                 TokenStream syns = new SynonymFilter(tokenizer, map, ignoreCase);
@@ -727,7 +727,7 @@ namespace Lucene.Net.Analysis.Synonym
                 this.ignoreCase = ignoreCase;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, ignoreCase));
@@ -777,7 +777,7 @@ namespace Lucene.Net.Analysis.Synonym
                 this.ignoreCase = ignoreCase;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.SIMPLE, true);
                 return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, ignoreCase));
@@ -816,7 +816,7 @@ namespace Lucene.Net.Analysis.Synonym
                 this.map = map;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, true);
                 return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, true));
@@ -898,7 +898,7 @@ namespace Lucene.Net.Analysis.Synonym
                 this.map = map;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, true));
@@ -931,7 +931,7 @@ namespace Lucene.Net.Analysis.Synonym
                 this.map = map;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, true));
@@ -964,7 +964,7 @@ namespace Lucene.Net.Analysis.Synonym
                 this.map = map;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, true));
@@ -995,7 +995,7 @@ namespace Lucene.Net.Analysis.Synonym
                 this.map = map;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, true));
@@ -1028,7 +1028,7 @@ namespace Lucene.Net.Analysis.Synonym
                 this.map = map;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, true));
@@ -1097,7 +1097,7 @@ namespace Lucene.Net.Analysis.Synonym
                 this.map = map;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, true));
@@ -1128,7 +1128,7 @@ namespace Lucene.Net.Analysis.Synonym
                 this.map = map;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, true));
@@ -1160,7 +1160,7 @@ namespace Lucene.Net.Analysis.Synonym
                 this.map = map;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, true));
@@ -1191,7 +1191,7 @@ namespace Lucene.Net.Analysis.Synonym
                 this.map = map;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, true));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestWordnetSynonymParser.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestWordnetSynonymParser.cs
index fca1ce8..fa66d0a 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestWordnetSynonymParser.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Synonym/TestWordnetSynonymParser.cs
@@ -57,7 +57,7 @@ namespace Lucene.Net.Analysis.Synonym
                 this.map = map;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                 return new TokenStreamComponents(tokenizer, new SynonymFilter(tokenizer, map, false));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Tr/TestTurkishLowerCaseFilter.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Tr/TestTurkishLowerCaseFilter.cs
index a49a557..e2cab3f 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Tr/TestTurkishLowerCaseFilter.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Tr/TestTurkishLowerCaseFilter.cs
@@ -86,7 +86,7 @@ namespace Lucene.Net.Analysis.Tr
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new TurkishLowerCaseFilter(tokenizer));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestCharTokenizers.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestCharTokenizers.cs
index 841e388..9b6fcd6 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestCharTokenizers.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestCharTokenizers.cs
@@ -152,7 +152,7 @@ namespace Lucene.Net.Analysis.Util
 
         private sealed class AnalyzerAnonymousInnerClassHelper : Analyzer
         {
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new LetterTokenizerAnonymousInnerClassHelper(TEST_VERSION_CURRENT, reader);
                 return new TokenStreamComponents(tokenizer, tokenizer);
@@ -215,7 +215,7 @@ namespace Lucene.Net.Analysis.Util
 
         private sealed class AnalyzerAnonymousInnerClassHelper2 : Analyzer
         {
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new LetterTokenizerAnonymousInnerClassHelper2(TEST_VERSION_CURRENT, reader);
                 return new TokenStreamComponents(tokenizer, tokenizer);
@@ -261,7 +261,7 @@ namespace Lucene.Net.Analysis.Util
             public AnalyzerAnonymousInnerClassHelper3()
             { }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new NumberAndSurrogatePairTokenizer(TEST_VERSION_CURRENT, reader);
                 return new TokenStreamComponents(tokenizer, tokenizer);
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestElision.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestElision.cs
index 81c5b1d..2bc4ab3 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestElision.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Util/TestElision.cs
@@ -71,7 +71,7 @@ namespace Lucene.Net.Analysis.Util
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new KeywordTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, new ElisionFilter(tokenizer, FrenchAnalyzer.DEFAULT_ARTICLES));
diff --git a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Wikipedia/WikipediaTokenizerTest.cs b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Wikipedia/WikipediaTokenizerTest.cs
index b68d444..745c21c 100644
--- a/src/Lucene.Net.Tests.Analysis.Common/Analysis/Wikipedia/WikipediaTokenizerTest.cs
+++ b/src/Lucene.Net.Tests.Analysis.Common/Analysis/Wikipedia/WikipediaTokenizerTest.cs
@@ -127,7 +127,7 @@ namespace Lucene.Net.Analysis.Wikipedia
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new WikipediaTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, tokenizer);
@@ -153,7 +153,7 @@ namespace Lucene.Net.Analysis.Wikipedia
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new WikipediaTokenizer(reader);
                 return new TokenStreamComponents(tokenizer, tokenizer);
diff --git a/src/Lucene.Net.Tests.Analysis.Morfologik/Morfologik/TestMorfologikAnalyzer.cs b/src/Lucene.Net.Tests.Analysis.Morfologik/Morfologik/TestMorfologikAnalyzer.cs
index 21cab5e..e44b1ca 100644
--- a/src/Lucene.Net.Tests.Analysis.Morfologik/Morfologik/TestMorfologikAnalyzer.cs
+++ b/src/Lucene.Net.Tests.Analysis.Morfologik/Morfologik/TestMorfologikAnalyzer.cs
@@ -1,4 +1,5 @@
 // Lucene version compatibility level 8.2.0
+using J2N.Text;
 using Lucene.Net.Analysis.Miscellaneous;
 using Lucene.Net.Analysis.Morfologik.TokenAttributes;
 using Lucene.Net.Analysis.Standard;
@@ -87,7 +88,7 @@ namespace Lucene.Net.Analysis.Morfologik
                 ICharTermAttribute charTerm = ts.GetAttribute<ICharTermAttribute>();
                 while (ts.IncrementToken())
                 {
-                    Console.WriteLine(charTerm.ToString() + " => " + Collections.ToString(attribute.Tags));
+                    Console.WriteLine(charTerm.ToString() + " => " + string.Format(StringFormatter.InvariantCulture, "{0}", attribute.Tags));
                 }
                 ts.End();
             }
diff --git a/src/Lucene.Net.Tests.Analysis.Morfologik/Morfologik/TestMorfologikFilterFactory.cs b/src/Lucene.Net.Tests.Analysis.Morfologik/Morfologik/TestMorfologikFilterFactory.cs
index de6a886..c639872 100644
--- a/src/Lucene.Net.Tests.Analysis.Morfologik/Morfologik/TestMorfologikFilterFactory.cs
+++ b/src/Lucene.Net.Tests.Analysis.Morfologik/Morfologik/TestMorfologikFilterFactory.cs
@@ -53,7 +53,7 @@ namespace Lucene.Net.Analysis.Morfologik
         public void TestDefaultDictionary()
         {
             StringReader reader = new StringReader("rowery bilety");
-            MorfologikFilterFactory factory = new MorfologikFilterFactory(Collections.EmptyMap<String, String>());
+            MorfologikFilterFactory factory = new MorfologikFilterFactory(new Dictionary<string, string>());
             factory.Inform(new ForbidResourcesLoader());
             TokenStream stream = new MockTokenizer(reader); //whitespaceMockTokenizer(reader);
             stream = factory.Create(stream);
diff --git a/src/Lucene.Net.Tests.Suggest/Suggest/Analyzing/AnalyzingInfixSuggesterTest.cs b/src/Lucene.Net.Tests.Suggest/Suggest/Analyzing/AnalyzingInfixSuggesterTest.cs
index 39cf327..bcd2b64 100644
--- a/src/Lucene.Net.Tests.Suggest/Suggest/Analyzing/AnalyzingInfixSuggesterTest.cs
+++ b/src/Lucene.Net.Tests.Suggest/Suggest/Analyzing/AnalyzingInfixSuggesterTest.cs
@@ -431,7 +431,7 @@ namespace Lucene.Net.Search.Suggest.Analyzing
                 this.stopWords = stopWords;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 MockTokenizer tokens = new MockTokenizer(reader);
                 return new TokenStreamComponents(tokens,
@@ -449,7 +449,7 @@ namespace Lucene.Net.Search.Suggest.Analyzing
                 this.stopWords = stopWords;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 MockTokenizer tokens = new MockTokenizer(reader);
                 return new TokenStreamComponents(tokens,
diff --git a/src/Lucene.Net.Tests.Suggest/Suggest/Analyzing/AnalyzingSuggesterTest.cs b/src/Lucene.Net.Tests.Suggest/Suggest/Analyzing/AnalyzingSuggesterTest.cs
index dcfb48b..744e365 100644
--- a/src/Lucene.Net.Tests.Suggest/Suggest/Analyzing/AnalyzingSuggesterTest.cs
+++ b/src/Lucene.Net.Tests.Suggest/Suggest/Analyzing/AnalyzingSuggesterTest.cs
@@ -313,7 +313,7 @@ namespace Lucene.Net.Search.Suggest.Analyzing
                 }
             }
 
-            protected override void SetReader(TextReader reader)
+            protected internal override void SetReader(TextReader reader)
             {
             }
         }
@@ -326,7 +326,7 @@ namespace Lucene.Net.Search.Suggest.Analyzing
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.SIMPLE, true);
                 return new TestGraphDupsTokenStreamComponents(outerInstance, tokenizer);
@@ -396,7 +396,7 @@ namespace Lucene.Net.Search.Suggest.Analyzing
                 }
             }
 
-            protected override void SetReader(TextReader reader)
+            protected internal override void SetReader(TextReader reader)
             {
             }
         }
@@ -410,7 +410,7 @@ namespace Lucene.Net.Search.Suggest.Analyzing
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.SIMPLE, true);
                 return new TestInputPathRequiredTokenStreamComponents(outerInstance, tokenizer);
@@ -506,7 +506,7 @@ namespace Lucene.Net.Search.Suggest.Analyzing
                 }
             }
 
-            protected override void SetReader(TextReader reader)
+            protected internal override void SetReader(TextReader reader)
             {
             }
         }
@@ -518,7 +518,7 @@ namespace Lucene.Net.Search.Suggest.Analyzing
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.SIMPLE, true);
                 return new UsualTokenStreamComponents(outerInstance, tokenizer);
@@ -737,7 +737,7 @@ namespace Lucene.Net.Search.Suggest.Analyzing
                 this.numStopChars = numStopChars;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 MockTokenizer tokenizer = new MockTokenizer(factory, reader, MockTokenizer.WHITESPACE, false, MockTokenizer.DEFAULT_MAX_TOKEN_LENGTH);
                 tokenizer.EnableChecks = (true);
@@ -1195,7 +1195,7 @@ namespace Lucene.Net.Search.Suggest.Analyzing
                 }
             }
 
-            protected override void SetReader(TextReader reader)
+            protected internal override void SetReader(TextReader reader)
             {
             }
         }
@@ -1207,7 +1207,7 @@ namespace Lucene.Net.Search.Suggest.Analyzing
             {
                 this.outerInstance = outerInstance;
             }
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.SIMPLE, true);
                 return new TestDupSurfaceFormsMissingResultsTokenStreamComponents(outerInstance, tokenizer);
@@ -1283,14 +1283,14 @@ namespace Lucene.Net.Search.Suggest.Analyzing
                 }
             }
 
-            protected override void SetReader(TextReader reader)
+            protected internal override void SetReader(TextReader reader)
             {
             }
         }
 
         internal class TestDupSurfaceFormsMissingResults2Analyzer : Analyzer
         {
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.SIMPLE, true);
                 return new TestDupSurfaceFormsMissingResults2TokenStreamComponents(tokenizer);
@@ -1370,14 +1370,14 @@ namespace Lucene.Net.Search.Suggest.Analyzing
                 }
             }
 
-            protected override void SetReader(TextReader reader)
+            protected internal override void SetReader(TextReader reader)
             {
             }
         }
 
         internal class Test0ByteKeysAnalyzer : Analyzer
         {
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.SIMPLE, true);
                 return new Test0ByteKeysTokenStreamComponents(tokenizer);
@@ -1443,13 +1443,13 @@ namespace Lucene.Net.Search.Suggest.Analyzing
                 }
             }
 
-            protected override void SetReader(TextReader reader)
+            protected internal override void SetReader(TextReader reader)
             {
             }
         }
         internal class TestTooManyExpressionsAnalyzer : Analyzer
         {
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.SIMPLE, true);
                 return new TestTooManyExpressionsTokenStreamComponents(tokenizer);
diff --git a/src/Lucene.Net.Tests.Suggest/Suggest/Analyzing/FuzzySuggesterTest.cs b/src/Lucene.Net.Tests.Suggest/Suggest/Analyzing/FuzzySuggesterTest.cs
index f27dcf5..d1db892 100644
--- a/src/Lucene.Net.Tests.Suggest/Suggest/Analyzing/FuzzySuggesterTest.cs
+++ b/src/Lucene.Net.Tests.Suggest/Suggest/Analyzing/FuzzySuggesterTest.cs
@@ -266,7 +266,7 @@ namespace Lucene.Net.Search.Suggest.Analyzing
                 }
             }
 
-            protected override void SetReader(TextReader reader)
+            protected internal override void SetReader(TextReader reader)
             {
             }
         }
@@ -279,7 +279,7 @@ namespace Lucene.Net.Search.Suggest.Analyzing
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.SIMPLE, true);
                 return new TestGraphDupsTokenStreamComponents(outerInstance, tokenizer);
@@ -357,7 +357,7 @@ namespace Lucene.Net.Search.Suggest.Analyzing
                 }
             }
 
-            protected override void SetReader(TextReader reader)
+            protected internal override void SetReader(TextReader reader)
             {
             }
         }
@@ -371,7 +371,7 @@ namespace Lucene.Net.Search.Suggest.Analyzing
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.SIMPLE, true);
                 return new TestInputPathRequiredTokenStreamComponents(outerInstance, tokenizer);
@@ -462,7 +462,7 @@ namespace Lucene.Net.Search.Suggest.Analyzing
                 }
             }
 
-            protected override void SetReader(TextReader reader)
+            protected internal override void SetReader(TextReader reader)
             {
             }
         }
@@ -474,7 +474,7 @@ namespace Lucene.Net.Search.Suggest.Analyzing
                 this.outerInstance = outerInstance;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.SIMPLE, true);
                 return new UsualTokenStreamComponents(outerInstance, tokenizer);
@@ -684,7 +684,7 @@ namespace Lucene.Net.Search.Suggest.Analyzing
                 this.numStopChars = numStopChars;
             }
 
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 MockTokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false, MockTokenizer.DEFAULT_MAX_TOKEN_LENGTH);
                 tokenizer.EnableChecks = (true);
diff --git a/src/Lucene.Net.Tests.Suggest/Suggest/Analyzing/TestFreeTextSuggester.cs b/src/Lucene.Net.Tests.Suggest/Suggest/Analyzing/TestFreeTextSuggester.cs
index ee8db65..a956ece 100644
--- a/src/Lucene.Net.Tests.Suggest/Suggest/Analyzing/TestFreeTextSuggester.cs
+++ b/src/Lucene.Net.Tests.Suggest/Suggest/Analyzing/TestFreeTextSuggester.cs
@@ -286,7 +286,7 @@ namespace Lucene.Net.Search.Suggest.Analyzing
 
         internal class TestEndingHoleAnalyzer : Analyzer
         {
-            protected override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
+            protected internal override TokenStreamComponents CreateComponents(string fieldName, TextReader reader)
             {
                 Tokenizer tokenizer = new MockTokenizer(reader);
                 CharArraySet stopSet = StopFilter.MakeStopSet(TEST_VERSION_CURRENT, "of");
diff --git a/src/Lucene.Net/Properties/AssemblyInfo.cs b/src/Lucene.Net/Properties/AssemblyInfo.cs
index cc24a9d..db154e2 100644
--- a/src/Lucene.Net/Properties/AssemblyInfo.cs
+++ b/src/Lucene.Net/Properties/AssemblyInfo.cs
@@ -67,9 +67,16 @@ using System.Runtime.CompilerServices;
 [assembly: InternalsVisibleTo("Lucene.Net.TestFramework.MSTest, PublicKey=" + AssemblyKeys.PublicKey)]
 [assembly: InternalsVisibleTo("Lucene.Net.TestFramework.NUnit, PublicKey=" + AssemblyKeys.PublicKey)]
 [assembly: InternalsVisibleTo("Lucene.Net.TestFramework.xUnit, PublicKey=" + AssemblyKeys.PublicKey)]
+[assembly: InternalsVisibleTo("Lucene.Net.Tests.Analysis.Common, PublicKey=" + AssemblyKeys.PublicKey)]
+[assembly: InternalsVisibleTo("Lucene.Net.Tests.Expressions, PublicKey=" + AssemblyKeys.PublicKey)]
+[assembly: InternalsVisibleTo("Lucene.Net.Tests.Facet, PublicKey=" + AssemblyKeys.PublicKey)]
+[assembly: InternalsVisibleTo("Lucene.Net.Tests.Grouping, PublicKey=" + AssemblyKeys.PublicKey)]
 [assembly: InternalsVisibleTo("Lucene.Net.Tests.ICU, PublicKey=" + AssemblyKeys.PublicKey)] // For Analysis.Util.TestSegmentingTokenizerBase
 [assembly: InternalsVisibleTo("Lucene.Net.Tests.Misc, PublicKey=" + AssemblyKeys.PublicKey)]
 [assembly: InternalsVisibleTo("Lucene.Net.Tests.QueryParser, PublicKey=" + AssemblyKeys.PublicKey)]
 [assembly: InternalsVisibleTo("Lucene.Net.Tests.Cli, PublicKey=" + AssemblyKeys.PublicKey)] // For lucene-cli
+[assembly: InternalsVisibleTo("Lucene.Net.Tests.Replicator, PublicKey=" + AssemblyKeys.PublicKey)]
+[assembly: InternalsVisibleTo("Lucene.Net.Tests.Spatial, PublicKey=" + AssemblyKeys.PublicKey)]
+[assembly: InternalsVisibleTo("Lucene.Net.Tests.Suggest, PublicKey=" + AssemblyKeys.PublicKey)]
 
 
diff --git a/src/Lucene.Net/Support/Arrays.cs b/src/Lucene.Net/Support/Arrays.cs
index 7208bc5..8959472 100644
--- a/src/Lucene.Net/Support/Arrays.cs
+++ b/src/Lucene.Net/Support/Arrays.cs
@@ -6,23 +6,23 @@ using System.Text;
 namespace Lucene.Net.Support
 {
     /*
-	 * Licensed to the Apache Software Foundation (ASF) under one or more
-	 * contributor license agreements.  See the NOTICE file distributed with
-	 * this work for additional information regarding copyright ownership.
-	 * The ASF licenses this file to You under the Apache License, Version 2.0
-	 * (the "License"); you may not use this file except in compliance with
-	 * the License.  You may obtain a copy of the License at
-	 *
-	 *     http://www.apache.org/licenses/LICENSE-2.0
-	 *
-	 * Unless required by applicable law or agreed to in writing, software
-	 * distributed under the License is distributed on an "AS IS" BASIS,
-	 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-	 * See the License for the specific language governing permissions and
-	 * limitations under the License.
-	 */
+     * Licensed to the Apache Software Foundation (ASF) under one or more
+     * contributor license agreements.  See the NOTICE file distributed with
+     * this work for additional information regarding copyright ownership.
+     * The ASF licenses this file to You under the Apache License, Version 2.0
+     * (the "License"); you may not use this file except in compliance with
+     * the License.  You may obtain a copy of the License at
+     *
+     *     http://www.apache.org/licenses/LICENSE-2.0
+     *
+     * Unless required by applicable law or agreed to in writing, software
+     * distributed under the License is distributed on an "AS IS" BASIS,
+     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     * See the License for the specific language governing permissions and
+     * limitations under the License.
+     */
 
-    public static class Arrays
+    internal static class Arrays
     {
         /// <summary>
         /// Compares the entire members of one array whith the other one.
diff --git a/src/Lucene.Net/Support/Collections.cs b/src/Lucene.Net/Support/Collections.cs
index 215504f..6370d32 100644
--- a/src/Lucene.Net/Support/Collections.cs
+++ b/src/Lucene.Net/Support/Collections.cs
@@ -28,7 +28,7 @@ namespace Lucene.Net.Support
      * limitations under the License.
      */
 
-    public static class Collections
+    internal static class Collections
     {
         public static IList<T> EmptyList<T>()
         {


[lucenenet] 24/35: BREAKING: Lucene.Net.Support.CRC32, Lucene.Net.Support.IChecksum, Lucene.Net.Store.BufferedChecksum: Marked internal now to prevent a future breaking change, since the plan is to use HashAlgorithm as a replacement for IChecksum (see LUCENENET-637)

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit 6e8897762faf2ab8b9ef4bc485f47db314f12c4f
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Sat Feb 8 14:40:12 2020 +0700

    BREAKING: Lucene.Net.Support.CRC32, Lucene.Net.Support.IChecksum, Lucene.Net.Store.BufferedChecksum: Marked internal now to prevent a future breaking change, since the plan is to use HashAlgorithm as a replacement for IChecksum (see LUCENENET-637)
---
 src/Lucene.Net/Store/BufferedChecksum.cs | 7 ++++++-
 src/Lucene.Net/Support/CRC32.cs          | 2 +-
 src/Lucene.Net/Support/IChecksum.cs      | 2 +-
 3 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/Lucene.Net/Store/BufferedChecksum.cs b/src/Lucene.Net/Store/BufferedChecksum.cs
index b5117e3..0c808ca 100644
--- a/src/Lucene.Net/Store/BufferedChecksum.cs
+++ b/src/Lucene.Net/Store/BufferedChecksum.cs
@@ -24,7 +24,12 @@ namespace Lucene.Net.Store
     /// Wraps another <see cref="IChecksum"/> with an internal buffer
     /// to speed up checksum calculations.
     /// </summary>
-    public class BufferedChecksum : IChecksum
+    // LUCENENET TODO: This class was public in Lucene. Marking internal, since
+    // a better approach would be to map this to the HashAlgorithm abstract class in .NET
+    // instead of using IChecksum from Java. See LUCENENET-637.
+    // After this conversion is done, this can be made public again. However, it is
+    // now internal so the conversion doesn't introduce a breaking public API change.
+    internal class BufferedChecksum : IChecksum
     {
         private readonly IChecksum @in;
         private readonly byte[] buffer;
diff --git a/src/Lucene.Net/Support/CRC32.cs b/src/Lucene.Net/Support/CRC32.cs
index f491e89..0f5f34b 100644
--- a/src/Lucene.Net/Support/CRC32.cs
+++ b/src/Lucene.Net/Support/CRC32.cs
@@ -23,7 +23,7 @@ using System;
 
 namespace Lucene.Net.Support
 {
-    public class CRC32 : IChecksum
+    internal class CRC32 : IChecksum
     {
         private static readonly UInt32[] crcTable = InitializeCRCTable();
 
diff --git a/src/Lucene.Net/Support/IChecksum.cs b/src/Lucene.Net/Support/IChecksum.cs
index 7e502d6..ac7ce00 100644
--- a/src/Lucene.Net/Support/IChecksum.cs
+++ b/src/Lucene.Net/Support/IChecksum.cs
@@ -20,7 +20,7 @@ namespace Lucene.Net.Support
     /// <summary>
     /// Contains conversion support elements such as classes, interfaces and static methods.
     /// </summary>
-    public interface IChecksum
+    internal interface IChecksum
     {
         void Reset();
 


[lucenenet] 06/35: BREAKING: Lucene.Net.Support.Threading: Deleted unused DisposableThreadLocalProfiler

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit 30efa4454f62fc731141fe6da2e907bdac9c0dc5
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Thu Feb 6 20:32:01 2020 +0700

    BREAKING: Lucene.Net.Support.Threading: Deleted unused DisposableThreadLocalProfiler
---
 .../Support/Threading/TestCloseableThreadLocal.cs  | 116 ---------------------
 .../Threading/CloseableThreadLocalProfiler.cs      |  45 --------
 2 files changed, 161 deletions(-)

diff --git a/src/Lucene.Net.Tests/Support/Threading/TestCloseableThreadLocal.cs b/src/Lucene.Net.Tests/Support/Threading/TestCloseableThreadLocal.cs
deleted file mode 100644
index 9f9e573..0000000
--- a/src/Lucene.Net.Tests/Support/Threading/TestCloseableThreadLocal.cs
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-using Lucene.Net.Analysis;
-using Lucene.Net.Attributes;
-using Lucene.Net.Codecs;
-using Lucene.Net.Documents;
-using Lucene.Net.Index;
-using Lucene.Net.Search;
-using Lucene.Net.Store;
-using Lucene.Net.Util;
-using NUnit.Framework;
-using System;
-using Version = Lucene.Net.Util.LuceneVersion;
-
-#pragma warning disable 612, 618
-namespace Lucene.Net.Support.Threading
-{
-    [SuppressCodecs("Lucene3x")] // Suppress non-writable codecs
-    [TestFixture]
-    public class TestCloseableThreadLocal : LuceneTestCase
-    {
-        [Test, LuceneNetSpecific]
-        public void TestMemLeakage()
-        {
-            DisposableThreadLocalProfiler.EnableIDisposableThreadLocalProfiler = true;
-
-            int LoopCount = 100;
-            Analyzer[] analyzers = new Analyzer[LoopCount];
-            RAMDirectory[] dirs = new RAMDirectory[LoopCount];
-            IndexWriter[] indexWriters = new IndexWriter[LoopCount];
-
-            System.Threading.Tasks.Parallel.For(0, LoopCount, (i) =>
-                                                                  {
-                                                                      analyzers[i] = new Lucene.Net.Analysis.Standard.StandardAnalyzer(Version.LUCENE_CURRENT);
-                                                                      dirs[i] = new RAMDirectory();
-                                                                      var conf = new IndexWriterConfig(Version.LUCENE_CURRENT, analyzers[i]);
-                                                                      indexWriters[i] = new IndexWriter(dirs[i], conf /*analyzers[i], true, IndexWriter.MaxFieldLength.UNLIMITED*/);
-                                                                  });
-
-            System.Threading.Tasks.Parallel.For(0, LoopCount, (i) =>
-                                                                  {
-                                                                      Document document = new Document();
-                                                                      document.Add(new Field("field", "some test", Field.Store.NO, Field.Index.ANALYZED));
-                                                                      indexWriters[i].AddDocument(document);
-                                                                  });
-
-            System.Threading.Tasks.Parallel.For(0, LoopCount, (i) =>
-                                                                  {
-                                                                      analyzers[i].Dispose();
-                                                                      indexWriters[i].Dispose();
-                                                                  });
-
-            System.Threading.Tasks.Parallel.For(0, LoopCount, (i) =>
-                                                                  {
-                                                                      using (IndexReader reader = DirectoryReader.Open(dirs[i]))
-                                                                      {
-                                                                          IndexSearcher searcher = new IndexSearcher(reader);
-                                                                          TopDocs d = searcher.Search(new TermQuery(new Term("field", "test")), 10);
-                                                                      }
-                                                                  });
-
-            System.Threading.Tasks.Parallel.For(0, LoopCount, (i) => dirs[i].Dispose());
-
-            GC.Collect(GC.MaxGeneration);
-            GC.WaitForPendingFinalizers();
-
-            int aliveObjects = 0;
-            foreach (WeakReference w in DisposableThreadLocalProfiler.Instances)
-            {
-                object o = w.Target;
-                if (o != null) aliveObjects++;
-            }
-
-            DisposableThreadLocalProfiler.EnableIDisposableThreadLocalProfiler = false;
-
-            Assert.AreEqual(0, aliveObjects);
-        }
-    }
-}
-
-#if NET35
-
-namespace System.Threading.Tasks
-{
-    public static class Parallel
-    {
-        public static void For(int start, int end, Action<int> loopAction)
-        {
-            for(int i = start; i < end; i++)
-            {
-                loopAction(i);
-            }
-        }
-    }
-}
-#pragma warning restore 612, 618
-#endif
\ No newline at end of file
diff --git a/src/Lucene.Net/Support/Threading/CloseableThreadLocalProfiler.cs b/src/Lucene.Net/Support/Threading/CloseableThreadLocalProfiler.cs
deleted file mode 100644
index 8423793..0000000
--- a/src/Lucene.Net/Support/Threading/CloseableThreadLocalProfiler.cs
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-
-using System;
-
-namespace Lucene.Net.Support.Threading
-{
-    /// <summary>
-    /// For Debuging purposes.
-    /// </summary>
-    public class DisposableThreadLocalProfiler
-    {
-        private static bool _enableIDisposableThreadLocalProfiler = false;
-        public static System.Collections.Generic.List<WeakReference> Instances = new System.Collections.Generic.List<WeakReference>();
-
-        public static bool EnableIDisposableThreadLocalProfiler
-        {
-            get { return _enableIDisposableThreadLocalProfiler; }
-            set
-            {
-                _enableIDisposableThreadLocalProfiler = value;
-                lock (Instances)
-                    Instances.Clear();
-            }
-        }
-    }
-}
\ No newline at end of file


[lucenenet] 01/35: Upgraded J2N to 2.0.0-beta-0002 and ICU4N to 60.1.0-alpha.203

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit 9843db64b0eedf86f9afb2488ad19fecc28629fc
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Sat Feb 8 00:11:44 2020 +0700

    Upgraded J2N to 2.0.0-beta-0002 and ICU4N to 60.1.0-alpha.203
---
 build/Dependencies.props | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/build/Dependencies.props b/build/Dependencies.props
index 05f2eac..c38309b 100644
--- a/build/Dependencies.props
+++ b/build/Dependencies.props
@@ -32,13 +32,13 @@
         https://github.com/apache/lucene-solr/tree/31d7ec7bbfdcd2c4cc61d9d35e962165410b65fe/lucene/analysis/icu/src/data/utr30
         Just make sure they are adjusted to the right version of ICU/Lucene.
     <ICU4NPackageVersion>[60.1,60.2)</ICU4NPackageVersion> -->
-    <ICU4NPackageVersion>60.1.0-alpha.197</ICU4NPackageVersion>
+    <ICU4NPackageVersion>60.1.0-alpha.203</ICU4NPackageVersion>
     <ICU4NCollationPackageVersion>$(ICU4NPackageVersion)</ICU4NCollationPackageVersion>
     <ICU4NCurrencyDataPackageVersion>$(ICU4NPackageVersion)</ICU4NCurrencyDataPackageVersion>
     <ICU4NLanguageDataPackageVersion>$(ICU4NPackageVersion)</ICU4NLanguageDataPackageVersion>
     <ICU4NRegionDataPackageVersion>$(ICU4NPackageVersion)</ICU4NRegionDataPackageVersion>
     <ICU4NTransliteratorPackageVersion>$(ICU4NPackageVersion)</ICU4NTransliteratorPackageVersion>
-    <J2NPackageVersion>2.0.0-beta-0001</J2NPackageVersion>
+    <J2NPackageVersion>2.0.0-beta-0002</J2NPackageVersion>
     <MicrosoftAspNetCoreHttpAbstractionsPackageVersion>1.0.3</MicrosoftAspNetCoreHttpAbstractionsPackageVersion>
     <MicrosoftAspNetCoreTestHostPackageVersion>1.0.3</MicrosoftAspNetCoreTestHostPackageVersion>
     <MicrosoftCodeAnalysisAnalyzersPackageVersion>2.9.8</MicrosoftCodeAnalysisAnalyzersPackageVersion>


[lucenenet] 15/35: BREAKING: Lucene.Net.Support: Marked Number class internal

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit 9f66ace040e6ed60452820bee113af5a0e6470d2
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Thu Feb 6 23:49:53 2020 +0700

    BREAKING: Lucene.Net.Support: Marked Number class internal
---
 src/Lucene.Net/Support/Number.cs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/Lucene.Net/Support/Number.cs b/src/Lucene.Net/Support/Number.cs
index aec9c8a..8b3beb0 100644
--- a/src/Lucene.Net/Support/Number.cs
+++ b/src/Lucene.Net/Support/Number.cs
@@ -27,7 +27,7 @@ namespace Lucene.Net.Support
     /// <summary>
     /// A simple class for number conversions.
     /// </summary>
-    public static class Number
+    internal static class Number
     {
         /// <summary>
         /// Min radix value.


[lucenenet] 23/35: BREAKING: Lucene.Net.Support: Marked RectangularArrays internal

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git

commit f3962315c192caaa797ac68868380368fe928b14
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Sat Feb 8 12:45:22 2020 +0700

    BREAKING: Lucene.Net.Support: Marked RectangularArrays internal
---
 src/Lucene.Net/Support/RectangularArrays.cs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/Lucene.Net/Support/RectangularArrays.cs b/src/Lucene.Net/Support/RectangularArrays.cs
index a3a33da..d881d8a 100644
--- a/src/Lucene.Net/Support/RectangularArrays.cs
+++ b/src/Lucene.Net/Support/RectangularArrays.cs
@@ -8,7 +8,7 @@
 
 namespace Lucene.Net.Support
 {
-    public static class RectangularArrays
+    internal static class RectangularArrays
     {
         public static T[][] ReturnRectangularArray<T>(int size1, int size2)
         {