/** | |
* | |
*/ | |
package org.eclipse.smila.solr.service; | |
import org.apache.commons.lang.NotImplementedException; | |
import org.apache.commons.logging.Log; | |
import org.apache.commons.logging.LogFactory; | |
import org.apache.solr.client.solrj.SolrServer; | |
import org.apache.solr.client.solrj.SolrServerException; | |
import org.eclipse.smila.solr.SolrConfig; | |
import org.eclipse.smila.solr.SolrServerService; | |
import org.eclipse.smila.solr.SolrConfig.Mode; | |
import org.eclipse.smila.solr.server.CloudServers; | |
import org.eclipse.smila.solr.server.EmbeddedServers; | |
import org.eclipse.smila.solr.server.HttpServers; | |
import org.eclipse.smila.solr.server.SolrServers; | |
import org.osgi.service.component.ComponentContext; | |
/** | |
* @author pwissel | |
* | |
*/ | |
public class SolrServerServiceImpl implements SolrServerService { | |
private final Log _log = LogFactory.getLog(getClass()); | |
private SolrConfig _config = new SolrConfig(); | |
private SolrServers _servers; | |
/* | |
* (non-Javadoc) | |
* | |
* @see org.eclipse.smila.solr.SolrServerService#getServer(java.lang.String) | |
*/ | |
@Override | |
public SolrServer getServer(final String index) throws SolrServerException { | |
return _servers.getServer(index); | |
} | |
@Override | |
public SolrServer getServer() throws SolrServerException { | |
return _servers.getServer(); | |
} | |
@Override | |
public SolrConfig getConfig() { | |
return _config; | |
} | |
public SolrConfig reloadConfig() { | |
_servers.clearCache(); | |
return _config = new SolrConfig(); | |
} | |
protected void activate(ComponentContext context) { | |
if (_log.isInfoEnabled()) { | |
_log.info("OSGI DS: Activate SolrServerService..."); | |
} | |
final Mode mode = _config.getMode(); | |
if (_log.isDebugEnabled()) { | |
_log.debug("Set mode: " + mode.toString()); | |
} | |
switch (mode) { | |
case CLOUD: | |
_servers = new CloudServers(_config); | |
break; | |
case EMBEDDED: | |
_servers = new EmbeddedServers(_config); | |
break; | |
case HTTP: | |
_servers = new HttpServers(_config); | |
break; | |
default: | |
throw new NotImplementedException(mode.toString()); | |
} | |
if (_log.isDebugEnabled()) { | |
_log.debug("SolrServerService activated successfully"); | |
} | |
} | |
} |