mirror of
https://github.com/optim-enterprises-bv/siembol.git
synced 2025-11-02 11:28:15 +00:00
fixes based on review
This commit is contained in:
@@ -101,7 +101,7 @@ public abstract class ParsingApplicationParser implements Serializable {
|
||||
*
|
||||
* @param source source of the message than can be used for selecting a parser for parsing
|
||||
* @param metadata metadata of the message as a json string
|
||||
* @param message byt array of message for parsing
|
||||
* @param message byte array of message for parsing
|
||||
*
|
||||
* @return the list of parsing application results
|
||||
* @see ParsingApplicationResult
|
||||
@@ -112,7 +112,7 @@ public abstract class ParsingApplicationParser implements Serializable {
|
||||
* Parses the message using internal parser(s)
|
||||
*
|
||||
* @param metadata metadata of the message as a json string
|
||||
* @param message byt array of message for parsing
|
||||
* @param message byte array of message for parsing
|
||||
*
|
||||
* @return the list of parsing application results
|
||||
* @see ParsingApplicationResult
|
||||
@@ -126,7 +126,7 @@ public abstract class ParsingApplicationParser implements Serializable {
|
||||
*
|
||||
* @param source source of the message than can be used for selecting a parser for parsing
|
||||
* @param metadata metadata of the message as a json string
|
||||
* @param message byt array of the message for parsing
|
||||
* @param message byte array of the message for parsing
|
||||
*
|
||||
* @return the list of parsing application results
|
||||
* @see ParsingApplicationResult
|
||||
@@ -312,7 +312,8 @@ public abstract class ParsingApplicationParser implements Serializable {
|
||||
/**
|
||||
* Sets whether the application will add guid field to the message after parsing
|
||||
*
|
||||
* @param addGuidToMessages the flag whether the application will add guid field to the message after parsing
|
||||
* @param addGuidToMessages a boolean flag which will determine whether the application will add
|
||||
* a guid field to the message after parsing
|
||||
* @return this builder
|
||||
*/
|
||||
public Builder<T> addGuidToMessages(boolean addGuidToMessages) {
|
||||
|
||||
@@ -7,7 +7,7 @@ import java.util.Map;
|
||||
/**
|
||||
* An object for parsing a log
|
||||
*
|
||||
* <p>This interface for parsing a log and providing metadata for a caller such us
|
||||
* <p>This interface for parsing a log and providing metadata for a caller such as
|
||||
* the parser source type.
|
||||
*
|
||||
* @author Marian Novotny
|
||||
|
||||
@@ -9,7 +9,7 @@ import java.util.stream.Collectors;
|
||||
*
|
||||
* <p>This derived class of ParserExtractor provides functionality for CSV (Comma Separated Values) extracting.
|
||||
* It uses column names list for adding field names supporting to skip some columns.
|
||||
* It supports handling quotas.
|
||||
* It supports handling quotes.
|
||||
*
|
||||
* @author Marian Novotny
|
||||
* @see ParserExtractor
|
||||
@@ -17,7 +17,7 @@ import java.util.stream.Collectors;
|
||||
public class CSVExtractor extends ParserExtractor {
|
||||
private static final String UNKNOWN_COLUMN_NAME_PREFIX = "unknown";
|
||||
private static final String EMPTY_STRING = "";
|
||||
private static final char QUOTA = '"';
|
||||
private static final char QUOTE = '"';
|
||||
|
||||
private final String wordDelimiter;
|
||||
private final ArrayList<ColumnNames> columnNamesList;
|
||||
@@ -33,11 +33,11 @@ public class CSVExtractor extends ParserExtractor {
|
||||
protected ArrayList<Object> getValues(String message, char delimiter) {
|
||||
ArrayList<Object> values = new ArrayList<>();
|
||||
int offset = 0;
|
||||
Optional<Character> quota = Optional.of(QUOTA);
|
||||
Optional<Character> quote = Optional.of(QUOTE);
|
||||
|
||||
while (offset < message.length()) {
|
||||
int delimiterOffset = ParserExtractorLibrary.indexOf(
|
||||
message, delimiter, offset, quota, Optional.empty());
|
||||
message, delimiter, offset, quote, Optional.empty());
|
||||
if (delimiterOffset == -1) {
|
||||
delimiterOffset = message.length();
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ import static uk.co.gresearch.siembol.parsers.extractors.KeyValueExtractor.KeyVa
|
||||
*
|
||||
* <p>This derived class of ParserExtractor provides functionality for key value extracting.
|
||||
* Key value pairs are in form key1=value1 key2=value2 etc.
|
||||
* It supports handling quotas, escaped characters and a fault-tolerant extracting using a next key strategy.
|
||||
* It supports handling quotes, escaped characters and a fault-tolerant extracting using a next key strategy.
|
||||
*
|
||||
* @author Marian Novotny
|
||||
* @see ParserExtractor
|
||||
@@ -22,7 +22,7 @@ public class KeyValueExtractor extends ParserExtractor {
|
||||
private final static String DUPLICATE_FORMAT_MSG = "duplicate_%s_%d";
|
||||
|
||||
public enum KeyValueExtractorFlags {
|
||||
QUOTA_VALUE_HANDLING,
|
||||
QUOTE_VALUE_HANDLING,
|
||||
RENAME_DUPLICATE_KEYS,
|
||||
ESCAPING_HANDLING,
|
||||
NEXT_KEY_STRATEGY
|
||||
@@ -91,7 +91,7 @@ public class KeyValueExtractor extends ParserExtractor {
|
||||
@Override
|
||||
public KeyValueIndices apply(String str, int from) {
|
||||
boolean quoteHandling = keyValueFlags.contains(
|
||||
KeyValueExtractorFlags.QUOTA_VALUE_HANDLING);
|
||||
KeyValueExtractorFlags.QUOTE_VALUE_HANDLING);
|
||||
|
||||
Optional<Character> escaped = keyValueFlags.contains(
|
||||
KeyValueExtractorFlags.ESCAPING_HANDLING)
|
||||
@@ -147,7 +147,7 @@ public class KeyValueExtractor extends ParserExtractor {
|
||||
protected char escapedChar = '\\';
|
||||
protected KeyValueIndices.IndexOf indexOfEnd;
|
||||
protected EnumSet<KeyValueExtractorFlags> keyValueFlags = EnumSet
|
||||
.of(KeyValueExtractorFlags.QUOTA_VALUE_HANDLING,
|
||||
.of(KeyValueExtractorFlags.QUOTE_VALUE_HANDLING,
|
||||
KeyValueExtractorFlags.RENAME_DUPLICATE_KEYS);
|
||||
|
||||
/**
|
||||
|
||||
@@ -12,7 +12,7 @@ import java.util.regex.Pattern;
|
||||
/**
|
||||
* An object that formats a string timestamps into a millisecond epoch time
|
||||
*
|
||||
* <p>This object validates, parses and formats a string timestamps into a millisecond epoch time.
|
||||
* <p>This object validates, parses and formats a string timestamp into a millisecond epoch time.
|
||||
* It supports list of formatters that are executed in a chain until the first formatter is successful.
|
||||
*
|
||||
* @author Marian Novotny
|
||||
|
||||
@@ -210,7 +210,7 @@ public class ParserFactoryImpl implements ParserFactory {
|
||||
}
|
||||
|
||||
if (attributes.getQuotaHandling()) {
|
||||
ret.add(KeyValueExtractor.KeyValueExtractorFlags.QUOTA_VALUE_HANDLING);
|
||||
ret.add(KeyValueExtractor.KeyValueExtractorFlags.QUOTE_VALUE_HANDLING);
|
||||
}
|
||||
|
||||
if (attributes.getEscapingHandling()) {
|
||||
|
||||
@@ -6,7 +6,7 @@ import java.util.List;
|
||||
/**
|
||||
* A data transfer object for representing column names in a csv extractor
|
||||
*
|
||||
* <p>This class is used for json (de)serialisation of a column names and
|
||||
* <p>This class is used for json (de)serialisation of column names and
|
||||
* for generating json schema from this class using annotations.
|
||||
*
|
||||
* @author Marian Novotny
|
||||
|
||||
@@ -5,7 +5,7 @@ import com.github.reinert.jjschema.Attributes;
|
||||
/**
|
||||
* A data transfer object for representing attributes for field rename transformation
|
||||
*
|
||||
* <p>This class is used for json (de)serialisation of a field rename transformation attributes and
|
||||
* <p>This class is used for json (de)serialisation of field rename transformation attributes and
|
||||
* for generating json schema from this class using annotations.
|
||||
*
|
||||
* @author Marian Novotny
|
||||
|
||||
@@ -6,7 +6,7 @@ import com.github.reinert.jjschema.Attributes;
|
||||
/**
|
||||
* A data transfer object for representing attributes for json path query
|
||||
*
|
||||
* <p>This class is used for json (de)serialisation of a json path query attributes and
|
||||
* <p>This class is used for json (de)serialisation of json path query attributes and
|
||||
* for generating json schema from this class using annotations.
|
||||
*
|
||||
* @author Marian Novotny
|
||||
|
||||
@@ -7,7 +7,7 @@ import java.util.List;
|
||||
/**
|
||||
* A data transfer object for representing attributes for a parsers configurations
|
||||
*
|
||||
* <p>This class is used for json (de)serialisation of a parsers configurations and
|
||||
* <p>This class is used for json (de)serialisation of parsers configurations and
|
||||
* for generating json schema from this class using annotations.
|
||||
*
|
||||
* @author Marian Novotny
|
||||
|
||||
@@ -66,7 +66,7 @@ public class KeyValueExtractorTest {
|
||||
public void testGoodSimpleQuotesRemove() {
|
||||
extractorFlags.add(
|
||||
ParserExtractor.ParserExtractorFlags.SHOULD_OVERWRITE_FIELDS);
|
||||
keyValueFlags.add(KeyValueExtractor.KeyValueExtractorFlags.QUOTA_VALUE_HANDLING);
|
||||
keyValueFlags.add(KeyValueExtractor.KeyValueExtractorFlags.QUOTE_VALUE_HANDLING);
|
||||
extractorFlags.add(KeyValueExtractor.ParserExtractorFlags.REMOVE_QUOTES);
|
||||
|
||||
KeyValueExtractor extractor = KeyValueExtractor.builder()
|
||||
@@ -92,7 +92,7 @@ public class KeyValueExtractorTest {
|
||||
public void testGoodSimpleQuotesLeave() {
|
||||
extractorFlags.add(
|
||||
ParserExtractor.ParserExtractorFlags.SHOULD_OVERWRITE_FIELDS);
|
||||
keyValueFlags.add(KeyValueExtractor.KeyValueExtractorFlags.QUOTA_VALUE_HANDLING);
|
||||
keyValueFlags.add(KeyValueExtractor.KeyValueExtractorFlags.QUOTE_VALUE_HANDLING);
|
||||
|
||||
KeyValueExtractor extractor = KeyValueExtractor.builder()
|
||||
.keyValueExtractorFlags(keyValueFlags)
|
||||
@@ -116,7 +116,7 @@ public class KeyValueExtractorTest {
|
||||
public void testGoodNonStandardsDelimiter() {
|
||||
extractorFlags.add(
|
||||
ParserExtractor.ParserExtractorFlags.SHOULD_OVERWRITE_FIELDS);
|
||||
keyValueFlags.add(KeyValueExtractor.KeyValueExtractorFlags.QUOTA_VALUE_HANDLING);
|
||||
keyValueFlags.add(KeyValueExtractor.KeyValueExtractorFlags.QUOTE_VALUE_HANDLING);
|
||||
|
||||
KeyValueExtractor extractor = KeyValueExtractor.builder()
|
||||
.keyValueExtractorFlags(keyValueFlags)
|
||||
@@ -143,7 +143,7 @@ public class KeyValueExtractorTest {
|
||||
public void testGoodNonStandardsDelimiterEscaping() {
|
||||
extractorFlags.add(
|
||||
ParserExtractor.ParserExtractorFlags.SHOULD_OVERWRITE_FIELDS);
|
||||
keyValueFlags.add(KeyValueExtractor.KeyValueExtractorFlags.QUOTA_VALUE_HANDLING);
|
||||
keyValueFlags.add(KeyValueExtractor.KeyValueExtractorFlags.QUOTE_VALUE_HANDLING);
|
||||
keyValueFlags.add(KeyValueExtractor.KeyValueExtractorFlags.ESCAPING_HANDLING);
|
||||
|
||||
KeyValueExtractor extractor = KeyValueExtractor.builder()
|
||||
@@ -172,7 +172,7 @@ public class KeyValueExtractorTest {
|
||||
public void testGoodNonStandardsDelimiterEscapingNextKey() {
|
||||
extractorFlags.add(
|
||||
ParserExtractor.ParserExtractorFlags.SHOULD_OVERWRITE_FIELDS);
|
||||
keyValueFlags.add(KeyValueExtractor.KeyValueExtractorFlags.QUOTA_VALUE_HANDLING);
|
||||
keyValueFlags.add(KeyValueExtractor.KeyValueExtractorFlags.QUOTE_VALUE_HANDLING);
|
||||
keyValueFlags.add(KeyValueExtractor.KeyValueExtractorFlags.ESCAPING_HANDLING);
|
||||
keyValueFlags.add(KeyValueExtractor.KeyValueExtractorFlags.NEXT_KEY_STRATEGY);
|
||||
|
||||
@@ -205,7 +205,7 @@ public class KeyValueExtractorTest {
|
||||
extractorFlags.add(
|
||||
ParserExtractor.ParserExtractorFlags.THROWN_EXCEPTION_ON_ERROR);
|
||||
|
||||
keyValueFlags.add(KeyValueExtractor.KeyValueExtractorFlags.QUOTA_VALUE_HANDLING);
|
||||
keyValueFlags.add(KeyValueExtractor.KeyValueExtractorFlags.QUOTE_VALUE_HANDLING);
|
||||
|
||||
KeyValueExtractor extractor = KeyValueExtractor.builder()
|
||||
.keyValueExtractorFlags(keyValueFlags)
|
||||
@@ -225,7 +225,7 @@ public class KeyValueExtractorTest {
|
||||
public void testGoodEmptyValue() {
|
||||
extractorFlags.add(
|
||||
ParserExtractor.ParserExtractorFlags.SHOULD_OVERWRITE_FIELDS);
|
||||
keyValueFlags.add(KeyValueExtractor.KeyValueExtractorFlags.QUOTA_VALUE_HANDLING);
|
||||
keyValueFlags.add(KeyValueExtractor.KeyValueExtractorFlags.QUOTE_VALUE_HANDLING);
|
||||
|
||||
KeyValueExtractor extractor = KeyValueExtractor.builder()
|
||||
.keyValueExtractorFlags(keyValueFlags)
|
||||
@@ -246,7 +246,7 @@ public class KeyValueExtractorTest {
|
||||
public void testGoodEmptyValueQuota() {
|
||||
extractorFlags.add(
|
||||
ParserExtractor.ParserExtractorFlags.SHOULD_OVERWRITE_FIELDS);
|
||||
keyValueFlags.add(KeyValueExtractor.KeyValueExtractorFlags.QUOTA_VALUE_HANDLING);
|
||||
keyValueFlags.add(KeyValueExtractor.KeyValueExtractorFlags.QUOTE_VALUE_HANDLING);
|
||||
extractorFlags.add(KeyValueExtractor.ParserExtractorFlags.REMOVE_QUOTES);
|
||||
|
||||
KeyValueExtractor extractor = KeyValueExtractor.builder()
|
||||
@@ -326,7 +326,7 @@ public class KeyValueExtractorTest {
|
||||
|
||||
@Test
|
||||
public void testWrongQuotesFaultTolerant() {
|
||||
keyValueFlags.add(KeyValueExtractor.KeyValueExtractorFlags.QUOTA_VALUE_HANDLING);
|
||||
keyValueFlags.add(KeyValueExtractor.KeyValueExtractorFlags.QUOTE_VALUE_HANDLING);
|
||||
|
||||
KeyValueExtractor extractor = KeyValueExtractor.builder()
|
||||
.keyValueExtractorFlags(keyValueFlags)
|
||||
|
||||
@@ -40,7 +40,7 @@ import java.util.concurrent.atomic.AtomicReference;
|
||||
* <p>This class extends a Storm BaseRichBolt class to implement a Storm bolt, that
|
||||
* parses logs using a parsing application parser initialised from the parser configurations cached in the ZooKeeper,
|
||||
* watches for the parser configurations update in ZooKeeper and
|
||||
* updates the parsers without need to restart the topology or the bolt,
|
||||
* updates the parsers without needing to restart the topology or the bolt,
|
||||
* emits parsed messages and exceptions after parsing.
|
||||
*
|
||||
* @author Marian Novotny
|
||||
|
||||
Reference in New Issue
Block a user