[
https://issues.apache.org/jira/browse/SOLR-14977?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17799932#comment-17799932
]
David Smiley commented on SOLR-14977:
-------------------------------------
Odd that "NamedList" wasn't mentioned _at all _here. Historically, I trust you
all know that Solr's plugins are configured with a NamedList, ideally made
configurable by implementing NamedListInitializedPlugin. Are "Container
Plugins" (I would prefer "node plugins" name) so special that NamedList
can't/shouldn't be used? I can't imagine. Or was this an opportunity to do
something different / better? Probably that. If we stop here (at Container
Plugins), it's sad Solr's big codebase is fragmented in a new way where some
odd things are configured oddly (arguably better but "odd" meaning different).
This is a sweeping issue; I'll raise on the dev list in a minute but mentioning
here notifies JIRA issue Watchers.
> Container plugins need a way to be configured
> ---------------------------------------------
>
> Key: SOLR-14977
> URL: https://issues.apache.org/jira/browse/SOLR-14977
> Project: Solr
> Issue Type: Improvement
> Components: Plugin system
> Reporter: Andrzej Bialecki
> Assignee: Andrzej Bialecki
> Priority: Major
> Fix For: 9.0
>
> Attachments: SOLR-14977.patch
>
> Time Spent: 5h 20m
> Remaining Estimate: 0h
>
> Container plugins are defined in {{/clusterprops.json:/plugin}} using a
> simple {{PluginMeta}} bean. This is sufficient for implementations that don't
> need any configuration except for the {{pathPrefix}} but insufficient for
> anything else that needs more configuration parameters.
> An example would be a {{CollectionsRepairEventListener}} plugin proposed in
> PR-1962, which needs parameters such as the list of collections, {{waitFor}},
> maximum operations allowed, etc. to properly function.
> This issue proposes to extend the {{PluginMeta}} bean to allow a
> {{Map<String, Object>}} configuration parameters.
> There is an interface that we could potentially use ({{MapInitializedPlugin}}
> but it works only with {{String}} values. This is not optimal because it
> requires additional type-safety validation from the consumers. The existing
> {{PluginInfo}} / {{PluginInfoInitialized}} interface is too complex for this
> purpose.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]