OrangeSignal CSV 2.2.0 リリース

本日 OrangeSignal CSV 2.2.0 をリリースしました。

http://orangesignal.github.io/orangesignal-csv/

このバージョンでは、以下の機能追加を行いました。

  • CsvColumn アノテーションaccess、required、defaultValue を追加。
  • CsvEntityWriter と関連クラスへ、列見出し (ヘッダ) 行の出力抑止機能 disableWriteHeader を追加。

これで現時点での機能追加要望には一区切りついた感じがします。
後はまだヤルヤラ(やるかやらないか)や時期未定ですが、Java8 対応や、カバレッジツールの変更、Gradle への移行などチャレンジ系ですね。

お知らせ

何年か前の過去記事に心無いコメントが寄せられていてました。(同じ方からの複数投稿)
僕はこの方の事はまったく知りませんが、見ず知らずの方からの唐突で議論の余地もないような不躾なコメントは不愉快ですね。現実社会でもそういった振舞いをされる方なんでしょう。

と、残念なことなのですが、これを受けてコメントの投稿方法をはてなユーザーのみ投稿可能に変更しました。

OrangeSignal CSV 2.1.0 リリース

本日 OrangeSignal CSV 2.1.0 をリリースしました。

http://orangesignal.github.io/orangesignal-csv/

このバージョンでは、皆様からご要望のあった

  • 項目数チェック
  • 配列型とのマッピング
  • ヘッダー出力抑止オプション

などの機能追加を行いました。
あと地味ですが、

  • CsvReader のパフォーマンス向上

も行いました。
GC 回数の大幅な低減とそれに伴う停止時間の低下がメインです。Super CSV 以下かつ opencsv 並みには GC 回数を低下させたので、ラージデータを処理する場合に活きてくるかと思います。

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年ぶりのリリースとなります。今回の機能追加と変更は、主にご利用頂いている方々からのフィードバック対応となっています。

主な変更内容

  • POJOCSV を行単位でやり取りできる各種 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 へのプルリクやこのブログへのコメントなど頂ければと思います。

OrangeSignal CSV 2.0 Javadoc style

一部の方より色味が見にくいと評判だった OrangeSignal CSVjavadoc ですが、次バージョンより、(以前の) SpringFramework javadoc スタイルをやめて、Java 7 の javadoc スタイルとなります。

http://orangesignal.github.io/orangesignal-csv/apidocs/

今日はここまで