[
https://issues.apache.org/jira/browse/SOLR-17662?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ASF GitHub Bot updated SOLR-17662:
----------------------------------
Labels: pull-request-available (was: )
> Java SPI/ServiceLoader for plugin discovery & instantiation
> -----------------------------------------------------------
>
> Key: SOLR-17662
> URL: https://issues.apache.org/jira/browse/SOLR-17662
> Project: Solr
> Issue Type: Improvement
> Reporter: David Smiley
> Priority: Major
> Labels: pull-request-available
> Time Spent: 10m
> Remaining Estimate: 0h
>
> Java 6 introduced the [Service Provider
> Interfaces|https://docs.oracle.com/javase/tutorial/sound/SPI-intro.html]
> mechanism, implemented with the ServiceLoader class. As applied to Solr, it
> allows a registry of plugin instances of a certain type to be discovered from
> the classpath. This obsoletes static hard-coded mappings (see Solr's
> TransformerFactory for one), and it allows easy addition of new plugin
> instances by others simply by supplying a JAR with metadata, without
> requiring modifications to solrconfig.xml or other config files (assuming
> zero-config).
> A challenge to solve is how to get the basic name of a plugins, e.g.
> "subquery" instead of the full classname:
> org.apache.solr.response.transform.SubQueryAugmenterFactory
> A short term goal could just be Solr's static registries of builtin plugins
> using Solr's classpath. Slightly better is using the node level ClassLoader,
> thereby using the configurable lib dir. More comprehensive would eventually
> allow configSets and the package system somehow. Eventually allow
> referencing these plugin names in configuration (class="subquery" or
> name="subquery") instead of "solr.SubQueryAugmenterFactory" for explicitly
> configuring. The latter should be deprecated despite its use in Solr since
> forever.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]