: 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

Reply via email to