15. リリースノート

15.1. ver.2.3 - 2022-10-23

  • 変更内容

    • #45 - 依存ライブラリを更新しました。

      • Sfl4j のバージョンを 1.7.36 に更新しました。

      • テスト用のログライブラリを Log4j を廃止してLobcakに変更しました。

      • Junit のバージョンを 4.13.2 に更新しました。

      • 不要なライブラリ Ognl を削除しました。

    • #46 - BeanValidationによりバリデーション処理を修正。

      • HibernateValidatorのバージョンを6.x系の最新版に更新しました。

      • HibernateValidatorのバージョンに依存しないように、CsvValidatorのデフォルトのメッセージ処理をSuperCsvAnnotation用のデフォルト処理に変更しました。

    • #47 - 読み込み/書き込み用のメソッドを追加。

15.2. ver.2.2 - 2018-07-14

  • 修正内容

    • #38 - BeanValidationを使ったときのメッセージの処理を改善しました。

      • MessageInterpolator において、java.text.Formatter は、スレッドセーフではないので、インスタンスを都度生成するよう修正。

      • CsvBindingErrors#reject() メソッドにおいて、エラーコードが複数できるよう追加。

      • CsvBeanValidator において、BeanValidationのメッセージを、CSVの変数を使用して再フォーマットする処理を追加。

      • MessageInterpolatorAdapter において、再フォーマットするときに渡したCSVのメッセージ変数を参照するよう修正。

      • メッセージ定義 SuperCsvMessages.properties において、JEXLを使ったとき、値をフォーマットする printer 変数のnull判定を追加。

    • #39 - LazyCsvAnnotationReader/Writer で、固定長のカラムを読み書きする際に、ヘッダー情報として、@CsvBean(header=true, headerMapper=FixedSizeHeaderMapper.class) を指定していても、反映されない事象を修正しました。

  • 変更内容

    • #30 / #41 - ResourceBundleMessageResolver を使用してプロパティファイルをResouceBundleとして読み込む時に、UTF-8のテキストファイルとして読み込むよう修正しました。

      • これにより、ASCIIコードに変換する必要は無くなります。

      • ただし、バージョンアップする際には、クラスパスルートに配置している SuperCsvMessages.properties は、文字コードUTF-8のテキストに変換する必要があります。

    • #33 / #40 - LazyCsvAnnotationBeanReader を使用し、CSVファイルを読み込むときに、アノテーションに定義しているラベルが実際のファイルの見出しに存在しないときのエラーメッセージを改善しました。

    • #34 / #35 - @CsvRegexReplace に属性 partialMatched を追加し、全体一致か、部分一致かを選択できるようにしました。

      • 初期値は、false で全体一致です。

15.3. ver.2.1 - 2017-09-23

  • 修正内容

    • #27 - MessageInterpolatorAdapter.java 内の変数 defautlMessage のタイプミスとして、 defaultMessage に修正。

    • #28 - メッセージコードを生成するメソッド MessageCodeGenerator#addCode(...) の不良の修正。

  • 変更内容

    • #26 - 固定長のサイズのカラムに対応し、アノテーション @CsvFixedSize を追加しました。

    • #29 / #31 - BeanValdiation2.0に対応しました。さらに、以下の日時型に対応しました。

      • JSR-310(Date and Time)のクラスタイプとして、OffsetDateTime/OffsetTime/Year/YearMonth/MonthDay に対応しました。

      • Joda-Timeのクラスタイプとして、YearMonth/MonthDay に対応しました。

    • #32 - カラム番号を指定しないで、ラベルによるマッピングする機能を追加しました。

    • メソッド CsvAnnotationBeanWriter#writeAll() 呼び出しの最後に、 flush() メソッドを呼ぶよう修正。

15.4. ver.2.0.3 - 2017-02-20

  • 修正内容

    • #24 - 値の変換用のアノテーション @CsvFullChar/@CsvHalfChar を設定しても値が変換されない事象を修正。

    • #25 - 書き込み前の処理をコールバックするアノテーション @CsvPreWrite を利用し、フィールドの値を書き換えても、出力されるファイルに結果が反映されない事象を修正。

15.5. ver.2.0.2 - 2017-01-30

  • 修正内容

    • #22 - メソッド CsvAnnotationWriter#writeAll(...) を呼ぶと、StackOverflowError が発生する事象を修正。

15.6. ver.2.0.1 - 2016-12-18

  • 修正内容

    • ドキュメントの誤字の見直し。

    • #20 - 合成したアノテーションのとき、共通の属性casesが上書きされない事象を修正。

  • 変更内容

    • #21 - 置換語彙を取得するプロバイダのメソッド RepalcedWordProvider#getReplacedWords(...) の戻り値を変更。語彙を格納するクラスを内部クラスに変更。

15.7. ver.2.0 - 2016-12-11

  • 根本から作り直し、大幅に変更。

    • ver.1.x系とは互換性はありません。

    • 書式用/検証用/変換用の各種アノテーションを用意し、それぞれの処理で容易に拡張できるようにしています。

15.8. ver.1.2 - 2016-09-03

  • 機能追加

    • #14 - Java8のDate and Time APIに対応。Joda-Timeに対応。

      • 前提環境を、Java8に変更。

    • #15 - Super CSV 2.4.0に対応。

    • #17 - 非推奨のアノテーションの属性の削除。

      • アノテーション @CsvDateConverter の属性 language, countryの削除。

      • アノテーション @CsvNumberConverter の属性 language, countryの削除。

    • #18 - アノテーションの属性名の変更。

      • アノテーション @CsvBooleanConverter の属性 lenientをignoreCaseに変更。

      • アノテーション @CsvEnumConverter の属性 lenientをignoreCaseに変更。

    • #19 - テスタの作成。

  • 不良修正

    • ありません。

15.9. ver.1.1 - 2014-11-30

  • 機能追加

    • #9- CellProcessorBuilderのインスタンス生成をカスタマイズ可能にする。

    • #10 - クラス名の変更 : MessageConverter -> CsvMessageConverter。

    • #11 - ResourceBundleMessageResolverのローカルのプロパティファイルの読み込み対応。

    • #12 - @CsvDateConverter/@CsvNumberConverterの属性localeの追加。

    • #13 - メソッドの名の変更 : CellProcessorBuilderContainer#registBuilder -> CellProcessorBuilderContainer#registerBuilder

    • #3 - Mavenセントラルリポジトリへの対応。

  • 不良修正

    • ありません。