You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by no...@apache.org on 2020/09/13 05:01:03 UTC
[lucene-solr] branch reference_impl_dev updated: Move short class
names to a properties file
This is an automated email from the ASF dual-hosted git repository.
noble pushed a commit to branch reference_impl_dev
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
The following commit(s) were added to refs/heads/reference_impl_dev by this push:
new e96af1d Move short class names to a properties file
e96af1d is described below
commit e96af1d1fea21c7c5966c07b3e91b1e590e90edd
Author: noblepaul <no...@gmail.com>
AuthorDate: Sun Sep 13 14:53:42 2020 +1000
Move short class names to a properties file
---
.../org/apache/solr/core/SolrResourceLoader.java | 158 +++------------------
solr/core/src/resources/ShortClassNames.properties | 135 ++++++++++++++++++
2 files changed, 152 insertions(+), 141 deletions(-)
diff --git a/solr/core/src/java/org/apache/solr/core/SolrResourceLoader.java b/solr/core/src/java/org/apache/solr/core/SolrResourceLoader.java
index 9d35b49..32a18a1 100644
--- a/solr/core/src/java/org/apache/solr/core/SolrResourceLoader.java
+++ b/solr/core/src/java/org/apache/solr/core/SolrResourceLoader.java
@@ -40,12 +40,14 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Properties;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import com.google.common.annotations.VisibleForTesting;
+import com.google.common.collect.ImmutableMap;
import org.apache.lucene.analysis.WordlistLoader;
import org.apache.lucene.analysis.util.CharFilterFactory;
import org.apache.lucene.analysis.util.ResourceLoader;
@@ -58,6 +60,7 @@ import org.apache.lucene.codecs.PostingsFormat;
import org.apache.lucene.util.IOUtils;
import org.apache.solr.common.ParWork;
import org.apache.solr.common.SolrException;
+import org.apache.solr.common.util.Utils;
import org.apache.solr.common.util.XMLErrorLogger;
import org.apache.solr.handler.component.SearchComponent;
import org.apache.solr.handler.component.ShardHandlerFactory;
@@ -446,147 +449,18 @@ public class SolrResourceLoader implements ResourceLoader, Closeable {
return findClass(cname, expectedType, empty);
}
- private static final Map<String,String> TRANS_MAP;
+ public static final ImmutableMap<String,String> SHORT_NAMES;
static {
- Map<String,String> map = new HashMap<>(128);
- map.put("solr.WordDelimiterGraphFilterFactory","org.apache.lucene.analysis.miscellaneous.WordDelimiterGraphFilterFactory");
- map.put("solr.LowerCaseFilterFactory", "org.apache.lucene.analysis.core.LowerCaseFilterFactory");
- map.put("solr.FlattenGraphFilterFactory", "org.apache.lucene.analysis.core.FlattenGraphFilterFactory");
- map.put("solr.StopFilterFactory", "org.apache.lucene.analysis.core.StopFilterFactory");
- map.put("solr.SynonymGraphFilterFactory", "org.apache.lucene.analysis.synonym.SynonymGraphFilterFactory");
- map.put("solr.KeywordMarkerFilterFactory", "org.apache.lucene.analysis.miscellaneous.KeywordMarkerFilterFactory");
- map.put("solr.PorterStemFilterFactory", "org.apache.lucene.analysis.en.PorterStemFilterFactory");
- map.put("solr.DelimitedBoostTokenFilterFactory", "org.apache.lucene.analysis.boost.DelimitedBoostTokenFilterFactory");
- map.put("solr.LetterTokenizerFactory", "org.apache.lucene.analysis.core.LetterTokenizerFactory");
- map.put("solr.StandardTokenizerFactory", "org.apache.lucene.analysis.standard.StandardTokenizerFactory");
- map.put("solr.HTMLStripCharFilterFactory", "org.apache.lucene.analysis.charfilter.HTMLStripCharFilterFactory");
- map.put("solr.MappingCharFilterFactory", "org.apache.lucene.analysis.charfilter.MappingCharFilterFactory");
- map.put("solr.PatternReplaceFilterFactory", "org.apache.lucene.analysis.pattern.PatternReplaceFilterFactory");
- map.put("solr.LengthFilterFactory", "org.apache.lucene.analysis.miscellaneous.LengthFilterFactory");
- map.put("solr.RemoveDuplicatesTokenFilterFactory", "org.apache.lucene.analysis.miscellaneous.RemoveDuplicatesTokenFilterFactory");
- map.put("solr.WhitespaceTokenizerFactory", "org.apache.lucene.analysis.core.WhitespaceTokenizerFactory");
- map.put("solr.ShingleFilterFactory", "org.apache.lucene.analysis.shingle.ShingleFilterFactory");
- map.put("solr.WordDelimiterFilterFactory", "org.apache.lucene.analysis.miscellaneous.WordDelimiterFilterFactory");
- map.put("solr.PatternTokenizerFactory", "org.apache.lucene.analysis.pattern.PatternTokenizerFactory");
- map.put("solr.KeywordTokenizerFactory", "org.apache.lucene.analysis.core.KeywordTokenizerFactory");
- map.put("solr.PathHierarchyTokenizerFactory", "org.apache.lucene.analysis.path.PathHierarchyTokenizerFactory");
- map.put("solr.DelimitedPayloadTokenFilterFactory", "org.apache.lucene.analysis.payloads.DelimitedPayloadTokenFilterFactory");
- map.put("solr.EnglishMinimalStemFilterFactory", "org.apache.lucene.analysis.en.EnglishMinimalStemFilterFactory");
- map.put("solr.TrimFilterFactory", "org.apache.lucene.analysis.miscellaneous.TrimFilterFactory");
- map.put("solr.LimitTokenCountFilterFactory", "org.apache.lucene.analysis.miscellaneous.LimitTokenCountFilterFactory");
- map.put("solr.ICUTokenizerFactory", "org.apache.lucene.analysis.icu.segmentation.ICUTokenizerFactory");
- map.put("solr.ICUFoldingFilterFactory", "org.apache.lucene.analysis.icu.ICUFoldingFilterFactory");
- map.put("solr.ProtectedTermFilterFactory", "org.apache.lucene.analysis.miscellaneous.ProtectedTermFilterFactory");
- map.put("solr.ReversedWildcardFilterFactory", "org.apache.solr.analysis.ReversedWildcardFilterFactory");
- map.put("solr.ASCIIFoldingFilterFactory", "org.apache.lucene.analysis.miscellaneous.ASCIIFoldingFilterFactory");
- map.put("solr.EnglishPossessiveFilterFactory", "org.apache.lucene.analysis.en.EnglishPossessiveFilterFactory");
- map.put("solr.NGramTokenizerFactory", "org.apache.lucene.analysis.ngram.NGramTokenizerFactory");
- map.put("solr.ManagedStopFilterFactory", "org.apache.solr.rest.schema.analysis.ManagedStopFilterFactory");
- map.put("solr.ManagedSynonymFilterFactory", "org.apache.solr.rest.schema.analysis.ManagedSynonymFilterFactory");
- map.put("solr.ManagedSynonymGraphFilterFactory", "org.apache.solr.rest.schema.analysis.ManagedSynonymGraphFilterFactory");
- map.put("solr.OpenNLPTokenizerFactory", "org.apache.lucene.analysis.opennlp.OpenNLPTokenizerFactory");
- map.put("solr.ICUNormalizer2FilterFactory", "org.apache.lucene.analysis.icu.ICUNormalizer2FilterFactory");
- map.put("solr.DoubleMetaphoneFilterFactory", "org.apache.lucene.analysis.phonetic.DoubleMetaphoneFilterFactory");
- map.put("solr.ClassicTokenizerFactory", "org.apache.lucene.analysis.standard.ClassicTokenizerFactory");
- map.put("solr.GreekLowerCaseFilterFactory", "org.apache.lucene.analysis.el.GreekLowerCaseFilterFactory");
- map.put("solr.ConcatenateGraphFilterFactory", "org.apache.lucene.analysis.miscellaneous.ConcatenateGraphFilterFactory");
- map.put("solr.JapaneseTokenizerFactory", "org.apache.lucene.analysis.ja.JapaneseTokenizerFactory");
- map.put("solr.CJKWidthFilterFactory", "org.apache.lucene.analysis.cjk.CJKWidthFilterFactory");
- map.put("solr.JapaneseReadingFormFilterFactory", "org.apache.lucene.analysis.ja.JapaneseReadingFormFilterFactory");
- map.put("solr.TurkishLowerCaseFilterFactory", "org.apache.lucene.analysis.tr.TurkishLowerCaseFilterFactory");
- map.put("solr.PersianNormalizationFilterFactory", "org.apache.lucene.analysis.fa.PersianNormalizationFilterFactory");
- map.put("solr.ArabicNormalizationFilterFactory", "org.apache.lucene.analysis.ar.ArabicNormalizationFilterFactory");
- map.put("solr.IndicNormalizationFilterFactory", "org.apache.lucene.analysis.in.IndicNormalizationFilterFactory");
- map.put("solr.HindiNormalizationFilterFactory", "org.apache.lucene.analysis.hi.HindiNormalizationFilterFactory");
- map.put("solr.GermanNormalizationFilterFactory", "org.apache.lucene.analysis.de.GermanNormalizationFilterFactory");
- map.put("solr.ElisionFilterFactory", "org.apache.lucene.analysis.util.ElisionFilterFactory");
- map.put("solr.FrenchLightStemFilterFactory", "org.apache.lucene.analysis.fr.FrenchLightStemFilterFactory");
- map.put("solr.ICUTransformFilterFactory", "org.apache.lucene.analysis.icu.ICUTransformFilterFactory");
- map.put("solr.PatternReplaceCharFilterFactory", "org.apache.lucene.analysis.pattern.PatternReplaceCharFilterFactory");
- map.put("solr.ClassicFilterFactory", "org.apache.lucene.analysis.standard.ClassicFilterFactory");
- map.put("solr.KStemFilterFactory", "org.apache.lucene.analysis.en.KStemFilterFactory");
- map.put("solr.CaffeineCache", "org.apache.solr.search.CaffeineCache");
- map.put("ClassicIndexSchemaFactory", "org.apache.solr.schema.ClassicIndexSchemaFactory");
- map.put("solr.FloatPointField", "org.apache.solr.schema.FloatPointField");
- map.put("solr.IntPointField", "org.apache.solr.schema.IntPointField");
- map.put("solr.LongPointField", "org.apache.solr.schema.LongPointField");
- map.put("solr.DoublePointField", "org.apache.solr.schema.DoublePointField");
- map.put("solr.DatePointField", "org.apache.solr.schema.DatePointField");
- map.put("solr.TextField", "org.apache.solr.schema.TextField");
- map.put("solr.MockTokenizerFactory", "org.apache.solr.analysis.MockTokenizerFactory");
- map.put("solr.BoolField", "org.apache.solr.schema.BoolField");
- map.put("solr.StrField", "org.apache.solr.schema.StrField");
- map.put("solr.DateRangeField", "org.apache.solr.schema.DateRangeField");
- map.put("solr.SpatialRecursivePrefixTreeFieldType", "org.apache.solr.schema.SpatialRecursivePrefixTreeFieldType");
- map.put("solr.UUIDField", "org.apache.solr.schema.UUIDField");
- map.put("solr.PointType", "org.apache.solr.schema.PointType");
- map.put("solr.GeoHashField", "org.apache.solr.schema.GeoHashField");
- map.put("solr.LatLonType", "org.apache.solr.schema.LatLonType");
- map.put("solr.CurrencyField", "org.apache.solr.schema.CurrencyField");
- map.put("solr.CurrencyFieldType", "org.apache.solr.schema.CurrencyFieldType");
- map.put("solr.EnumFieldType", "org.apache.solr.schema.EnumFieldType");
- map.put("solr.BinaryField", "org.apache.solr.schema.BinaryField");
- map.put("solr.CollationField", "org.apache.solr.schema.CollationField");
- map.put("solr.ExternalFileField", "org.apache.solr.schema.ExternalFileField");
- map.put("solr.ICUCollationField", "org.apache.solr.schema.ICUCollationField");
- map.put("solr.LatLonPointSpatialField", "org.apache.solr.schema.LatLonPointSpatialField");
- map.put("solr.RandomSortField", "org.apache.solr.schema.RandomSortField");
- map.put("solr.SortableTextField", "org.apache.solr.schema.SortableTextField");
- map.put("solr.NestPathField", "org.apache.solr.schema.NestPathField");
- map.put("solr.FileExchangeRateProvider", "org.apache.solr.schema.FileExchangeRateProvider");
- map.put("solr.MockExchangeRateProvider", "org.apache.solr.schema.MockExchangeRateProvider");
- map.put("solr.OpenExchangeRatesOrgProvider", "org.apache.solr.schema.OpenExchangeRatesOrgProvider");
- map.put("solr.CustomSimilarityFactory", "org.apache.solr.search.similarities.CustomSimilarityFactory");
- map.put("solr.XMLResponseWriter", "org.apache.solr.response.XMLResponseWriter");
- map.put("FooQParserPlugin", "org.apache.solr.search.FooQParserPlugin");
- map.put("solr.RunUpdateProcessorFactory", "org.apache.solr.update.processor.RunUpdateProcessorFactory");
- map.put("solr.RegexReplaceProcessorFactory", "org.apache.solr.update.processor.RegexReplaceProcessorFactory");
- map.put("solr.DistributedUpdateProcessorFactory", "org.apache.solr.update.processor.DistributedUpdateProcessorFactory");
- map.put("solr.DirectUpdateHandler2", "org.apache.solr.update.DirectUpdateHandler2");
- map.put("solr.SearchHandler", "org.apache.solr.handler.component.SearchHandler");
- map.put("solr.SchemaHandler", "org.apache.solr.handler.SchemaHandler");
- map.put("solr.UpdateRequestHandlerApi", "org.apache.solr.handler.UpdateRequestHandlerApi");
- map.put("solr.PropertiesRequestHandler", "org.apache.solr.handler.admin.PropertiesRequestHandler");
- map.put("solr.LukeRequestHandler", "org.apache.solr.handler.admin.LukeRequestHandler");
- map.put("solr.MoreLikeThisHandler", "org.apache.solr.handler.MoreLikeThisHandler");
- map.put("solr.StreamHandler", "org.apache.solr.handler.StreamHandler");
- map.put("solr.GraphHandler", "org.apache.solr.handler.GraphHandler");
- map.put("solr.ExportHandler", "org.apache.solr.handler.ExportHandler");
- map.put("solr.ShowFileRequestHandler", "org.apache.solr.handler.admin.ShowFileRequestHandler");
- map.put("solr.HealthCheckHandler", "org.apache.solr.handler.admin.HealthCheckHandler");
- map.put("solr.LoggingHandler", "org.apache.solr.handler.admin.LoggingHandler");
- map.put("solr.ThreadDumpHandler", "org.apache.solr.handler.admin.ThreadDumpHandler");
- map.put("solr.PluginInfoHandler", "org.apache.solr.handler.admin.PluginInfoHandler");
- map.put("solr.SolrInfoMBeanHandler", "org.apache.solr.handler.admin.SolrInfoMBeanHandler");
- map.put("solr.SystemInfoHandler", "org.apache.solr.handler.admin.SystemInfoHandler");
- map.put("solr.SegmentsInfoRequestHandler", "org.apache.solr.handler.admin.SegmentsInfoRequestHandler");
- map.put("solr.PingRequestHandler", "org.apache.solr.handler.PingRequestHandler");
- map.put("solr.RealTimeGetHandler", "org.apache.solr.handler.RealTimeGetHandler");
- map.put("solr.ReplicationHandler", "org.apache.solr.handler.ReplicationHandler");
- map.put("solr.SolrConfigHandler", "org.apache.solr.handler.SolrConfigHandler");
- map.put("solr.UpdateRequestHandler", "org.apache.solr.handler.UpdateRequestHandler");
- map.put("solr.DumpRequestHandler", "org.apache.solr.handler.DumpRequestHandler");
- map.put("solr.SQLHandler", "org.apache.solr.handler.SQLHandler");
- map.put("solr.HighlightComponent", "org.apache.solr.handler.component.HighlightComponent");
- map.put("DirectSolrSpellChecker", "org.apache.solr.spelling.DirectSolrSpellChecker");
- map.put("solr.WordBreakSolrSpellChecker", "org.apache.solr.spelling.WordBreakSolrSpellChecker");
- map.put("solr.FileBasedSpellChecker", "org.apache.solr.spelling.FileBasedSpellChecker");
- map.put("solr.FileBasedSpellChecker", "org.apache.solr.spelling.FileBasedSpellChecker");
- map.put("solr.CSVRequestHandler", "org.apache.solr.handler.CSVRequestHandler");
- map.put("solr.highlight.GapFragmenter", "org.apache.solr.highlight.GapFragmenter");
- map.put("solr.highlight.RegexFragmenter", "org.apache.solr.highlight.RegexFragmenter");
- map.put("solr.highlight.HtmlFormatter", "org.apache.solr.highlight.HtmlFormatter");
- map.put("solr.highlight.HtmlEncoder", "org.apache.solr.highlight.HtmlEncoder");
- map.put("solr.highlight.SimpleFragListBuilder", "org.apache.solr.highlight.SimpleFragListBuilder");
- map.put("solr.highlight.SimpleFragmentsBuilder", "org.apache.solr.highlight.SimpleFragmentsBuilder");
- map.put("solr.highlight.SimpleBoundaryScanner", "org.apache.solr.highlight.SimpleBoundaryScanner");
- map.put("solr.highlight.SolrBoundaryScanner", "org.apache.solr.highlight.SolrBoundaryScanner");
- map.put("solr.highlight.DefaultEncoder", "org.apache.solr.highlight.DefaultEncoder");
- map.put("solr.highlight.SingleFragListBuilder", "org.apache.solr.highlight.SingleFragListBuilder");
- map.put("solr.highlight.WeightedFragListBuilder", "org.apache.solr.highlight.WeightedFragListBuilder");
- map.put("solr.highlight.ScoreOrderFragmentsBuilder", "org.apache.solr.highlight.ScoreOrderFragmentsBuilder");
-
- TRANS_MAP = Collections.unmodifiableMap(map);
+ try (InputStream stream = Utils.class.getClassLoader().getResource("ShortClassNames.properties").openStream()) {
+ Properties prop = new Properties();
+ prop.load(stream);
+ ImmutableMap.Builder<String, String> builder = new ImmutableMap.Builder<>();
+ for (Map.Entry<Object, Object> e : prop.entrySet()) builder.put(e.getKey().toString(), e.getValue().toString());
+ SHORT_NAMES = builder.build();
+ } catch (IOException e) {
+ throw new SolrException(SolrException.ErrorCode.SERVER_ERROR,
+ "Resource error: " + e.getMessage(), e);
+ }
}
/**
@@ -602,6 +476,7 @@ public class SolrResourceLoader implements ResourceLoader, Closeable {
*/
public <T> Class<? extends T> findClass(String cname, Class<T> expectedType, String... subpackages) {
if (!cname.startsWith("solr.") && cname.contains(".")) {
+ //this is the fully qualified class name
try {
return Class.forName(cname, true, classLoader).asSubclass(expectedType);
} catch (ClassNotFoundException e) {
@@ -610,8 +485,9 @@ public class SolrResourceLoader implements ResourceLoader, Closeable {
}
}
- String trans = TRANS_MAP.get(cname);
+ String trans = SHORT_NAMES.get(cname);
if (trans != null) {
+ //A short name is provided
try {
return Class.forName(trans, true, classLoader).asSubclass(expectedType);
} catch (ClassNotFoundException e) {
diff --git a/solr/core/src/resources/ShortClassNames.properties b/solr/core/src/resources/ShortClassNames.properties
new file mode 100644
index 0000000..082cc7e6
--- /dev/null
+++ b/solr/core/src/resources/ShortClassNames.properties
@@ -0,0 +1,135 @@
+solr.TextField=org.apache.solr.schema.TextField
+solr.ExportHandler=org.apache.solr.handler.ExportHandler
+solr.PorterStemFilterFactory=org.apache.lucene.analysis.en.PorterStemFilterFactory
+solr.LengthFilterFactory=org.apache.lucene.analysis.miscellaneous.LengthFilterFactory
+solr.PatternTokenizerFactory=org.apache.lucene.analysis.pattern.PatternTokenizerFactory
+solr.ArabicNormalizationFilterFactory=org.apache.lucene.analysis.ar.ArabicNormalizationFilterFactory
+solr.ICUCollationField=org.apache.solr.schema.ICUCollationField
+solr.RunUpdateProcessorFactory=org.apache.solr.update.processor.RunUpdateProcessorFactory
+solr.LoggingHandler=org.apache.solr.handler.admin.LoggingHandler
+solr.ConcatenateGraphFilterFactory=org.apache.lucene.analysis.miscellaneous.ConcatenateGraphFilterFactory
+solr.PersianNormalizationFilterFactory=org.apache.lucene.analysis.fa.PersianNormalizationFilterFactory
+solr.MockExchangeRateProvider=org.apache.solr.schema.MockExchangeRateProvider
+solr.LukeRequestHandler=org.apache.solr.handler.admin.LukeRequestHandler
+solr.SortableTextField=org.apache.solr.schema.SortableTextField
+solr.FileExchangeRateProvider=org.apache.solr.schema.FileExchangeRateProvider
+solr.CSVRequestHandler=org.apache.solr.handler.CSVRequestHandler
+solr.BinaryField=org.apache.solr.schema.BinaryField
+solr.CaffeineCache=org.apache.solr.search.CaffeineCache
+solr.StreamHandler=org.apache.solr.handler.StreamHandler
+solr.ElisionFilterFactory=org.apache.lucene.analysis.util.ElisionFilterFactory
+solr.DoublePointField=org.apache.solr.schema.DoublePointField
+solr.PatternReplaceFilterFactory=org.apache.lucene.analysis.pattern.PatternReplaceFilterFactory
+solr.CustomSimilarityFactory=org.apache.solr.search.similarities.CustomSimilarityFactory
+solr.RegexReplaceProcessorFactory=org.apache.solr.update.processor.RegexReplaceProcessorFactory
+solr.UpdateRequestHandler=org.apache.solr.handler.UpdateRequestHandler
+solr.ProtectedTermFilterFactory=org.apache.lucene.analysis.miscellaneous.ProtectedTermFilterFactory
+solr.DistributedUpdateProcessorFactory=org.apache.solr.update.processor.DistributedUpdateProcessorFactory
+solr.FrenchLightStemFilterFactory=org.apache.lucene.analysis.fr.FrenchLightStemFilterFactory
+solr.highlight.SolrBoundaryScanner=org.apache.solr.highlight.SolrBoundaryScanner
+solr.LongPointField=org.apache.solr.schema.LongPointField
+solr.ASCIIFoldingFilterFactory=org.apache.lucene.analysis.miscellaneous.ASCIIFoldingFilterFactory
+solr.HindiNormalizationFilterFactory=org.apache.lucene.analysis.hi.HindiNormalizationFilterFactory
+solr.LatLonPointSpatialField=org.apache.solr.schema.LatLonPointSpatialField
+solr.highlight.RegexFragmenter=org.apache.solr.highlight.RegexFragmenter
+solr.XMLResponseWriter=org.apache.solr.response.XMLResponseWriter
+solr.SolrInfoMBeanHandler=org.apache.solr.handler.admin.SolrInfoMBeanHandler
+solr.FileBasedSpellChecker=org.apache.solr.spelling.FileBasedSpellChecker
+solr.WordBreakSolrSpellChecker=org.apache.solr.spelling.WordBreakSolrSpellChecker
+solr.ManagedStopFilterFactory=org.apache.solr.rest.schema.analysis.ManagedStopFilterFactory
+solr.IndicNormalizationFilterFactory=org.apache.lucene.analysis.in.IndicNormalizationFilterFactory
+solr.DatePointField=org.apache.solr.schema.DatePointField
+solr.SQLHandler=org.apache.solr.handler.SQLHandler
+solr.SegmentsInfoRequestHandler=org.apache.solr.handler.admin.SegmentsInfoRequestHandler
+solr.RemoveDuplicatesTokenFilterFactory=org.apache.lucene.analysis.miscellaneous.RemoveDuplicatesTokenFilterFactory
+solr.GreekLowerCaseFilterFactory=org.apache.lucene.analysis.el.GreekLowerCaseFilterFactory
+solr.JapaneseReadingFormFilterFactory=org.apache.lucene.analysis.ja.JapaneseReadingFormFilterFactory
+solr.DirectUpdateHandler2=org.apache.solr.update.DirectUpdateHandler2
+solr.PropertiesRequestHandler=org.apache.solr.handler.admin.PropertiesRequestHandler
+solr.JapaneseTokenizerFactory=org.apache.lucene.analysis.ja.JapaneseTokenizerFactory
+solr.UUIDField=org.apache.solr.schema.UUIDField
+solr.ThreadDumpHandler=org.apache.solr.handler.admin.ThreadDumpHandler
+solr.MoreLikeThisHandler=org.apache.solr.handler.MoreLikeThisHandler
+solr.DelimitedBoostTokenFilterFactory=org.apache.lucene.analysis.boost.DelimitedBoostTokenFilterFactory
+solr.DoubleMetaphoneFilterFactory=org.apache.lucene.analysis.phonetic.DoubleMetaphoneFilterFactory
+solr.ManagedSynonymFilterFactory=org.apache.solr.rest.schema.analysis.ManagedSynonymFilterFactory
+solr.ICUTokenizerFactory=org.apache.lucene.analysis.icu.segmentation.ICUTokenizerFactory
+ClassicIndexSchemaFactory=org.apache.solr.schema.ClassicIndexSchemaFactory
+solr.ShingleFilterFactory=org.apache.lucene.analysis.shingle.ShingleFilterFactory
+solr.ICUFoldingFilterFactory=org.apache.lucene.analysis.icu.ICUFoldingFilterFactory
+solr.SchemaHandler=org.apache.solr.handler.SchemaHandler
+FooQParserPlugin=org.apache.solr.search.FooQParserPlugin
+solr.CurrencyFieldType=org.apache.solr.schema.CurrencyFieldType
+solr.LowerCaseFilterFactory=org.apache.lucene.analysis.core.LowerCaseFilterFactory
+solr.highlight.HtmlEncoder=org.apache.solr.highlight.HtmlEncoder
+solr.MockTokenizerFactory=org.apache.solr.analysis.MockTokenizerFactory
+solr.EnglishPossessiveFilterFactory=org.apache.lucene.analysis.en.EnglishPossessiveFilterFactory
+solr.CollationField=org.apache.solr.schema.CollationField
+solr.HTMLStripCharFilterFactory=org.apache.lucene.analysis.charfilter.HTMLStripCharFilterFactory
+solr.PluginInfoHandler=org.apache.solr.handler.admin.PluginInfoHandler
+solr.ICUNormalizer2FilterFactory=org.apache.lucene.analysis.icu.ICUNormalizer2FilterFactory
+solr.GraphHandler=org.apache.solr.handler.GraphHandler
+solr.ReversedWildcardFilterFactory=org.apache.solr.analysis.ReversedWildcardFilterFactory
+solr.RandomSortField=org.apache.solr.schema.RandomSortField
+solr.StopFilterFactory=org.apache.lucene.analysis.core.StopFilterFactory
+solr.TurkishLowerCaseFilterFactory=org.apache.lucene.analysis.tr.TurkishLowerCaseFilterFactory
+solr.CJKWidthFilterFactory=org.apache.lucene.analysis.cjk.CJKWidthFilterFactory
+solr.PatternReplaceCharFilterFactory=org.apache.lucene.analysis.pattern.PatternReplaceCharFilterFactory
+solr.KStemFilterFactory=org.apache.lucene.analysis.en.KStemFilterFactory
+solr.OpenExchangeRatesOrgProvider=org.apache.solr.schema.OpenExchangeRatesOrgProvider
+solr.MappingCharFilterFactory=org.apache.lucene.analysis.charfilter.MappingCharFilterFactory
+solr.ICUTransformFilterFactory=org.apache.lucene.analysis.icu.ICUTransformFilterFactory
+solr.UpdateRequestHandlerApi=org.apache.solr.handler.UpdateRequestHandlerApi
+solr.CurrencyField=org.apache.solr.schema.CurrencyField
+solr.DumpRequestHandler=org.apache.solr.handler.DumpRequestHandler
+solr.PointType=org.apache.solr.schema.PointType
+solr.GeoHashField=org.apache.solr.schema.GeoHashField
+DirectSolrSpellChecker=org.apache.solr.spelling.DirectSolrSpellChecker
+solr.SynonymGraphFilterFactory=org.apache.lucene.analysis.synonym.SynonymGraphFilterFactory
+solr.KeywordTokenizerFactory=org.apache.lucene.analysis.core.KeywordTokenizerFactory
+solr.highlight.DefaultEncoder=org.apache.solr.highlight.DefaultEncoder
+solr.FloatPointField=org.apache.solr.schema.FloatPointField
+solr.WhitespaceTokenizerFactory=org.apache.lucene.analysis.core.WhitespaceTokenizerFactory
+solr.SpatialRecursivePrefixTreeFieldType=org.apache.solr.schema.SpatialRecursivePrefixTreeFieldType
+solr.KeywordMarkerFilterFactory=org.apache.lucene.analysis.miscellaneous.KeywordMarkerFilterFactory
+solr.HighlightComponent=org.apache.solr.handler.component.HighlightComponent
+solr.EnumFieldType=org.apache.solr.schema.EnumFieldType
+solr.StrField=org.apache.solr.schema.StrField
+solr.ReplicationHandler=org.apache.solr.handler.ReplicationHandler
+solr.highlight.WeightedFragListBuilder=org.apache.solr.highlight.WeightedFragListBuilder
+solr.EnglishMinimalStemFilterFactory=org.apache.lucene.analysis.en.EnglishMinimalStemFilterFactory
+solr.SystemInfoHandler=org.apache.solr.handler.admin.SystemInfoHandler
+solr.DelimitedPayloadTokenFilterFactory=org.apache.lucene.analysis.payloads.DelimitedPayloadTokenFilterFactory
+solr.PathHierarchyTokenizerFactory=org.apache.lucene.analysis.path.PathHierarchyTokenizerFactory
+solr.highlight.SimpleFragmentsBuilder=org.apache.solr.highlight.SimpleFragmentsBuilder
+solr.LetterTokenizerFactory=org.apache.lucene.analysis.core.LetterTokenizerFactory
+solr.LatLonType=org.apache.solr.schema.LatLonType
+solr.WordDelimiterFilterFactory=org.apache.lucene.analysis.miscellaneous.WordDelimiterFilterFactory
+solr.FlattenGraphFilterFactory=org.apache.lucene.analysis.core.FlattenGraphFilterFactory
+solr.highlight.SimpleFragListBuilder=org.apache.solr.highlight.SimpleFragListBuilder
+solr.HealthCheckHandler=org.apache.solr.handler.admin.HealthCheckHandler
+solr.SolrConfigHandler=org.apache.solr.handler.SolrConfigHandler
+solr.WordDelimiterGraphFilterFactory=org.apache.lucene.analysis.miscellaneous.WordDelimiterGraphFilterFactory
+solr.GermanNormalizationFilterFactory=org.apache.lucene.analysis.de.GermanNormalizationFilterFactory
+solr.OpenNLPTokenizerFactory=org.apache.lucene.analysis.opennlp.OpenNLPTokenizerFactory
+solr.PingRequestHandler=org.apache.solr.handler.PingRequestHandler
+solr.BoolField=org.apache.solr.schema.BoolField
+solr.highlight.SingleFragListBuilder=org.apache.solr.highlight.SingleFragListBuilder
+solr.ClassicFilterFactory=org.apache.lucene.analysis.standard.ClassicFilterFactory
+solr.ExternalFileField=org.apache.solr.schema.ExternalFileField
+solr.StandardTokenizerFactory=org.apache.lucene.analysis.standard.StandardTokenizerFactory
+solr.LimitTokenCountFilterFactory=org.apache.lucene.analysis.miscellaneous.LimitTokenCountFilterFactory
+solr.NestPathField=org.apache.solr.schema.NestPathField
+solr.highlight.ScoreOrderFragmentsBuilder=org.apache.solr.highlight.ScoreOrderFragmentsBuilder
+solr.DateRangeField=org.apache.solr.schema.DateRangeField
+solr.highlight.GapFragmenter=org.apache.solr.highlight.GapFragmenter
+solr.ClassicTokenizerFactory=org.apache.lucene.analysis.standard.ClassicTokenizerFactory
+solr.highlight.SimpleBoundaryScanner=org.apache.solr.highlight.SimpleBoundaryScanner
+solr.IntPointField=org.apache.solr.schema.IntPointField
+solr.RealTimeGetHandler=org.apache.solr.handler.RealTimeGetHandler
+solr.highlight.HtmlFormatter=org.apache.solr.highlight.HtmlFormatter
+solr.NGramTokenizerFactory=org.apache.lucene.analysis.ngram.NGramTokenizerFactory
+solr.ManagedSynonymGraphFilterFactory=org.apache.solr.rest.schema.analysis.ManagedSynonymGraphFilterFactory
+solr.TrimFilterFactory=org.apache.lucene.analysis.miscellaneous.TrimFilterFactory
+solr.ShowFileRequestHandler=org.apache.solr.handler.admin.ShowFileRequestHandler
+solr.SearchHandler=org.apache.solr.handler.component.SearchHandler
\ No newline at end of file