mirror of
https://github.com/overcuriousity/autopsy-flatpak.git
synced 2025-07-16 17:57:43 +00:00
Automating solr 4 vs 8 local server
This commit is contained in:
parent
d62c000943
commit
cf50848d60
@ -69,7 +69,6 @@ import org.apache.solr.common.SolrInputDocument;
|
||||
import org.apache.solr.common.util.NamedList;
|
||||
import org.openide.modules.InstalledFileLocator;
|
||||
import org.openide.modules.Places;
|
||||
import org.openide.util.Exceptions;
|
||||
import org.openide.util.NbBundle;
|
||||
import org.openide.windows.WindowManager;
|
||||
import org.sleuthkit.autopsy.casemodule.Case;
|
||||
@ -229,8 +228,6 @@ public class Server {
|
||||
private int currentSolrServerPort = 0;
|
||||
private int currentSolrStopPort = 0;
|
||||
private static final boolean DEBUG = false;//(Version.getBuildType() == Version.Type.DEVELOPMENT);
|
||||
private static final String SOLR = "solr";
|
||||
private static final String CORE_PROPERTIES = "core.properties";
|
||||
private static final int NUM_COLLECTION_CREATION_RETRIES = 5;
|
||||
|
||||
public enum CORE_EVT_STATES {
|
||||
@ -556,6 +553,14 @@ public class Server {
|
||||
void start() throws KeywordSearchModuleException, SolrServerNoPortException {
|
||||
startSolr(SOLR_VERSION.SOLR8);
|
||||
}
|
||||
|
||||
private void startLocalSolrServer(Index index) throws KeywordSearchModuleException, SolrServerNoPortException {
|
||||
if (IndexFinder.getCurrentSolrVersion().equals(index.getSolrVersion())) {
|
||||
startSolr(SOLR_VERSION.SOLR8);
|
||||
} else {
|
||||
startSolr(SOLR_VERSION.SOLR4);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Tries to start a local Solr instance in a separate process. Returns
|
||||
@ -566,8 +571,15 @@ public class Server {
|
||||
"Server.status.failed.msg=Local Solr server did not respond to status request. This may be because the server failed to start or is taking too long to initialize.",})
|
||||
void startSolr(SOLR_VERSION version) throws KeywordSearchModuleException, SolrServerNoPortException {
|
||||
|
||||
// If an embedded Solr server is running, we stop it.
|
||||
stop();
|
||||
if (isEmbeddedSolrRunning()) {
|
||||
if (localServerVersion == version) {
|
||||
// this version of local server is already running
|
||||
return;
|
||||
} else {
|
||||
// wrong version of local server is running, stop it
|
||||
stop();
|
||||
}
|
||||
}
|
||||
|
||||
// set which version of embedded server is currently running
|
||||
localServerVersion = version;
|
||||
@ -712,14 +724,6 @@ public class Server {
|
||||
* Waits for the stop command to finish before returning.
|
||||
*/
|
||||
synchronized void stop() {
|
||||
|
||||
try {
|
||||
if (!isEmbeddedSolrRunning()) {
|
||||
return;
|
||||
}
|
||||
} catch (KeywordSearchModuleException ex) {
|
||||
logger.log(Level.WARNING, "Unable to check if embedded server is currently runing: ", ex); //NON-NLS
|
||||
}
|
||||
|
||||
try {
|
||||
// Close any open core before stopping server
|
||||
@ -955,8 +959,11 @@ public class Server {
|
||||
|
||||
try {
|
||||
if (theCase.getCaseType() == CaseType.SINGLE_USER_CASE) {
|
||||
|
||||
// makes sure the proper embedded Solr server is running
|
||||
startLocalSolrServer(index);
|
||||
|
||||
currentSolrServer = this.localSolrServer;
|
||||
UserPreferences.setMaxNumShards(1);
|
||||
|
||||
// check if the embedded Solr server is running
|
||||
if (!this.isEmbeddedSolrRunning()) {
|
||||
@ -1015,18 +1022,6 @@ public class Server {
|
||||
dataDir.mkdirs();
|
||||
}
|
||||
|
||||
// In single user mode, if there is a core.properties file already,
|
||||
// we've hit a solr bug. Compensate by deleting it.
|
||||
// ELTODO make sure we use the proper SolrFolder, can it be a Solr 4 case?
|
||||
Path corePropertiesFile = Paths.get(solr8Folder.toString(), SOLR, collectionName, CORE_PROPERTIES);
|
||||
if (corePropertiesFile.toFile().exists()) {
|
||||
try {
|
||||
corePropertiesFile.toFile().delete();
|
||||
} catch (Exception ex) {
|
||||
logger.log(Level.INFO, "Could not delete pre-existing core.properties prior to opening the core."); //NON-NLS
|
||||
}
|
||||
}
|
||||
|
||||
// for single user cases, we unload the core when we close the case. So we have to load the core again.
|
||||
CoreAdminRequest.Create createCoreRequest = new CoreAdminRequest.Create();
|
||||
createCoreRequest.setDataDir(dataDir.getAbsolutePath());
|
||||
|
Loading…
x
Reference in New Issue
Block a user