[ https://issues.apache.org/jira/browse/SOLR-14160?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Noble Paul reassigned SOLR-14160: --------------------------------- Assignee: Noble Paul > Abstract out the replica identification interface for internode requests > ------------------------------------------------------------------------ > > Key: SOLR-14160 > URL: https://issues.apache.org/jira/browse/SOLR-14160 > Project: Solr > Issue Type: Improvement > Security Level: Public(Default Security Level. Issues are Public) > Reporter: Noble Paul > Assignee: Noble Paul > Priority: Major > > The list of replicas to which requests are sent are identified in a static > fashion. There is no way to cleanly plugin alternate logic of identifying the > replica list . > two major interfaces abstracted out are > {code:java} > import java.util.List; > public interface HeaderInterceptor { > /**Names of headers to be read from the resposne > */ > List<String> responseHeaders(); > /**The callback received after a response. This must be called with a 'null' > if there was no such header > * > */ > void responseHeaderVal(String key, String val); > } > {code} > {code:java} > /**This interface gives urls one by one instead of giving a full list. > * This also lets the implementation provide extra details as HTTP headers > * > */ > public interface UrlProvider extends HeaderInterceptor { > /**Give the base url for the next request to be fired. This is invoked the > first time > * a request needs to be fired, or subsequent after \{@link > UrlProvider#toRetry()} returns true > * @return null if no more nodes/cores are available > */ > String nextBaseurl(); > /**The headers that must be added to the request. > * @return return null or an empty map if nothing needs to added > */ > Map<String, String > requestHeaders(); > /**Verify header value. This callback WILL be given if responseHeaderName is > supplied, even if it is null > * @return true if the request should be retried > * Return the error message if there is something wrong with the response > */ > boolean toRetry() throws SolrException; > } > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org For additional commands, e-mail: issues-h...@lucene.apache.org