[ 
https://issues.apache.org/jira/browse/SOLR-182?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12479452
 ] 

Ryan McKinley commented on SOLR-182:
------------------------------------

The API in this patch lets you call SolrCofe.registerRequestHandler( path, 
handler ) at any point.  If you use this api, you are responsible to make sure 
the handler is initalized -- this may or may not require calling init( 
NamedList ) depending on the handler implementation.  

The "Registration before initialization" is only save for SolrCore to use 
within its constructor.  RequestHandlers.registerHandlers( NodeList nodes ) - 
is package private and only called from the SolrCore constructor.

I still don't see how synchronization becomes an issue - unless someone is 
trying a bizarro use case where someone registers a handler within 
SolrRequestHandler.handleRequest() and expects that *exactly* the next request 
use the newly registered handler.  

In my use case, I have a custom filter that extends SolrRequestDispatcher.  
This filter initializes solr normally, then inspects what was registered and 
automatically sets up the rest of the environment.  


> register SolrRequestHandlers at runtime / lazy loading
> ------------------------------------------------------
>
>                 Key: SOLR-182
>                 URL: https://issues.apache.org/jira/browse/SOLR-182
>             Project: Solr
>          Issue Type: Improvement
>            Reporter: Ryan McKinley
>             Fix For: 1.2
>
>         Attachments: SOLR-182-RuntimeRequestHandlers.patch, 
> SOLR-182-RuntimeRequestHandlers.patch, SOLR-182-RuntimeRequestHandlers.patch, 
> SOLR-182-RuntimeRequestHandlers.patch
>
>
> It would be useful to be able to register handlers after SolrCore has been 
> initialized initialized.  It is also useful to be able to ask what handlers 
> are registered and to where.  This patch adds the following functions to 
> SolrCore:
> SolrRequestHandler registerRequestHandler(String handlerName, 
> SolrRequestHandler handler);
> Collection<SolrRequestHandler> getRequestHandlers(Class<? extends 
> SolrRequestHandler> clazz);
> It also guarantees that request handlers will be initialized with an argument 
> saying what path it is registered to.  RequestHandlerBase gets a bean for the 
> registered path.
> While discussing this, Yonik suggested making it possible to defer 
> initialization of some handlers that will be infrequently used.  I added the 
> 'LazyRequestHandlerWrapper'  (if taking this out makes the patch any easier 
> to commit - it can get its own issue)
> check:
> http://www.nabble.com/Dynamic-RequestHandler-loading-tf3351707.html

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