public void setSolrUrl(String url) { LOGGER.debug("Setting solrUrl to {}", url); if (url != null) { if (solrUrl == null || !StringUtils.equalsIgnoreCase(url.trim(), solrUrl.getResolvedString())) { solrUrl = new PropertyResolver(url.trim()); List<SolrServer> servers = new ArrayList<>(coreSolrServers.values()); coreSolrServers.clear(); for (SolrServer server : servers) { server.shutdown(); } } } else { // sets to null solrUrl = new PropertyResolver(url); } }
private SolrServer getSolrCore(String storeName) { if (coreSolrServers.containsKey(storeName)) { LOGGER.info("Returning core {} from map of coreSolrServers", storeName); return coreSolrServers.get(storeName); } // Must specify shard in URL so proper core is used SolrServer coreSolrServer = null; try { Future<SolrServer> coreSolrServerFuture = SolrServerFactory.getHttpSolrServer(solrUrl.getResolvedString(), storeName); coreSolrServer = coreSolrServerFuture.get(5, TimeUnit.SECONDS); coreSolrServers.put(storeName, coreSolrServer); LOGGER.trace("EXITING: getSolrCore"); } catch (InterruptedException | ExecutionException | TimeoutException e) { LOGGER.warn("Error getting solr server from future", e); } return coreSolrServer; }