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