I'm looking in CoreContainer and it appears we have two fundamentally different ways of implementing node level handlers/endpoints/APIs (whatever you might want to call them) to respond to requests. There is the original SolrRequestHandler interface, which certainly isn't going away, at least for use in a core. It has decent javadocs and it refers to the SolrCore a lot strongly suggesting they are only associated at a core level (which I know not to be true; it's used for many CoreContainer APIs). And it appears there are now @EndPoint annotated methods on classes that needn't implement anything. It has no javadocs :disappointed: although admittedly it's fairly intuitive. I suppose new functionality at the CoreContainer level should never be the old SolrRequestHandler way? If true; it would be good to deprecate it w/ comments.
Some context: I'm working with Nazerke to make it so that you can register these in solr.xml SOLR-15782 and it's not evident if we should use <requestHandler .../> terminology to mimic that in solrconfig.xml (familiarity with developers) or to use something else. Maybe we could detect at runtime if the class is a SolrRequestHandler vs something annotated with @EndPoint? I don't know. Perhaps SolrRequestHandler.handleRequest should itself be labelled with @EndPoint. ~ David Smiley Apache Lucene/Solr Search Developer http://www.linkedin.com/in/davidwsmiley
