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 Apr 29, 2016
1 parent 04e2849 commit 4b9ea95
Show file tree
Hide file tree
Showing 6 changed files with 95 additions and 0 deletions.
2 changes: 2 additions & 0 deletions core/src/main/java/io/narayana/nta/Configuration.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@

package io.narayana.nta;

import io.narayana.nta.logparsing.as8.filters.KeywordFilter;
import io.narayana.nta.logparsing.as8.filters.PackageFilter;
import io.narayana.nta.logparsing.as8.handlers.*;

Expand Down Expand Up @@ -80,6 +81,7 @@ public final class Configuration {

public static final Class[] LOG_FILTERS = new Class[]{
PackageFilter.class,
KeywordFilter.class,
};

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package io.narayana.nta.logparsing.as8.filters;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

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;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
/*
* JBoss, Home of Professional Open Source.
* Copyright 2016, Red Hat, Inc., and individual contributors
* as indicated by the @author tags. See the copyright.txt file in the
* distribution for a full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/

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

import io.narayana.nta.logparsing.common.Filter;

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

GetFilterKeywords filterKeywords = new GetFilterKeywords();

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

String keywordList = filterKeywords.getPropValues();
String[] keywords = keywordList.split(",");

try {
for (int i = 0; i < keywords.length; i++){
if(line.indexOf(keywords[i]) != -1)
return true;
}
return false;
} catch (IndexOutOfBoundsException e) {
return false;
}
}
}
1 change: 1 addition & 0 deletions core/src/main/resources/filter.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
keywords=TransactionImple,Periodic Recovery,TransactionSynchronizationRegistryImple
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ public static WebArchive createDeployment() {
.addAsWebInfResource(new FileAsset(new File("src/test/resources/persistence.xml")),
"classes/META-INF/persistence.xml")
.addAsManifestResource(new FileAsset(new File("src/test/resources/nta-test-ds.xml")), "nta-test-ds.xml")
.addAsManifestResource(new FileAsset(new File("src/test/resources/filter.properties")), "filter.properties")
.addAsLibraries(libs)
.setManifest(new StringAsset(ManifestMF));
}
Expand Down
1 change: 1 addition & 0 deletions core/src/test/resources/filter.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
keywords=TransactionImple,Periodic Recovery,TransactionSynchronizationRegistryImple

0 comments on commit 4b9ea95

Please sign in to comment.