package com.constellio.data.dao.services.solr; import java.util.Collection; import java.util.HashMap; import java.util.Map; import com.constellio.data.dao.services.bigVault.solr.BigVaultLogger; import com.constellio.data.dao.services.bigVault.solr.BigVaultServer; import com.constellio.data.extensions.DataLayerExtensions; public class SolrServers { private final SolrServerFactory solrServerFactory; private final Map<String, BigVaultServer> servers = new HashMap<>(); private final BigVaultLogger bigVaultLogger; private final DataLayerExtensions extensions; public SolrServers(SolrServerFactory solrServerFactory, BigVaultLogger bigVaultLogger, DataLayerExtensions extensions) { this.solrServerFactory = solrServerFactory; this.bigVaultLogger = bigVaultLogger; this.extensions = extensions; } public synchronized BigVaultServer getSolrServer(String core) { BigVaultServer server = servers.get(core); if (server == null) { server = new BigVaultServer(core, bigVaultLogger, solrServerFactory, extensions.getSystemWideExtensions()); servers.put(core, server); } return server; } public synchronized void close() { solrServerFactory.clear(); servers.clear(); } public Collection<BigVaultServer> getServers() { return servers.values(); } }