private void checkAvailable(String name, ClusteringEngine engine) { if (!engine.isAvailable()) { throw new SolrException(ErrorCode.SERVER_ERROR, "Clustering engine declared, but not available, check the logs: " + name); } }
final String name = StringUtils.defaultIfBlank(engine.init(engineInitParams, core), ""); if (!engine.isAvailable()) { if (optional) { log.info("Optional clustering engine not available: " + name);
ClusteringEngine clusterer = (ClusteringEngine) loader.newInstance(className); if (clusterer != null) { String name = clusterer.init(engineNL, core); if (name != null) { boolean isDefault = name.equals(ClusteringEngine.DEFAULT_ENGINE_NAME);
/** * Setup the default clustering engine. * @see "https://issues.apache.org/jira/browse/SOLR-5219" */ private static <T extends ClusteringEngine> void setupDefaultEngine(String type, LinkedHashMap<String,T> map) { // If there's already a default algorithm, leave it as is. String engineName = ClusteringEngine.DEFAULT_ENGINE_NAME; T defaultEngine = map.get(engineName); if (defaultEngine == null || !defaultEngine.isAvailable()) { // If there's no default algorithm, and there are any algorithms available, // the first definition becomes the default algorithm. for (Map.Entry<String, T> e : map.entrySet()) { if (e.getValue().isAvailable()) { engineName = e.getKey(); defaultEngine = e.getValue(); map.put(ClusteringEngine.DEFAULT_ENGINE_NAME, defaultEngine); break; } } } if (defaultEngine != null) { log.info("Default engine for " + type + ": " + engineName + " [" + defaultEngine.getClass().getSimpleName() + "]"); } else { log.warn("No default engine for " + type + "."); } } }