Version | Date | Description |
---|---|---|
4.0.18 | 2021-12-22 | Maintenance |
4.0.17 | 2021-12-22 | Maintenance |
4.0.16 | 2021-11-01 | Maintenance |
4.0.15 | 2021-09-17 | Maintenance |
4.0.14 | 2021-09-16 | Maintenance |
4.0.13 | 2021-09-16 | Small Improvement |
4.0.12 | 2021-09-09 | Maintenance |
4.0.11 | 2021-09-09 | Maintenance |
4.0.10 | 2021-09-09 | Maintenance |
4.0.9 | 2021-09-09 | Maintenance |
4.0.8 | 2021-09-08 | Maintenance |
4.0.7 | 2021-09-08 | Maintenance |
4.0.6 | 2021-09-08 | Maintenance |
4.0.5 | 2021-05-30 | Maintenance |
4.0.4 | 2019-01-06 | Maintenance |
4.0.3 | 2018-08-04 | Maintenance |
4.0.2 | 2018-07-21 | Maintenance |
4.0.1 | 2014-12-10 | Maintenance |
4.0.0 | 2014-10-01 | Move to JDK8 |
3.4.2 | 2014-09-02 | Maintenance |
3.4.0 | 2014-05-23 | Maintenance, JDK1.5 and fluent |
3.2.0 | 2010-03-03 | New parse options |
3.1.1 | 2007-10-01 | Fix |
3.1.0 | 2007-09-10 | Name and structure change and new writers |
3.0.0 | 2007-02-11 | Move to Maven and Subversion |
2.2.2 | 2006-08-18 | Fix |
2.2.1 | 2006-08-12 | Fix |
2.2.0 | 2006-06-11 | Fix |
2.1.0 | 2006-02-26 | Maintenance |
2.0.0 | 2005-11-27 | Maintenance |
1.0.5 | 2005-10-01 | Maintenance |
1.0.4 | 2005-07-20 | Maintenance |
1.0.3 | 2005-05-02 | Maintenance |
1.0.2 | 2005-01-27 | Maintenance |
1.0.1 | 2005-01-23 | Maintenance |
Type | Changes | By |
---|---|---|
Update Dependencies. | benoitx |
Type | Changes | By |
---|---|---|
Upgrades to Lombok and SLF4j. | benoitx |
Type | Changes | By |
---|---|---|
Fixed Security issue for XXE. Thanks to srikanthprathi. | benoitx |
Type | Changes | By |
---|---|---|
Fixed when new line of a multi line starts with "". | benoitx |
Type | Changes | By |
---|---|---|
Fixed esoteric Delimiter multi-line issue if the CR is just at the end of the String and the next line is the qualifier. | benoitx |
Type | Changes | By |
---|---|---|
WriterOptions provides option to replace newLine/CarriageReturn in a string. | benoitx |
Type | Changes | By |
---|---|---|
DataError may contain last Column Name and Value for better investigation. | benoitx |
Type | Changes | By |
---|---|---|
Improve error message for the too few columns error. | benoitx |
Type | Changes | By |
---|---|---|
Improve error message for the too few columns error. | benoitx |
Type | Changes | By |
---|---|---|
Error for 'too few columns' will attempt to show the last column parsed (most likely with issue). | benoitx |
Type | Changes | By |
---|---|---|
Fix issue if multi-line starts with first or last character.. | benoitx |
Type | Changes | By |
---|---|---|
Multi line did not cope with a true empty line part of a group. | benoitx |
Type | Changes | By |
---|---|---|
Issues with multi-lines. Fixes 63. Thanks to mvlakh. | mvlakh |
Type | Changes | By |
---|---|---|
Fixing default LocalDate Parsing to be ISO 8601 and add the ability to give a DateTimeFormatter to the parser. | benoitx | |
Update libraries to work under Java 16/17. | omarsmak | |
Issues when parsing CSV files that extensively use text qualifiers. Fixes 60. Thanks to mvlakh. | mvlakh |
Type | Changes | By |
---|---|---|
Fixing issue with comma inside double quote (delimiter inside qualifier). | benoitx | |
Fixing ability to handle '\uFEFF' dodgy character. | benoitx |
Type | Changes | By |
---|---|---|
Fixing SonaCloud.io issues | benoitx | |
Create an Excel module and remove dependency on JExcelAPI for the main Flatpack, see ExcelTransformer. Fixes 44. | benoitx | |
Create CsvParserFactory as an easy way to get one of the most common CSV Parser. | benoitx | |
Removed Version class. | benoitx |
Type | Changes | By |
---|---|---|
new option to automatically "de-duplicate" column names by appending a number at the end of it if it already exist. This is off by default but can be set via call to parser.setAddSuffixToDuplicateColumnNames(true). | benoitx | |
RowRecord.getBigDecimal should trim the string to avoid potential parsing issues. | benoitx | |
Delimiter Writer does not handle field ending with new line. Fixes 27. Thanks to benoitx. | benoitx | |
CSV Writer not compliant with RFC4180, Thanks to Martin Diphoorn for the patch. Also fixed some reader issues for double qualifiers. Fixes 33. Thanks to benoitx. | benoitx | |
Remove JDOM's depencency. Fixes 11. Thanks to benoitx. | benoitx | |
Adding tests for strict RFC4180 (CSV) compliance. Fixes 36. Thanks to martindiphoorn. | martindiphoorn | |
It transpired that String.replace is very inefficient and we replaced it with the Apache Commons equivalent. 50% speed improvement. Fixes 28. | benoitx |
Type | Changes | By |
---|---|---|
When parsing a header column, trim the leading and trailing spaces. Fixes 10. | ks-appendium | |
Mark jxl imports optional in OSGi. Fixes 16. Thanks to dkulp. | benoitx | |
Need to handle multi-line. Fixes 15. Thanks to ks-appendium. | ks-appendium | |
Fix for java.lang.NullPointerException at net.sf.flatpack.DefaultDataSet.getString. Fixes 14. Thanks to moffatn. | benoitx | |
Fix DelimiterWriter not consistent with ParserUtils. Fixes 13. Thanks to antubis23. | ks-appendium |
Type | Changes | By |
---|---|---|
dataSet.getRecord should never return null, use java.util.Optional. Fixes 8. | benoitx | |
Writer interface is now more 'fluent'. Fixes 4. | benoitx | |
Writer is now Autocloseable. Fixes 1. | benoitx | |
StreamingDataSet has stream() method for JDK8 manipulation. Fixes 2. | benoitx | |
Records interface defines getXXX methods with a Supplier interface. Fixes 3. | benoitx | |
Preserve leading/trailing whitespace, Thanks to Trond Ovstetun. Fixes 6. Thanks to ovstetun. | benoitx | |
isRecordID NPE if using absolute. Fixes 9. Thanks to SvenNold. | benoitx |
Type | Changes | By |
---|---|---|
Fix for NPE in isRecordID if using absolute. Fixes 9. Thanks to SvenNold. | benoitx |
Type | Changes | By |
---|---|---|
Add convenience method DefaultParserFactory.newCsvParser. | benoitx | |
Make interface more 'fluent'. | benoitx | |
Use JDK 1.5. | benoitx | |
Ability to over ride the table names for DATAFILE and DATASTRUCTURE when using the DB for the MetaData. | zepernick | |
DBDelimitedParser was trying to build column names from the first record when ignore first was set to false. Column mappings should always come from the DB for this class. | zepernick | |
BuffReader Parser now support Database Column Mappings | zepernick | |
DelimiterWriter now also quotes elements that contain a qualifier. It was previously only checking to see if the data contained a delmiter. | zepernick | |
Added a setNumericColumns(String[]) to the ExcelTransformer. Any columns contained in the array will be written to Excel as a Numeric instead of a Text field. | zepernick | |
Added the ability to use the DelimiterWriter with no column mappings. Added new class DelimiterWriterOptions to achieve this. | zepernick | |
Fixed and Delimiter writers now support multiple record types in the same file. | zepernick |
Type | Changes | By |
---|---|---|
Added a getBigDecimal method on DataSet. | benoitx | |
Fixed SF Bug 1869636. The parameters for the XML Map and data file were reversed in the BuffReaderDelimParser. | zepernick | |
Added optional 3rd parameter to the OrderColumn constructor which allows the specification of the type of column being sorted: OrderColumn.COLTYPE_STRING, OrderColumn.COLTYPE_DATE, OrderColumn.COLTYPE_NUMERIC | zepernick | |
New Parser option to log the raw line data of the record in the DataSet object. Parser.setStoreRawDataToDataSet() | zepernick | |
Stopped the fixed width parser from removing leading spaces in a data element. Added the ParserUtils.rTrim() method. | zepernick | |
Added getLong() to DataSet interface | zepernick | |
Added check for duplicate column names when using file header for column names. | zepernick | |
Applied patch from Dirk Olmes to prevent duplicate column names in the XML mapping. IllegalArgumentException is now thrown if a duplicate column name exists in the map. Thanks Dirk... | zepernick | |
doParse() on DBFixedLengthParser was returning a null and was never getting a DataSet returned | zepernick | |
Added an option on the Paser setFlagEmptyRows(). This will make the DataSet.isRowEmpty() method available. This method will return true when there is no data on any columns in the row. | zepernick | |
New Parser option to log the raw line data in the DataError object for parse errors. Parser.setStoreRawDataToDataError() | zepernick |
Type | Changes | By |
---|---|---|
[1818818] ClassCastException when accessing header or trailer records | zepernick | |
Fixed bug in delimited parse when using Reader for data and map. Parameters were being reversed in the code. | zepernick | |
[1811210] When parsing multi-line delimited files, blank lines inside the elements were being removed from the result of the parse. Blank lines inside a delimited element were also causing a StringIndexOutOfBoundsException. | zepernick |
Type | Changes | By |
---|---|---|
Paul and I would like to thank Dirk Holmes and Holger Hoffstatte from MuleSource for the initial contribution to the writer package. The writer package will let you EXPORT a DataSet in a fixed length or Delimited (csv, etc) format. Thanks guys! | benoitx | |
added contains() method to DataSet to check for the existance of a column name on the current row. DataSet must be on a valid row. | zepernick | |
Added clearRows(), clearErrors(), and clearAll() methods to DataSet | zepernick | |
Goodbye PZFileReader, Hello FlatPack!!! | benoitx | |
Moved package strcuture from net.sf.pzfilereader to net.sf.flatpack | zepernick | |
XML mapping dtd renamed from pzfilereader.dtd to flatpack.dtd | zepernick | |
pzconvert.properties renamed to fpconvert.properties | zepernick | |
The following classes had the "PZ" removed from their name; PZMapParser, PZMetaData, BuffReaderDelimPZParser, BuffReaderFixedPZParser, BuffReaderPZDataSet, BuffReaderPZParseFactory, AbstractDelimiterPZParser, AbstractFixedLengthPZParser, AbstractPZParser, DBDelimiterPZParser, DBFixedLengthPZParser, DefaultPZParserFactory, DelimiterPZParser, FixedLengthPZParser, PZParser, PZParserFactory, PZConverter | zepernick | |
The following classes had the "PZ" changed to "FP" in their name; PZConstants, PZStringUtils, PZConvertException | zepernick | |
Created a PZMetaData class for internal use, it contains the list of column names and index for fast access. | benoitx | |
Feature Request 1596087. Added attribute "elementCount" on record element mapping, which can determine a header, trailer, or detail record by the number of elements contained on the record. This only applies to delimited files. | zepernick | |
Feature Request 1569891. Added setNullEmptyStrings to the PZParser. This will make the DataSet.getString() return null if the column is empty. | zepernick | |
Added option to the PZParser setIgnoreParseWarnings(boolean). When true, the parser will not log warning into the error collection in the DataSet. The default is false. | zepernick | |
Removing deprecated methods in ParserUtils; isMultiLine(), splitLine(), getCMDKeyForFixedLengthFile() | zepernick | |
Added option to PZParser setColumnNamesCaseSensitive(). This will force the user to lookup the column value in the exact same case as the column was specified in the mapping or file. Deprecated the current method signatures for;ParserUtils.buidColumnIndexMap, ParserUtils.getColumnIndex,ParserUtils.getColumnMDFromFile. Added PZParser parameter to new signatures, however, this parameter CAN BE null. Registered PZParser with the DefaultDataSet. This will provide the ability to see what options were set pertaining to data retrieval. | zepernick | |
Changing the PZParseFactory to use java.io.Reader instead of File or InputStream. The File and InputStream methods are still available, but are now deprecated. | zepernick | |
Removed deprecated PZMapParser.parse(File). Added PZMapParser.parse(Reader). Deprecated PZMapParser.parse(InputStream). | zepernick | |
Stopped column lookup from being case sensitive | zepernick | |
Feature Request 1566626. Added setIgnoreExtraColumns() method to the PZParser. Added the ability to ignore extra columns/bytes from delimited & fixed width files. Data is truncated when it goes outside of the column definition. | zepernick |
Type | Changes | By |
---|---|---|
Added new dependency, SLF4j. This is used to log parsing issues. SLF4j is a facade to the following loggers; log4j, jcl, nop, and jdk 1.4. See 3.0 User Doc for further instruction. | zepernick | |
DataSet.getDate() will now return a null on empty Strings | zepernick | |
Removed ParserUtils.getColumnMDFromFile(InputStream, String, String) this method was deprecated in 2.2 | zepernick | |
Removed setters and default constructor from DataError. Error properties are set through the new constructor. | zepernick | |
added the ability to limit the column which are exported to Excel in the ExcelTransformer class | zepernick | |
added getObject(String column, Class toConvert) method. PZFileReader will ship with default classes to handle conversions. Custom conversions can be easily added by adding to the pzconvert.properties | zepernick | |
Unqualified elements have leading and trailing whitespace removed in a delimited parse | zepernick | |
Ability to issue an OrderBy On DataSet's containing record mapping elements | zepernick | |
Move build to Maven 1.1.x and generate the entire website from the build. | benoitx | |
Modify code following warning by Findbugs, checkstyle and PMD. | benoitx | |
Move to Subversion. | marchy |
Type | Changes | By |
---|---|---|
Fixed bug in LargeDataSet. Multiline delimited records were not being parsed correctly. They were showing up as errors when being parsed. | zepernick |
Type | Changes | By |
---|---|---|
Fixed a bug in the delimited parser. Errors were caused by multiple column multi-line records. Special thanks to Malcolm Dobson for bringing the bug to attention and providing the fix. | zepernick |
Type | Changes | By |
---|---|---|
When using column names out of the CSV file 2 input streams were being created. One to read the file and the other to get the column names. This has been reduced to one. | zepernick | |
Added a new constructor to have the ability to provide an InputStream when reading columns from the file. | zepernick | |
Added a LargeDataSet class. This should be used to read large files. It provides the ability to read large files without reading them into memory. The following methods are not applicable for this class; previous(), writeToExcel, orderRows(), absolute(), remove(), getIndex(), goBottom(), goTop(), setValue(). An exception will be thrown if these are called. | zepernick | |
Added the ability to specify Header, Trailer, or other records which can be uniquly identified by a piece of data on the record. These get mapped to their own set of column names seperate from the detail records. See the documentation included in the download for details on the new options in the mapping file. | zepernick | |
Added setDebug(boolean) to PZMapParser class. When flagged true, the Parser will spit the results of the XML parse to the console | zepernick | |
Added 2 new samples; CSVHeaderAndTrailer, FixedLengthHeaderAndTrailer. | zepernick |
Type | Changes | By |
---|---|---|
A VERY Special Thanks to Roland Klein for contributing the following enchancements: - Ability to read a file from an InputStream, File object support still exists. This enhancement makes pzfilereader Java Web Start friendly :) - Added a method in ParserUtils to create an InputStream from a File object. - Changed all ArrayLists and Vectors to List objects. This affects the getErrors() method which was returning a Vector. This may potentially cause compilation errors if migrating from a previous version.. | zepernick | |
Implemented Roland's changed in cvs HEAD | zepernick | |
Removed constructors deprecated in 2.0.0 | zepernick | |
Added ability to parse delimited file which have records spanning multiple lines in the file. The element which is breaking to the next line must be qualified. The data can be qualified with any char, a double quote is used in the example. ie. element, element, "element with line break more element data more element data more element data" start next rec here | zepernick | |
Begining to write some simple Junit tests under com.test.* These will be excluded from the production jar. | zepernick | |
Added getRowCount() method. This returns the total amount of rows parsed from the file. Rows which had errors during the parse are excluded from this count and are added to the error collection. | zepernick | |
Added getReaderVersion() method. This will return a String representation for the pzFileReader version being used. | zepernick | |
Added ability to transform a DataSet into excel. This utilizes JExcelApi which can be found here: http://sourceforge.net/projects/jexcelapi. The jxl.jar has been included in the download for your convience and must be on the classpath if using this new method --> writeToExcel(File) in the DataSet class | zepernick | |
Changed examples to work with 2.1.0. Some examples still refered to deprecated constructors from 2.0.0 which have been removed in this version. | zepernick | |
Added 2 new examples to demonstrate the export to Excel and the parsing of multiline records. | zepernick | |
Updated Java Docs. | zepernick |
Type | Changes | By |
---|---|---|
Re-coded the way the MetaData was being stored. It was being duplicated for every row in the file. It is now only being stored once for the entire file. This will drastically reduce memory usage. | zepernick | |
Created a ParserUtils class. This class can be used to perform low level reads if needed (no mapping file required). For now, this change only applies to delimited files. | zepernick | |
Changed the delimited file parser to use a StringBuffer. It was performing a lot of String concatinations which could have been bogging down performance, and creating un-necessary overhead. | zepernick | |
created ANT build build file, and published to CVS | zepernick | |
Removed the use of the Column object. This was able to cut down on the parse time. | zepernick | |
Add patch provided by Luke Driscoll [1371162]. This provides 2 new constructors for fixed length files. There is a boolean that can now be passed which will tell the parser to allow lines which are shorter then the allowed line length for a record. Missing columns will be filled in with empties. | zepernick | |
The following objects in the DataSet are now public; rows, errors, columnMD, empty constructor. This allows for the DataSet class to be extended if needed to provide custom functionality. | zepernick | |
Took patch [1371162] a step further and also implemented for delimited files. If the row is missing any columns, the parser will automatically add the columns in as empty's. This functionality happens only when the handleShortLines parameter is set to true. | zepernick | |
Revamped user documenation. The user documenation is now much more detailed. User documentation and Java Docs are now included with the distribution instead of having them in seperate downloads. | zepernick |
Type | Changes | By |
---|---|---|
Fixed bug in delimited parse. If the last column of the last column of the file was empty, the row was being logged to the "errors" collection. Thank you very much to Luke Driscoll who found this bug and submitted the patch. See bug [ 1275910 ] CSV File with blank last column, for more information. | zepernick | |
While fixing bug 1275910, a couple of other bugs were brought to light. Spaces before or after the delimiter with a text qualifier was breaking the parse. Example...assuming comma as delimter and double quote as the text qualifier. "value1" , "value2" ,"value" | zepernick | |
Added new method, freeMemory(), when called, the DataSet is cleared. | zepernick | |
Updated examples and JavaDocs. | zepernick |
Type | Changes | By |
---|---|---|
Fixed bug in delimited parse. If parsing a delimited file with text qualifiers, and the last column of a line had hard spaces at the end, a string out of bounds exception was being thrown. | zepernick | |
Added setStrictNumericParse(boolean) method. This is defaulted to false. When calling getDouble or getInt on a column, all non numeric chars will be striped before performing the parse. If the column is empty after the strip, it will be returned as 0. Setting this to true will parse all numeric values as is. | zepernick |
Type | Changes | By |
---|---|---|
added methods to set data in DataSet to all lower or all upper case setLowerCase(), setUpperCase() | zepernick | |
Changed the OrderBy class to make sure the elements being compared were the same case, so as not to make case a factor when comparing. If they are not the same case elements are converted to lower before comparing. | zepernick | |
Added setLowerCase() and setUpperCase() to Java Docs | zepernick | |
Added JSP example to samples | zepernick |
Type | Changes | By |
---|---|---|
Changed parsing logic for delimited files with text qualifiers. The parser will now parse lines that are qualified and not qualified. For example: "here",1234,"test",50,test This will now parse into 5 seperate columns. However if the text contains a delimiter or seperator inside the text, it must be qualified to work correctly. | zepernick |
Type | Changes | By |
---|---|---|
Fixed bug in delimted parse. If no elements were found in a line, a string index out of bounds exception was thrown. | zepernick | |
Added getDate(String,SimpleDateFormat). By default, the current getDate(String) method was expecting the date in yyyyMMdd format. This method allows for another date format to be specified. This format should match the format in the text file. If you would like to change the formating of the date after it is returned from the DataSet, you can use SimpleDateFormat.format(Date) | zepernick | |
Corrected javadocs for the getDate methods. Had return type of double, changed to Date. | zepernick | |
Added samples | zepernick |