- Jakarta EE 11 における変更の概要
- Jakarta Annotations 2.1 -> 3.0
- Jakarta Authentication 3.0 -> 3.1
- Jakarta Authorization 2.1 -> 3.0
- Jakarta Concurrency 3.0 -> 3.1
- Jakarta Contexts and Dependency Injection 4.0 -> 4.1
- Jakarta Config 1.0
- Jakarta Data 1.0
- Jakarta NoSQL 1.0
- Jakarta Expression Language 5.0 -> 6.0
- Jakarta Interceptors 2.1 -> 2.2
- Jakarta MVC 2.1 -> 3.0
- Jakarta Pages 3.1 -> 4.0
- Jakarta Persistence 3.1 -> 3.2
- Jakarta RESTful Web Services 3.1 -> 4.0
- Jakarta Faces 4.0 -> 5.0
- Jakarta Servlet 6.0 -> 6.1
- Jakarta Security 3.0 -> 4.0
- Jakarta Validation 3.0 -> 3.1
- Jakarta WebSocket 2.1 -> 2.2
Jakarta EE 11 における変更の概要
- Java レコードのサポート
- バーチャルスレッドのサポート
- Jakarta Data 1.0 追加
- Managed Beans 2.0 仕様の削除
- CDIによる置き換え
- SecurityManager の使用をすべて削除
- JEP411への対応
- オプション仕様の削除
- SOAP with Attachments 4.0
- XML Binding 4.0
- XML Web Service 4.0
- Java 17 以上
Jakarta Annotations 2.1 -> 3.0
- Managed Beans 仕様削除に伴い
jakarta.annotation.ManagedBean
を削除 - https://jakarta.ee/specifications/annotations/3.0/
- https://github.com/jakartaee/common-annotations-api
Jakarta Authentication 3.0 -> 3.1
- Jakarta Security の改定に合わせたAPI更新
SecurityManager
へのすべての参照を削除- https://jakarta.ee/specifications/authentication/3.1/
- https://github.com/jakartaee/authentication
Jakarta Authorization 2.1 -> 3.0
- アプリケーション毎にポリシープロバイダを追加可能とする
SecurityManager
へのすべての参照を削除とPolicy
の置き換え- https://jakarta.ee/specifications/authorization/3.0/
- https://github.com/jakartaee/authorization
Jakarta Concurrency 3.0 -> 3.1
- Java 21バーチャルスレッドとの統合
- Java Flow と ReactiveStream のサポート
- その他EJBからCDIへの置き換え、アノテーション追加
- https://jakarta.ee/specifications/concurrency/3.1/
- https://github.com/jakartaee/concurrency
Jakarta Contexts and Dependency Injection 4.0 -> 4.1
- プロデューサで
@Priority
により優先度を指定可能に String helloWorld(@HeaderParam("HEADER") String header)
のようなメソッド呼び出しのパラメータバインド- Jakarta Contexts and Dependency Injection 4.1 milestone
- https://jakarta.ee/specifications/cdi/4.1/
- https://github.com/jakartaee/cdi
Jakarta Config 1.0
- 最初の MVP (Minimum Viable Product) バージョン
- Jakarta EE 仕様には含まれない
- https://jakarta.ee/specifications/config/1.0/
- https://github.com/jakartaee/config
Jakarta Data 1.0
詳細は以下を参照してください
Jakarta NoSQL 1.0
- Jakarta EE 仕様には含まれない
- https://jakarta.ee/specifications/nosql/1.0/
- https://github.com/jakartaee/nosql
Jakarta Expression Language 5.0 -> 6.0
SecurityManager
へのすべての参照を削除java.desktop
モジュールへの依存削除- 非推奨コードの削除(
ELResolver.getFeatureDescriptors()
) - 配列に新しいプロパティ length をサポート
- https://jakarta.ee/specifications/expression-language/6.0/
- https://github.com/jakartaee/expression-language
Jakarta Interceptors 2.1 -> 2.2
- CDIからのIssueに応じ、インターセプター バインディングへのアクセスを提供
- https://jakarta.ee/specifications/interceptors/2.2/
- https://github.com/jakartaee/interceptors
public interface InvocationContext { default Set<Annotation> getInterceptorBindings() {...} default <T extends Annotation> T getInterceptorBinding(Class<T> annotationType) {...} default <T extends Annotation> Set<T> getInterceptorBindings(Class<T> annotationType) {...} }
Jakarta MVC 2.1 -> 3.0
- Jakarta EE 仕様には含まれない
- Facelets ビュー エンジン削除、CSRFのデフォルトを
IMPLICIT
に変更、他 - https://jakarta.ee/specifications/mvc/3.0/
- https://github.com/jakartaee/mvc
Jakarta Pages 3.1 -> 4.0
- エラーディスパッチ用の
jakarta.servlet.error.query_string
属性の追加(ErrorData
) - Jakarta Server Pages 3.1 時点の非推奨コード削除
- https://jakarta.ee/specifications/pages/4.0/
- https://github.com/jakartaee/pages
Jakarta Persistence 3.1 -> 3.2
- Java レコードのサポート(embeddable クラスとして)
- 主キークラスが
public
serializable
である必要がなくなった java.time
APIへの置き換えCalendar
Date
Time
Timestamp
Temporal
MapKeyTemporal
TemporalType
が非推奨java.time.Instant
java.time.Year
のサポート追加@Version
プロパティにLocalDateTime
とInstant
が利用可能に
@EnumeratedValue
アノテーションにてenumのマッピング値をカスタマイズ可能となったFindOption
RefreshOption
LockOption
の追加EntityManager.find()
EntityManager.refresh()
EntityManager.lock()
で指定可能
- テーブルアノテーションやカラムアノテーションでチェック制約とコメントの定義が可能となった
SchemaManager
API追加(テスト時などにスキーマ管理が可能)EntityManager#runWithConnection
EntityManager#callWithConnection
でJDBCに直接アクセス可能に- スタティックメタモデルの増強
- ManagedType の参照が追加(
EntityType<Book> bookType = Book_.class_;
) - 名前付きクエリやエンティティグラフ、リザルトセットマッピングの定数追加
- ManagedType の参照が追加(
- https://jakarta.ee/specifications/persistence/3.2/
- https://github.com/jakartaee/persistence
詳細な変更点については以下を参照してください。
Jakarta RESTful Web Services 3.1 -> 4.0
- CDI連携の多数の改善
- Jakarta Concurrency との統合
- https://jakarta.ee/specifications/restful-ws/4.0/
- https://github.com/jakartaee/rest
Jakarta Faces 4.0 -> 5.0
- APIコードと実装コードの分離
- クラススキャンを削除し、CDI のみに依存する
SecurityManager
へのすべての参照を削除- 非推奨コード・未使用コードの削除
- その他(検討中)
- UIInput のイベント強化(HTML5 における
oninput
など) - 非コンポーネントクラスでシステムイベントを利用可能とする
- コンバータ
Converter
,SelectItem#value
のジェネリック化 FacesMessage
に"SUCCESS"
を追加@Redirect
アノテーションによるリダイレクトvalidator
converter
behavior
タグでValueExpression
を更新可能とする- 定数のenum化(
StateManager.StateSavingMethod
UIInput.ValidateEmptyFields
) - コンポジットにカスタムの振る舞いを登録するAPIを追加
p:autoUpdate
と同等機能のポートTypeLiteral
定数の追加- コンポーネントのデフォルト値の設定/上書き
- UIInput のイベント強化(HTML5 における
- Jakarta Faces 5.0 milestone
- https://jakarta.ee/specifications/faces/5.0/
- https://github.com/jakartaee/faces
Jakarta Servlet 6.0 -> 6.1
- リダイレクト送信時のステータスコードとレスポンス・ボディの制御を可能とする
- エラーディスパッチにクエリ文字列属性を追加
- 新しい HTTP ステータス コード定数を追加
String
に変えてCharSet
を使ったメソッドのオーバーロードを追加ServletInputStream
とServletOutputStream
にByteBuffer
サポートを追加SecurityManager
へのすべての参照を削除- https://jakarta.ee/specifications/servlet/6.1/
- https://github.com/jakartaee/servlet
Jakarta Security 3.0 -> 4.0
- クライアント証明書による認証メカニズムの追加
- ダイジェスト認証メカニズムの追加
- 組み込み CDI Bean へのセキュリティインターセプタの追加(または
AuthenticationMechanismDefinition
への指定によるインターセプタ) SecurityManager
へのすべての参照を削除- その他
- 認証メカニズムをURLパターン別で提供
@RolesAllowed
の代替案- ユーザーによる認証メカニズムの選択
- Jakarta Security 3.1 milestone
- https://jakarta.ee/specifications/security/4.0/
- https://github.com/jakartaee/security
Jakarta Validation 3.0 -> 3.1
- Java レコードのサポート追加
- https://jakarta.ee/specifications/bean-validation/3.1/
- https://github.com/jakartaee/validation
Jakarta WebSocket 2.1 -> 2.2
SecurityManager
へのすべての参照を削除- https://jakarta.ee/specifications/websocket/2.2/
- https://github.com/jakartaee/websocket