[ 
https://issues.apache.org/jira/browse/SOLR-414?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ryan McKinley updated SOLR-414:
-------------------------------

    Attachment: SOLR-414-Initialization.patch

Here is an updated patch that:

1. Makes ResourceLoader an independent interface and extracts 
SolrResourceLoader from Config (leaving depricated methods)

2. Adds valid class checking for "aware" registration.  This is a simple check 
made to limit the scope of who can implement SolrCoreAware/ResourceLoaderAware 
if we want, we could easily remove this constraint:
{code:java}
    awareCompatibility.put( 
      SolrCoreAware.class, new Class[] {
        SolrRequestHandler.class,
        QueryResponseWriter.class,
        SearchComponent.class
      }
    );

    awareCompatibility.put( 
      ResourceLoaderAware.class, new Class[] {
        TokenFilterFactory.class,
        TokenizerFactory.class,
        FieldType.class
      }
    );
{code}

If things look good to you all, I will clean up some javadocs and the 'plugin' 
wiki page and commit.

> Coherent plugin initialization strategy
> ---------------------------------------
>
>                 Key: SOLR-414
>                 URL: https://issues.apache.org/jira/browse/SOLR-414
>             Project: Solr
>          Issue Type: Improvement
>    Affects Versions: 1.3
>            Reporter: Ryan McKinley
>            Assignee: Ryan McKinley
>             Fix For: 1.3
>
>         Attachments: SOLR-414-Initialization.patch, 
> SOLR-414-Initialization.patch, SOLR-414-Initialization.patch, 
> SOLR-414-Initialization.patch, SOLR-414-Initialization.patch
>
>
> We currently load many plugins with a Map or NamedList -- since SOLR-215, the 
> current core is not available through SolrCore.getSolrCore() and may need to 
> be used for initialization.
> Ideally, we could change the init() methods from:
> {panel}void init( final Map<String,String> args );{panel}
> to
> {panel}void init( final SolrCore core, final Map<String,String> args );{panel}
> Without breaking existing APIs, this change is difficult (some ugly options 
> exist).  This patch offers a solution to keep existing 1.2 APIs, and allow 
> access to the SolrConfig and SolrCore though ThreadLocal.  This should be 
> removed in a future release.
> {panel}
>   DeprecatedPluginUtils.getCurrentCore();
>   DeprecatedPluginUtils.getCurrentConfig();
> {panel}
> This patch removes the SolrConfig.Initalizable that was introduced in 
> SOLR-215.
> For background, see:
> http://www.nabble.com/Initializing---break-init%28%29-API-compatibility--tf4808463.html
> See also: SOLR-260, SOLR-215,  SOLR-399

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