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