CDI を乗りこなせ!JBoss Seam 3 と Seam Forge                                    Red Hat       Senior Software Maintenance Engineer...
CDI• JSR-299 Contexts and Depenency  Injection• CDI の概要とか基本的な利用方法など  についてはこのスライドでは触れませ  ん – 皆本さんが CDI や Seam 3 の記事を書い   てい...
Weld• JSR-299 CDI Reference  Implementation  – 参照実装
Portable Extension• CDI の目玉機能の一つ• この機能を利用して Java EE の拡張を  実装可能• Seam 3 もいくつかの Portable  Extension の集まり• 簡単に作れる
簡単に作れる?• Java クラスを作る• Extension を登録する• jar にしてデプロイする
Java クラスを作るpackage com.acme;import javax.enterprise.inject.spi.Extension;public class MyExtension implements Extension {}
Extension を登録する• jar の META-INF/services というディレ  クトリに以下のファイルを作成  – javax.enterprise.inject.spi.Extension  – 中身は先ほど作ったクラス名 ...
Seam 3
History• Seam 3.0.0.Final  – 2011 年 3 月• Seam 2.0.0.GA  – 2007 年 12 月• Seam 1.0.0.GA  – 2006 年 6 月• Seam 1.0.0.Beta1  – 20...
Seam Catch• 例外ハンドリングを提供@HandlesExceptionspublic class MyHandler {  void printExceptions(    @Handles CaughtException<Throw...
Seam Catch• Extension のソースを見てみよう
Seam Faces• JSF オブジェクトの提供  – FacesContext  – ExternalContext,  – NavigationHandler  – Flashpublic class Bean {  @Inject Fa...
Seam Faces• JSF のフェーズコールバックpublic void observeRenderResponse(  @Observes @Before @RenderResponse  PhaseEvent e) {  // Do s...
Seam International• ロカールやタイムゾーンの提供@Injectjava.util.Locale defaultLocale;@Inject@UserLocalejava.util.Locale userLocale;
Seam International• 国際化されたメッセージ@InjectMessages messages;public void addLoginMessage() {  messages.info("Welcome {0}!", use...
Seam Solder• Solder = ソルダー = はんだづけ• 汎用性の高いコンポーネントやアノテ  ーションの提供
Seam Solder• EL の実行@Inject Expressions expressions;public void run() {  String fruitName =    expressions.evaluateValueExp...
Seam Solder• リソース読み込み@Inject@Resource("WEB-INF/web.xml")InputStream webXml;@Inject@Resource("META-INF/aws.properties")Prop...
Seam Solder• Logger@Inject Logger log;
他にもいっぱい•   Seam Security•   Seam Remoting•   Seam REST•   Seam Persistence and Transactions•   Seam Validation•   Seam Wic...
Seam 3.1•   Seam Social•   Seam Flex•   Seam Compatibility Module•   Seam JMS•   Seam Mail•   Seam Cron•   Seam Reports
Seam Forge
Seam Forge• forge    – 鍛冶場•   ラピッドデベロップメント環境•   シェル•   テクノロジインテグレーション•   スクリプティング
テクノロジの選択• maven-archetype-plugin  – 最初の一発のみ  – A と C と D と X を使いたい    • ダイアモンド継承問題と同じ状態に• 継続テクノロジインテグレーション  – いつでも追加  – gi...
テクノロジの選択• デモ – プロジェクト作成 – テクノロジ追加 – プラグイン追加• 時間があれば – scaffold による Web アプリ生成
Seam Forge• まだアルファ版です – 本当にアルファ版です – 開発が活発すぎて整合性の取れていない状   態のものがあり、かなり多くのものが動   かないです – JBoss AS7 版が本命ですがまだちゃんと   動きません
CDI, Seam 3 and Forge
Upcoming SlideShare
Loading in …5
×

CDI, Seam 3 and Forge

2,896 views

Published on

A slide used for Okayama OpenLab Vol.19

http://openlab.okaya.ma/wiki.cgi?page=%CA%D9%B6%AF%B2%F1%2F%C2%E8019%B2%F3

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,896
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
22
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

CDI, Seam 3 and Forge

  1. 1. CDI を乗りこなせ!JBoss Seam 3 と Seam Forge Red Hat Senior Software Maintenance Engineer Takayoshi Kimura
  2. 2. CDI• JSR-299 Contexts and Depenency Injection• CDI の概要とか基本的な利用方法など についてはこのスライドでは触れませ ん – 皆本さんが CDI や Seam 3 の記事を書い ているのでそちらを参照してください – http://thinkit.co.jp/book/2011/03/03/2031
  3. 3. Weld• JSR-299 CDI Reference Implementation – 参照実装
  4. 4. Portable Extension• CDI の目玉機能の一つ• この機能を利用して Java EE の拡張を 実装可能• Seam 3 もいくつかの Portable Extension の集まり• 簡単に作れる
  5. 5. 簡単に作れる?• Java クラスを作る• Extension を登録する• jar にしてデプロイする
  6. 6. Java クラスを作るpackage com.acme;import javax.enterprise.inject.spi.Extension;public class MyExtension implements Extension {}
  7. 7. Extension を登録する• jar の META-INF/services というディレ クトリに以下のファイルを作成 – javax.enterprise.inject.spi.Extension – 中身は先ほど作ったクラス名 – 複数ある場合は複数行記述すれば良いorg.acme.MyExtension
  8. 8. Seam 3
  9. 9. History• Seam 3.0.0.Final – 2011 年 3 月• Seam 2.0.0.GA – 2007 年 12 月• Seam 1.0.0.GA – 2006 年 6 月• Seam 1.0.0.Beta1 – 2005 年 9 月
  10. 10. Seam Catch• 例外ハンドリングを提供@HandlesExceptionspublic class MyHandler { void printExceptions( @Handles CaughtException<Throwable> ev) { ev.getException().printStackTrace(); ev.markHandled(); }}
  11. 11. Seam Catch• Extension のソースを見てみよう
  12. 12. Seam Faces• JSF オブジェクトの提供 – FacesContext – ExternalContext, – NavigationHandler – Flashpublic class Bean { @Inject FacesContext context;}
  13. 13. Seam Faces• JSF のフェーズコールバックpublic void observeRenderResponse( @Observes @Before @RenderResponse PhaseEvent e) { // Do something with the event object}
  14. 14. Seam International• ロカールやタイムゾーンの提供@Injectjava.util.Locale defaultLocale;@Inject@UserLocalejava.util.Locale userLocale;
  15. 15. Seam International• 国際化されたメッセージ@InjectMessages messages;public void addLoginMessage() { messages.info("Welcome {0}!", user.getName());}public void addLoginMessageFromResourceBundle() { messages.info( new BundleKey("myapp", "login.welcome"), user.getName());}
  16. 16. Seam Solder• Solder = ソルダー = はんだづけ• 汎用性の高いコンポーネントやアノテ ーションの提供
  17. 17. Seam Solder• EL の実行@Inject Expressions expressions;public void run() { String fruitName = expressions.evaluateValueExpression( "#{fruitBowl.fruitName}", String.class); Apple fruit = expressions.evaluateMethodExpression( "#{fruitBowl.getFruit}", Apple.class);}
  18. 18. Seam Solder• リソース読み込み@Inject@Resource("WEB-INF/web.xml")InputStream webXml;@Inject@Resource("META-INF/aws.properties")Properties awsProperties;
  19. 19. Seam Solder• Logger@Inject Logger log;
  20. 20. 他にもいっぱい• Seam Security• Seam Remoting• Seam REST• Seam Persistence and Transactions• Seam Validation• Seam Wicket• Seam Servlet
  21. 21. Seam 3.1• Seam Social• Seam Flex• Seam Compatibility Module• Seam JMS• Seam Mail• Seam Cron• Seam Reports
  22. 22. Seam Forge
  23. 23. Seam Forge• forge – 鍛冶場• ラピッドデベロップメント環境• シェル• テクノロジインテグレーション• スクリプティング
  24. 24. テクノロジの選択• maven-archetype-plugin – 最初の一発のみ – A と C と D と X を使いたい • ダイアモンド継承問題と同じ状態に• 継続テクノロジインテグレーション – いつでも追加 – git との連携 – 追加したもののロールバック ( 実装予定 )
  25. 25. テクノロジの選択• デモ – プロジェクト作成 – テクノロジ追加 – プラグイン追加• 時間があれば – scaffold による Web アプリ生成
  26. 26. Seam Forge• まだアルファ版です – 本当にアルファ版です – 開発が活発すぎて整合性の取れていない状 態のものがあり、かなり多くのものが動 かないです – JBoss AS7 版が本命ですがまだちゃんと 動きません

×