Seam3: CDI拡張モジュール

Seam3: CDI拡張モジュール

CDIでは、コンテキストによるインジェクションのためのアノテーションやAPIを提供していますが、それに加えてアプリケーションが新規のアノテーションや新規のコンテキストを追加するなど、CDI自身の機能を拡張するためのPortable Extension SPIを提供しています。

Portable Extensionを使うと、特定のJavaクラスのインスタンスをサーバー起動時にCDIコンテナに登録することや、インジェクションが起こるときに、それをトリガーにして何か処理をするようなことも可能です。Portable Extensionで作られた拡張モジュールはjarファイルとしてパッケージ化しますので、開発者がアプリケーションが必要なものだけを選択して使うことが可能です。

SeamFramework.orgプロジェクトでは、オープンソースでSeamフレームワークを開発しています。現在は、従来のSeam2と並行して、CDIの標準実装であるWeld、そして次期バージョンのSeam3を開発しています(Seamは「糸で紡いでつなぐ」という意味ですが、Weldは「金属を溶接してつなぎ合わせる」という意味になります)。Seam3は、CDI Portable Extensionを使ってJava EE APIをCDIベースで簡単に使えるように各種拡張ライブラリを提供します。

図2:Weld、CDI、Seam3の関係

現在開発中のSeamモジュール一覧とそのリリーススケジュールはこのページで確認できます。Seam3では、各モジュールは別々に管理され配布されるので、利用者は使いたいモジュールだけをアプリケーションに取り込むことができます。

CDI Portable Extensionは、Java EEの各種APIを横軸に横断した共通プラグインフレームワークととらえることも可能でしょう。そしてこの仕組みを使うことで、Java EEの上にさらに使いやすい機能群を構築できるようになります。今まで、必ずしもAPI間の連携がうまくいっていなかったJava EEですが、CDIの登場によって、より一層の開発生産性の向上が見込めます。それから、業務システムの基盤モジュールの様なものも、Portable Extensionで作ることで新規機能を開発することも可能です。このような拡張性は非常に魅力です。

Seam3のモジュールはJava EE 標準であるCDI上に作られているので、CDIの拡張モジュールは異なるアプリケーションサーバー上でも動作することが可能になります。新しいモジュールのアイデアがあれば、それをオープンソースとして公開することで、誰でも利用し、改善できるようになります。オープンソース開発による、使いやすく、カスタマイズできるJava EE環境の構築。これがSeamが目指している姿です。

次回は、実際にCDIの参照実装Weldのサンプルプログラムを動かしながらCDIの基本についてご紹介します。

この記事のキーワード :

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30