SlideShare a Scribd company logo
Wicket と仲間たち サブプロジェクトの紹介 07.8.10 (C) Yoichiro Tanaka. All rights reserved.
情報源 Apache Wicket Reference Library http://cwiki.apache.org/WICKET/reference-library.html 07.8.10 (C) Yoichiro Tanaka. All rights reserved.
情報源 Wicket Stuff Wiki http://wicketstuff.org/confluence/display/STUFFWIKI/Wiki 07.8.10 (C) Yoichiro Tanaka. All rights reserved.
サブプロジェクト Apache Wicket Reference Library 少なくとも 5 個 Wicket Stuff Wiki 少なくとも 10 個 07.8.10 (C) Yoichiro Tanaka. All rights reserved.
サブプロジェクト 07.8.10 (C) Yoichiro Tanaka. All rights reserved. Databinder Wicket Support module for NetBeans IDE wicket-auth-roles Pax Wicket Service wicket-spring fvalidate-integration wicketstuff-dojo wicketstuff-animator wicketstuff-scriptaculous Swarm wicket-contrib-javaee wicket-groovy wicket-portlets wicket-contrib-gmap(2)
サブプロジェクト 07.8.10 (C) Yoichiro Tanaka. All rights reserved. Databinder Wicket Support module for NetBeans IDE wicket-auth-roles Pax Wicket Service wicket-spring fvalidate-integration wicketstuff-dojo wicketstuff-animator wicketstuff-scriptaculous Swarm wicket-contrib-javaee wicket-groovy wicket-portlets wicket-contrib-gmap(2)
wicket-spring コンポーネントに Spring 管理オブジェクトを DI @SpringBean アノテーションを利用 07.8.10 (C) Yoichiro Tanaka. All rights reserved. class EmployeePage extends WebPage { @SpringBean(name=“employeeDao”) private EmployeeDao dao; @SpringBean private DivisionDao divisionDao; } employeeDao divisionDao ApplicationContext
wicket-auth-roles Wicket に認証・認可機構を追加 Acegi との連携も可能 07.8.10 (C) Yoichiro Tanaka. All rights reserved.
wicket-auth-roles 07.8.10 (C) Yoichiro Tanaka. All rights reserved. public class YourAppSession extends AuthenticatedWebSession { public boolean authenticate(String username, String password) { //  認証処理 } public YourAppUserDetails getUser() { //  ユーザ情報取得処理 } public Roles getRoles() { //  ロール情報取得処理 } public void signout() { //  ログアウト処理 } }
wicket-auth-roles 07.8.10 (C) Yoichiro Tanaka. All rights reserved. public class YourAppApplication extends AuthenticatedWebApplication { private AuthenticationManager authenticationManager; protected void init() { super.init(); getSecuritySettings().setAuthorizationStrategy( new MetaDataRoleAuthorizationStrategy(this)); // MetaDataRoleAuthorizationStrategy.authorize( EditPage.class, SecurityConstants.ROLE_EDITOR); MetaDataRoleAuthorizationStrategy.authorize( ManagerPage.class, SecurityConstants.ROLE_MANAGER); } }
wicketstuff-dojo Wicket で Dojo を使うためのライブラリ 07.8.10 (C) Yoichiro Tanaka. All rights reserved.
wicketstuff-dojo 07.8.10 (C) Yoichiro Tanaka. All rights reserved. public class FloatingPaneShower extends WicketExamplePage { public FloatingPaneShower(PageParameters parameters){ DojoFloatingPane  pane1 = new DojoFloatingPane( "pane1"); add(pane1); DojoFloatingPane pane2 = new DojoFloatingPane("pane2"); pane1.add(pane2); pane1.setDisplayCloseAction(false); pane1.setHeight("300px"); pane1.setWidth("300px"); pane2.setTitle("a title here"); } }
wicketstuff-dojo 07.8.10 (C) Yoichiro Tanaka. All rights reserved. <!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot; &quot;http://www.w3.org/TR/html4/loose.dtd&quot;> <html> <body> <wicket:extend> <div wicket:id=&quot;pane1&quot;> content of my floatingPane  <b>Could be html</b> <div wicket:id=&quot;pane2&quot;>A window in an other window</div> </div> </wicket:extend> </body> </html>
wicket-groovy Wicket アプリケーションを Groovy で記述 Builder を使って,記述を簡潔にできる 07.8.10 (C) Yoichiro Tanaka. All rights reserved.
wicket-groovy Java の場合 07.8.10 (C) Yoichiro Tanaka. All rights reserved. Form  form  = new Form(&quot;contactForm&quot;){ protected void  onSubmit () { try { ((Contact)getModel().getModelObject()).save(); } catch(SomeCrazyException e) { throw new RuntimeException(&quot;I don't know what to do with this.  Just fail.&quot;, e); } } }; form.add(new RequiredTextField(&quot;firstname&quot;); form.add(new RequiredTextField(&quot;lastname&quot;).add(StringValidator.maximumLength(32)); add(form);
wicket-groovy Groovy の場合 07.8.10 (C) Yoichiro Tanaka. All rights reserved. WicketBuilder builder = new WicketBuilder(this) builder. form (&quot;contactForm&quot;, model:new CompoundPropertyModel(contact), onSubmit :{ model.modelObject.save() }) { requiredTextField(&quot;firstname&quot;) requiredTextField(&quot;lastname&quot;) {add(StringValidator.maximumLength(32))} }
wicket-contrib-javaee アノテーションにより JavaEE リソースを利用 @EJB @PersistenceUnit @Resource 07.8.10 (C) Yoichiro Tanaka. All rights reserved.
wicket-contrib-javaee @EJB 07.8.10 (C) Yoichiro Tanaka. All rights reserved. public class ListContacts extends WebPage { @EJB(name=&quot;ejb/contacts&quot;) private ContactService contactService; public ListContacts() { List<Contact> contacts = contactService.getContacts(); //....
整理すると 07.8.10 (C) Yoichiro Tanaka. All rights reserved. セキュリティ系 Swarm WASP の実装 wicket-auth-roles Acegi との連携による認証・認可 JavaScript 系 wicketstuff-scriptaculous script.aculo.us を Wicket に統合 wicketstuff-dojo Dojo を Wicket に統合 wicket-contrib-gmap(2) GoogleMaps を Wicket に統合 fvalidate-integration fvalidate を Wicket に統合 wicketstuff-animator animator.js を Wicket に統合 Java 系 wicket-spring SpringFramework を Wicket に統合 wicket-portlets Portlets API(JSR-168) を Wicket に統合 wicket-groovy Wicket コードを Groovy で記述 wicket-contrib-javaee JavaEE を Wicket に統合
整理すると 07.8.10 (C) Yoichiro Tanaka. All rights reserved. その他 Pax Wicket Service OSGi を Wicket に統合 Databinder Hibernate を Wicket に統合 Wicket support module NetBeans IDE 上で Wicket 開発
Wicket Support module 07.8.10 (C) Yoichiro Tanaka. All rights reserved.
Wicket Support module 07.8.10 (C) Yoichiro Tanaka. All rights reserved.
S2Wicket S2Container を Wicket に統合 命名規則により DI することも可能 07.8.10 (C) Yoichiro Tanaka. All rights reserved. class EmployeePage extends WebPage { @SeasarComponent(name=“employeeDao”) private EmployeeDao dao; @SeasarComponent private DivisionDao divisionDao; } employeeDao divisionDao S2Container
Grails - Wicket plugin Grails RoR にインスパイアされた Groovy での Rails Wicket との統合 Controller , View を Wicket で記述可能 簡単な画面は Scaffold で作る 複雑な画面は Wicket で作る 07.8.10 (C) Yoichiro Tanaka. All rights reserved.
まとめ Wicket はサブプロジェクトでさらに強力に リッチ Ajax アプリを Java で記述 主要 DI コンテナとの統合 セキュリティの設定も Java で記述 07.8.10 (C) Yoichiro Tanaka. All rights reserved.

More Related Content

What's hot

SecureAssist Enterprise Portal 導入ガイド
SecureAssist Enterprise Portal 導入ガイドSecureAssist Enterprise Portal 導入ガイド
SecureAssist Enterprise Portal 導入ガイド
Asterisk Research, Inc.
 
SecureAssist IntelliJ Plug-in 導入ガイド
SecureAssist IntelliJ Plug-in 導入ガイドSecureAssist IntelliJ Plug-in 導入ガイド
SecureAssist IntelliJ Plug-in 導入ガイド
Asterisk Research, Inc.
 
SecureAssist Rulepack Configurator 利用ガイド
SecureAssist Rulepack Configurator 利用ガイドSecureAssist Rulepack Configurator 利用ガイド
SecureAssist Rulepack Configurator 利用ガイド
Asterisk Research, Inc.
 
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (KOF2014)
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (KOF2014)脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (KOF2014)
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (KOF2014)
JPCERT Coordination Center
 
Mirantis超簡単Fuel Openstack インストール
Mirantis超簡単Fuel Openstack インストールMirantis超簡単Fuel Openstack インストール
Mirantis超簡単Fuel Openstack インストール
Kamon Nobuchika
 
SecureAssist Eclipse Plug-in 導入ガイド
SecureAssist Eclipse Plug-in 導入ガイドSecureAssist Eclipse Plug-in 導入ガイド
SecureAssist Eclipse Plug-in 導入ガイド
Asterisk Research, Inc.
 

What's hot (6)

SecureAssist Enterprise Portal 導入ガイド
SecureAssist Enterprise Portal 導入ガイドSecureAssist Enterprise Portal 導入ガイド
SecureAssist Enterprise Portal 導入ガイド
 
SecureAssist IntelliJ Plug-in 導入ガイド
SecureAssist IntelliJ Plug-in 導入ガイドSecureAssist IntelliJ Plug-in 導入ガイド
SecureAssist IntelliJ Plug-in 導入ガイド
 
SecureAssist Rulepack Configurator 利用ガイド
SecureAssist Rulepack Configurator 利用ガイドSecureAssist Rulepack Configurator 利用ガイド
SecureAssist Rulepack Configurator 利用ガイド
 
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (KOF2014)
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (KOF2014)脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (KOF2014)
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (KOF2014)
 
Mirantis超簡単Fuel Openstack インストール
Mirantis超簡単Fuel Openstack インストールMirantis超簡単Fuel Openstack インストール
Mirantis超簡単Fuel Openstack インストール
 
SecureAssist Eclipse Plug-in 導入ガイド
SecureAssist Eclipse Plug-in 導入ガイドSecureAssist Eclipse Plug-in 導入ガイド
SecureAssist Eclipse Plug-in 導入ガイド
 

Viewers also liked

Sumela Manastiri
Sumela  ManastiriSumela  Manastiri
Sumela Manastiri
Jeroen Bottema
 
Instant Rails
Instant RailsInstant Rails
Instant Rails
Yoshiyuki MIKAMI
 
Elsecreto
ElsecretoElsecreto
Elsecreto
Martin Beltran
 
Basketball Age 8
Basketball Age 8Basketball Age 8
Basketball Age 8
Pamela Gustafson
 
Chinese Hong Kong Festival
Chinese Hong Kong FestivalChinese Hong Kong Festival
Chinese Hong Kong Festival
isaac301350
 
FestançA No Arraiá
FestançA No ArraiáFestançA No Arraiá
FestançA No Arraiá
joce
 

Viewers also liked (6)

Sumela Manastiri
Sumela  ManastiriSumela  Manastiri
Sumela Manastiri
 
Instant Rails
Instant RailsInstant Rails
Instant Rails
 
Elsecreto
ElsecretoElsecreto
Elsecreto
 
Basketball Age 8
Basketball Age 8Basketball Age 8
Basketball Age 8
 
Chinese Hong Kong Festival
Chinese Hong Kong FestivalChinese Hong Kong Festival
Chinese Hong Kong Festival
 
FestançA No Arraiá
FestançA No ArraiáFestançA No Arraiá
FestançA No Arraiá
 

Similar to Wicket勉強会2

WebRTCの技術解説 公開版
WebRTCの技術解説 公開版WebRTCの技術解説 公開版
WebRTCの技術解説 公開版
Contest Ntt-west
 
Google App Engineでできる、あんなこと/こんなこと
Google App Engineでできる、あんなこと/こんなことGoogle App Engineでできる、あんなこと/こんなこと
Google App Engineでできる、あんなこと/こんなこと
a-know
 
Apache CommonsのHttpClientに おけるSSLサーバ証明書検証不備 (CVE-2012-5783)
Apache CommonsのHttpClientに おけるSSLサーバ証明書検証不備 (CVE-2012-5783)Apache CommonsのHttpClientに おけるSSLサーバ証明書検証不備 (CVE-2012-5783)
Apache CommonsのHttpClientに おけるSSLサーバ証明書検証不備 (CVE-2012-5783)
JPCERT Coordination Center
 
R5 3 type annotation
R5 3 type annotationR5 3 type annotation
R5 3 type annotation
EIICHI KIMURA
 
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
Hiroyuki Ohnaka
 
ASP.NETを利用したAJAX開発の応用
ASP.NETを利用したAJAX開発の応用ASP.NETを利用したAJAX開発の応用
ASP.NETを利用したAJAX開発の応用
Sho Okada
 
Spring I/O 2018 報告会 - Spring Cloud Gateway / Spring Cloud Pipelines
Spring I/O 2018 報告会 - Spring Cloud Gateway / Spring Cloud PipelinesSpring I/O 2018 報告会 - Spring Cloud Gateway / Spring Cloud Pipelines
Spring I/O 2018 報告会 - Spring Cloud Gateway / Spring Cloud Pipelines
Junya Katada
 
Spring I/O 2018 報告会
Spring I/O 2018 報告会Spring I/O 2018 報告会
Spring I/O 2018 報告会
NTT Software Innovation Center
 
React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDE
dcubeio
 
WebRTC on Native App
WebRTC on Native AppWebRTC on Native App
WebRTC on Native App
WebRTCConferenceJapan
 
WebRTCの技術解説 第二版 公開版 完全版
WebRTCの技術解説 第二版 公開版 完全版WebRTCの技術解説 第二版 公開版 完全版
WebRTCの技術解説 第二版 公開版 完全版
Contest Ntt-west
 
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Javaどこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
Toshiaki Maki
 
Use JWT access-token on Grails REST API
Use JWT access-token on Grails REST APIUse JWT access-token on Grails REST API
Use JWT access-token on Grails REST API
Uehara Junji
 
Apache Torqueについて
Apache TorqueについてApache Torqueについて
Apache Torqueについて
tako pons
 
商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと
NTT DATA OSS Professional Services
 
FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -
Akio Katayama
 
FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -
Akio Katayama
 
Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)
Yuji Kubota
 
Blocksの活用法
Blocksの活用法Blocksの活用法
Blocksの活用法
Hidetoshi Mori
 
G*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+BetamaxG*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+Betamax
Nobuhiro Sue
 

Similar to Wicket勉強会2 (20)

WebRTCの技術解説 公開版
WebRTCの技術解説 公開版WebRTCの技術解説 公開版
WebRTCの技術解説 公開版
 
Google App Engineでできる、あんなこと/こんなこと
Google App Engineでできる、あんなこと/こんなことGoogle App Engineでできる、あんなこと/こんなこと
Google App Engineでできる、あんなこと/こんなこと
 
Apache CommonsのHttpClientに おけるSSLサーバ証明書検証不備 (CVE-2012-5783)
Apache CommonsのHttpClientに おけるSSLサーバ証明書検証不備 (CVE-2012-5783)Apache CommonsのHttpClientに おけるSSLサーバ証明書検証不備 (CVE-2012-5783)
Apache CommonsのHttpClientに おけるSSLサーバ証明書検証不備 (CVE-2012-5783)
 
R5 3 type annotation
R5 3 type annotationR5 3 type annotation
R5 3 type annotation
 
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
 
ASP.NETを利用したAJAX開発の応用
ASP.NETを利用したAJAX開発の応用ASP.NETを利用したAJAX開発の応用
ASP.NETを利用したAJAX開発の応用
 
Spring I/O 2018 報告会 - Spring Cloud Gateway / Spring Cloud Pipelines
Spring I/O 2018 報告会 - Spring Cloud Gateway / Spring Cloud PipelinesSpring I/O 2018 報告会 - Spring Cloud Gateway / Spring Cloud Pipelines
Spring I/O 2018 報告会 - Spring Cloud Gateway / Spring Cloud Pipelines
 
Spring I/O 2018 報告会
Spring I/O 2018 報告会Spring I/O 2018 報告会
Spring I/O 2018 報告会
 
React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDE
 
WebRTC on Native App
WebRTC on Native AppWebRTC on Native App
WebRTC on Native App
 
WebRTCの技術解説 第二版 公開版 完全版
WebRTCの技術解説 第二版 公開版 完全版WebRTCの技術解説 第二版 公開版 完全版
WebRTCの技術解説 第二版 公開版 完全版
 
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Javaどこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
 
Use JWT access-token on Grails REST API
Use JWT access-token on Grails REST APIUse JWT access-token on Grails REST API
Use JWT access-token on Grails REST API
 
Apache Torqueについて
Apache TorqueについてApache Torqueについて
Apache Torqueについて
 
商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと
 
FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -
 
FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -
 
Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)Head toward Java 16 (Night Seminar Edition)
Head toward Java 16 (Night Seminar Edition)
 
Blocksの活用法
Blocksの活用法Blocksの活用法
Blocksの活用法
 
G*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+BetamaxG*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+Betamax
 

More from Yoichiro Tanaka

Navigate users from assistant app to android app
Navigate users from assistant app to android appNavigate users from assistant app to android app
Navigate users from assistant app to android app
Yoichiro Tanaka
 
Chrome Extensionsの基本とデザインパターン
Chrome Extensionsの基本とデザインパターンChrome Extensionsの基本とデザインパターン
Chrome Extensionsの基本とデザインパターン
Yoichiro Tanaka
 
Chrome Extensionsから見るWebExtensions
Chrome Extensionsから見るWebExtensionsChrome Extensionsから見るWebExtensions
Chrome Extensionsから見るWebExtensions
Yoichiro Tanaka
 
みんなの知らないChrome appsの世界
みんなの知らないChrome appsの世界みんなの知らないChrome appsの世界
みんなの知らないChrome appsの世界
Yoichiro Tanaka
 
Chromeウェブストア - Html5とか勉強会42
Chromeウェブストア - Html5とか勉強会42Chromeウェブストア - Html5とか勉強会42
Chromeウェブストア - Html5とか勉強会42
Yoichiro Tanaka
 
Yapc
YapcYapc
SocialWeb-Japan Vol.2 20090428
SocialWeb-Japan Vol.2 20090428SocialWeb-Japan Vol.2 20090428
SocialWeb-Japan Vol.2 20090428
Yoichiro Tanaka
 
JavaEdge第3回ライブセッション
JavaEdge第3回ライブセッションJavaEdge第3回ライブセッション
JavaEdge第3回ライブセッション
Yoichiro Tanaka
 
maven2+aptで楽々ドキュメント
maven2+aptで楽々ドキュメントmaven2+aptで楽々ドキュメント
maven2+aptで楽々ドキュメント
Yoichiro Tanaka
 
丸山先生レクチャーシリーズ2007-2008
丸山先生レクチャーシリーズ2007-2008丸山先生レクチャーシリーズ2007-2008
丸山先生レクチャーシリーズ2007-2008
Yoichiro Tanaka
 
Sun Tech Days 2007 Mash up
Sun Tech Days 2007 Mash upSun Tech Days 2007 Mash up
Sun Tech Days 2007 Mash up
Yoichiro Tanaka
 
体操競技のルール改正と今後の日本の方向性
体操競技のルール改正と今後の日本の方向性体操競技のルール改正と今後の日本の方向性
体操競技のルール改正と今後の日本の方向性
Yoichiro Tanaka
 
世間の荒波を乗りこなせ!
世間の荒波を乗りこなせ!世間の荒波を乗りこなせ!
世間の荒波を乗りこなせ!
Yoichiro Tanaka
 

More from Yoichiro Tanaka (15)

Navigate users from assistant app to android app
Navigate users from assistant app to android appNavigate users from assistant app to android app
Navigate users from assistant app to android app
 
Chrome Extensionsの基本とデザインパターン
Chrome Extensionsの基本とデザインパターンChrome Extensionsの基本とデザインパターン
Chrome Extensionsの基本とデザインパターン
 
Chrome Extensionsから見るWebExtensions
Chrome Extensionsから見るWebExtensionsChrome Extensionsから見るWebExtensions
Chrome Extensionsから見るWebExtensions
 
みんなの知らないChrome appsの世界
みんなの知らないChrome appsの世界みんなの知らないChrome appsの世界
みんなの知らないChrome appsの世界
 
Chromeウェブストア - Html5とか勉強会42
Chromeウェブストア - Html5とか勉強会42Chromeウェブストア - Html5とか勉強会42
Chromeウェブストア - Html5とか勉強会42
 
Info scoop opensource
Info scoop opensourceInfo scoop opensource
Info scoop opensource
 
Yapc
YapcYapc
Yapc
 
SocialWeb-Japan Vol.2 20090428
SocialWeb-Japan Vol.2 20090428SocialWeb-Japan Vol.2 20090428
SocialWeb-Japan Vol.2 20090428
 
JRuby on Rails
JRuby on RailsJRuby on Rails
JRuby on Rails
 
JavaEdge第3回ライブセッション
JavaEdge第3回ライブセッションJavaEdge第3回ライブセッション
JavaEdge第3回ライブセッション
 
maven2+aptで楽々ドキュメント
maven2+aptで楽々ドキュメントmaven2+aptで楽々ドキュメント
maven2+aptで楽々ドキュメント
 
丸山先生レクチャーシリーズ2007-2008
丸山先生レクチャーシリーズ2007-2008丸山先生レクチャーシリーズ2007-2008
丸山先生レクチャーシリーズ2007-2008
 
Sun Tech Days 2007 Mash up
Sun Tech Days 2007 Mash upSun Tech Days 2007 Mash up
Sun Tech Days 2007 Mash up
 
体操競技のルール改正と今後の日本の方向性
体操競技のルール改正と今後の日本の方向性体操競技のルール改正と今後の日本の方向性
体操競技のルール改正と今後の日本の方向性
 
世間の荒波を乗りこなせ!
世間の荒波を乗りこなせ!世間の荒波を乗りこなせ!
世間の荒波を乗りこなせ!
 

Recently uploaded

Kyndryl Developer Services のご紹介 2024年7月
Kyndryl Developer Services のご紹介  2024年7月Kyndryl Developer Services のご紹介  2024年7月
Kyndryl Developer Services のご紹介 2024年7月
Takayuki Nakayama
 
MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。
MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。
MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。
iPride Co., Ltd.
 
Matsuo-Iwasawa lab. Research Unit Introduction
Matsuo-Iwasawa lab. Research Unit IntroductionMatsuo-Iwasawa lab. Research Unit Introduction
Matsuo-Iwasawa lab. Research Unit Introduction
Matsuo Lab
 
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
Sony - Neural Network Libraries
 
MOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツール
MOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツールMOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツール
MOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツール
TsuyoshiSaito7
 
能動的サイバー防御の時代へ - GPTsから垣間見えた私達と未来のAIについて
能動的サイバー防御の時代へ - GPTsから垣間見えた私達と未来のAIについて能動的サイバー防御の時代へ - GPTsから垣間見えた私達と未来のAIについて
能動的サイバー防御の時代へ - GPTsから垣間見えた私達と未来のAIについて
Tetsuya Nihonmatsu
 
2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ
2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ
2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ
Tatsuya Ishikawa
 
「福利厚生をコストから投資へ」AIで社員1人ひとりに最適な支援を届ける 全く新しいカフェテリアプラン
「福利厚生をコストから投資へ」AIで社員1人ひとりに最適な支援を届ける 全く新しいカフェテリアプラン「福利厚生をコストから投資へ」AIで社員1人ひとりに最適な支援を届ける 全く新しいカフェテリアプラン
「福利厚生をコストから投資へ」AIで社員1人ひとりに最適な支援を届ける 全く新しいカフェテリアプラン
shogotaguchi
 
【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説
【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説
【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説
TsuyoshiSaito7
 
第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras
第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras
第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras
Takuya Minagawa
 
「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析
「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析
「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析
Hironori Washizaki
 

Recently uploaded (11)

Kyndryl Developer Services のご紹介 2024年7月
Kyndryl Developer Services のご紹介  2024年7月Kyndryl Developer Services のご紹介  2024年7月
Kyndryl Developer Services のご紹介 2024年7月
 
MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。
MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。
MySQLの文字コードと照合順序について 2024/07/05の勉強会で発表されたものです。
 
Matsuo-Iwasawa lab. Research Unit Introduction
Matsuo-Iwasawa lab. Research Unit IntroductionMatsuo-Iwasawa lab. Research Unit Introduction
Matsuo-Iwasawa lab. Research Unit Introduction
 
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
【AI論文解説】LLMの事前学習をvisionに適用する手法Autoregressive Image Models
 
MOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツール
MOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツールMOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツール
MOSHI: 革新的な音声AI QAIが開発した次世代のコミュニケーションツール
 
能動的サイバー防御の時代へ - GPTsから垣間見えた私達と未来のAIについて
能動的サイバー防御の時代へ - GPTsから垣間見えた私達と未来のAIについて能動的サイバー防御の時代へ - GPTsから垣間見えた私達と未来のAIについて
能動的サイバー防御の時代へ - GPTsから垣間見えた私達と未来のAIについて
 
2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ
2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ
2024/07/04 Blazor+ローコードで実現する.NET資産のモダナイズ
 
「福利厚生をコストから投資へ」AIで社員1人ひとりに最適な支援を届ける 全く新しいカフェテリアプラン
「福利厚生をコストから投資へ」AIで社員1人ひとりに最適な支援を届ける 全く新しいカフェテリアプラン「福利厚生をコストから投資へ」AIで社員1人ひとりに最適な支援を届ける 全く新しいカフェテリアプラン
「福利厚生をコストから投資へ」AIで社員1人ひとりに最適な支援を届ける 全く新しいカフェテリアプラン
 
【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説
【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説
【GPT4-o越えのリアルタイム会話AI】kyutai labsのMoshiデモ動画を解説
 
第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras
第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras
第61回CV勉強会「CVPR2024読み会」(前編)発表資料:State Space Models for Event Cameras
 
「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析
「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析
「スマートエスイー」におけるスマートシステム&サービスおよびDX推進人材の産学連携育成ならびに参照モデルに基づく育成プログラム分析
 

Wicket勉強会2

  • 1. Wicket と仲間たち サブプロジェクトの紹介 07.8.10 (C) Yoichiro Tanaka. All rights reserved.
  • 2. 情報源 Apache Wicket Reference Library http://cwiki.apache.org/WICKET/reference-library.html 07.8.10 (C) Yoichiro Tanaka. All rights reserved.
  • 3. 情報源 Wicket Stuff Wiki http://wicketstuff.org/confluence/display/STUFFWIKI/Wiki 07.8.10 (C) Yoichiro Tanaka. All rights reserved.
  • 4. サブプロジェクト Apache Wicket Reference Library 少なくとも 5 個 Wicket Stuff Wiki 少なくとも 10 個 07.8.10 (C) Yoichiro Tanaka. All rights reserved.
  • 5. サブプロジェクト 07.8.10 (C) Yoichiro Tanaka. All rights reserved. Databinder Wicket Support module for NetBeans IDE wicket-auth-roles Pax Wicket Service wicket-spring fvalidate-integration wicketstuff-dojo wicketstuff-animator wicketstuff-scriptaculous Swarm wicket-contrib-javaee wicket-groovy wicket-portlets wicket-contrib-gmap(2)
  • 6. サブプロジェクト 07.8.10 (C) Yoichiro Tanaka. All rights reserved. Databinder Wicket Support module for NetBeans IDE wicket-auth-roles Pax Wicket Service wicket-spring fvalidate-integration wicketstuff-dojo wicketstuff-animator wicketstuff-scriptaculous Swarm wicket-contrib-javaee wicket-groovy wicket-portlets wicket-contrib-gmap(2)
  • 7. wicket-spring コンポーネントに Spring 管理オブジェクトを DI @SpringBean アノテーションを利用 07.8.10 (C) Yoichiro Tanaka. All rights reserved. class EmployeePage extends WebPage { @SpringBean(name=“employeeDao”) private EmployeeDao dao; @SpringBean private DivisionDao divisionDao; } employeeDao divisionDao ApplicationContext
  • 8. wicket-auth-roles Wicket に認証・認可機構を追加 Acegi との連携も可能 07.8.10 (C) Yoichiro Tanaka. All rights reserved.
  • 9. wicket-auth-roles 07.8.10 (C) Yoichiro Tanaka. All rights reserved. public class YourAppSession extends AuthenticatedWebSession { public boolean authenticate(String username, String password) { // 認証処理 } public YourAppUserDetails getUser() { // ユーザ情報取得処理 } public Roles getRoles() { // ロール情報取得処理 } public void signout() { // ログアウト処理 } }
  • 10. wicket-auth-roles 07.8.10 (C) Yoichiro Tanaka. All rights reserved. public class YourAppApplication extends AuthenticatedWebApplication { private AuthenticationManager authenticationManager; protected void init() { super.init(); getSecuritySettings().setAuthorizationStrategy( new MetaDataRoleAuthorizationStrategy(this)); // MetaDataRoleAuthorizationStrategy.authorize( EditPage.class, SecurityConstants.ROLE_EDITOR); MetaDataRoleAuthorizationStrategy.authorize( ManagerPage.class, SecurityConstants.ROLE_MANAGER); } }
  • 11. wicketstuff-dojo Wicket で Dojo を使うためのライブラリ 07.8.10 (C) Yoichiro Tanaka. All rights reserved.
  • 12. wicketstuff-dojo 07.8.10 (C) Yoichiro Tanaka. All rights reserved. public class FloatingPaneShower extends WicketExamplePage { public FloatingPaneShower(PageParameters parameters){ DojoFloatingPane pane1 = new DojoFloatingPane( &quot;pane1&quot;); add(pane1); DojoFloatingPane pane2 = new DojoFloatingPane(&quot;pane2&quot;); pane1.add(pane2); pane1.setDisplayCloseAction(false); pane1.setHeight(&quot;300px&quot;); pane1.setWidth(&quot;300px&quot;); pane2.setTitle(&quot;a title here&quot;); } }
  • 13. wicketstuff-dojo 07.8.10 (C) Yoichiro Tanaka. All rights reserved. <!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot; &quot;http://www.w3.org/TR/html4/loose.dtd&quot;> <html> <body> <wicket:extend> <div wicket:id=&quot;pane1&quot;> content of my floatingPane <b>Could be html</b> <div wicket:id=&quot;pane2&quot;>A window in an other window</div> </div> </wicket:extend> </body> </html>
  • 14. wicket-groovy Wicket アプリケーションを Groovy で記述 Builder を使って,記述を簡潔にできる 07.8.10 (C) Yoichiro Tanaka. All rights reserved.
  • 15. wicket-groovy Java の場合 07.8.10 (C) Yoichiro Tanaka. All rights reserved. Form form = new Form(&quot;contactForm&quot;){ protected void onSubmit () { try { ((Contact)getModel().getModelObject()).save(); } catch(SomeCrazyException e) { throw new RuntimeException(&quot;I don't know what to do with this. Just fail.&quot;, e); } } }; form.add(new RequiredTextField(&quot;firstname&quot;); form.add(new RequiredTextField(&quot;lastname&quot;).add(StringValidator.maximumLength(32)); add(form);
  • 16. wicket-groovy Groovy の場合 07.8.10 (C) Yoichiro Tanaka. All rights reserved. WicketBuilder builder = new WicketBuilder(this) builder. form (&quot;contactForm&quot;, model:new CompoundPropertyModel(contact), onSubmit :{ model.modelObject.save() }) { requiredTextField(&quot;firstname&quot;) requiredTextField(&quot;lastname&quot;) {add(StringValidator.maximumLength(32))} }
  • 17. wicket-contrib-javaee アノテーションにより JavaEE リソースを利用 @EJB @PersistenceUnit @Resource 07.8.10 (C) Yoichiro Tanaka. All rights reserved.
  • 18. wicket-contrib-javaee @EJB 07.8.10 (C) Yoichiro Tanaka. All rights reserved. public class ListContacts extends WebPage { @EJB(name=&quot;ejb/contacts&quot;) private ContactService contactService; public ListContacts() { List<Contact> contacts = contactService.getContacts(); //....
  • 19. 整理すると 07.8.10 (C) Yoichiro Tanaka. All rights reserved. セキュリティ系 Swarm WASP の実装 wicket-auth-roles Acegi との連携による認証・認可 JavaScript 系 wicketstuff-scriptaculous script.aculo.us を Wicket に統合 wicketstuff-dojo Dojo を Wicket に統合 wicket-contrib-gmap(2) GoogleMaps を Wicket に統合 fvalidate-integration fvalidate を Wicket に統合 wicketstuff-animator animator.js を Wicket に統合 Java 系 wicket-spring SpringFramework を Wicket に統合 wicket-portlets Portlets API(JSR-168) を Wicket に統合 wicket-groovy Wicket コードを Groovy で記述 wicket-contrib-javaee JavaEE を Wicket に統合
  • 20. 整理すると 07.8.10 (C) Yoichiro Tanaka. All rights reserved. その他 Pax Wicket Service OSGi を Wicket に統合 Databinder Hibernate を Wicket に統合 Wicket support module NetBeans IDE 上で Wicket 開発
  • 21. Wicket Support module 07.8.10 (C) Yoichiro Tanaka. All rights reserved.
  • 22. Wicket Support module 07.8.10 (C) Yoichiro Tanaka. All rights reserved.
  • 23. S2Wicket S2Container を Wicket に統合 命名規則により DI することも可能 07.8.10 (C) Yoichiro Tanaka. All rights reserved. class EmployeePage extends WebPage { @SeasarComponent(name=“employeeDao”) private EmployeeDao dao; @SeasarComponent private DivisionDao divisionDao; } employeeDao divisionDao S2Container
  • 24. Grails - Wicket plugin Grails RoR にインスパイアされた Groovy での Rails Wicket との統合 Controller , View を Wicket で記述可能 簡単な画面は Scaffold で作る 複雑な画面は Wicket で作る 07.8.10 (C) Yoichiro Tanaka. All rights reserved.
  • 25. まとめ Wicket はサブプロジェクトでさらに強力に リッチ Ajax アプリを Java で記述 主要 DI コンテナとの統合 セキュリティの設定も Java で記述 07.8.10 (C) Yoichiro Tanaka. All rights reserved.