OrangeSignal CSV 2.2.1 リリース
本日 OrangeSignal CSV 2.2.1 をリリースしました。
http://orangesignal.github.io/orangesignal-csv/
このバージョンは CSV の読込みに関する機能改善と不具合対応の推奨アップデート版となります。OrangeSignal CSV をお使いの方はアップデートをお願い致します。
OrangeSignal CSV 2.2.0 リリース
本日 OrangeSignal CSV 2.2.0 をリリースしました。
http://orangesignal.github.io/orangesignal-csv/
このバージョンでは、以下の機能追加を行いました。
- CsvColumn アノテーションに access、required、defaultValue を追加。
- CsvEntityWriter と関連クラスへ、列見出し (ヘッダ) 行の出力抑止機能 disableWriteHeader を追加。
これで現時点での機能追加要望には一区切りついた感じがします。
後はまだヤルヤラ(やるかやらないか)や時期未定ですが、Java8 対応や、カバレッジツールの変更、Gradle への移行などチャレンジ系ですね。
Java CSV ライブラリの比較 2014
以前、Java CSV ライブラリの比較 と題して OrangeSignal CSV も含めて比較記事を書いてくださった方がいました。
あれから何年か経ち、最近の Java CSV ライブラリ界隈の状況が知りたくなり調べてみたのですが、比較記事が見つからなかったので、「Java CSV ライブラリの比較 2014」と題し比較調査をしてみました。(なるべく客観的となるように比較してみました)
CSV Library Features Matrix - OrangeSignal CSV
CSV ライブラリを提供している自分で比較調査をするのも何だかなと思いながら、他の CSV ライブラリよりも後発である OrangeSignal CSV が機能面で圧倒しているのは仕方がない結果となりました。
ただそもそも opencsv はシンプルさが売りですし、Super CSV は速度やプログラマに優しいってのが売りなようです。今回はベンチマークまではとっていないので、速度やメモリ使用量などでのそれぞれの有意差については不明です。機会があればベンチマークもとってみたいですね。
ご参考まで
OrangeSignal CSV 2.0.0 released!
本日 OrangeSignal CSV 2.0.0 をリリースしました。
http://orangesignal.github.io/orangesignal-csv/
SF.jp での前公開バージョン 1.3.1 が 2011-01-23 リリースとなっているので、約3年ぶりのリリースとなります。今回の機能追加と変更は、主にご利用頂いている方々からのフィードバック対応となっています。
主な変更内容
- POJO と CSV を行単位でやり取りできる各種 Reader および Writer の追加
Validator サポート(中止)- Maven Central Repository で提供
- com.orangesignal.csv パッケージ名への変更
- jLHA ライブラリの内包化
- Java7 スタイルの Javadoc
独自なバリデーターのサポートは、「発想が活けてない」と指摘があり、僕もそうだと思っていたので中止となりました。BeanValidatorを使うか、今回追加した各 Reader の readValues と toBean/toEntity メソッド間で検証処理をして下さい。(これらのケースに当てはまらない場合は CSV のチェック処理とビジネスロジックへの読込み処理を分けるのが本来的にも適切かと思われます)
Reader/Writer、CsvManagerの具体的な使い方はテストコードを見て下さい。(先々クイックスタートページを作りたい)
また、以前より依存性のあった jLHA は、Maven Central で公開する都合上、jLHA を内包するようにしました。jLHA のライセンスについては、http://homepage1.nifty.com/dangan/en/Content/Program/Java/jLHA/jLHA.html をご覧ください。
尚、CSVライブラリとしてはこれでほぼほぼ追加要件はないと思っていますが、何かあれば GitHub へのプルリクやこのブログへのコメントなど頂ければと思います。