[ 
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.

Reply via email to