You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@solr.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2025/02/10 03:02:00 UTC

[jira] [Updated] (SOLR-17662) Java SPI/ServiceLoader for plugin discovery & instantiation

     [ 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: issues-unsubscribe@solr.apache.org
For additional commands, e-mail: issues-help@solr.apache.org