Quality Outreach Heads-up – JDK 22: Annotation Processing Behavior Change

原文はこちら。
The original article was written by Joe Darcy (Consulting Member of Technical Staff, Oracle).
https://inside.java/2023/10/23/quality-heads-up/

OpenJDK Quality Groupは、リリースの全体的な品質向上の手段としてOpenJDK Early Accessビルドを使ってのFOSSプロジェクトのテストを推進しています。

Quality Outreach
https://wiki.openjdk.java.net/display/quality/Quality+Outreach

このHeads upは、関係するプロジェクトに送られる定期的なコミュニケーションの一部です。

JDK 21 Is Now GA, a New VS Code Extension, and an Annotation Processing Heads-up
https://mail.openjdk.org/pipermail/quality-discuss/2023-October/001129.html

このプログラムの詳細と参加方法については、上記wikiをご覧ください。

JDK 22: Implicit Annotation Processing Behavior Change

2023年7月のQuality Outreach Updateで説明したように、JDK 21からは、暗黙のアノテーション処理が使用されている場合、つまり明示的なアノテーション処理設定オプションが使用されていないときにクラスパスから1つ以上のアノテーション・プロセッサが検出され実行された場合、javacが注意を出力します。

JDK 22 is in Rampdown Phase 2 | Annotation Processing Change Heads-up
https://mail.openjdk.org/pipermail/quality-discuss/2023-July/001122.html

それ以来注意を報告するわけですが、その文章は以下のようなものです。

A future release of javac may disable annotation processing unless at least one processor is specified by name (-processor), or a search path is specified (--processor-path--processor-module-path), or annotation processing is enabled explicitly (-proc:only-proc:full).

【訳】以下を満たさない場合、将来のjavacではアノテーション処理が無効化される可能性があります。

  • 少なくとも一つのアノテーション・プロセッサを名前で指定(-processor)している
  • 検索パスで指定(-processor-path、-processor-module-path)している
  • アノテーション処理を明示的に有効化(-proc:only, -proc:full) している

その将来のバージョンのjavacが、JDK-8306819を伴ってJDK 22 b19以後で出てきます。

[JDK-8306819] Consider disabling the compiler’s default active annotation processing
https://bugs.openjdk.org/browse/JDK-8306819

JDK 21では注意メッセージが発行されていた状況において、JDK22では注意メッセージは出ず、アノテーション・プロセッサも動作しません。アノテーション・プロセッサの実行について以前の挙動に戻すには、-proc:fullというjavacオプションを追加してください。

アノテーション処理のポリシー変更に関するフィードバックはcompiler-devメーリングリストにお寄せください。

compiler-dev Info Page
https://mail.openjdk.org/mailman/listinfo/compiler-dev

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください