lucene-solr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ryan McKinley (JIRA)" <>
Subject [jira] Commented: (SOLR-182) register SolrRequestHandlers at runtime / lazy loading
Date Thu, 08 Mar 2007 22:43:24 GMT


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

> register SolrRequestHandlers at runtime / lazy loading
> ------------------------------------------------------
>                 Key: SOLR-182
>                 URL:
>             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>
> 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:

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message