Removed recursive calls to improve stability.

This commit is contained in:
0xNF 2012-09-24 10:42:59 -04:00
parent af910fec52
commit aaba305d79
2 changed files with 36 additions and 14 deletions

View File

@ -92,10 +92,8 @@ public final class KeywordSearchIngestModule implements IngestModuleAbstractFile
private static final Logger logger = Logger.getLogger(KeywordSearchIngestModule.class.getName());
public static final String MODULE_NAME = "Keyword Search";
public static final String MODULE_DESCRIPTION = "Performs file indexing and periodic search using keywords and regular expressions in lists."; final public static String MODULE_VERSION = "1.0";
public static final String PROP_SCRIPTS = MODULE_NAME + "_Scripts";
public static final String PROP_OPTIONS = MODULE_NAME + "_Options";
public static final String PROP_NSRL = MODULE_NAME + "_NSRL";
public static final String MODULE_DESCRIPTION = "Performs file indexing and periodic search using keywords and regular expressions in lists.";
final public static String MODULE_VERSION = "1.0";
private String args;
private static KeywordSearchIngestModule instance = null;
private IngestServices services;
@ -138,15 +136,15 @@ public final class KeywordSearchIngestModule implements IngestModuleAbstractFile
private KeywordSearchIngestModule() {
//set default script
if(ModuleSettings.getConfigSetting(PROP_OPTIONS, AbstractFileExtract.ExtractOptions.EXTRACT_UTF8.toString()) == null){
if(ModuleSettings.getConfigSetting(KeywordSearchSettings.PROPERTIES_OPTIONS, AbstractFileExtract.ExtractOptions.EXTRACT_UTF8.toString()) == null){
KeywordSearchSettings.stringExtractOptions.put(AbstractFileExtract.ExtractOptions.EXTRACT_UTF8.toString(), Boolean.TRUE.toString());
}
if(ModuleSettings.getConfigSetting(PROP_SCRIPTS, SCRIPT.LATIN_1.name()) == null){
ModuleSettings.setConfigSetting(PROP_SCRIPTS, SCRIPT.LATIN_1.name(), Boolean.toString(true));
if(ModuleSettings.getConfigSetting(KeywordSearchSettings.PROPERTIES_SCRIPTS, SCRIPT.LATIN_1.name()) == null){
ModuleSettings.setConfigSetting(KeywordSearchSettings.PROPERTIES_SCRIPTS, SCRIPT.LATIN_1.name(), Boolean.toString(true));
KeywordSearchSettings.stringExtractScripts.add(SCRIPT.LATIN_1);
}
if(ModuleSettings.getConfigSetting(PROP_OPTIONS, AbstractFileExtract.ExtractOptions.EXTRACT_UTF16.toString()) == null){
if(ModuleSettings.getConfigSetting(KeywordSearchSettings.PROPERTIES_OPTIONS, AbstractFileExtract.ExtractOptions.EXTRACT_UTF16.toString()) == null){
KeywordSearchSettings.stringExtractOptions.put(AbstractFileExtract.ExtractOptions.EXTRACT_UTF16.toString(), Boolean.TRUE.toString());
}
@ -374,9 +372,9 @@ public final class KeywordSearchIngestModule implements IngestModuleAbstractFile
//use the settings files to set values
//Grabbing skipKnown
if(! ModuleSettings.getConfigSettings(PROP_NSRL).isEmpty()){
if(! ModuleSettings.getConfigSettings(KeywordSearchSettings.PROPERTIES_NSRL).isEmpty()){
try{
KeywordSearchSettings.setSkipKnown(Boolean.parseBoolean(ModuleSettings.getConfigSetting(PROP_NSRL, "SkipKnown")));
KeywordSearchSettings.setSkipKnown(Boolean.parseBoolean(ModuleSettings.getConfigSetting(KeywordSearchSettings.PROPERTIES_NSRL, "SkipKnown")));
}
catch(Exception e){
Logger.getLogger(KeywordSearchIngestModule.class.getName()).log(Level.WARNING, "Could not parse boolean value from properties file.", e);
@ -385,14 +383,14 @@ public final class KeywordSearchIngestModule implements IngestModuleAbstractFile
//populating stringExtractOptions
if(! ModuleSettings.getConfigSettings(PROP_OPTIONS).isEmpty()){
KeywordSearchSettings.stringExtractOptions = ModuleSettings.getConfigSettings(PROP_OPTIONS);
if(! ModuleSettings.getConfigSettings(KeywordSearchSettings.PROPERTIES_OPTIONS).isEmpty()){
KeywordSearchSettings.stringExtractOptions = ModuleSettings.getConfigSettings(KeywordSearchSettings.PROPERTIES_OPTIONS);
}
//populating stringExtractScripts
if(! ModuleSettings.getConfigSettings(PROP_SCRIPTS).isEmpty()){
if(! ModuleSettings.getConfigSettings(KeywordSearchSettings.PROPERTIES_SCRIPTS).isEmpty()){
try{
for(Map.Entry<String,String> kvp: ModuleSettings.getConfigSettings(PROP_SCRIPTS).entrySet()){
for(Map.Entry<String,String> kvp: ModuleSettings.getConfigSettings(KeywordSearchSettings.PROPERTIES_SCRIPTS).entrySet()){
if(kvp.getKey() != null && Boolean.parseBoolean(kvp.getValue())){
KeywordSearchSettings.stringExtractScripts.add(SCRIPT.valueOf(kvp.getKey()));
}

View File

@ -44,20 +44,36 @@ public class KeywordSearchSettings {
/**
*
* @return IngestModule singleton
*/
static KeywordSearchIngestModule getDefault(){
return KeywordSearchIngestModule.getDefault();
}
/**
*
* @return IngestModule's update frequency
*/
static UpdateFrequency getUpdateFrequency(){
return KeywordSearchIngestModule.getDefault().getUpdateFrequency();
}
/**
* Sets the ingest module's update frequency.
* @param c Update frequency to set.
*/
static void setUpdateFrequency(UpdateFrequency c){
KeywordSearchIngestModule.getDefault().setUpdateFrequency(c);
}
/**
* Sets whether or not to skip adding known good files to the search during index.
* @param skip
*/
static void setSkipKnown(boolean skip) {
ModuleSettings.setConfigSetting(PROPERTIES_NSRL, "SkipKnown", Boolean.toString(skip));
skipKnown = skip;
@ -65,6 +81,10 @@ public class KeywordSearchSettings {
/**
* Sets what scripts to extract during ingest
* @param scripts List of scripts to extract
*/
static void setStringExtractScripts(List<StringExtract.StringExtractUnicodeTable.SCRIPT> scripts) {
stringExtractScripts.clear();
stringExtractScripts.addAll(scripts);
@ -125,6 +145,10 @@ public class KeywordSearchSettings {
}
}
/**
* Gets the setting for whether or not this ingest is skipping adding known good files to the index.
* @return skip setting
*/
static boolean getSkipKnown() {
try{
if(ModuleSettings.getConfigSetting(PROPERTIES_NSRL, "SkipKnown") != null){