[
https://issues.apache.org/jira/browse/SOLR-260?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12509793
]
Ryan McKinley commented on SOLR-260:
------------------------------------
> I'm still not crazy about the "init(T plugin, Map<String, String> params,
> Node node)"
I don't like it either. In 552709 I changed it to:
init(T plugin, Node node)
The few places that actually use the map can generate it using DOMUtils.
> Just to clarify, if i'm understanding the default="true" code, it means that
> RequestHandler resolution will go as follows...
> 1) look for a RequestHandler with a name matching the request
> 2) look for a RequestHandler configured with default="true"
> 3) look for a RequestHandler configured with name="standard"
> 4) use an anonymous instance of StandardRequestHandler
>
exactly. likewise, the QueryResponseWriter follows the same pattern.
> ...that looks good to me, but we should definitely document it.
>
Where do you think is the best place? the example solrconfig.xml?
> Minor Question: isn't the init method in the
> AbstractPluginLoader<SolrRequestHandler> redundant?
>
I don't think so (but I am often wrong). If the RequestHandler plugin loader
extended NamedListPluginLoader, then it would be. The RequestHandler funny
business with lazy loading makes it better to directly subclass
AbstractPluginLoader
> reusable PluginLoader -- helper class to load plugins
> -----------------------------------------------------
>
> Key: SOLR-260
> URL: https://issues.apache.org/jira/browse/SOLR-260
> Project: Solr
> Issue Type: New Feature
> Reporter: Ryan McKinley
> Attachments: SOLR-260-PluginLoader.patch, SOLR-260-PluginLoader.patch
>
>
> As we talk about adding more configuration (Handlers, Highlighting,
> Components, etc) we should standardize the format and share the loading and
> initialization code.
> This patch extracts the common stuff from SOLR-225 and makes it work with the
> RequestHandler framework.
> This is an abstract base class -- each implementation needs to take care of
> actually creating and initializing the instances:
> abstract class PluginLoader<T>
> {
> abstract public T create( String className, NamedList args,
> Map<String,String> params );
>
> abstract public void init( T plugin, NamedList args, Map<String,String>
> params );
>
> public Map<String,T> load( NodeList nodes )
> {
> ...
> }
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.