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