: Interesting, instances of SolrCoreAware would be queued up until the config is : told what the core is - afterwards it tells them immediately. I like that.
that's what i was thinking, but i'm actually not fond of that idea ... it seemed sexy to keep things that simple, so that the same code would work for plugins created at startup, and (hypothetical) plugins created later ... except that only SolrCore and SolrConfig would be simple, all of the plugins would be complicated because we wouldn't be able to garuntee that tellAboutCore() would be called before init(), so a lot of plugins might have to look like this... public class Plugin implements SolrCoreAware { SolrCore core = null; boolean inited = false; public void init(...) { ... inited = true; if (null != core) finishInit(); } public void tellAboutCore(...) { ... if (inited) finishInit(); } } ...that seems like an obnoxious burden to put on people. it would probably be better to make sure we can live up to a simple contract like "tellAboutCore() will always be called before init() even if it means we have to jump through more hoops in SolrConfig and SolrCore ... i'm just not sure what those hoops should look like. : The one concern is what about the potential to call config.tellAboutCore( : core0 ) then call config.tellAboutCore( core1 ); oh sweet mother of all that is holy ... please let us never speak of this again ... : I don't see a good use case where you would want to change the core out from agreed ... i don't even think it's neccessary to make it throw an exception, just treat it as completely undefined (no different then if you try to call init() on a plugin more then once right now ... why go out of our way to test for something inherently silly?) -Hoss