Skip to content

Commit

Permalink
NTA-89: Add a keyword filter
Browse files Browse the repository at this point in the history
  • Loading branch information
Yuan-Hu committed May 4, 2016
1 parent e27a12b commit c53bd71
Show file tree
Hide file tree
Showing 4 changed files with 66 additions and 51 deletions.
Original file line number Diff line number Diff line change
@@ -1,41 +1,56 @@
package io.narayana.nta.logparsing.as8.filters;

import org.apache.log4j.Logger;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashSet;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import java.util.Set;

public class GetFilterKeywords {

InputStream inputStream;
String filterKeywords;

public String getPropValues() {

try {
Properties prop = new Properties();

String propFileName = "filter.properties";
inputStream = getClass().getClassLoader().getResourceAsStream(propFileName);

if (inputStream != null) {
prop.load(inputStream);
} else {
throw new FileNotFoundException("property file '" + propFileName + "' not found in the classpath");
}

filterKeywords = prop.getProperty("keywords");

} catch (Exception e) {
System.out.println("Exception: " + e);
} finally {
try {
inputStream.close();
} catch (IOException e){
}
}
return filterKeywords;
}
private List<String> filterKeywords;
private static final Logger logger = Logger.getLogger(GetFilterKeywords.class.getName());

private static class GetFilterKeywordsHolder {
private static final GetFilterKeywords INSTANCE = new GetFilterKeywords();
}

public static final GetFilterKeywords getInstance() {
return GetFilterKeywordsHolder.INSTANCE;
}

private GetFilterKeywords() {
InputStream inputStream = null;
try {
Properties prop = new Properties();
filterKeywords = new ArrayList<>();

String propFileName = "filter.properties";
logger.warn(getClass().getClassLoader().getResource());
inputStream = getClass().getClassLoader().getResourceAsStream(propFileName);
if (inputStream != null) {
prop.load(inputStream);
} else {
throw new FileNotFoundException("property file '" + propFileName + "' not found in the classpath");
}

for (String name : prop.stringPropertyNames()) {
if (name.contains("keywords"))
filterKeywords.add(prop.getProperty(name));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
inputStream.close();
} catch (IOException ignored) {
}
}
}

public List<String> getFilterKeywords() {
return filterKeywords;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,32 +22,28 @@

package io.narayana.nta.logparsing.as8.filters;

import java.io.IOException;
import java.io.InputStream;
import io.narayana.nta.logparsing.common.Filter;
import java.util.Set;

import java.util.List;

/**
* @author huyuan
*
*/
public class KeywordFilter implements Filter{

GetFilterKeywords filterKeywords = new GetFilterKeywords();
public class KeywordFilter implements Filter {


@Override
public boolean matches(String line) throws IndexOutOfBoundsException{

String keywordList = filterKeywords.getPropValues();
String[] keywords = keywordList.split(",");
public boolean matches(String line) throws IndexOutOfBoundsException {

List<String> keywordList = GetFilterKeywords.getInstance().getFilterKeywords();

try {
for (int i=0; i<keywords.length;i++){
System.out.println(keywords[i]);
if(line.indexOf(keywords[i]) != -1)
return true;
}
return false;
for (String s : keywordList) {
if (line.contains(s)) { // if black list use !line.contains(s)
return true;
}
}
return false;
} catch (IndexOutOfBoundsException e) {
return false;
}
Expand Down
4 changes: 3 additions & 1 deletion core/src/main/resources/filter.properties
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
keywords=TransactionImple,Periodic Recovery,TransactionSynchronizationRegistryImple
keywords.1=TransactionImple
keywords.2=Periodic Recovery
keywords.3=TransactionSynchronizationRegistryImple
4 changes: 3 additions & 1 deletion core/src/test/resources/filter.properties
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
keywords=TransactionImple,Periodic Recovery,TransactionSynchronizationRegistryImple
keywords.1=TransactionImple
keywords.2=Periodic Recovery
keywords.3=TransactionSynchronizationRegistryImple

0 comments on commit c53bd71

Please sign in to comment.