Doma 1.28.0 をリリース
Doma 1.28.0 をリリースしました。
ダウンロードはこちらからどうぞ。
Mavenをご利用の方はこちらを参照ください。
以前のバージョンから移行するには移行ガイドを参照ください。
今回は、小さめの改善のみを含んでいます。
リリースノート
DOMA-277について解説
Domaの注釈処理によって自動生成されるソースコードは、次のようなstatic初期化子を含んでいます。
static { org.seasar.doma.internal.Artifact.validateVersion("1.28.0"); }
文字列リテラルで示された"1.28.0"は、注釈処理(コード生成時)に使ったDomaのバージョンです。
このstatic初期化子は、アプリの実行時に評価され、コード生成時のDomaのバージョンが実行時のDomaのバージョンと同じであるかどうかを検証します(異なればエラーになります)。
なぜこのような処理を組み込んでいるかというと、注釈処理関連の設定ミス(EclipseでFactory Pathの更新忘れなど)に気づきやすくするためです。
今回の修正では、上記のstatic初期化子のコード片を生成しないことをオプションで選択可能にしました。主な用途は、Domaで自動生成されたコードをライブラリとして配布する場合です。これまでは、ライブラリにしてもDomaの特定バージョン(ライブラリの生成に使ったバージョン)でしか動作させられませんでしたが、今回追加された機能を使うことで、Doma本体に非互換な処理が入らない限りは、バージョンの縛りがなくなります。
バージョンチェックのstatic初期化子のコード片を生成を抑制するには、注釈オプションのversion.validationにfalseを設定します。