Apache Commons CSV Release Notes
Release History
Version |
Date |
Description |
1.13.1 |
YYYY-MM-DD |
This is a feature and maintenance release. Java 8 or later is required. |
1.13.0 |
2025-01-08 |
This is a feature and maintenance release. Java 8 or later is required. |
1.12.0 |
2024-09-21 |
This is a feature and maintenance release. Java 8 or later is required. |
1.11.0 |
2024-04-28 |
This is a feature and maintenance release. Java 8 or later is required. |
1.10.0 |
2023-01-28 |
This is a feature and maintenance release. Java 8 or later is required. |
1.9.0 |
2021-07-24 |
This is a feature and maintenance release. Java 8 or later is required. |
1.8 |
2020-02-01 |
This is a feature and maintenance release. Java 8 or later is required. This release fixes serialization compatibility of CSVRecord with versions 1.0 to 1.6. New fields added since 1.7 are not serialized. Support for Serializable is scheduled to be removed in version 2.0. |
1.7 |
2019-06-01 |
This is a feature and maintenance release. Java 8 or later is required. |
1.6 |
2018-09-22 |
Feature and bug fix release (Java 7 or above) |
1.5 |
2017-09-03 |
Feature and bug fix release (Java 7 or above) |
1.4 |
2016-05-28 |
Feature and bug fix release (Java 6 or above) |
1.3 |
2016-05-09 |
Feature and bug fix release (Java 6 or above) |
1.2 |
2015-08-24 |
Feature and bug fix release (Java 6 or above) |
1.1 |
2014-11-16 |
Feature and bug fix release (Java 6 or above) |
1.0 |
2014-08-14 |
First release (Java 6 or above) |
Release 1.13.1 – YYYY-MM-DD
Type |
Changes |
By |
![Fix Fix](images/fix.gif) |
Release history link changed from changes-report.html to changes.html #516. Fixes CSV-317. Thanks to Filipe Roque. |
ggregory |
Release 1.13.0 – 2025-01-08
Type |
Changes |
By |
![Fix Fix](images/fix.gif) |
Required OSGi Import-Package version numbers in MANIFEST.MF #504. Fixes CSV-314. Thanks to Gary Gregory. |
ggregory |
![Fix Fix](images/fix.gif) |
CSVParser.nextRecord() should throw CSVException (an IOException subclass) instead of IOException and IllegalStateException, no method signature changes needed. Fixes CSV-314. Thanks to Gary Gregory. |
ggregory |
![Add Add](images/add.gif) |
Add CSVPrinter.getRecordCount(). Fixes CSV-313. Thanks to Gary Gregory. |
ggregory |
![Add Add](images/add.gif) |
Add and use CSVParser.Builder and builder() and deprecate CSVParser constructors. Thanks to Gary Gregory. |
ggregory |
![Add Add](images/add.gif) |
CSVFormat.Builder implements Supplier<CSVFormat>. Thanks to Gary Gregory. |
ggregory |
![Add Add](images/add.gif) |
Deprecate CSVFormat.Builder.build() for get(). Thanks to Gary Gregory. |
ggregory |
![Add Add](images/add.gif) |
Track byte position #502. Fixes CSV-196. Thanks to Yuzhan Jiang, Gary Gregory. |
ggregory |
![Update Update](images/update.gif) |
Bump org.apache.commons:commons-parent from 76 to 78 #486, #495. Thanks to Gary Gregory, Dependabot. |
ggregory |
![Update Update](images/update.gif) |
Bump org.codehaus.mojo:taglist-maven-plugin from 3.1.0 to 3.2.1 #493. Thanks to Gary Gregory, Dependabot. |
ggregory |
![Update Update](images/update.gif) |
Bump commons-io:commons-io from 2.17.0 to 2.18.0 #505. Thanks to Gary Gregory, Dependabot. |
ggregory |
![Update Update](images/update.gif) |
Bump commons-codec:commons-codec from 1.17.1 to 1.17.2. Thanks to Gary Gregory. |
ggregory |
![Update Update](images/update.gif) |
Bump org.apache.commons:commons-parent from 78 to 79. Thanks to Gary Gregory. |
ggregory |
Release 1.12.0 – 2024-09-21
Type |
Changes |
By |
![Add Add](images/add.gif) |
Add CSVException that extends IOException thrown on invalid input instead of IOException. Fixes CSV-270. Thanks to Thomas Kamps, Gary Gregory. |
ggregory |
![Fix Fix](images/fix.gif) |
Fix PMD issues for port to PMD 7.1.0. Thanks to Gary Gregory. |
ggregory |
![Fix Fix](images/fix.gif) |
Fix some Javadoc links #442. Thanks to Dávid Szigecsán, Gary Gregory. |
ggregory |
![Fix Fix](images/fix.gif) |
Extract duplicated code into a method #444. Thanks to Dávid Szigecsán. |
ggregory |
![Fix Fix](images/fix.gif) |
Migrate CSVFormat#print(File, Charset) to NIO #445. Thanks to Dávid Szigecsán. |
ggregory |
![Fix Fix](images/fix.gif) |
Fix documentation for CSVFormat private constructor #466. Thanks to Dávid Szigecsán. |
ggregory |
![Fix Fix](images/fix.gif) |
CSVFormat does not support explicit " as escape char. Fixes CSV-294. Thanks to Joern Huxhorn, Gary Gregory. |
ggregory |
![Fix Fix](images/fix.gif) |
Escaping is not disableable. Fixes CSV-150. Thanks to dota17, Gary Gregory, Jörn Huxhorn. |
ggregory |
![Fix Fix](images/fix.gif) |
Fix Javadoc warnings on Java 23. Thanks to Gary Gregory. |
ggregory |
![Fix Fix](images/fix.gif) |
Improve parser performance by up to 20%, YMMV. Thanks to Gary Gregory. |
ggregory |
![Update Update](images/update.gif) |
Bump commons-codec:commons-codec from 1.16.1 to 1.17.1 #422, #449. Thanks to Dependabot. |
ggregory |
![Update Update](images/update.gif) |
Bump org.apache.commons:commons-parent from 69 to 76 #435, #452, #465, #468, #475, #482. Thanks to Gary Gregory. |
ggregory |
![Update Update](images/update.gif) |
Bump org.codehaus.mojo:taglist-maven-plugin from 3.0.0 to 3.1.0 #441. Thanks to Gary Gregory. |
ggregory |
![Update Update](images/update.gif) |
Bump org.apache.commons:commons-lang3 from 3.14.0 to 3.17.0 #450, #459, #470. Thanks to Gary Gregory. |
ggregory |
![Update Update](images/update.gif) |
Bump org.hamcrest:hamcrest from 2.2 to 3.0 #455. Thanks to Gary Gregory. |
ggregory |
![Update Update](images/update.gif) |
Bump commons-io:commons-io from 2.16.1 to 2.17.0 #476. Thanks to Gary Gregory, Dependabot. |
ggregory |
Release 1.11.0 – 2024-04-28
Type |
Changes |
By |
![Add Add](images/add.gif) |
[Javadoc] Add example to CSVFormat#setHeaderComments() #344. Fixes CSV-308. Thanks to Buddhi De Silva, Gary Gregory. |
ggregory |
![Add Add](images/add.gif) |
Add and use CSVFormat#setTrailingData(boolean) in CSVFormat.EXCEL for Excel compatibility #303. Thanks to DamjanJovanovic, Gary Gregory. |
ggregory |
![Add Add](images/add.gif) |
Add and use CSVFormat#setLenientEof(boolean) in CSVFormat.EXCEL for Excel compatibility #303. Thanks to DamjanJovanovic, Gary Gregory. |
ggregory |
![Fix Fix](images/fix.gif) |
Replace deprecated method in user guide, update external link #324, #325. Fixes CSV-306. Thanks to Sam Ng, Bruno P. Kinoshita. |
ggregory |
![Fix Fix](images/fix.gif) |
Document duplicate header behavior #309. Thanks to Seth Falco, Bruno P. Kinoshita. |
ggregory |
![Fix Fix](images/fix.gif) |
Add missing docs #328. Thanks to jkbkupczyk. |
ggregory |
![Fix Fix](images/fix.gif) |
[StepSecurity] CI: Harden GitHub Actions #329, #330. Thanks to step-security-bot. |
ggregory |
![Fix Fix](images/fix.gif) |
Better error message during faulty CSV record read #347. Fixes CSV-147. Thanks to Steven Peterson, Benedikt Ritter, Gary Gregory, Joerg Schaible, Buddhi De Silva, Elliotte Rusty Harold. |
ggregory |
![Fix Fix](images/fix.gif) |
Misleading error message when QuoteMode set to None #352. Fixes CSV-310. Thanks to Buddhi De Silva. |
ggregory |
![Fix Fix](images/fix.gif) |
OutOfMemory for very long rows despite using column value of type Reader. Fixes CSV-311. Thanks to Christian Feuersaenger, Gary Gregory. |
ggregory |
![Fix Fix](images/fix.gif) |
Use try-with-resources to manage JDBC CLOB in CSVPrinter.printRecords(ResultSet). Thanks to Gary Gregory. |
ggregory |
![Fix Fix](images/fix.gif) |
JDBC Blob columns are now output as Base64 instead of Object#toString(), which usually is InputStream#toString(). Thanks to Gary Gregory. |
ggregory |
![Fix Fix](images/fix.gif) |
Support unusual Excel use cases: Add support for trailing data after the closing quote, and EOF without a final closing quote #303. Thanks to DamjanJovanovic, Gary Gregory. |
ggregory |
![Fix Fix](images/fix.gif) |
MongoDB CSV empty first column parsing fix #412. Thanks to Igor Kamyshnikov, Gary Gregory. |
ggregory |
![Update Update](images/update.gif) |
Bump commons-io:commons-io: from 2.11.0 to 2.16.1 #408, #413. Thanks to Gary Gregory. |
ggregory |
![Update Update](images/update.gif) |
Bump commons-parent from 57 to 69 #410. Thanks to Gary Gregory, Dependabot. |
ggregory |
![Update Update](images/update.gif) |
Bump h2 from 2.1.214 to 2.2.224 #333, #349, #359. Thanks to Dependabot. |
ggregory |
![Update Update](images/update.gif) |
Bump commons-lang3 from 3.12.0 to 3.14.0. Thanks to Gary Gregory. |
ggregory |
![Update Update](images/update.gif) |
Update exception message in CSVRecord#getNextRecord() #348. Thanks to Buddhi De Silva, Michael Osipov, Gary Gregory. |
ggregory |
![Update Update](images/update.gif) |
Bump tests using com.opencsv:opencsv from 5.8 to 5.9 #373. Thanks to Dependabot. |
ggregory |
Release 1.10.0 – 2023-01-28
Type |
Changes |
By |
![Fix Fix](images/fix.gif) |
Minor changes #172. Thanks to Arturo Bernal. |
ggregory |
![Fix Fix](images/fix.gif) |
No Automatic-Module-Name prevents usage in JPMS projects without repacking the JAR. Fixes CSV-292. Thanks to Rob Vesse. |
kinow |
![Fix Fix](images/fix.gif) |
Fix for multi-char delimiter not working as expected #218. Fixes CSV-288. Thanks to Santhsoh, Angus. |
ggregory |
![Fix Fix](images/fix.gif) |
CSVRecord.get(Enum) should use Enum.name() instead of Enum.toString(). Fixes CSV-269. Thanks to Auke te Winkel, Gary Gregory. |
ggregory |
![Fix Fix](images/fix.gif) |
Allow org.apache.commons.csv.IOUtils.copy(Reader, Appendable, CharBuffer) to compile on Java 11 and run on Java 8. Thanks to Gary Gregory. |
ggregory |
![Fix Fix](images/fix.gif) |
CSVRecord.toList() does not give write access to the new List. Fixes CSV-300. Thanks to Markus Spann, Gary Gregory. |
ggregory |
![Fix Fix](images/fix.gif) |
CSVParser.getRecords() now throws UncheckedIOException instead of IOException. Thanks to Gary Gregory. |
ggregory |
![Fix Fix](images/fix.gif) |
Add comments to iterator() and stream() #270. Fixes CSV-274. Thanks to Peter Hull, Bruno P. Kinoshita, Gary Gregory. |
ggregory |
![Fix Fix](images/fix.gif) |
Fix wrong assumptions in PostgreSQL formats #265. Fixes CSV-290. Thanks to angusdev, Gary Gregory. |
ggregory |
![Fix Fix](images/fix.gif) |
Validate input to setDelimiter(String) for empty string #266. Thanks to Mykola Faryma. |
ggregory |
![Fix Fix](images/fix.gif) |
Bump CSVFormat#serialVersionUID from 1 to 2. Thanks to Dependabot. |
ggregory |
![Fix Fix](images/fix.gif) |
CSVParser: Identify duplicates in null, empty and blank header names #279. Thanks to Alex Herbert. |
ggregory |
![Remove Remove](images/remove.gif) |
Serialization in CSVFormat is not supported from one version to the next. |
ggregory |
![Add Add](images/add.gif) |
Make CSVRecord#values() public. Fixes CSV-291. Thanks to Gary Gregory. |
ggregory |
![Add Add](images/add.gif) |
Add DuplicateHeaderMode for flexibility with header strictness. #114. Fixes CSV-264. Thanks to Sagar Tiwari, Seth Falco, Alex Herbert, Gary Gregory. |
ggregory |
![Add Add](images/add.gif) |
Support for parallelism in CSVPrinter. Fixes CSV-295. Thanks to Gary Gregory. |
ggregory |
![Add Add](images/add.gif) |
Add CSVPrinter.printRecord[s](Stream). Fixes CSV-295. Thanks to Gary Gregory. |
ggregory |
![Add Add](images/add.gif) |
Add accessors for header/trailer comments #257. Fixes CSV-304. Thanks to Peter Hull, Bruno P. Kinoshita, Gary Gregory. |
ggregory |
![Add Add](images/add.gif) |
Add github/codeql-action. |
ggregory |
![Update Update](images/update.gif) |
Bump actions/cache from 2.1.6 to 3.0.10 #196, #233, #243, #267, #271. Thanks to Dependabot, Gary Gregory. |
kinow |
![Update Update](images/update.gif) |
Bump actions/checkout from 2.3.4 to 3.1.0 #188, #195, #220, #272. Thanks to Dependabot, Gary Gregory. |
ggregory |
![Update Update](images/update.gif) |
Bump actions/setup-java from 2 to 3.5.1. Thanks to Gary Gregory. |
ggregory |
![Update Update](images/update.gif) |
Bump actions/upload-artifact from 3.1.0 to 3.1.1 #280. Thanks to Dependabot. |
ggregory |
![Update Update](images/update.gif) |
Bump commons-parent from 52 to 57 #264, #288, #298, #323. Thanks to Gary Gregory. |
ggregory |
![Update Update](images/update.gif) |
Bump checkstyle from 8.44 to 9.2.1 #180, #190, #194, #202, #207. Thanks to Dependabot. |
ggregory |
![Update Update](images/update.gif) |
Bump junit-jupiter from 5.8.0-M1 to 5.9.1 #179, #186, #201, #244, #263. Thanks to Dependabot. |
ggregory |
![Update Update](images/update.gif) |
Bump jmh-core from 1.32 to 1.36 #176, #208, #229, #285. Thanks to Dependabot. |
ggregory |
![Update Update](images/update.gif) |
Bump jmh-generator-annprocess from 1.32 to 1.36 #175, #206, #226, #283. Thanks to Dependabot. |
ggregory |
![Update Update](images/update.gif) |
Bump mockito-core from 3.11.2 to 4.11.0 #187, #197, #204, #212, #230, #237, #251, #259, #284, #292, #297. Thanks to Dependabot, Gary Gregory. |
ggregory |
![Update Update](images/update.gif) |
Bump maven-pmd-plugin from 3.14.0 to 3.19.0 #184, #219, #238, #254, #258. Thanks to Dependabot. |
ggregory |
![Update Update](images/update.gif) |
Bump pmd from 6.36.0 to 6.52.0 #173, #189, #193, #199, #227, #233, #214, #236, #240, #247, #255, #273. Thanks to Dependabot, Gary Gregory. |
ggregory |
![Update Update](images/update.gif) |
Bump opencsv from 5.5.1 to 5.7.1 #182, #221, #260, #281. Thanks to Gary Gregory. |
ggregory |
![Update Update](images/update.gif) |
Bump spotbugs-maven-plugin from 4.3.0 to 4.7.3.0 #192, #198, #203, #211, #225, #234, #242, #245, #261, #275, #282. Thanks to Dependabot. |
ggregory |
![Update Update](images/update.gif) |
Bump com.github.spotbugs:spotbugs from 4.5.3 to 4.7.2. Thanks to Gary Gregory. |
ggregory |
![Update Update](images/update.gif) |
Bump h2 from 1.4.200 to 2.1.214 #200, #205, #213, #239. Thanks to Dependabot. |
kinow |
![Update Update](images/update.gif) |
Bump maven-javadoc-plugin from 3.3.0 to 3.4.1. Thanks to Gary Gregory. |
ggregory |
![Update Update](images/update.gif) |
Bump biz.aQute.bnd:biz.aQute.bndlib from 5.3.0 to 6.3.1. Thanks to Gary Gregory. |
ggregory |
![Update Update](images/update.gif) |
Bump jacoco-maven-plugin from 0.8.7 to 0.8.8. Thanks to Gary Gregory. |
ggregory |
![Update Update](images/update.gif) |
Bump japicmp-maven-plugin from 0.15.3 to 0.16.0. Thanks to Gary Gregory. |
ggregory |
![Update Update](images/update.gif) |
Bump maven-checkstyle-plugin from 3.1.2 to 3.2.0 #253. Thanks to Dependabot. |
kinow |
Release 1.9.0 – 2021-07-24
Type |
Changes |
By |
![Fix Fix](images/fix.gif) |
Replace FindBugs with SpotBugs #56. Thanks to Amey Jadiye. |
ggregory |
![Fix Fix](images/fix.gif) |
Javadoc typo in CSVFormat let's -> lets #57. Thanks to Chen. |
ggregory |
![Fix Fix](images/fix.gif) |
CSVFormat.printWithEscapes throws StringIndexOutOfBoundsException when value is Reader #61. Fixes CSV-259. Thanks to Chen. |
ggregory |
![Fix Fix](images/fix.gif) |
Improve CSVFormat test coverage #63. Thanks to Chen. |
ggregory |
![Fix Fix](images/fix.gif) |
Fix CSVFileParserTest.java to allow for a null return value from record.getComment() #62. Thanks to Chen. |
ggregory |
![Fix Fix](images/fix.gif) |
Improve test coverage in CSVFormatTest #65. Thanks to Chen. |
ggregory |
![Fix Fix](images/fix.gif) |
Removed invalid Javadoc markup for CSVFormat EXCEL #64. Thanks to Chen. |
ggregory |
![Fix Fix](images/fix.gif) |
Improve CSVRecord and CSVPrinter code coverage #66. Thanks to Chen. |
ggregory |
![Fix Fix](images/fix.gif) |
Improve lexer and token coverage #67. Thanks to Chen. |
ggregory |
![Fix Fix](images/fix.gif) |
CSVFormat.format trims last delimiter if the delimiter is a white space #71. Fixes CSV-211. Thanks to Alpesh Kulkarni, Chen. |
ggregory |
![Fix Fix](images/fix.gif) |
Replace org.apache.commons.csv.Assertions.notNull() with Objects.requireNonNull(). Thanks to Gary Gregory. |
ggregory |
![Fix Fix](images/fix.gif) |
Line number is not proper at EOF. Fixes CSV-149. Thanks to Kranthi, Gary Gregory, Brent Worden, dota17. |
ggregory |
![Fix Fix](images/fix.gif) |
Parser iterates over the last CSV Record twice. Fixes CSV-195. Thanks to Rodolfo Duldulao, Rodolfo Duldulao, Michael Vitz, dota17. |
ggregory |
![Fix Fix](images/fix.gif) |
Minor improvements #126, #127, #130. Fixes CSV-267. Thanks to Arturo Bernal. |
ggregory |
![Fix Fix](images/fix.gif) |
Add possibility to use ResultSet header meta data as CSV header #11. Fixes CSV-123. Thanks to Emmanuel Bourg, Benedikt Ritter, shivakrishnaah, Gary Gregory. |
ggregory |
![Fix Fix](images/fix.gif) |
Add test cases for withIgnoreSurroundingSpaces() and withTrim() #70. Fixes CSV-148. Thanks to dota17. |
ggregory |
![Fix Fix](images/fix.gif) |
Update CSVParser.parse(File, Charset, CSVFormat) from IO to NIO. Thanks to Gary Gregory. |
ggregory |
![Fix Fix](images/fix.gif) |
Missing separator with print(object) followed by printRecord(Object[]) #157. Fixes CSV-271. Thanks to Amar Prakash Pandey. |
ggregory |
![Fix Fix](images/fix.gif) |
Fix EOL checking for read array in ExtendedBufferedReader #5. Fixes CSV-158. Thanks to Alexander Bondarev, Benedikt Ritter, Gary Gregory, Chen. |
ggregory |
![Fix Fix](images/fix.gif) |
Print from Reader with embedded quotes generates incorrect output #78. Fixes CSV-263. Thanks to Jason A. Guild, Gary Gregory. |
ggregory |
![Fix Fix](images/fix.gif) |
Replace JUnit assert by simpler but equivalent calls. #159. Thanks to Arturo Bernal. |
ggregory |
![Fix Fix](images/fix.gif) |
Update gitignore to ignore idea and vscode #160. Thanks to Seth Falco. |
ggregory |
![Fix Fix](images/fix.gif) |
Update CSVBenchmark #165. Fixes CSV-281. Thanks to belugabehr. |
ggregory |
![Fix Fix](images/fix.gif) |
Remove Whitespace Check Determines Delimiter Twice #167. Fixes CSV-283. Thanks to belugabehr. |
ggregory |
![Fix Fix](images/fix.gif) |
Document and Automate CSV Benchmark Harness #166. Fixes CSV-283. Thanks to belugabehr. |
ggregory |
![Fix Fix](images/fix.gif) |
Optimize Lexer Delimiter Check for One Character Delimiter #163. Fixes CSV-279. Thanks to belugabehr. |
ggregory |
![Fix Fix](images/fix.gif) |
SpotBugs Error: Medium: org.apache.commons.csv.CSVParser.getHeaderNames() may expose internal representation by returning CSVParser.headerNames [org.apache.commons.csv.CSVParser] At CSVParser.java:[line 599] EI_EXPOSE_REP. Thanks to Gary Gregory. |
ggregory |
![Fix Fix](images/fix.gif) |
SpotBugs Error: Medium: new org.apache.commons.csv.CSVParser(Reader, CSVFormat, long, long) may expose internal representation by storing an externally mutable object into CSVParser.format [org.apache.commons.csv.CSVParser] At CSVParser.java:[line 433] EI_EXPOSE_REP2. Thanks to Gary Gregory. |
ggregory |
![Fix Fix](images/fix.gif) |
SpotBugs Error: Medium: new org.apache.commons.csv.CSVParser(Reader, CSVFormat, long, long) may expose internal representation by storing an externally mutable object into CSVParser.headerMap [org.apache.commons.csv.CSVParser] At CSVParser.java:[line 437] EI_EXPOSE_REP2. Thanks to Gary Gregory. |
ggregory |
![Fix Fix](images/fix.gif) |
SpotBugs Error: Medium: new org.apache.commons.csv.CSVParser(Reader, CSVFormat, long, long) may expose internal representation by storing an externally mutable object into CSVParser.headerNames [org.apache.commons.csv.CSVParser] At CSVParser.java:[line 438] EI_EXPOSE_REP2. Thanks to Gary Gregory. |
ggregory |
![Fix Fix](images/fix.gif) |
SpotBugs Error: Medium: new org.apache.commons.csv.CSVPrinter(Appendable, CSVFormat) may expose internal representation by storing an externally mutable object into CSVPrinter.format [org.apache.commons.csv.CSVPrinter] At CSVPrinter.java:[line 100] EI_EXPOSE_REP2. Thanks to Gary Gregory. |
ggregory |
![Fix Fix](images/fix.gif) |
Formalize PerformanceTest #168. Fixes CSV-284. Thanks to belugabehr. |
ggregory |
![Fix Fix](images/fix.gif) |
Reuse Buffers in Lexer for Delimiter Detection #162. Fixes CSV-278. Thanks to belugabehr. |
ggregory |
![Fix Fix](images/fix.gif) |
Cleanup and Document Performance Test Harness #170. Fixes CSV-286. Thanks to belugabehr. |
ggregory |
![Fix Fix](images/fix.gif) |
Update buffer position when reading line comment #120. Fixes CSV-265. Thanks to belugabehr. |
ggregory |
![Add Add](images/add.gif) |
Make CSVRecord#toList() public. Fixes CSV-275. Thanks to Michael Wyraz, Gary Gregory. |
ggregory |
![Add Add](images/add.gif) |
Add CSVRecord#stream(). Thanks to Gary Gregory. |
ggregory |
![Add Add](images/add.gif) |
Add CSVParser#stream(). Thanks to Gary Gregory. |
ggregory |
![Add Add](images/add.gif) |
Make the method CSVRecord.putIn(Map) public. Fixes CSV-184. Thanks to Gaurav Agarwal, M. Steiger, Gary Gregory. |
ggregory |
![Add Add](images/add.gif) |
Add test cases for CSVRecord with get(Enum) and toString. #54. Thanks to dota17. |
ggregory |
![Add Add](images/add.gif) |
Add and use CSVFormat.Builder, deprecated CSVFormat#with methods, based on #73. Thanks to Gary Gregory, dota17. |
ggregory |
![Add Add](images/add.gif) |
Add support for String delimiters #76. Fixes CSV-206. Thanks to Gary Gregory, dota17. |
ggregory |
![Update Update](images/update.gif) |
Update org.junit.jupiter:junit-jupiter from 5.6.0 to 5.7.0, #84 #109 Thanks to Gary Gregory. |
ggregory |
![Update Update](images/update.gif) |
Update tests from Apache Commons Lang 3.9 to 3.12.0. Thanks to Gary Gregory. |
ggregory |
![Update Update](images/update.gif) |
Update tests from commons-io:commons-io 2.6 to 2.11.0, #108. Thanks to Gary Gregory. |
ggregory |
![Update Update](images/update.gif) |
Bump actions/checkout from v1 to v2.3.4, #79, #92, #121. Thanks to Dependabot. |
ggregory |
![Update Update](images/update.gif) |
Bump commons-parent from 50 to 51 #80. Thanks to Dependabot. |
ggregory |
![Update Update](images/update.gif) |
Bump tests from opencsv from 3.1 to 5.5.1 #81, #137, #158. Thanks to Dependabot, Gary Gregory. |
ggregory |
![Update Update](images/update.gif) |
Update tests from super-csv from 2.2.1 to 2.4.0 #86. Thanks to Gary Gregory. |
ggregory |
![Update Update](images/update.gif) |
Bump build actions/setup-java from v1.4.0 to v2, #101, #113. Thanks to Dependabot, Gary Gregory. |
ggregory |
![Update Update](images/update.gif) |
Bump maven-pmd-plugin from 3.13.0 to 3.14.0 #122. Thanks to Dependabot. |
ggregory |
![Update Update](images/update.gif) |
Bump tests from org.mockito:mockito-core 3.2.4 -> 3.11.2; #88, #107, #110, #123, #128, #129, #156. Thanks to Gary Gregory, Dependabot. |
ggregory |
![Update Update](images/update.gif) |
Bump actions/cache from v2 to v2.1.6 #132, #153. Thanks to Dependabot. |
ggregory |
![Update Update](images/update.gif) |
Bump maven-checkstyle-plugin from 3.0.0 to 3.1.2 #131. Thanks to Gary Gregory, Dependabot. |
ggregory |
![Update Update](images/update.gif) |
Bump checkstyle from 8.29 to 8.44. Thanks to Gary Gregory. |
ggregory |
![Update Update](images/update.gif) |
Bump junit-jupiter from 5.7.0 to 5.8.0-M1 #133, #149. Thanks to Dependabot, Gary Gregory. |
ggregory |
![Update Update](images/update.gif) |
Bump commons.jacoco.version from 0.8.5 to 0.8.7 (Java 16). Thanks to Dependabot. |
ggregory |
![Update Update](images/update.gif) |
Bump commons.spotbugs.version from 4.0.4 to 4.3.0 (Java 16). Thanks to Dependabot. |
ggregory |
![Update Update](images/update.gif) |
Bump maven-javadoc-plugin from 3.2.0 to 3.3.0. Thanks to Gary Gregory. |
ggregory |
![Update Update](images/update.gif) |
Bump jmh-generator-annprocess from 1.5.2 to 1.32 #151. Thanks to Dependabot. |
ggregory |
![Update Update](images/update.gif) |
Bump PMD core from 6.29.0 to 6.36.0. Thanks to Dependabot. |
ggregory |
![Update Update](images/update.gif) |
Bump biz.aQute.bnd:biz.aQute.bndlib from 5.1.2 to 5.3.0. Thanks to Dependabot. |
ggregory |
Release 1.8 – 2020-02-01
Type |
Changes |
By |
![Add Add](images/add.gif) |
Add CSVRecord.isSet(int) method #52. Fixes CSV-255. Thanks to 0x100. |
ggregory |
![Fix Fix](images/fix.gif) |
Char escape doesn't work properly with quoting. Fixes CSV-135. Thanks to Mateusz Zakarczemny. |
sebb |
![Fix Fix](images/fix.gif) |
Test case failures following CSVFormat#equals() update. Fixes CSV-244. |
sebb |
![Fix Fix](images/fix.gif) |
CSVFormat withTrim() and withIgnoreSurroundingSpaces() need better docs. Fixes CSV-243. |
sebb |
![Fix Fix](images/fix.gif) |
CSVFormat equals() and hashCode() don't use all fields. Fixes CSV-242. |
sebb |
![Fix Fix](images/fix.gif) |
CSVFormat#validate() does not account for allowDuplicateHeaderNames #43. Fixes CSV-241. Thanks to LuckyIlam, Gary Gregory. |
ggregory |
![Fix Fix](images/fix.gif) |
Post 1.7 release fixes. Fixes CSV-245. Thanks to Alex Herbert. |
ggregory |
![Fix Fix](images/fix.gif) |
Upgrade test framework to JUnit 5 Jupiter #49, #50. Fixes CSV-252. Thanks to Alex Herbert. |
ggregory |
![Fix Fix](images/fix.gif) |
A single empty header is allowed when not allowing empty column headers. #47. Fixes CSV-247. Thanks to Alex Herbert, Gary Gregory. |
ggregory |
![Fix Fix](images/fix.gif) |
CSVRecord is not Serializable. Fixes CSV-248. Thanks to Alex Herbert. |
ggregory |
![Fix Fix](images/fix.gif) |
Use test scope for supercsv #48. Thanks to Alex Herbert. |
ggregory |
![Update Update](images/update.gif) |
Update tests from H2 1.4.199 to 1.4.200. Thanks to Gary Gregory. |
ggregory |
![Update Update](images/update.gif) |
Update tests from Hamcrest 2.1 to 2.2. Thanks to Gary Gregory. |
ggregory |
![Update Update](images/update.gif) |
Update tests from Mockito 3.1.0 to 3.2.4. Thanks to Gary Gregory. |
ggregory |
![Update Update](images/update.gif) |
Fix typos in site and test #53. Thanks to Chen. |
ggregory |
![Update Update](images/update.gif) |
Fix typo performance test #55. Thanks to Chen. |
ggregory |
Release 1.7 – 2019-06-01
Type |
Changes |
By |
![Add Add](images/add.gif) |
Add predefined CSVFormats for printing MongoDB CSV and TSV. Fixes CSV-233. Thanks to Gary Gregory. |
ggregory |
![Fix Fix](images/fix.gif) |
Fix escape character for POSTGRESQL_TEXT and POSTGRESQL_CSV formats. Fixes CSV-208. Thanks to Jurrie Overgoor. |
ggregory |
![Fix Fix](images/fix.gif) |
Site link "Source Repository" does not work. Fixes CSV-232. Thanks to Jurrie Overgoor, Gary Gregory. |
ggregory |
![Add Add](images/add.gif) |
Add support for java.sql.Clob. Fixes CSV-234. Thanks to Roberto Benedetti, Gary Gregory. |
ggregory |
![Update Update](images/update.gif) |
Update to Java 8. Fixes CSV-237. Thanks to Gary Gregory. |
ggregory |
![Fix Fix](images/fix.gif) |
Escape quotes in CLOBs #39. Fixes CSV-238. Thanks to Stephen Olander-Waters. |
ggregory |
![Add Add](images/add.gif) |
Cannot get headers in column order from CSVRecord. Fixes CSV-239. Thanks to Gary Gregory, Dave Moten. |
ggregory |
![Update Update](images/update.gif) |
Update tests from H2 1.4.198 to 1.4.199. Thanks to Gary Gregory. |
ggregory |
Release 1.6 – 2018-09-22
Type |
Changes |
By |
![Update Update](images/update.gif) |
Add more documentation to CSVPrinter. Fixes CSV-231. |
britter |
![Add Add](images/add.gif) |
Add autoFlush option for CsvPrinter. PR #24. Fixes CSV-217. Thanks to Korolyov Alexei. |
ggregory |
![Fix Fix](images/fix.gif) |
The behavior of quote char using is not similar as Excel does when the first string contains CJK char(s). Fixes CSV-219. Thanks to Zhang Hongda. |
ggregory |
![Fix Fix](images/fix.gif) |
Don't quote cells just because they have UTF-8 encoded characters. Fixes CSV-172. Thanks to Andrew Pennebaker. |
ggregory |
![Add Add](images/add.gif) |
Add API org.apache.commons.csv.CSVFormat.withSystemRecordSeparator(). Fixes CSV-220. Thanks to Gary Gregory. |
ggregory |
![Fix Fix](images/fix.gif) |
Inconsistency between Javadoc of CSVFormat DEFAULT EXCEL. Fixes CSV-223. Thanks to Samuel Martin. |
ggregory |
![Fix Fix](images/fix.gif) |
Create CSVFormat.ORACLE preset. Fixes CSV-209. Thanks to Gary Gregory. |
ggregory |
![Fix Fix](images/fix.gif) |
Some multi-iterator parsing peek sequences incorrectly consume elements. Fixes CSV-224. Thanks to David Warshaw. |
ggregory |
![Fix Fix](images/fix.gif) |
Parse method should avoid creating a redundant BufferedReader. Fixes CSV-225. Thanks to Anson Schwabecher. |
ggregory |
![Fix Fix](images/fix.gif) |
Add predefined CSVFormats for printing MongoDB CSV and TSV. Fixes CSV-233. Thanks to Gary Gregory. |
ggregory |
Release 1.5 – 2017-09-03
Type |
Changes |
By |
![Fix Fix](images/fix.gif) |
withNullString value is printed without quotes when QuoteMode.ALL is specified; add QuoteMode.ALL_NON_NULL. PR #17. Fixes CSV-203. Thanks to Richard Wheeldon, Kai Paroth. |
ggregory |
![Fix Fix](images/fix.gif) |
Fix outdated comments about FileReader in CSVParser #13. Fixes CSV-194. Thanks to Marc Prud'hommeaux. |
ggregory |
![Fix Fix](images/fix.gif) |
Fix incorrect method name 'withFirstRowAsHeader' in user guide. Fixes CSV-193. Thanks to Matthias Wiehl. |
ggregory |
![Fix Fix](images/fix.gif) |
Negative numeric values in the first column are always quoted in minimal mode. Fixes CSV-171. Thanks to Gary Gregory, Michael Graessle, Adrian Bridgett. |
ggregory |
![Update Update](images/update.gif) |
Update platform requirement from Java 6 to 7. Fixes CSV-187. Thanks to Gary Gregory. |
ggregory |
![Update Update](images/update.gif) |
Do not use RuntimeException in CSVParser.iterator().new Iterator() {...}.getNextRecord(). Fixes CSV-201. Thanks to Benedikt Ritter, Gary Gregory. |
ggregory |
![Add Add](images/add.gif) |
CSVParser: Add factory method accepting InputStream. Fixes CSV-189. Thanks to Peter Holzwarth, Gary Gregory. |
ggregory |
![Add Add](images/add.gif) |
Add convenience API CSVFormat.print(File, Charset). Fixes CSV-190. Thanks to Gary Gregory. |
ggregory |
![Add Add](images/add.gif) |
Add convenience API CSVFormat.print(Path, Charset). Fixes CSV-191. Thanks to Gary Gregory. |
ggregory |
![Add Add](images/add.gif) |
Add convenience API CSVParser.parse(Path, Charset, CSVFormat). Fixes CSV-192. Thanks to Gary Gregory. |
ggregory |
![Add Add](images/add.gif) |
Add convenience API CSVFormat#printer() to print to System.out. Fixes CSV-205. Thanks to Gary Gregory. |
ggregory |
![Add Add](images/add.gif) |
Provide a CSV Format for printing PostgreSQL CSV and Text formats. Fixes CSV-207. Thanks to Gary Gregory. |
ggregory |
![Add Add](images/add.gif) |
Adding a placeholder in the Lexer and CSV parser to store the end-of-line string. Fixes CSV-214. Thanks to Nitin Mahendru, Gary Gregory. |
ggregory |
Release 1.4 – 2016-05-28
Type |
Changes |
By |
![Update Update](images/update.gif) |
Make CSVPrinter.print(Object) GC-free. Fixes CSV-181. Thanks to Gary Gregory. |
ggregory |
![Add Add](images/add.gif) |
Allow some printing operations directly from CSVFormat. Fixes CSV-182. Thanks to Gary Gregory. |
ggregory |
![Update Update](images/update.gif) |
Drop ferc.gov tests. Fixes CSV-183. |
ggregory |
Release 1.3 – 2016-05-09
Type |
Changes |
By |
![Add Add](images/add.gif) |
Add shortcut method for using first record as header to CSVFormat. Fixes CSV-179. |
britter |
![Add Add](images/add.gif) |
Add withHeader(Class<? extends Enum>) to CSVFormat. Fixes CSV-180. |
britter |
![Update Update](images/update.gif) |
Comment line hides next record; update Javadoc to make behavior clear. Fixes CSV-167. Thanks to Rene. |
sebb |
![Update Update](images/update.gif) |
CSVPrinter doesn't skip creation of header record if skipHeaderRecord is set to true. Fixes CSV-153. Thanks to Wren. |
britter |
![Add Add](images/add.gif) |
Add IgnoreCase option for accessing header names. Fixes CSV-159. Thanks to Yamil Medina. |
ggregory |
![Add Add](images/add.gif) |
The null string should be case-sensitive when reading records. Fixes CSV-169. Thanks to Gary Gregory. |
ggregory |
![Fix Fix](images/fix.gif) |
CSVFormat.nullString should not be escaped. Fixes CSV-168. Thanks to Gary Gregory, cornel creanga. |
ggregory |
![Fix Fix](images/fix.gif) |
CSVFormat.MYSQL nullString should be "\N". Fixes CSV-170. Thanks to Gary Gregory, cornel creanga. |
ggregory |
![Fix Fix](images/fix.gif) |
Fix Javadoc to say CSVFormat with() methods return a new CSVFormat. Fixes CSV-161. Thanks to Gary Gregory, Kristof Meixner, Emmanuel Bourg. |
ggregory |
![Add Add](images/add.gif) |
Support for ignoring trailing delimiter. Fixes CSV-175. Thanks to Gary Gregory, Chris Jones. |
ggregory |
![Add Add](images/add.gif) |
Support trimming leading and trailing blanks. Fixes CSV-177. Thanks to Gary Gregory. |
ggregory |
![Add Add](images/add.gif) |
Create default formats for Informix UNLOAD and UNLOAD CSV. Fixes CSV-178. Thanks to Gary Gregory. |
ggregory |
Release 1.2 – 2015-08-24
Type |
Changes |
By |
![Fix Fix](images/fix.gif) |
CSVFormat.with* methods clear the header comments. Fixes CSV-145. Thanks to Frank Ulbricht. |
ggregory |
![Fix Fix](images/fix.gif) |
Incorrect Javadoc on QuoteMode.NONE. Fixes CSV-156. Thanks to Jason Steenstra-Pickens. |
ggregory |
![Add Add](images/add.gif) |
Add enum CSVFormat.Predefined that contains the default CSVFormat values. Fixes CSV-157. |
ggregory |
Release 1.1 – 2014-11-16
Type |
Changes |
By |
![Fix Fix](images/fix.gif) |
QuoteMode.NON_NUMERIC doesn't work with CSVPrinter.printRecords(ResultSet). Fixes CSV-140. Thanks to Damjan Jovanovic. |
ggregory |
![Fix Fix](images/fix.gif) |
CSVFormat#withHeader doesn't work well with #printComment, add withHeaderComments(String...). Fixes CSV-130. Thanks to Sergei Lebedev. |
ggregory |
![Fix Fix](images/fix.gif) |
CSVFormat.EXCEL should ignore empty header names. Fixes CSV-128. |
ggregory |
![Fix Fix](images/fix.gif) |
Incorrect Javadoc referencing org.apache.commons.csv.CSVFormat withQuote(). Fixes CSV-132. Thanks to Sascha Szott. |
ggregory |
![Update Update](images/update.gif) |
Improve toString() implementation of CSVRecord. Fixes CSV-124. Thanks to Kalyan. |
brentworden |
![Update Update](images/update.gif) |
Unified parameter validation. Fixes CSV-134. Thanks to wu wen. |
ggregory |
![Add Add](images/add.gif) |
Add CSVFormat#with 0-arg methods matching boolean arg methods. Fixes CSV-129. |
ggregory |
![Add Add](images/add.gif) |
Save positions of records to enable random access. Fixes CSV-131. Thanks to Holger Stratmann. |
ggregory |
![Add Add](images/add.gif) |
CSVPrinter.printRecord(ResultSet) with metadata. Fixes CSV-139. |
ggregory |
Release 1.0 – 2014-08-14
Type |
Changes |
By |
![Fix Fix](images/fix.gif) |
No longer works with Java 6. Fixes CSV-125. |
britter |
![Fix Fix](images/fix.gif) |
NullPointerException when empty header string and null string of "". Fixes CSV-122. Thanks to Mike Lewis. |
britter |
![Update Update](images/update.gif) |
Validate format parameters in constructor. Fixes CSV-117. |
sebb |
![Add Add](images/add.gif) |
IllegalArgumentException thrown when the header contains duplicate names when the column names are empty. Fixes CSV-121. Thanks to Sebastian Hardt. |
ggregory |
![Add Add](images/add.gif) |
CSVFormat#withHeader doesn't work with CSVPrinter. Fixes CSV-120. Thanks to Sergei Lebedev. |
ggregory |
![Add Add](images/add.gif) |
CSVFormat is missing a print(...) method. Fixes CSV-119. Thanks to Sergei Lebedev. |
ggregory |
![Fix Fix](images/fix.gif) |
CSVRecord.toMap() throws NPE on formats with no
headers. Fixes CSV-118. Thanks to Enrique Lara. |
ggregory |
![Fix Fix](images/fix.gif) |
Check whether ISE/IAE are being used appropriately. Fixes CSV-113. |
sebb |
![Fix Fix](images/fix.gif) |
CSVFormat constructor should reject a header array with duplicate
entries. Fixes CSV-114. |
sebb |
![Fix Fix](images/fix.gif) |
HeaderMap is inconsistent when it is parsed from an input with
duplicate columns names. Fixes CSV-112. |
britter |
![Fix Fix](images/fix.gif) |
CSVRecord.toMap() fails if row length shorter than header length. Fixes CSV-111. |
ggregory |
![Fix Fix](images/fix.gif) |
CSVFormat.format allways append null. Fixes CSV-106. |
ggregory |
![Add Add](images/add.gif) |
Add Map conversion API to CSVRecord. Fixes CSV-105. |
ggregory |
![Fix Fix](images/fix.gif) |
CSVParser: getHeaderMap throws NPE. Fixes CSV-100. |
ggregory |
![Update Update](images/update.gif) |
Lots of possible changes. Fixes CSV-42. Thanks to Bob Smith. |
ebourg |
![Update Update](images/update.gif) |
Use Character instead of char for char fields except delimiter. Fixes CSV-78. |
sebb |
![Update Update](images/update.gif) |
Revert Builder implementation in CSVFormat. Fixes CSV-99. |
britter |
![Fix Fix](images/fix.gif) |
CSVRecord does not verify that the length of the header mapping
matches the number of values. Fixes CSV-53. |
britter |
![Update Update](images/update.gif) |
Allow the handling of NULL values. Fixes CSV-93. |
ggregory |
![Update Update](images/update.gif) |
Use the Builder pattern for CSVFormat. Fixes CSV-68. |
ggregory |
![Update Update](images/update.gif) |
Clarify comment handling. Fixes CSV-84. |
sebb |
![Update Update](images/update.gif) |
CSVParser.nextValue() seems pointless. Fixes CSV-25. |
ebourg |
![Update Update](images/update.gif) |
Allow the String value for null to be customized for the CSV
printer. Fixes CSV-97. |
ggregory |
![Update Update](images/update.gif) |
Not possible to create a CSVFormat from scratch. Fixes CSV-88. |
ggregory |
![Add Add](images/add.gif) |
Keep track of record number. Fixes CSV-52. |
ggregory |
![Update Update](images/update.gif) |
Lexer should only use char fields. Fixes CSV-94. |
sebb |
![Add Add](images/add.gif) |
Need a way to extract parsed headers, e.g. for use in formatting
output. Fixes CSV-92. |
ggregory |
![Add Add](images/add.gif) |
Header support. Fixes CSV-65. |
ebourg |
![Fix Fix](images/fix.gif) |
Confusing semantic of the ignore leading/trailing spaces parameters. Fixes CSV-54. |
sebb |
![Update Update](images/update.gif) |
Add convenience methods to CSVLexer. Fixes CSV-71. |
sebb |
![Update Update](images/update.gif) |
Is CharBuffer really needed, now that StringBuilder is available?. Fixes CSV-59. |
ebourg |
![Update Update](images/update.gif) |
Replace while(true)-loop in CSVParser.getRecord with do-while-loop. Fixes CSV-55. |
britter |
![Fix Fix](images/fix.gif) |
CSVFormat describes itself as immutable, but it is not - in
particular it is not thread-safe. Fixes CSV-34. |
sebb |
![Fix Fix](images/fix.gif) |
Endless loops in CSV parser. Fixes CSV-36. |
yonik |
![Fix Fix](images/fix.gif) |
NullPointerException in CSVPrinter.print()/println(). Fixes CSV-13. |
ebourg |
![Update Update](images/update.gif) |
CSVPrinter overhaul. Fixes CSV-45. |
yonik |
![Fix Fix](images/fix.gif) |
Excel strategy uses wrong separator. Fixes CSV-23. |
ebourg |
![Update Update](images/update.gif) |
CSVStrategy has modifiable public static variables. Fixes CSV-49. Thanks to Bob Smith. |
ebourg |
![Add Add](images/add.gif) |
Predefined format for MYSQL. Fixes CSV-48. |
ebourg |
![Update Update](images/update.gif) |
Reduce visibility of methods in internal classes. Fixes CSV-46. |
ebourg |
![Update Update](images/update.gif) |
ExtendedBufferedReader does too much. Fixes CSV-26. |
jacopoc |
![Update Update](images/update.gif) |
Decide whether to keep the csv.writer subpackage. Fixes CSV-27. |
ebourg |
|