/** * Copyright (c) Codice Foundation * <p> * This is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser * General Public License as published by the Free Software Foundation, either version 3 of the * License, or any later version. * <p> * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without * even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. A copy of the GNU Lesser General Public License * is distributed along with this program and can be found at * <http://www.gnu.org/licenses/lgpl.html>. */ package org.codice.solr.factory; import java.util.concurrent.Future; import org.apache.solr.client.solrj.SolrClient; /** * Interface implemented by factory classes used to create new {@link SolrClient} instances. */ public interface SolrClientFactory { /** * Requests the creation of a new {@code SolrClient} for a specific Solr core name. * <br/> * Note that {@link Future#get()} will return {@code null} if a {@link SolrClient} could not be * created either immediately or after a retry period determined by the implementing class. * Clients of this class should consider implementing retry logic if needed based on * that return value. * * @param core name of the Solr core to create * @return {@code Future} used to retrieve the new {@code SolrClient} created */ Future<SolrClient> newClient(String core); }